src/server/proxy/httpclient.c

changeset 708
027b16665f13
parent 707
5fb102d2c745
equal deleted inserted replaced
707:5fb102d2c745 708:027b16665f13
1087 int fds[2]; 1087 int fds[2];
1088 util_socketpair(fds); 1088 util_socketpair(fds);
1089 util_socket_setnonblock(fds[0], 1); 1089 util_socket_setnonblock(fds[0], 1);
1090 util_socket_setnonblock(fds[1], 1); 1090 util_socket_setnonblock(fds[1], 1);
1091 client->socketfd = fds[0]; 1091 client->socketfd = fds[0];
1092 client->event.cookie = client;
1092 int sock = fds[1]; 1093 int sock = fds[1];
1093 1094
1094 // setup client 1095 // setup client
1095 http_client_set_uri(client, "/test/uri/"); 1096 http_client_set_uri(client, "/test/uri/");
1096 http_client_set_method(client, "GET"); 1097 http_client_set_method(client, "GET");
1108 client->response_start_userdata = &testr; 1109 client->response_start_userdata = &testr;
1109 client->response_body_write = test_response_body_write; 1110 client->response_body_write = test_response_body_write;
1110 client->response_body_write_userdata = &testr; 1111 client->response_body_write_userdata = &testr;
1111 1112
1112 // test IO 1113 // test IO
1113 Event event; 1114 int ret = client_io(&dummy, &client->event);
1114 event.cookie = client;
1115 int ret = client_io(&dummy, &event);
1116 CX_TEST_ASSERT(!client->error); 1115 CX_TEST_ASSERT(!client->error);
1117 CX_TEST_ASSERT(ret == 1); 1116 CX_TEST_ASSERT(ret == 1);
1118 1117
1119 // do IO and read request until the header is processed 1118 // do IO and read request until the header is processed
1120 size_t req_header_pos = 0; 1119 size_t req_header_pos = 0;
1124 if(r == 0) { 1123 if(r == 0) {
1125 break; 1124 break;
1126 } 1125 }
1127 CX_TEST_ASSERT(r > 0); 1126 CX_TEST_ASSERT(r > 0);
1128 req_header_pos += r; 1127 req_header_pos += r;
1129 ret = client_io(&dummy, &event); 1128 ret = client_io(&dummy, &client->event);
1130 CX_TEST_ASSERT(!client->error); 1129 CX_TEST_ASSERT(!client->error);
1131 CX_TEST_ASSERT(ret == 1); 1130 CX_TEST_ASSERT(ret == 1);
1132 } 1131 }
1133 CX_TEST_ASSERT(req_header_pos == req_header_len); 1132 CX_TEST_ASSERT(req_header_pos == req_header_len);
1134 1133
1150 } 1149 }
1151 CX_TEST_ASSERT(w > 0); 1150 CX_TEST_ASSERT(w > 0);
1152 response_str_pos += w; 1151 response_str_pos += w;
1153 } 1152 }
1154 1153
1155 ret = client_io(&dummy, &event); 1154 ret = client_io(&dummy, &client->event);
1156 if(ret == 0) { 1155 if(ret == 0) {
1157 in_progress = 0; 1156 in_progress = 0;
1158 } 1157 }
1159 1158
1160 CX_TEST_ASSERT(!client->error); 1159 CX_TEST_ASSERT(!client->error);

mercurial