commit a90ce65429da20ab34b10623a3c05d3431b3147f
parent 2ff4a9d580afb3cb03a189e18755b6a4938cc697
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 13 Jun 2010 09:04:38 +0000
better
Diffstat:
2 files changed, 13 insertions(+), 2 deletions(-)
diff --git a/ChangeLog b/ChangeLog
@@ -1,3 +1,6 @@
+Sun Jun 13 10:52:34 CEST 2010
+ Cleaned up example code. -CG
+
Fri Apr 23 09:56:37 CEST 2010
Do not return HTTP headers for requests without version
numbers. Do return HTTP version 1.0 if client requested
diff --git a/src/examples/fileserver_example_dirs.c b/src/examples/fileserver_example_dirs.c
@@ -101,7 +101,11 @@ ahc_echo (void *cls,
return MHD_YES;
}
*ptr = NULL; /* reset when done */
- file = fopen (&url[1], "rb");
+ if ( (0 == stat (&url[1], &buf)) &&
+ (S_ISREG (buf.st_mode)) )
+ file = fopen (&url[1], "rb");
+ else
+ file = NULL;
if (file == NULL)
{
dir = opendir (".");
@@ -140,11 +144,15 @@ ahc_echo (void *cls,
}
else
{
- stat (&url[1], &buf);
response = MHD_create_response_from_callback (buf.st_size, 32 * 1024, /* 32k page size */
&file_reader,
file,
&file_free_callback);
+ if (response == NULL)
+ {
+ fclose (file);
+ return MHD_NO;
+ }
ret = MHD_queue_response (connection, MHD_HTTP_OK, response);
MHD_destroy_response (response);
}