feat(ffi): add hyper_request_on_informational
This defines an extension type used in requests for the client that is used to setup a callback for receipt of informational (1xx) responses. The type isn't currently public, and is only usable in the C API.
This commit is contained in:
		| @@ -148,6 +148,16 @@ static int print_each_header(void *userdata, | ||||
|     return HYPER_ITER_CONTINUE; | ||||
| } | ||||
|  | ||||
| static void print_informational(void *userdata, hyper_response *resp) { | ||||
|     uint16_t http_status = hyper_response_status(resp); | ||||
|  | ||||
|     printf("\nInformational (1xx): %d\n", http_status); | ||||
|  | ||||
|     hyper_headers *headers = hyper_response_headers(resp); | ||||
|     hyper_headers_foreach(headers, print_each_header, NULL); | ||||
|     printf("\n"); | ||||
| } | ||||
|  | ||||
| typedef enum { | ||||
|     EXAMPLE_NOT_SET = 0, // tasks we don't know about won't have a userdata set | ||||
|     EXAMPLE_HANDSHAKE, | ||||
| @@ -172,7 +182,7 @@ int main(int argc, char *argv[]) { | ||||
|     upload.fd = open(file, O_RDONLY); | ||||
|  | ||||
|     if (upload.fd < 0) { | ||||
|         printf("error opening file to upload: %d", errno); | ||||
|         printf("error opening file to upload: %s\n", strerror(errno)); | ||||
|         return 1; | ||||
|     } | ||||
|     printf("connecting to port %s on %s...\n", port, host); | ||||
| @@ -262,7 +272,10 @@ int main(int argc, char *argv[]) { | ||||
|                 } | ||||
|  | ||||
|                 hyper_headers *req_headers = hyper_request_headers(req); | ||||
|                 hyper_headers_set(req_headers,  STR_ARG("host"), STR_ARG(host)); | ||||
|                 hyper_headers_set(req_headers, STR_ARG("host"), STR_ARG(host)); | ||||
|                 hyper_headers_set(req_headers, STR_ARG("expect"), STR_ARG("100-continue")); | ||||
|  | ||||
|                 hyper_request_on_informational(req, print_informational, NULL); | ||||
|  | ||||
|                 // Prepare the req body | ||||
|                 hyper_body *body = hyper_body_new(); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user