• R/O
  • HTTP
  • SSH
  • HTTPS

ultramonkey-l7-v2: コミット

UltraMonkey-L7 V2(single-thread implementation)


コミットメタ情報

リビジョン4a001666b6256af4ad4f3ba01cad5ff7791663d8 (tree)
日時2011-03-24 19:09:51
作者TATEISHI Katsuyuki <kt@whee...>
コミッターTATEISHI Katsuyuki

ログメッセージ

Fix cldata_bufsize

変更サマリ

差分

--- a/include/l7vs_conn.h
+++ b/include/l7vs_conn.h
@@ -56,6 +56,9 @@ struct my_fd_set{
5656 #define L7VS_CONN_READ_BUFSIZE_MAX 262144 //minimum l7vs_conn_read_bufsize 262144Byte = 256KByte
5757 #define L7VS_CONN_READ_BUFSIZE_MIN 2048 //minimum l7vs_conn_read_bufsize
5858
59+#define L7VS_X_FORWARDED_FOR_HEADER_LEN 48 // "X-Forwarded-For: AAA.BBB.CCC.DDD\r\n"(34Byte) or
60+ // ", AAA.BBB.CCC.DDD\r\n"(19Byte)
61+
5962 struct l7vs_conn{
6063 struct l7vs_lsock* lsock; //! l7vs_lsock pointer
6164 struct l7vs_service* srv; //! l7vs_service pointer
--- a/src/conn.c
+++ b/src/conn.c
@@ -249,7 +249,7 @@ l7vs_conn_create(int lfd, struct l7vs_lsock *lsock)
249249 /*------ DEBUG LOG END ------*/
250250
251251 conn->cldata_len = 0;
252- conn->cldata_bufsize = l7vs_conn_read_bufsize;
252+ conn->cldata_bufsize = l7vs_conn_read_bufsize + L7VS_X_FORWARDED_FOR_HEADER_LEN;
253253 conn->cldata = (char *)malloc(conn->cldata_bufsize);
254254 if (!conn->cldata) {
255255 LOGGER_PUT_LOG_ERROR(LOG_CAT_L7VSD_SYSTEM_MEMORY,9, "error / can not allocate memory for buffer");
@@ -2906,7 +2906,7 @@ l7vs_conn_send(struct l7vs_iomux *iom, int dest_fd)
29062906 }
29072907 //cldata memory realloc
29082908 conn->cldata_len = 0;
2909- conn->cldata_bufsize = l7vs_conn_read_bufsize;
2909+ conn->cldata_bufsize = l7vs_conn_read_bufsize + L7VS_X_FORWARDED_FOR_HEADER_LEN;
29102910 newbuf = (char *)malloc(conn->cldata_bufsize);
29112911 if (!newbuf) {
29122912 LOGGER_PUT_LOG_ERROR(LOG_CAT_L7VSD_SYSTEM_MEMORY,12, "error / malloc failed");
@@ -2922,7 +2922,7 @@ l7vs_conn_send(struct l7vs_iomux *iom, int dest_fd)
29222922 }
29232923 free(conn->cldata);
29242924 conn->cldata = newbuf;
2925- memset(conn->cldata, 0, l7vs_conn_read_bufsize);
2925+ memset(conn->cldata, 0, conn->cldata_bufsize);
29262926 }
29272927 else {
29282928 // shift data for next sending
旧リポジトリブラウザで表示