diff --git a/ca/ca.cer b/ca/ca.cer index 3696a19..6cc0755 100644 Binary files a/ca/ca.cer and b/ca/ca.cer differ diff --git a/ca/private.key b/ca/private.key index 6811ca0..6bc9b36 100644 --- a/ca/private.key +++ b/ca/private.key @@ -1,15 +1,15 @@ -----BEGIN RSA PRIVATE KEY----- -MIICXAIBAAKBgQDfkR9nd7gGRDLZ1NlYlOSl/f6h+6m8tR7V3VTRkII9HohANDit -olL32yQkOn/t61QGnV1ujbhVkoFyo7DOkUujoyU4zzZkmtqWrQWpYjxHsckr9655 -tjOWs9Vl8kAC3pfns2VYSh85rLSmmyIbjgHFlHSvCl7Aj0gJGOtZEGxLAwIDAQAB -AoGBAKqIAhJkaYSuJLOv/hHpkPdk5QQd+P0uktTDPV2VAyMn1PpUWx9nAC57g/f2 -f3q11KQvCQO5KnBrjj4pykXm4nAEPMYfZdVatXNs6ituDRoaaaRJA5u8smaqapvH -ERop9ZVfQ79qB0JAvwi8OVR/Fz7B2W7Lmrof/ZT3LRsKrdchAkEA+kNYheSxQ9wJ -4/wRTDnd5A89GpeU16/qzE9jhtc8+PcYc3pUog1/3un0mkl9IVmEc6NL4jMCFZMp -v/0yLJpM2wJBAOSxHKRUiKNQX3ucEvgMeF7LxWkjxlDLXn2lF9O9kiYSims0lvV0 -aA/jKo5W+KecnsagHqm8OEKLW0W0oab3vvkCQGLz5/ehEjorsbl0fH5wTv0SzW1L -TC3wP92i8k5popEqWn+mefpNbib8yJuMvS5Hj+iNQ77fvk47jwF7orAiHosCQEFx -NWMJFbi2TTyQIxV8bA2kfi9iH2QLblTCI5liDCp878NR30kKMKUrOohU9v7v4Ley -JlQoGmlge5Ps5r1i8/ECQHUtHjvS5x7SEbZs8Oc4KqKOfGKY6n01ov/OgeVoVjjt -e0PPQcI8JZzQI8TbGyaa0484IeuScmnAetMfzSgbUJs= +MIICXAIBAAKBgQDSUISXQpxxynP+3G67oEGsbQVhica8kQOC8KJFJ7FpeRfIIBmF +ygA2LlhLDbTP6OSDHGpkPrBGBOmhEqui+HYaz9Fs/gSIwf1o5FNDUtSEuUZxmUir +3AWmYu1TVtGVFchacZgxBp+qX6GuIrMqBr0ilQxvI+e4jtD7f8UvhE4hbwIDAQAB +AoGAGbiNLq6P0X7QBthQlpO31G2U3ePqsT8O7eGeBtUe5mZP2ULLvEgDFJ1AYRVx +CohSAhLklBPynO2W4QMWiJzYXKBSMrl42j1ZxruP8HJcPXqVeoJURG8rToqJPbtv +0CYCPqY1zcYQEJXtE3BPxs8Z/4lPQyD1te8+UJ6tLWUQYwECQQDpZxG2AuOHimSA +7WioppNAvNvKHo2odPI4NLO1vhu8maoJbDpQi8CuSE5wOiob+TejFYXMvhqkgBnB +GU8z+vbvAkEA5q00rRxCwB4+0+7w2oPNq+4xjixs2yGgFOGP7MnlseZChLYzdzFf +dM0tULJ0wgQQqBfsbnvl4LnXZYBGlAt9gQJAbFOi+7fxhEnuBYyqg4P0WhqNZAy0 +MJg+h2mmctaOJwWmzoLFufZy8jCq/xlvy9XqRa3KkNE2qlyuF1o40WZMTwJBAIbx +/qXiqX4Ac5rB5m6+ulwBPUZB4PCUjDSK/Ap21gOrg3BlslfhL0mCGidiLoGtpRzg +2fSMUJ+VuFdtolxLGIECQHiCXHaLTxk+Yt5KACNMOgdMcdKjuQ/XktDD2SJ87LnP +W7ZrSVKks9jhreGq/uJ72edP3yJzHiEiMPu/8/4nJkA= -----END RSA PRIVATE KEY----- diff --git a/src/cert_session.c b/src/cert_session.c index e6e920f..5cd2269 100644 --- a/src/cert_session.c +++ b/src/cert_session.c @@ -631,7 +631,6 @@ evhttp_socket_send(struct evhttp_request *req, char *sendbuf) if (sendbuf[0] == '\0'){ goto err; } - evhttp_add_header(evhttp_request_get_output_headers(req), "Content-Type", "test"); evbuffer_add_printf(evb, "%s", sendbuf); @@ -842,39 +841,31 @@ static void __engine_fini_contex(struct cert_trapper_t *certCtx) } } -///ca?host=www.baidu.com&flag=1&valid=1 -static int get_url_data(const char *uri, char *host, - int *flag, int *valid) +static int +libevent_decode_uri(const char *uri, char *host, + int *flag, int *valid) { - char *str = NULL; - char seps[] = " \t\r\n=&"; + const char *fg = NULL, *vl = NULL; + char *decoded_uri = NULL; + struct evkeyvalq params; - char *uri_tp = (char *)malloc(strlen(uri) + 1); - if (uri_tp == NULL){ + decoded_uri = evhttp_decode_uri(uri); + if (!decoded_uri){ goto finish; } - memcpy(uri_tp, uri, strlen(uri)); + evhttp_parse_query(decoded_uri, ¶ms); + sprintf(host, "%s", evhttp_find_header(¶ms, "host")); - str = strtok(uri_tp + 4, seps); - if (!STRCMP(str, "host")){ - str = strtok(NULL, seps); - memcpy(host, str, strlen(str)); - } - while(str != NULL){ - str = strtok(NULL, seps); - if (str && !STRCMP(str, "flag")){ - str = strtok(NULL, seps); - if (str) - *flag = atoi(str); - } - if (str && !STRCMP(str, "valid")){ - str = strtok(NULL, seps); - if (str) - *valid = atoi(str); - } - } + fg = evhttp_find_header(¶ms, "flag"); + if (fg) + *flag = atoi(fg); + + vl = evhttp_find_header(¶ms, "valid"); + if (vl) + *valid = atoi(vl); + + free(decoded_uri); - free(uri_tp); finish: return 0; } @@ -910,7 +901,7 @@ pthread_work_proc(struct evhttp_request *evh_req, void *arg) } WEB_REQUEST_ADD(1); - get_url_data(uri, req->host, &req->flag, &req->valid); + libevent_decode_uri(uri, req->host, &req->flag, &req->valid); mesa_runtime_log(RLOG_LV_INFO, MODULE_NAME, "[Thread %d]Received a %s request for %s, host:%s, flag:%d, valid:%d\nHeaders:", certCtx->thread_id, cmdtype, uri, req->host, req->flag, req->valid);