make libtelnet_t private; libtelnet_init now returns a pointer instead of taking one, and libtelnet_free frees the pointer passed in
diff --git a/telnet-chatd.c b/telnet-chatd.c
index aa56e63..7bad622 100644
--- a/telnet-chatd.c
+++ b/telnet-chatd.c
@@ -37,7 +37,7 @@
struct user_t {
char *name;
int sock;
- telnet_t telnet;
+ telnet_t *telnet;
char linebuf[256];
int linepos;
};
@@ -79,7 +79,7 @@
int i;
for (i = 0; i != MAX_USERS; ++i) {
if (users[i].sock != -1) {
- telnet_printf(&users[i].telnet, "%s: %s\n", from, msg);
+ telnet_printf(users[i].telnet, "%s: %s\n", from, msg);
}
}
}
@@ -120,21 +120,21 @@
if (user->name == 0) {
/* must not be empty, must be at least 32 chars */
if (strlen(line) == 0 || strlen(line) > 32) {
- telnet_printf(&user->telnet, "Invalid name.\nEnter name: ");
+ telnet_printf(user->telnet, "Invalid name.\nEnter name: ");
return;
}
/* must not already be in use */
for (i = 0; i != MAX_USERS; ++i) {
if (users[i].name != 0 && strcmp(users[i].name, line) == 0) {
- telnet_printf(&user->telnet, "Name in use.\nEnter name: ");
+ telnet_printf(user->telnet, "Name in use.\nEnter name: ");
return;
}
}
/* keep name */
user->name = strdup(line);
- telnet_printf(&user->telnet, "Welcome, %s!\n", line);
+ telnet_printf(user->telnet, "Welcome, %s!\n", line);
return;
}
@@ -187,7 +187,7 @@
free(user->name);
user->name = 0;
}
- telnet_free(&user->telnet);
+ telnet_free(user->telnet);
break;
default:
/* ignore */
@@ -296,11 +296,11 @@
/* init, welcome */
users[i].sock = rs;
- telnet_init(&users[i].telnet, telopts, _event_handler, 0,
+ users[i].telnet = telnet_init(telopts, _event_handler, 0,
&users[i]);
- telnet_negotiate(&users[i].telnet, TELNET_WILL,
+ telnet_negotiate(users[i].telnet, TELNET_WILL,
TELNET_TELOPT_COMPRESS2);
- telnet_printf(&users[i].telnet, "Enter name: ");
+ telnet_printf(users[i].telnet, "Enter name: ");
}
/* read from client */
@@ -311,7 +311,7 @@
if (pfd[i].revents & POLLIN) {
if ((rs = recv(users[i].sock, buffer, sizeof(buffer), 0)) > 0) {
- telnet_recv(&users[i].telnet, buffer, rs);
+ telnet_recv(users[i].telnet, buffer, rs);
} else if (rs == 0) {
printf("Connection closed.\n");
close(users[i].sock);
@@ -320,7 +320,7 @@
free(users[i].name);
users[i].name = 0;
}
- telnet_free(&users[i].telnet);
+ telnet_free(users[i].telnet);
users[i].sock = -1;
break;
} else if (errno != EINTR) {