void tr_tracker_http_scrape (tr_session * session, const tr_scrape_request * request, tr_scrape_response_func response_func, void * response_func_user_data) { int i; struct scrape_data * d; char * url = scrape_url_new (request); d = tr_new0 (struct scrape_data, 1); d->response.url = tr_strdup (request->url); d->response_func = response_func; d->response_func_user_data = response_func_user_data; d->response.row_count = request->info_hash_count; for (i=0; i<d->response.row_count; ++i) { memcpy (d->response.rows[i].info_hash, request->info_hash[i], SHA_DIGEST_LENGTH); d->response.rows[i].seeders = -1; d->response.rows[i].leechers = -1; d->response.rows[i].downloads = -1; } tr_strlcpy (d->log_name, request->log_name, sizeof (d->log_name)); dbgmsg (request->log_name, "Sending scrape to libcurl: \"%s\"", url); tr_webRun (session, url, on_scrape_done, d); tr_free (url); }
void tr_tracker_http_scrape( tr_session * session, const tr_scrape_request * request, tr_scrape_response_func response_func, void * response_func_user_data ) { int i; struct scrape_data * d; struct evbuffer * buf = scrape_url_new( request ); const char * url = (const char *) evbuffer_pullup( buf, -1 ); d = tr_new0( struct scrape_data, 1 ); d->response.url = tr_strdup( request->url ); d->response_func = response_func; d->response_func_user_data = response_func_user_data; d->response.row_count = request->info_hash_count; for( i=0; i<d->response.row_count; ++i ) memcpy( d->response.rows[i].info_hash, request->info_hash[i], SHA_DIGEST_LENGTH ); tr_strlcpy( d->log_name, request->log_name, sizeof( d->log_name ) ); dbgmsg( request->log_name, "Sending scrape to libcurl: \"%s\"", url ); tr_webRun( session, url, NULL, NULL, on_scrape_done, d ); evbuffer_free( buf ); }