|
|
|
@ -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) {
|
|
|
|
|
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
|
|
|
|
|
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
|
|
|
|
|
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);
|
|
|
|
|