pass user_data to libtelnet_init() only instead of having to pass it to every function call
diff --git a/telnet-proxy.c b/telnet-proxy.c
index 4f2f0a9..dbbbf05 100644
--- a/telnet-proxy.c
+++ b/telnet-proxy.c
@@ -172,8 +172,7 @@
 		print_buffer(ev->buffer, ev->size);
 		printf(COLOR_NORMAL "\n");
 
-		libtelnet_send_data(&conn->remote->telnet, ev->buffer, ev->size,
-				conn->remote);
+		libtelnet_send_data(&conn->remote->telnet, ev->buffer, ev->size);
 		break;
 	/* data must be sent */
 	case LIBTELNET_EV_SEND:
@@ -190,8 +189,7 @@
 		printf("%s IAC %s" COLOR_NORMAL "\n", conn->name,
 				get_cmd(ev->command));
 
-		libtelnet_send_command(&conn->remote->telnet, ev->command,
-				conn->remote);
+		libtelnet_send_command(&conn->remote->telnet, ev->command);
 		break;
 	/* negotiation */
 	case LIBTELNET_EV_NEGOTIATE:
@@ -199,7 +197,7 @@
 				get_cmd(ev->command), (int)ev->telopt, get_opt(ev->telopt));
 
 		libtelnet_send_negotiate(&conn->remote->telnet, ev->command,
-				ev->telopt, conn->remote);
+				ev->telopt);
 		break;
 	/* subnegotiation */
 	case LIBTELNET_EV_SUBNEGOTIATION:
@@ -212,7 +210,7 @@
 		printf(COLOR_NORMAL "\n");
 
 		libtelnet_send_subnegotiation(&conn->remote->telnet, ev->telopt,
-				ev->buffer, ev->size, conn->remote);
+				ev->buffer, ev->size);
 		break;
 	/* compression notification */
 	case LIBTELNET_EV_COMPRESS:
@@ -333,8 +331,10 @@
 		client.remote = &server;
 
 		/* initialize telnet boxes */
-		libtelnet_init(&server.telnet, _event_handler, LIBTELNET_MODE_PROXY);
-		libtelnet_init(&client.telnet, _event_handler, LIBTELNET_MODE_PROXY);
+		libtelnet_init(&server.telnet, _event_handler, LIBTELNET_MODE_PROXY,
+				&server);
+		libtelnet_init(&client.telnet, _event_handler, LIBTELNET_MODE_PROXY,
+				&client);
 
 		/* initialize poll descriptors */
 		memset(pfd, 0, sizeof(pfd));
@@ -348,7 +348,7 @@
 			/* read from server */
 			if (pfd[0].revents & POLLIN) {
 				if ((rs = recv(server.sock, buffer, sizeof(buffer), 0)) > 0) {
-					libtelnet_push(&server.telnet, buffer, rs, (void*)&server);
+					libtelnet_push(&server.telnet, buffer, rs);
 				} else if (rs == 0) {
 					printf("%s DISCONNECTED" COLOR_NORMAL "\n", server.name);
 					break;
@@ -362,7 +362,7 @@
 			/* read from client */
 			if (pfd[1].revents & POLLIN) {
 				if ((rs = recv(client.sock, buffer, sizeof(buffer), 0)) > 0) {
-					libtelnet_push(&client.telnet, buffer, rs, (void*)&client);
+					libtelnet_push(&client.telnet, buffer, rs);
 				} else if (rs == 0) {
 					printf("%s DISCONNECTED" COLOR_NORMAL "\n", client.name);
 					break;