updates.
authorPekka Riikonen <priikone@silcnet.org>
Sat, 16 Sep 2006 12:31:10 +0000 (12:31 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sat, 16 Sep 2006 12:31:10 +0000 (12:31 +0000)
lib/silchttp/silchttpserver.h
lib/silchttp/tests/test_silchttpserver.c

index 3abea82db49bd2bd1dcb73184f1595cc3f0dd7af..cfc87c1590dfb7d491e3d3815b647325e6b55b59 100644 (file)
@@ -24,7 +24,8 @@
  * Very simple HTTP server interface.  This HTTP server supports basic HTTP
  * features.  All pages on the server are dynamically created by the caller
  * of this interface.  The server does not support plugins, modules, cgi-bin,
- * server-side includes or any other special features.
+ * server-side includes or any other special features.  Naturally, the caller
+ * of this interface may itself implement such features.
  *
  ***/
 
@@ -74,7 +75,7 @@ typedef struct SilcHttpConnectionStruct *SilcHttpConnection;
  *
  * DESCRIPTION
  *
- *    The HTTP request callback, that is called everytime a new HTTP request
+ *    The HTTP request callback that is called everytime a new HTTP request
  *    comes from a HTTP client.  The `uri' is the requested URI (web page),
  *    and the `method' is the HTTP request method (GET, POST, etc.).  The
  *    `data' is non-NULL only if the `method' is POST, and it includes the
@@ -218,6 +219,7 @@ const char *silc_http_server_get_header(SilcHttpServer httpd,
  * EXAMPLE
  *
  *    silc_http_server_add_header(httpd, conn, "Content-Type", "image/jpeg");
+ *    silc_http_server_send(httpd, conn, image_data);
  *
  ***/
 SilcBool silc_http_server_add_header(SilcHttpServer httpd,
index 859688a70a287bab0015bee9b17cb4a7a3829bc9..a6b1b049f9dec87e7d50e9ef5ad27956261bd3a5 100644 (file)
@@ -19,6 +19,7 @@ static void http_callback(SilcHttpServer httpd, SilcHttpConnection conn,
                            "<html><head></head><body>",
                            silc_http_server_get_header(httpd, conn,
                                                        "User-Agent"),
+                           "<p><img src=\"pr_1995.jpg\">",
                            "<p>OUR DEFAULT PAGE IS THIS: ",
                            silc_time_string(silc_time()),
                            "<P><FORM action=\"/posttest\" method=\"post\"><P>"
@@ -36,6 +37,20 @@ static void http_callback(SilcHttpServer httpd, SilcHttpConnection conn,
       silc_buffer_purge(&page);
       return;
     }
+
+    if (!strcmp(uri, "/pr_1995.jpg")) {
+      SilcUInt32 data_len;
+      unsigned char *data = silc_file_readfile("pr_1995.jpg", &data_len);
+      if (!data) {
+       silc_http_server_send_error(httpd, conn, "404 Not Found", NULL);
+        return;
+      }
+      silc_buffer_set(&page, data, data_len),
+      silc_http_server_add_header(httpd, conn, "Content-Type", "image/jpeg");
+      silc_http_server_send(httpd, conn, &page);
+      silc_buffer_purge(&page);
+      return;
+    }
   }
 
   if (!strcasecmp(method, "POST")) {