diff --git a/main.c b/main.c index 2bd296d..0a5e897 100644 --- a/main.c +++ b/main.c @@ -19,6 +19,7 @@ */ #include +#include #include #include #include @@ -49,7 +50,7 @@ static void settings_init(void) settings.backlog = 1024; settings.num_threads = 4; /* N workers */ settings.log = false; - settings.cache_on = true; + settings.cache_on = false; strcpy(settings.cache_ip, "127.0.0.1"); settings.cache_port = 11211; settings.max_keepalives = 1; @@ -97,6 +98,7 @@ int main(int argc, char **argv) "p:" "t:" "l" + "c" "M:" "m:" "b:" @@ -129,6 +131,9 @@ int main(int argc, char **argv) case 'l': settings.log = true; break; + case 'c': + settings.cache_on = true; + break; case 'M': strcpy(settings.cache_ip, optarg); break; @@ -142,7 +147,7 @@ int main(int argc, char **argv) settings.max_keepalives = atoll(optarg); break; case 'h': - printf("Usage: ./zimg -p port -t thread_num -M memcached_ip -m memcached_port -l[og] -b backlog_num -k max_keepalives -h[elp]\n"); + printf("Usage: ./zimg -p port -t thread_num -M memcached_ip -m memcached_port -l[og] -c[ache] -b backlog_num -k max_keepalives -h[elp]\n"); exit(1); default: fprintf(stderr, "Illegal argument \"%c\"\n", c); @@ -188,31 +193,38 @@ int main(int argc, char **argv) //init memcached connection... - LOG_PRINT(LOG_INFO, "Begin to Init Memcached Connection..."); - memcached_st *memc; - memc= memcached_create(NULL); - - char mserver[32]; - sprintf(mserver, "%s:%d", settings.cache_ip, settings.cache_port); - memcached_server_st *servers = memcached_servers_parse(mserver); - - memcached_server_push(memc, servers); - memcached_server_list_free(servers); - memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, 0); - //使用NO-BLOCK,防止memcache倒掉时挂死 - memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_NO_BLOCK, 1); - LOG_PRINT(LOG_INFO, "Memcached Connection Init Finished."); - if(set_cache("zimg", "1") == -1) + if(settings.cache_on == true) { - LOG_PRINT(LOG_WARNING, "Memcached[%s] Connect Failed!", mserver); - settings.cache_on = false; + LOG_PRINT(LOG_INFO, "Begin to Init Memcached Connection..."); + memcached_st *memc; + memc= memcached_create(NULL); + + char mserver[32]; + sprintf(mserver, "%s:%d", settings.cache_ip, settings.cache_port); + memcached_server_st *servers = memcached_servers_parse(mserver); + + memcached_server_push(memc, servers); + memcached_server_list_free(servers); + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_BINARY_PROTOCOL, 0); + //使用NO-BLOCK,防止memcache倒掉时挂死 + memcached_behavior_set(memc, MEMCACHED_BEHAVIOR_NO_BLOCK, 1); + LOG_PRINT(LOG_INFO, "Memcached Connection Init Finished."); + if(set_cache("zimg", "1") == -1) + { + LOG_PRINT(LOG_WARNING, "Memcached[%s] Connect Failed!", mserver); + settings.cache_on = false; + } + else + { + LOG_PRINT(LOG_INFO, "memcached connection to: %s", mserver); + settings.cache_on = true; + } + memcached_free(memc); } else - { - LOG_PRINT(LOG_INFO, "memcached connection to: %s", mserver); - settings.cache_on = true; - } - memcached_free(memc); + LOG_PRINT(LOG_INFO, "Don't use memcached as cache."); + //init magickwand + MagickWandGenesis(); //begin to start httpd... LOG_PRINT(LOG_INFO, "Begin to Start Httpd Server..."); @@ -234,6 +246,7 @@ int main(int argc, char **argv) evhtp_unbind_socket(htp); evhtp_free(htp); event_base_free(evbase); + MagickWandTerminus(); fprintf(stdout, "\nByebye!\n"); return 0; diff --git a/zhttpd.c b/zhttpd.c index 64e7182..e409950 100644 --- a/zhttpd.c +++ b/zhttpd.c @@ -313,7 +313,7 @@ void post_request_cb(evhtp_request_t *req, void *arg) { if((end = kmp(buff+start, post_size-start, blankPattern, strlen(blankPattern))) == -1) { - LOG_PRINT(LOG_ERROR, "quote \" Not Found!"); + LOG_PRINT(LOG_ERROR, "quote \\r\\n Not Found!"); goto err; } } diff --git a/zimg.c b/zimg.c index 42de0af..674bca0 100644 --- a/zimg.c +++ b/zimg.c @@ -276,7 +276,6 @@ int get_img(zimg_req_t *req, char **buff_ptr, size_t *img_size) if((fd = open(rsp_path, O_RDONLY)) == -1) //if(status == MagickFalse) { - MagickWandGenesis(); magick_wand = NewMagickWand(); got_rsp = false; @@ -543,7 +542,6 @@ int get_img(zimg_req_t *req, char **buff_ptr, size_t *img_size) if(magick_wand) { magick_wand=DestroyMagickWand(magick_wand); - MagickWandTerminus(); } if(img_format) free(img_format);