From 062142ef41c4fe66a48f26e92c5f360358d18ede Mon Sep 17 00:00:00 2001 From: fengweihao Date: Thu, 28 Jun 2018 17:49:13 +0800 Subject: [PATCH] =?UTF-8?q?[Motify]=201.=E4=BF=AE=E6=94=B9evhttp=E4=B8=AD?= =?UTF-8?q?=E8=A7=A3=E6=9E=90url=E6=8E=A5=E5=8F=A3=202.=E8=AE=BE=E7=BD=AEr?= =?UTF-8?q?edis=E8=BF=87=E6=9C=9F=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ca/ca.cer | Bin 597 -> 688 bytes ca/private.key | 26 ++++++++++++------------ src/cert_session.c | 49 ++++++++++++++++++--------------------------- 3 files changed, 33 insertions(+), 42 deletions(-) diff --git a/ca/ca.cer b/ca/ca.cer index 3696a197c4e461f7ccf8ab088117d9ce803df577..6cc0755d89d6b0257c52194d65491fb43a10296d 100644 GIT binary patch literal 688 zcmXqLVp?O+#3Z_anTe5!iId@8;zJp}v`-ric-c6$+C196^D;7WvoaXu8*&?PvN4CU zun99c`xy!w2!c2qJY2bz1x5K~nR&^nhWtQHKtXmMw%p3(%#un&aRX7102dEmZe@N^ zdSYH?RbokIex9L#0Ut<$n}C%u7Y7*l8OQ>|RhExMj78+}^C!u(bY6c*dN`LSg0VNIHgQ&~fjmfBnMJ}t ztO2_M9*_cI7FGjhM#lfh9tI`?W}r{|thlGthF(cY5&apvfM>^7$ql*F{{Lqw=~s(r z)m^N0@3&)3`-TRG9e1bjG(Y&^!+5s;+{6am1wp*q5@+`POxv|i!itCQqjD?bp7l?U zsKl%3n9Q^F^ literal 597 zcmXqLVhS{9V%){V$d#AN85K^Mn-N{27_EfZUas>=1>+kVW#9f zLtX=J5Ql?@r6jeu1jc1Y<#M5Nxly^yP_D3nAlxcWMlrB~26E!Oh86~9hL#4FhDL@K zQ9!OG5|`f2X`GK79*nFE%#FPa292Fejg1WVC(5Un?_hH=x_RYh#FQsX|NdL}d*z<3 za#!z$T%6EkE7##*VzG8n(D&OaDpvJxUx%>Gjm_)b5jv@{Xz_+~6TKHNR<$^9mNM(s zw6&}&lWg2Kp49%nu5z34w9QvjKRGbnoBn)rYJ``(<(e(aW-CeeF&>>#vYspMK)(m4 z#Op|b9B*bOW<~}^Waj~+iy7!HsaMx;$SH{Ves)~N^^^1YZK<=>4|0!GMKyo9ru6Iq z+kIBqw=w-kkFHwCD0obz`?ZkUEh~%dQ^KMiz5Rb+9?RF7ooAa2m)&{jxxdCiQ968X zCC9(k308-Gi(atQ(<_ke4hnlO<=4HlsbIpZzY3RyV_$l53hs!AivF^rAT!Q)%I|al D%T>ip 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);