summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTing-Wei Lan <lantw44@gmail.com>2014-02-06 23:33:55 +0800
committerTing-Wei Lan <lantw44@gmail.com>2014-02-06 23:34:09 +0800
commit033297be7a73aca29fb58cf061fffeb9b4f3bd4d (patch)
treeea661acadd09e9662e7adced8203203c33bad7f6
parent75e1f2a8a1745fcfe2a18ecb4671936b4690573d (diff)
downloadsp2013-master.tar
sp2013-master.tar.gz
sp2013-master.tar.bz2
sp2013-master.tar.lz
sp2013-master.tar.xz
sp2013-master.tar.zst
sp2013-master.zip
HW4+: 嘗試減少處理每個連線時的 malloc 次數HEADmaster
-rw-r--r--hw4/chttpd/chttpd-conn.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/hw4/chttpd/chttpd-conn.c b/hw4/chttpd/chttpd-conn.c
index fecc5a8..6b2b205 100644
--- a/hw4/chttpd/chttpd-conn.c
+++ b/hw4/chttpd/chttpd-conn.c
@@ -181,11 +181,14 @@ void* chttpd_conn_http (void* ptr_to_ChttpdConn) {
"HTTP line delimiter length must be 2bytes!");
char errmsg[ERRLEN];
- LbsArray* hdr_buf = lbs_array_new (sizeof (char));
- LbsArray* out_buf = lbs_array_new (sizeof (char));
+ LbsArray* hdr_buf = lbs_array_new_with_max (sizeof (char), CHTTPD_CONN_BUF_SIZE);
+ LbsArray* out_buf = lbs_array_new_with_max (sizeof (char), CHTTPD_CONN_BUF_SIZE);
ssize_t data_offset;
ssize_t data_count;
+ lbs_array_set_len (hdr_buf, 0);
+ lbs_array_set_len (out_buf, 0);
+
while (true) {
ssize_t r = read (connfd, conn->buf, CHTTPD_CONN_BUF_SIZE);
if (r < 0) {