--- request.c.old 2008-09-20 19:53:44.000000000 +0800 +++ request.c 2008-09-20 20:03:14.000000000 +0800 @@ -825,6 +825,7 @@ "request-header:\n", con->request.request); } + ds->free((data_unset*)ds); return 0; } @@ -839,7 +840,7 @@ con->http_status = 400; con->keep_alive = 0; - array_insert_unique(con->request.headers, (data_unset *)ds); + ds->free((data_unset*)ds); return 0; } } @@ -856,7 +857,7 @@ con->http_status = 400; con->keep_alive = 0; - array_insert_unique(con->request.headers, (data_unset *)ds); + ds->free((data_unset*)ds); return 0; } } else if (cmp > 0 && 0 == (cmp = buffer_caseless_compare(CONST_BUF_LEN(ds->key), CONST_STR_LEN("Content-Type")))) { @@ -874,6 +875,7 @@ "request-header:\n", con->request.request); } + ds->free((data_unset*)ds); return 0; } } else if (cmp > 0 && 0 == (cmp = buffer_caseless_compare(CONST_BUF_LEN(ds->key), CONST_STR_LEN("Expect")))) { @@ -911,6 +913,7 @@ "request-header:\n", con->request.request); } + ds->free((data_unset*)ds); return 0; } } else if (cmp > 0 && 0 == (cmp = buffer_caseless_compare(CONST_BUF_LEN(ds->key), CONST_STR_LEN("If-Modified-Since")))) { @@ -936,6 +939,7 @@ "request-header:\n", con->request.request); } + ds->free((data_unset*)ds); return 0; } } else if (cmp > 0 && 0 == (cmp = buffer_caseless_compare(CONST_BUF_LEN(ds->key), CONST_STR_LEN("If-None-Match")))) { @@ -953,6 +957,7 @@ "request-header:\n", con->request.request); } + ds->free((data_unset*)ds); return 0; } } else if (cmp > 0 && 0 == (cmp = buffer_caseless_compare(CONST_BUF_LEN(ds->key), CONST_STR_LEN("Range")))) { @@ -976,6 +981,7 @@ "request-header:\n", con->request.request); } + ds->free((data_unset*)ds); return 0; } }