Lines Matching refs:data

71 static char *find_date_hdr(struct Curl_easy *data, const char *sig_hdr)
73 char *tmp = Curl_checkheaders(data, sig_hdr, strlen(sig_hdr));
77 return Curl_checkheaders(data, STRCONST("Date"));
87 size_t colon = strcspn(l->data, ":");
88 Curl_strntolower(l->data, l->data, colon);
90 value = &l->data[colon];
133 static CURLcode make_headers(struct Curl_easy *data,
161 if(Curl_checkheaders(data, STRCONST("Host"))) {
167 if(data->state.aptr.host) {
170 if(strlen(data->state.aptr.host) > FULL_HOST_LEN) {
174 strcpy(full_host, data->state.aptr.host);
215 for(l = data->set.headers; l; l = l->next) {
217 char *sep = strchr(l->data, ':');
219 sep = strchr(l->data, ';');
226 dupdata = strdup(l->data);
229 dupdata[sep - l->data] = ':';
240 *date_header = find_date_hdr(data, date_hdr_key);
279 if(next && strcmp(l->data, next->data) > 0) {
280 char *tmp = l->data;
282 l->data = next->data;
283 next->data = tmp;
292 if(Curl_dyn_add(canonical_headers, l->data))
297 tmp = strchr(l->data, ':');
305 if(Curl_dyn_add(signed_headers, l->data))
322 static char *parse_content_sha_hdr(struct Curl_easy *data,
333 value = Curl_checkheaders(data, key, key_len);
353 static CURLcode calc_payload_hash(struct Curl_easy *data,
356 const char *post_data = data->set.postfields;
361 if(data->set.postfieldsize < 0)
364 post_data_len = (size_t)data->set.postfieldsize;
375 static CURLcode calc_s3_payload_hash(struct Curl_easy *data,
382 bool empty_payload = (empty_method || data->set.filesize == 0);
384 bool post_payload = (httpreq == HTTPREQ_POST && data->set.postfields);
389 ret = calc_payload_hash(data, sha_hash, sha_hex);
429 static CURLcode canon_query(struct Curl_easy *data,
458 failf(data, "aws-sigv4: too many query pairs in URL");
527 CURLcode Curl_output_aws_sigv4(struct Curl_easy *data, bool proxy)
530 struct connectdata *conn = data->conn;
558 const char *user = data->state.aptr.user ? data->state.aptr.user : "";
567 if(Curl_checkheaders(data, STRCONST("Authorization"))) {
584 arg = data->set.str[STRING_AWS_SIGV4] ?
585 data->set.str[STRING_AWS_SIGV4] : "aws:amz";
597 failf(data, "first aws-sigv4 provider can't be empty");
607 failf(data, "aws-sigv4: service missing in parameters and hostname");
613 failf(data, "aws-sigv4: service too long in hostname");
620 infof(data, "aws_sigv4: picked service %s from host", service);
626 failf(data, "aws-sigv4: region missing in parameters and hostname");
632 failf(data, "aws-sigv4: region too long in hostname");
638 infof(data, "aws_sigv4: picked region %s from host", region);
642 Curl_http_method(data, conn, &method, &httpreq);
649 payload_hash = parse_content_sha_hdr(data, provider1, &payload_hash_len);
653 result = calc_s3_payload_hash(data, httpreq, provider1, sha_hash,
656 result = calc_payload_hash(data, sha_hash, sha_hex);
685 result = make_headers(data, hostname, timestamp, provider1,
701 result = canon_query(data, data->state.up.query, &canonical_query);
714 data->state.up.path,
723 DEBUGF(infof(data, "Canonical request: %s", canonical_request));
763 data->state.aptr.passwd ?
764 data->state.aptr.passwd : "");
799 Curl_safefree(data->state.aptr.userpwd);
800 data->state.aptr.userpwd = auth_headers;
801 data->state.authhost.done = TRUE;