Commit 038f8823 authored by Sergey Lyubka's avatar Sergey Lyubka

Added test to mg_stat(). Fixed set_gpass()

parent 03dd8367
...@@ -1331,6 +1331,8 @@ static int mg_stat(struct mg_connection *conn, const char *path, ...@@ -1331,6 +1331,8 @@ static int mg_stat(struct mg_connection *conn, const char *path,
filep->size = st.st_size; filep->size = st.st_size;
filep->modification_time = st.st_mtime; filep->modification_time = st.st_mtime;
filep->is_directory = S_ISDIR(st.st_mode); filep->is_directory = S_ISDIR(st.st_mode);
} else {
filep->modification_time = (time_t) 0;
} }
return filep->membuf != NULL || filep->modification_time != (time_t) 0; return filep->membuf != NULL || filep->modification_time != (time_t) 0;
...@@ -4461,7 +4463,11 @@ static void uninitialize_ssl(struct mg_context *ctx) { ...@@ -4461,7 +4463,11 @@ static void uninitialize_ssl(struct mg_context *ctx) {
static int set_gpass_option(struct mg_context *ctx) { static int set_gpass_option(struct mg_context *ctx) {
struct file file; struct file file;
const char *path = ctx->config[GLOBAL_PASSWORDS_FILE]; const char *path = ctx->config[GLOBAL_PASSWORDS_FILE];
return path == NULL || !mg_stat(fc(ctx), path, &file); if (path != NULL && !mg_stat(fc(ctx), path, &file)) {
cry(fc(ctx), "Cannot open %s: %s", path, strerror(ERRNO));
return 0;
}
return 1;
} }
static int set_acl_option(struct mg_context *ctx) { static int set_acl_option(struct mg_context *ctx) {
......
...@@ -349,6 +349,13 @@ static void test_user_data(void) { ...@@ -349,6 +349,13 @@ static void test_user_data(void) {
call_user(fc(ctx), MG_NEW_REQUEST); call_user(fc(ctx), MG_NEW_REQUEST);
} }
static void test_mg_stat(void) {
static struct mg_context ctx;
struct file file;
memset(&file, 'A', sizeof(file));
ASSERT(!mg_stat(fc(&ctx), " does not exist ", &file));
}
int main(void) { int main(void) {
test_base64_encode(); test_base64_encode();
test_match_prefix(); test_match_prefix();
...@@ -360,6 +367,7 @@ int main(void) { ...@@ -360,6 +367,7 @@ int main(void) {
test_set_throttle(); test_set_throttle();
test_next_option(); test_next_option();
test_user_data(); test_user_data();
test_mg_stat();
#ifdef USE_LUA #ifdef USE_LUA
test_lua(); test_lua();
#endif #endif
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment