Skip to content
Snippets Groups Projects
Commit 8956c1ca authored by Clément's avatar Clément
Browse files

proxy

parent a93c0cfc
Branches
No related merge requests found
Pipeline #107835 passed with stages
in 4 seconds
......@@ -18,7 +18,7 @@ void proxy_thread(int client, void *arg)
{
struct args *args = arg;
struct sockaddr_in *addr = args->addr;
uint32_t buff;
char buff[4];
int server;
if ((server = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
......@@ -38,8 +38,9 @@ void proxy_thread(int client, void *arg)
if (fds[0].revents != 0) {
if ((len = recv(client, &buff, sizeof(buff), 0)) <= 0)
break;
buff = generate_error(buff, args->error_rate,
args->max_error);
*buff = generate_error((uint32_t)*buff,
args->error_rate,
args->max_error);
if (send(server, &buff, len, 0) <= 0)
break;
......@@ -67,6 +68,10 @@ int main(int argc, char *argv[])
BLAME("usage: %s <listen-port> <remote-host> <remote-port> <error-rate> <max-error>",
argv[0]);
struct args args;
args.max_error = atoi(argv[5]);
args.error_rate = atof(argv[4]);
args.addr = &addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(atoi(argv[3]));
if (!inet_aton(argv[2], &addr.sin_addr))
......@@ -74,7 +79,7 @@ int main(int argc, char *argv[])
CHKN(server = server_new(atoi(argv[1])));
CHK(server_start(server, proxy_thread, &addr));
CHK(server_start(server, proxy_thread, &args));
CHK(server_join(server));
server_free(server);
......
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment