mirror of
https://github.com/transmission/transmission
synced 2024-12-27 01:57:52 +00:00
refactor: use std::vector for tau_scrape_request.payload (#1865)
This commit is contained in:
parent
a76cf22211
commit
14fc626943
1 changed files with 10 additions and 12 deletions
|
@ -8,6 +8,7 @@
|
||||||
|
|
||||||
#include <errno.h> /* errno, EAFNOSUPPORT */
|
#include <errno.h> /* errno, EAFNOSUPPORT */
|
||||||
#include <string.h> /* memcpy(), memset() */
|
#include <string.h> /* memcpy(), memset() */
|
||||||
|
#include <vector>
|
||||||
|
|
||||||
#include <event2/buffer.h>
|
#include <event2/buffer.h>
|
||||||
#include <event2/dns.h>
|
#include <event2/dns.h>
|
||||||
|
@ -157,8 +158,7 @@ enum
|
||||||
|
|
||||||
struct tau_scrape_request
|
struct tau_scrape_request
|
||||||
{
|
{
|
||||||
void* payload;
|
std::vector<uint8_t> payload;
|
||||||
size_t payload_len;
|
|
||||||
|
|
||||||
time_t sent_at;
|
time_t sent_at;
|
||||||
time_t created_at;
|
time_t created_at;
|
||||||
|
@ -174,30 +174,29 @@ static struct tau_scrape_request* tau_scrape_request_new(
|
||||||
tr_scrape_response_func callback,
|
tr_scrape_response_func callback,
|
||||||
void* user_data)
|
void* user_data)
|
||||||
{
|
{
|
||||||
struct evbuffer* buf;
|
|
||||||
struct tau_scrape_request* req;
|
|
||||||
tau_transaction_t const transaction_id = tau_transaction_new();
|
tau_transaction_t const transaction_id = tau_transaction_new();
|
||||||
|
|
||||||
/* build the payload */
|
/* build the payload */
|
||||||
buf = evbuffer_new();
|
auto* buf = evbuffer_new();
|
||||||
evbuffer_add_hton_32(buf, TAU_ACTION_SCRAPE);
|
evbuffer_add_hton_32(buf, TAU_ACTION_SCRAPE);
|
||||||
evbuffer_add_hton_32(buf, transaction_id);
|
evbuffer_add_hton_32(buf, transaction_id);
|
||||||
|
|
||||||
for (int i = 0; i < in->info_hash_count; ++i)
|
for (int i = 0; i < in->info_hash_count; ++i)
|
||||||
{
|
{
|
||||||
evbuffer_add(buf, in->info_hash[i], SHA_DIGEST_LENGTH);
|
evbuffer_add(buf, in->info_hash[i], SHA_DIGEST_LENGTH);
|
||||||
}
|
}
|
||||||
|
auto const& payload = evbuffer_pullup(buf, -1);
|
||||||
|
|
||||||
/* build the tau_scrape_request */
|
/* build the tau_scrape_request */
|
||||||
req = tr_new0(struct tau_scrape_request, 1);
|
|
||||||
|
auto* req = new tau_scrape_request{};
|
||||||
|
req->callback = callback;
|
||||||
req->created_at = tr_time();
|
req->created_at = tr_time();
|
||||||
req->transaction_id = transaction_id;
|
req->transaction_id = transaction_id;
|
||||||
req->callback = callback;
|
req->callback = callback;
|
||||||
req->user_data = user_data;
|
req->user_data = user_data;
|
||||||
req->response.url = tr_strdup(in->url);
|
req->response.url = tr_strdup(in->url);
|
||||||
req->response.row_count = in->info_hash_count;
|
req->response.row_count = in->info_hash_count;
|
||||||
req->payload_len = evbuffer_get_length(buf);
|
req->payload.assign(payload, payload + evbuffer_get_length(buf));
|
||||||
req->payload = tr_memdup(evbuffer_pullup(buf, -1), req->payload_len);
|
|
||||||
|
|
||||||
for (int i = 0; i < req->response.row_count; ++i)
|
for (int i = 0; i < req->response.row_count; ++i)
|
||||||
{
|
{
|
||||||
|
@ -216,8 +215,7 @@ static void tau_scrape_request_free(struct tau_scrape_request* req)
|
||||||
{
|
{
|
||||||
tr_free(req->response.errmsg);
|
tr_free(req->response.errmsg);
|
||||||
tr_free(req->response.url);
|
tr_free(req->response.url);
|
||||||
tr_free(req->payload);
|
delete req;
|
||||||
tr_free(req);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tau_scrape_request_finished(struct tau_scrape_request const* request)
|
static void tau_scrape_request_finished(struct tau_scrape_request const* request)
|
||||||
|
@ -585,7 +583,7 @@ static void tau_tracker_send_reqs(struct tau_tracker* tracker)
|
||||||
{
|
{
|
||||||
dbgmsg(tracker->key, "sending scrape req %p", (void*)req);
|
dbgmsg(tracker->key, "sending scrape req %p", (void*)req);
|
||||||
req->sent_at = now;
|
req->sent_at = now;
|
||||||
tau_tracker_send_request(tracker, req->payload, req->payload_len);
|
tau_tracker_send_request(tracker, std::data(req->payload), std::size(req->payload));
|
||||||
|
|
||||||
if (req->callback == nullptr)
|
if (req->callback == nullptr)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue