From d5c99a32a3b1a7cdcc3f3facf4caff4269772000 Mon Sep 17 00:00:00 2001 From: Thadeu Lima de Souza Cascardo Date: Tue, 12 Sep 2006 18:57:17 +0000 Subject: [PATCH] Connections to localhost:80 proxied by GNet Connections are proxied to localhost:80 using GNet, in an equivalent way to proxy.c which is marked to be removed. --- config.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/config.c b/config.c index b7a4611..b44e797 100644 --- a/config.c +++ b/config.c @@ -2,8 +2,44 @@ #include #include +void client_event (GConn* conn, GConnEvent* event, gpointer data) +{ + GConn* server; + server = (GConn*) data; + switch (event->type) + { + case GNET_CONN_CONNECT: + fprintf (stderr, "Connected to localhost:80.\n"); + gnet_conn_read (conn); + break; + case GNET_CONN_READ: + if (server == NULL) + { + fprintf (stderr, "Establishing connection to localhost:80.\n"); + server = gnet_conn_new ("127.0.0.1", 80, client_event, (gpointer) conn); + gnet_conn_connect (server); + gnet_conn_set_callback (conn, client_event, (gpointer) server); + } + gnet_conn_write (server, event->buffer, event->length); + gnet_conn_read (conn); + break; + case GNET_CONN_WRITE: + break; + default: + fprintf (stderr, "Received an unexpected client event.\n"); + break; + } +} + void new_client (GServer* server, GConn* conn, gpointer data) { + if (conn == NULL) + { + fprintf (stderr, "Server has received an error event.\n"); + return; + } + gnet_conn_set_callback (conn, client_event, NULL); + gnet_conn_read (conn); } int main () -- 2.20.1