X-Git-Url: http://git.silcnet.org/gitweb/?p=silc.git;a=blobdiff_plain;f=lib%2Fsilchttp%2Ftests%2Ftest_silchttpserver.c;fp=lib%2Fsilchttp%2Ftests%2Ftest_silchttpserver.c;h=197e5debb668e5b2a63592ec989a042562ac03fc;hp=76604b8810be61412d21262ed6877942286eff09;hb=c9b80e466faa4d8849cf46d18dabb5bfa8496d0e;hpb=ebfae3bbce6fed0dece516307f537ce5e270e7e0 diff --git a/lib/silchttp/tests/test_silchttpserver.c b/lib/silchttp/tests/test_silchttpserver.c index 76604b88..197e5deb 100644 --- a/lib/silchttp/tests/test_silchttpserver.c +++ b/lib/silchttp/tests/test_silchttpserver.c @@ -12,6 +12,30 @@ char *htdocs = "."; +/* Add proper content type to reply per URI */ + +static void http_content_type(SilcHttpServer httpd, SilcHttpConnection conn, + const char *uri) +{ + const char *type; + + type = silc_http_server_get_header(httpd, conn, "Content-Type"); + if (type) + silc_http_server_add_header(httpd, conn, "Content-Type", type); + else if (strstr(uri, ".jpg")) + silc_http_server_add_header(httpd, conn, "Content-Type", "image/jpeg"); + else if (strstr(uri, ".gif")) + silc_http_server_add_header(httpd, conn, "Content-Type", "image/gif"); + else if (strstr(uri, ".png")) + silc_http_server_add_header(httpd, conn, "Content-Type", "image/png"); + else if (strstr(uri, ".css")) + silc_http_server_add_header(httpd, conn, "Content-Type", "text/css"); + else if (strstr(uri, ".htm")) + silc_http_server_add_header(httpd, conn, "Content-Type", "text/html"); + else if (strstr(uri, ".php")) + silc_http_server_add_header(httpd, conn, "Content-Type", "text/html"); +} + /* Serve pages */ static void http_callback_file(SilcHttpServer httpd, SilcHttpConnection conn, @@ -22,7 +46,6 @@ static void http_callback_file(SilcHttpServer httpd, SilcHttpConnection conn, SilcBuffer php; char *filedata, filename[256]; SilcUInt32 data_len; - const char *type; SilcBool usephp = FALSE; if (!strcasecmp(method, "GET")) { @@ -49,15 +72,7 @@ static void http_callback_file(SilcHttpServer httpd, SilcHttpConnection conn, return; } - type = silc_http_server_get_header(httpd, conn, "Content-Type"); - if (type) - silc_http_server_add_header(httpd, conn, "Content-Type", type); - else if (strstr(uri, ".jpg")) - silc_http_server_add_header(httpd, conn, "Content-Type", "image/jpeg"); - else if (strstr(uri, ".gif")) - silc_http_server_add_header(httpd, conn, "Content-Type", "image/gif"); - else if (strstr(uri, ".png")) - silc_http_server_add_header(httpd, conn, "Content-Type", "image/png"); + http_content_type(httpd, conn, uri); /* Send page */ silc_buffer_set(&page, filedata, data_len); @@ -71,6 +86,8 @@ static void http_callback_file(SilcHttpServer httpd, SilcHttpConnection conn, return; } + http_content_type(httpd, conn, uri); + /* Send page */ silc_http_server_send(httpd, conn, php); silc_buffer_free(php);