lib: turn state.url into a struct bufref
No binary (build failed)
—
(log yok)
| @@ -40,6 +40,7 @@ | |
| #include "rename.h" | |
| #include "strdup.h" | |
| #include "llist.h" | |
| + | #include "bufref.h" |
| #include "curlx/strparse.h" | |
| static void strstore(char **str, const char *newstr, size_t len); | |
| @@ -1622,7 +1623,7 @@ void Curl_flush_cookies(struct Curl_easy *data, bool cleanup) | |
| set), as otherwise the cookies were not completely initialized and there | |
| might be cookie files that were not loaded so saving the file is the wrong | |
| thing. */ | |
| - | if(data->set.str[STRING_COOKIEJAR] && data->state.url) { |
| + | if(data->set.str[STRING_COOKIEJAR] && Curl_bufref_ptr(&data->state.url)) { |
| /* if we have a destination file for all the cookies to get dumped to */ | |
| CURLcode result = cookie_output(data, data->cookies, | |
| data->set.str[STRING_COOKIEJAR]); | |
| @@ -33,6 +33,7 @@ | |
| #include "curlx/nonblock.h" /* for curlx_nonblock */ | |
| #include "progress.h" /* for Curl_pgrsSetUploadSize */ | |
| #include "transfer.h" | |
| + | #include "bufref.h" |
| #include "curlx/warnless.h" | |
| #include <curl/curl.h> | |
| #include <librtmp/rtmp.h> | |
| @@ -233,7 +234,7 @@ static CURLcode rtmp_setup_connection(struct Curl_easy *data, | |
| RTMP_Init(r); | |
| RTMP_SetBufferMS(r, DEF_BUFTIME); | |
| - | if(!RTMP_SetupURL(r, data->state.url)) |
| + | if(!RTMP_SetupURL(r, CURL_UNCONST(Curl_bufref_ptr(&data->state.url)))) |
| /* rtmp_conn_dtor() performs the cleanup */ | |
| return CURLE_URL_MALFORMAT; | |
| return CURLE_OK; | |
| @@ -75,6 +75,7 @@ | |
| #include "system_win32.h" | |
| #include "http2.h" | |
| #include "curlx/dynbuf.h" | |
| + | #include "bufref.h" |
| #include "altsvc.h" | |
| #include "hsts.h" | |
| @@ -975,6 +976,7 @@ CURL *curl_easy_duphandle(CURL *d) | |
| Curl_hash_init(&outcurl->meta_hash, 23, | |
| Curl_hash_str, curlx_str_key_compare, dupeasy_meta_freeentry); | |
| curlx_dyn_init(&outcurl->state.headerb, CURL_MAX_HTTP_HEADER); | |
| + | Curl_bufref_init(&outcurl->state.url); |
| Curl_netrc_init(&outcurl->state.netrc); | |
| /* the connection pool is setup on demand */ | |
| @@ -1014,12 +1016,10 @@ CURL *curl_easy_duphandle(CURL *d) | |
| } | |
| #endif | |
| - | if(data->state.url) { |
| - | outcurl->state.url = curlx_strdup(data->state.url); |
| - | if(!outcurl->state.url) |
| - | goto fail; |
| - | outcurl->state.url_alloc = TRUE; |
| - | } |
| + | if(Curl_bufref_ptr(&data->state.url)) |
| + | Curl_bufref_set(&outcurl->state.url, |
| + | curlx_strdup(Curl_bufref_ptr(&data->state.url)), 0, |
| + | curl_free); |
| if(data->state.referer) { | |
| outcurl->state.referer = curlx_strdup(data->state.referer); | |
| @@ -32,6 +32,7 @@ | |
| #include "vtls/vtls.h" | |
| #include "connect.h" /* Curl_getconnectinfo() */ | |
| #include "progress.h" | |
| + | #include "bufref.h" |
| #include "curlx/strparse.h" | |
| /* | |
| @@ -91,8 +92,10 @@ static CURLcode getinfo_char(struct Curl_easy *data, CURLINFO info, | |
| const char **param_charp) | |
| { | |
| switch(info) { | |
| - | case CURLINFO_EFFECTIVE_URL: |
| - | *param_charp = data->state.url ? data->state.url : ""; |
| + | case CURLINFO_EFFECTIVE_URL: { |
| + | const char *s = Curl_bufref_ptr(&data->state.url); |
| + | *param_charp = s ? s : ""; |
| + | } |
| break; | |
| case CURLINFO_EFFECTIVE_METHOD: { | |
| const char *m = data->set.str[STRING_CUSTOMREQUEST]; | |
| @@ -84,6 +84,7 @@ | |
| #include "altsvc.h" | |
| #include "hsts.h" | |
| #include "ws.h" | |
| + | #include "bufref.h" |
| #include "curl_ctype.h" | |
| #include "curlx/strparse.h" | |
| @@ -610,7 +611,8 @@ CURLcode Curl_http_auth_act(struct Curl_easy *data) | |
| we must make sure to free it before allocating a new one. As figured | |
| out in bug #2284386 */ | |
| curlx_free(data->req.newurl); | |
| - | data->req.newurl = curlx_strdup(data->state.url); /* clone URL */ |
| + | /* clone URL */ |
| + | data->req.newurl = curlx_strdup(Curl_bufref_ptr(&data->state.url)); |
| if(!data->req.newurl) | |
| return CURLE_OUT_OF_MEMORY; | |
| } | |
| @@ -623,7 +625,8 @@ CURLcode Curl_http_auth_act(struct Curl_easy *data) | |
| we did not try HEAD or GET */ | |
| if((data->state.httpreq != HTTPREQ_GET) && | |
| (data->state.httpreq != HTTPREQ_HEAD)) { | |
| - | data->req.newurl = curlx_strdup(data->state.url); /* clone URL */ |
| + | /* clone URL */ |
| + | data->req.newurl = curlx_strdup(Curl_bufref_ptr(&data->state.url)); |
| if(!data->req.newurl) | |
| return CURLE_OUT_OF_MEMORY; | |
| data->state.authhost.done = TRUE; | |
| @@ -909,7 +912,7 @@ static CURLcode auth_spnego(struct Curl_easy *data, | |
| &conn->http_negotiate_state; | |
| if(!result) { | |
| curlx_free(data->req.newurl); | |
| - | data->req.newurl = curlx_strdup(data->state.url); |
| + | data->req.newurl = curlx_strdup(Curl_bufref_ptr(&data->state.url)); |
| if(!data->req.newurl) | |
| return CURLE_OUT_OF_MEMORY; | |
| data->state.authproblem = FALSE; | |
| @@ -1243,7 +1246,8 @@ CURLcode Curl_http_follow(struct Curl_easy *data, const char *newurl, | |
| if(!u) | |
| return CURLE_OUT_OF_MEMORY; | |
| - | uc = curl_url_set(u, CURLUPART_URL, data->state.url, 0); |
| + | uc = curl_url_set(u, CURLUPART_URL, |
| + | Curl_bufref_ptr(&data->state.url), 0); |
| if(!uc) | |
| uc = curl_url_set(u, CURLUPART_FRAGMENT, NULL, 0); | |
| if(!uc) | |
| @@ -1365,13 +1369,9 @@ CURLcode Curl_http_follow(struct Curl_easy *data, const char *newurl, | |
| if(disallowport) | |
| data->state.allow_port = FALSE; | |
| - | if(data->state.url_alloc) |
| - | Curl_safefree(data->state.url); |
| - | |
| - | data->state.url = follow_url; |
| - | data->state.url_alloc = TRUE; |
| + | Curl_bufref_set(&data->state.url, follow_url, 0, curl_free); |
| rewind_result = Curl_req_soft_reset(&data->req, data); | |
| - | infof(data, "Issue another request to this URL: '%s'", data->state.url); |
| + | infof(data, "Issue another request to this URL: '%s'", follow_url); |
| if((data->set.http_follow_mode == CURLFOLLOW_FIRSTONLY) && | |
| data->set.str[STRING_CUSTOMREQUEST] && | |
| !data->state.http_ignorecustom) { | |
| @@ -4054,7 +4054,7 @@ static CURLcode http_on_response(struct Curl_easy *data, | |
| data->state.disableexpect = TRUE; | |
| Curl_req_abort_sending(data); | |
| DEBUGASSERT(!data->req.newurl); | |
| - | data->req.newurl = curlx_strdup(data->state.url); |
| + | data->req.newurl = curlx_strdup(Curl_bufref_ptr(&data->state.url)); |
| if(!data->req.newurl) { | |
| result = CURLE_OUT_OF_MEMORY; | |
| goto out; | |
| @@ -44,6 +44,7 @@ | |
| #include "rand.h" | |
| #include "curlx/strparse.h" | |
| #include "transfer.h" | |
| + | #include "bufref.h" |
| #include "curlx/dynbuf.h" | |
| #include "curlx/warnless.h" | |
| #include "headers.h" | |
| @@ -920,10 +921,7 @@ fail: | |
| if(rc) | |
| return rc; | |
| - | if(data->state.url_alloc) |
| - | curlx_free(data->state.url); |
| - | data->state.url_alloc = TRUE; |
| - | data->state.url = url; |
| + | Curl_bufref_set(&data->state.url, url, 0, curl_free); |
| return 0; | |
| } | |
| @@ -2316,7 +2314,7 @@ static CURLcode h2_submit(struct h2_stream_ctx **pstream, | |
| size_t acc = 0, i; | |
| infof(data, "[HTTP/2] [%d] OPENED stream for %s", | |
| - | stream_id, data->state.url); |
| + | stream_id, Curl_bufref_ptr(&data->state.url)); |
| for(i = 0; i < nheader; ++i) { | |
| acc += nva[i].namelen + nva[i].valuelen; | |
| @@ -89,6 +89,7 @@ | |
| #include "progress.h" | |
| #include "transfer.h" | |
| #include "curlx/strparse.h" | |
| + | #include "bufref.h" |
| #include "curl_ldap.h" | |
| #include "curlx/multibyte.h" | |
| #include "curlx/base64.h" | |
| @@ -338,10 +339,10 @@ static CURLcode ldap_do(struct Curl_easy *data, bool *done) | |
| *done = TRUE; /* unconditionally */ | |
| infof(data, "LDAP local: LDAP Vendor = %s ; LDAP Version = %d", | |
| LDAP_VENDOR_NAME, LDAP_VENDOR_VERSION); | |
| - | infof(data, "LDAP local: %s", data->state.url); |
| + | infof(data, "LDAP local: %s", Curl_bufref_ptr(&data->state.url)); |
| #ifdef HAVE_LDAP_URL_PARSE | |
| - | rc = ldap_url_parse(data->state.url, &ludp); |
| + | rc = ldap_url_parse(Curl_bufref_ptr(&data->state.url), &ludp); |
| #else | |
| rc = ldap_url_parse_low(data, conn, &ludp); | |
| #endif | |
| @@ -53,6 +53,7 @@ | |
| #include "socketpair.h" | |
| #include "socks.h" | |
| #include "urlapi-int.h" | |
| + | #include "bufref.h" |
| /* initial multi->xfers table size for a full multi */ | |
| #define CURL_XFER_TABLE_SIZE 512 | |
| @@ -2006,7 +2007,7 @@ static CURLMcode state_performing(struct Curl_easy *data, | |
| data->state.errorbuf = FALSE; | |
| if(!newurl) | |
| /* typically for HTTP_1_1_REQUIRED error on first flight */ | |
| - | newurl = curlx_strdup(data->state.url); |
| + | newurl = curlx_strdup(Curl_bufref_ptr(&data->state.url)); |
| if(!newurl) { | |
| result = CURLE_OUT_OF_MEMORY; | |
| } | |
| @@ -4066,7 +4067,7 @@ static void multi_xfer_dump(struct Curl_multi *multi, uint32_t mid, | |
| ", url=%s\n", | |
| mid, | |
| (data->magic == CURLEASY_MAGIC_NUMBER) ? "GOOD" : "BAD!", | |
| - | (void *)data, data->id, data->state.url); |
| + | (void *)data, data->id, Curl_bufref_ptr(&data->state.url)); |
| } | |
| } | |
| @@ -52,6 +52,7 @@ | |
| #include "connect.h" | |
| #include "curl_sasl.h" | |
| #include "strcase.h" | |
| + | #include "bufref.h" |
| /* | |
| * Uncommenting this will enable the built-in debug logging of the openldap | |
| @@ -272,7 +273,7 @@ static CURLcode oldap_url_parse(struct Curl_easy *data, LDAPURLDesc **ludp) | |
| *ludp = NULL; | |
| if(!data->state.up.user && !data->state.up.password && | |
| !data->state.up.options) | |
| - | rc = ldap_url_parse(data->state.url, ludp); |
| + | rc = ldap_url_parse(Curl_bufref_ptr(&data->state.url), ludp); |
| if(rc != LDAP_URL_SUCCESS) { | |
| const char *msg = "url parsing problem"; | |
| @@ -988,7 +989,7 @@ static CURLcode oldap_do(struct Curl_easy *data, bool *done) | |
| if(!li) | |
| return CURLE_FAILED_INIT; | |
| - | infof(data, "LDAP local: %s", data->state.url); |
| + | infof(data, "LDAP local: %s", Curl_bufref_ptr(&data->state.url)); |
| result = oldap_url_parse(data, &lud); | |
| if(result) | |
| @@ -54,6 +54,7 @@ | |
| #include "tftp.h" | |
| #include "strdup.h" | |
| #include "escape.h" | |
| + | #include "bufref.h" |
| static CURLcode setopt_set_timeout_sec(timediff_t *ptimeout_ms, long secs) | |
| { | |
| @@ -1971,12 +1972,8 @@ static CURLcode setopt_cptr(struct Curl_easy *data, CURLoption option, | |
| /* | |
| * The URL to fetch. | |
| */ | |
| - | if(data->state.url_alloc) { |
| - | Curl_safefree(data->state.url); |
| - | data->state.url_alloc = FALSE; |
| - | } |
| result = Curl_setstropt(&s->str[STRING_SET_URL], ptr); | |
| - | data->state.url = s->str[STRING_SET_URL]; |
| + | Curl_bufref_set(&data->state.url, s->str[STRING_SET_URL], 0, NULL); |
| break; | |
| case CURLOPT_USERPWD: | |
| @@ -2063,12 +2060,7 @@ static CURLcode setopt_cptr(struct Curl_easy *data, CURLoption option, | |
| /* | |
| * pass CURLU to set URL | |
| */ | |
| - | if(data->state.url_alloc) { |
| - | Curl_safefree(data->state.url); |
| - | data->state.url_alloc = FALSE; |
| - | } |
| - | else |
| - | data->state.url = NULL; |
| + | Curl_bufref_free(&data->state.url); |
| Curl_safefree(s->str[STRING_SET_URL]); | |
| s->uh = (CURLU *)ptr; | |
| break; | |
| @@ -79,6 +79,7 @@ | |
| #include "hsts.h" | |
| #include "setopt.h" | |
| #include "headers.h" | |
| + | #include "bufref.h" |
| #include "curlx/warnless.h" | |
| #if !defined(CURL_DISABLE_HTTP) || !defined(CURL_DISABLE_SMTP) || \ | |
| @@ -484,13 +485,7 @@ CURLcode Curl_pretransfer(struct Curl_easy *data) | |
| } | |
| } | |
| - | /* since the URL may have been redirected in a previous use of this handle */ |
| - | if(data->state.url_alloc) { |
| - | Curl_safefree(data->state.url); |
| - | data->state.url_alloc = FALSE; |
| - | } |
| - | |
| - | data->state.url = data->set.str[STRING_SET_URL]; |
| + | Curl_bufref_set(&data->state.url, data->set.str[STRING_SET_URL], 0, NULL); |
| if(data->set.postfields && data->set.set_resume_from) { | |
| /* we cannot */ | |
| @@ -676,7 +671,7 @@ CURLcode Curl_retry_request(struct Curl_easy *data, char **url) | |
| } | |
| infof(data, "Connection died, retrying a fresh connect (retry count: %d)", | |
| data->state.retrycount); | |
| - | *url = curlx_strdup(data->state.url); |
| + | *url = curlx_strdup(Curl_bufref_ptr(&data->state.url)); |
| if(!*url) | |
| return CURLE_OUT_OF_MEMORY; | |
| @@ -73,6 +73,7 @@ | |
| #include "netrc.h" | |
| #include "formdata.h" | |
| #include "mime.h" | |
| + | #include "bufref.h" |
| #include "vtls/vtls.h" | |
| #include "hostip.h" | |
| #include "transfer.h" | |
| @@ -184,11 +185,7 @@ void Curl_freeset(struct Curl_easy *data) | |
| data->state.referer_alloc = FALSE; | |
| } | |
| data->state.referer = NULL; | |
| - | if(data->state.url_alloc) { |
| - | Curl_safefree(data->state.url); |
| - | data->state.url_alloc = FALSE; |
| - | } |
| - | data->state.url = NULL; |
| + | Curl_bufref_free(&data->state.url); |
| Curl_mime_cleanpart(&data->set.mimepost); | |
| @@ -516,6 +513,7 @@ CURLcode Curl_open(struct Curl_easy **curl) | |
| Curl_hash_init(&data->meta_hash, 23, | |
| Curl_hash_str, curlx_str_key_compare, easy_meta_freeentry); | |
| curlx_dyn_init(&data->state.headerb, CURL_MAX_HTTP_HEADER); | |
| + | Curl_bufref_init(&data->state.url); |
| Curl_req_init(&data->req); | |
| Curl_initinfo(data); | |
| #ifndef CURL_DISABLE_HTTP | |
| @@ -1769,22 +1767,19 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data, | |
| return CURLE_OUT_OF_MEMORY; | |
| if(data->set.str[STRING_DEFAULT_PROTOCOL] && | |
| - | !Curl_is_absolute_url(data->state.url, NULL, 0, TRUE)) { |
| + | !Curl_is_absolute_url(Curl_bufref_ptr(&data->state.url), NULL, 0, TRUE)) { |
| char *url = curl_maprintf("%s://%s", | |
| data->set.str[STRING_DEFAULT_PROTOCOL], | |
| - | data->state.url); |
| + | Curl_bufref_ptr(&data->state.url)); |
| if(!url) | |
| return CURLE_OUT_OF_MEMORY; | |
| - | if(data->state.url_alloc) |
| - | curlx_free(data->state.url); |
| - | data->state.url = url; |
| - | data->state.url_alloc = TRUE; |
| + | Curl_bufref_set(&data->state.url, url, 0, curl_free); |
| } | |
| if(!use_set_uh) { | |
| char *newurl; | |
| - | uc = curl_url_set(uh, CURLUPART_URL, data->state.url, (unsigned int) |
| - | (CURLU_GUESS_SCHEME | |
| + | uc = curl_url_set(uh, CURLUPART_URL, Curl_bufref_ptr(&data->state.url), |
| + | (unsigned int) (CURLU_GUESS_SCHEME | |
| CURLU_NON_SUPPORT_SCHEME | | |
| (data->set.disallow_username_in_url ? | |
| CURLU_DISALLOW_USER : 0) | | |
| @@ -1798,10 +1793,7 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data, | |
| uc = curl_url_get(uh, CURLUPART_URL, &newurl, 0); | |
| if(uc) | |
| return Curl_uc_to_curlcode(uc); | |
| - | if(data->state.url_alloc) |
| - | curlx_free(data->state.url); |
| - | data->state.url = newurl; |
| - | data->state.url_alloc = TRUE; |
| + | Curl_bufref_set(&data->state.url, newurl, 0, curl_free); |
| } | |
| uc = curl_url_get(uh, CURLUPART_SCHEME, &data->state.up.scheme, 0); | |
| @@ -1855,8 +1847,7 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data, | |
| uc = curl_url_set(uh, CURLUPART_SCHEME, "https", 0); | |
| if(uc) | |
| return Curl_uc_to_curlcode(uc); | |
| - | if(data->state.url_alloc) |
| - | Curl_safefree(data->state.url); |
| + | Curl_bufref_free(&data->state.url); |
| /* after update, get the updated version */ | |
| uc = curl_url_get(uh, CURLUPART_URL, &url, 0); | |
| if(uc) | |
| @@ -1866,10 +1857,8 @@ static CURLcode parseurlandfillconn(struct Curl_easy *data, | |
| curlx_free(url); | |
| return Curl_uc_to_curlcode(uc); | |
| } | |
| - | data->state.url = url; |
| - | data->state.url_alloc = TRUE; |
| - | infof(data, "Switched from HTTP to HTTPS due to HSTS => %s", |
| - | data->state.url); |
| + | Curl_bufref_set(&data->state.url, url, 0, curl_free); |
| + | infof(data, "Switched from HTTP to HTTPS due to HSTS => %s", url); |
| } | |
| } | |
| #endif | |
| @@ -3396,7 +3385,7 @@ static CURLcode create_conn(struct Curl_easy *data, | |
| /************************************************************* | |
| * Check input data | |
| *************************************************************/ | |
| - | if(!data->state.url) { |
| + | if(!Curl_bufref_ptr(&data->state.url)) { |
| result = CURLE_URL_MALFORMAT; | |
| goto out; | |
| } | |
| @@ -154,6 +154,7 @@ typedef unsigned int curl_prot_t; | |
| #include "hash.h" | |
| #include "splay.h" | |
| #include "curlx/dynbuf.h" | |
| + | #include "bufref.h" |
| #include "dynhds.h" | |
| #include "request.h" | |
| #include "ratelimit.h" | |
| @@ -1025,7 +1026,7 @@ struct UrlState { | |
| void *in; /* CURLOPT_READDATA */ | |
| CURLU *uh; /* URL handle for the current parsed URL */ | |
| struct urlpieces up; | |
| - | char *url; /* work URL, copied from UserDefined */ |
| + | struct bufref url; /* work URL, initially copied from UserDefined */ |
| char *referer; /* referer string */ | |
| struct curl_slist *resolve; /* set to point to the set.resolve list when | |
| this should be dealt with in pretransfer */ | |
| @@ -1122,7 +1123,6 @@ struct UrlState { | |
| #ifdef CURL_LIST_ONLY_PROTOCOL | |
| BIT(list_only); /* list directory contents */ | |
| #endif | |
| - | BIT(url_alloc); /* URL string is malloc()'ed */ |
| BIT(referer_alloc); /* referer string is malloc()ed */ | |
| BIT(wildcard_resolve); /* Set to true if any resolve change is a wildcard */ | |
| BIT(upload); /* upload request */ | |
| @@ -61,6 +61,7 @@ | |
| #include "../select.h" | |
| #include "../curlx/inet_pton.h" | |
| #include "../transfer.h" | |
| + | #include "../bufref.h" |
| #include "vquic.h" | |
| #include "vquic_int.h" | |
| #include "vquic-tls.h" | |
| @@ -1631,7 +1632,7 @@ static CURLcode h3_stream_open(struct Curl_cfilter *cf, | |
| if(Curl_trc_is_verbose(data)) { | |
| infof(data, "[HTTP/3] [%" PRId64 "] OPENED stream for %s", | |
| - | stream->id, data->state.url); |
| + | stream->id, Curl_bufref_ptr(&data->state.url)); |
| for(i = 0; i < nheader; ++i) { | |
| infof(data, "[HTTP/3] [%" PRId64 "] [%.*s: %.*s]", stream->id, | |
| (int)nva[i].namelen, nva[i].name, | |
| @@ -54,6 +54,7 @@ | |
| #include "../vtls/openssl.h" | |
| #include "curl_osslq.h" | |
| #include "../url.h" | |
| + | #include "../bufref.h" |
| #include "../curlx/warnless.h" | |
| #include "../curlx/strerr.h" | |
| @@ -1985,7 +1986,7 @@ static CURLcode h3_stream_open(struct Curl_cfilter *cf, | |
| if(Curl_trc_is_verbose(data)) { | |
| infof(data, "[HTTP/3] [%" PRId64 "] OPENED stream for %s", | |
| - | stream->s.id, data->state.url); |
| + | stream->s.id, Curl_bufref_ptr(&data->state.url)); |
| for(i = 0; i < nheader; ++i) { | |
| infof(data, "[HTTP/3] [%" PRId64 "] [%.*s: %.*s]", | |
| stream->s.id, | |
| @@ -46,6 +46,7 @@ | |
| #include "curl_quiche.h" | |
| #include "../transfer.h" | |
| #include "../url.h" | |
| + | #include "../bufref.h" |
| #include "../curlx/inet_pton.h" | |
| #include "../curlx/warnless.h" | |
| #include "../vtls/openssl.h" | |
| @@ -1023,8 +1024,8 @@ static CURLcode h3_open_stream(struct Curl_cfilter *cf, | |
| goto out; | |
| } | |
| else { | |
| - | CURL_TRC_CF(data, cf, "send_request(%s) -> %" PRId64, |
| - | data->state.url, rv); |
| + | CURL_TRC_CF(data, cf, "send_request(%s) -> %" PRIu64, |
| + | Curl_bufref_ptr(&data->state.url), rv); |
| } | |
| result = CURLE_SEND_ERROR; | |
| goto out; | |
| @@ -1038,7 +1039,7 @@ static CURLcode h3_open_stream(struct Curl_cfilter *cf, | |
| if(Curl_trc_is_verbose(data)) { | |
| infof(data, "[HTTP/3] [%" PRIu64 "] OPENED stream for %s", | |
| - | stream->id, data->state.url); |
| + | stream->id, Curl_bufref_ptr(&data->state.url)); |
| for(i = 0; i < nheader; ++i) { | |
| infof(data, "[HTTP/3] [%" PRIu64 "] [%.*s: %.*s]", stream->id, | |
| (int)nva[i].name_len, nva[i].name, | |