|
|
|
@ -30,6 +30,12 @@
@@ -30,6 +30,12 @@
|
|
|
|
|
#include "scan_urlencoded_query.h" |
|
|
|
|
#include "trackerlogic.h" |
|
|
|
|
|
|
|
|
|
#ifdef WANT_NO_AUTO_FREE |
|
|
|
|
#define OT_IOB_INIT iob_init |
|
|
|
|
#else |
|
|
|
|
#define OT_IOB_INIT iob_init_autofree |
|
|
|
|
#endif |
|
|
|
|
|
|
|
|
|
#define OT_MAXMULTISCRAPE_COUNT 64 |
|
|
|
|
#define OT_BATCH_LIMIT (1024 * 1024 * 16) |
|
|
|
|
extern char *g_redirecturl; |
|
|
|
@ -81,7 +87,7 @@ static void http_senddata(const int64 sock, struct ot_workstruct *ws) {
@@ -81,7 +87,7 @@ static void http_senddata(const int64 sock, struct ot_workstruct *ws) {
|
|
|
|
|
memcpy(outbuf, ws->reply + written_size, ws->reply_size - written_size); |
|
|
|
|
if (!cookie->batch) { |
|
|
|
|
cookie->batch = malloc(sizeof(io_batch)); |
|
|
|
|
iob_init_autofree(cookie->batch, 0); |
|
|
|
|
OT_IOB_INIT(cookie->batch, 0); |
|
|
|
|
cookie->batches = 1; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -179,7 +185,7 @@ ssize_t http_sendiovecdata(const int64 sock, struct ot_workstruct *ws, int iovec
@@ -179,7 +185,7 @@ ssize_t http_sendiovecdata(const int64 sock, struct ot_workstruct *ws, int iovec
|
|
|
|
|
iovec_free(&iovec_entries, &iovector); |
|
|
|
|
HTTPERROR_500; |
|
|
|
|
} |
|
|
|
|
iob_init_autofree(cookie->batch, 0); |
|
|
|
|
OT_IOB_INIT(cookie->batch, 0); |
|
|
|
|
cookie->batches = 1; |
|
|
|
|
} |
|
|
|
|
current = cookie->batch + cookie->batches - 1; |
|
|
|
@ -193,7 +199,7 @@ ssize_t http_sendiovecdata(const int64 sock, struct ot_workstruct *ws, int iovec
@@ -193,7 +199,7 @@ ssize_t http_sendiovecdata(const int64 sock, struct ot_workstruct *ws, int iovec
|
|
|
|
|
if (new_batch) { |
|
|
|
|
cookie->batch = new_batch; |
|
|
|
|
current = cookie->batch + cookie->batches++; |
|
|
|
|
iob_init_autofree(current, 0); |
|
|
|
|
OT_IOB_INIT(current, 0); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
iob_addbuf_free(current, iovector[i].iov_base, iovector[i].iov_len); |
|
|
|
|