1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 05:47:35 +00:00

Userland: Turn the tc test util into a simple dumb HTTP client.

This commit is contained in:
Andreas Kling 2019-03-14 15:19:20 +01:00
parent 2c3cf22bc9
commit 4629272135

View file

@ -35,7 +35,7 @@ int main(int argc, char** argv)
memset(&dst_addr, 0, sizeof(dst_addr)); memset(&dst_addr, 0, sizeof(dst_addr));
dst_addr.sin_family = AF_INET; dst_addr.sin_family = AF_INET;
dst_addr.sin_port = htons(8080); dst_addr.sin_port = htons(80);
rc = inet_pton(AF_INET, addr_str, &dst_addr.sin_addr); rc = inet_pton(AF_INET, addr_str, &dst_addr.sin_addr);
if (rc < 0) { if (rc < 0) {
perror("inet_pton"); perror("inet_pton");
@ -52,7 +52,7 @@ int main(int argc, char** argv)
printf("ok!\n"); printf("ok!\n");
char buffer[BUFSIZ]; char buffer[BUFSIZ];
const char* msg = "I am a TCP client."; const char* msg = "GET / HTTP/1.0\r\n\r\n";
printf("Sending a greeting..."); printf("Sending a greeting...");
rc = send(fd, (const char*)msg, strlen(msg), 0); rc = send(fd, (const char*)msg, strlen(msg), 0);
@ -63,16 +63,21 @@ int main(int argc, char** argv)
printf("ok!\n"); printf("ok!\n");
printf("Waiting for response..."); printf("Waiting for response...");
ssize_t nrecv = recv(fd, buffer, sizeof(buffer), 0); size_t total_recv = 0;
if (nrecv < 0) { for (;;) {
perror("recvfrom"); ssize_t nrecv = recv(fd, buffer, sizeof(buffer), 0);
return 1; if (nrecv < 0) {
perror("recvfrom");
return 1;
}
if (nrecv == 0)
break;
total_recv += nrecv;
buffer[nrecv] = '\0';
printf("\033[36;1m%s\033[0m", buffer);
} }
buffer[nrecv] = '\0';
printf("ok! Got response:\n");
printf("\033[36;1m%s\033[0m", buffer);
printf("(%d bytes received)\n", nrecv); printf("(%u bytes received)\n", total_recv);
rc = close(fd); rc = close(fd);
if (rc < 0) { if (rc < 0) {
perror("close"); perror("close");