X-Git-Url: http://git.wpitchoune.net/gitweb/?a=blobdiff_plain;f=src%2Fserver%2Fserver.c;h=f4cd4826de7c7a6631c28aa953d0a6445c731ce9;hb=b150b432264680d90fc76049ba0b4cb1adf60164;hp=cdd655d23f2e0cb045d23bb18acaf9c04b5f1449;hpb=735afff94cfb83d0428d97bd855c21abb57f26a5;p=psensor.git diff --git a/src/server/server.c b/src/server/server.c index cdd655d..f4cd482 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -203,28 +203,33 @@ create_response_file(const char *nurl, unsigned int *rp_code, const char *fpath) { - if (is_file(fpath)) { - FILE *file = fopen(fpath, "rb"); + struct stat st; + int ret; + FILE *file; - if (file) { - struct stat buf; + ret = stat(fpath, &st); - stat(fpath, &buf); + if (!ret && (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode))) { + file = fopen(fpath, "rb"); + + if (file) { *rp_code = MHD_HTTP_OK; - if (!buf.st_size) { + if (!st.st_size) { fclose(file); return MHD_create_response_from_data (0, NULL, MHD_NO, MHD_NO); } return MHD_create_response_from_callback - (buf.st_size, + (st.st_size, 32 * 1024, &file_reader, file, (MHD_ContentReaderFreeCallback)&fclose); + } else { + log_printf(LOG_ERR, "Failed to open: %s\n", fpath); } }