//the magic list :P
static struct socket_list *sockets = NULL;
-static char buffer[BUF_SIZ];
static IOHANDLER_CALLBACK(socket_callback);
client->user = NULL;
client->network_name = NULL;
client->flags = 0;
- client->bufferpos = 0;
client->traffic_in = 0;
client->traffic_out = 0;
client->connection_time = 0;
int close_socket(struct ClientSocket *client) {
if(client == NULL) return 0;
if((client->flags & SOCKET_FLAG_CONNECTED)) {
- char quitbuf[MAXLEN];
- int quitlen = sprintf(quitbuf, "QUIT :[NeonServ %s.%d] disconnect requested.\n", NEONSERV_VERSION, patchlevel);
- iohandler_send(client, quitbuf, quitlen);
+ iohandler_printf(client->iofd, "QUIT :[NeonServ %s.%d] disconnect requested.\n", NEONSERV_VERSION, patchlevel);
bot_disconnect(client);
return 1;
}
-static int write_socket_force(struct ClientSocket *client, char* msg, int len) {
+int write_socket_force(struct ClientSocket *client, char* msg, int len) {
if(!(client && (client->flags & SOCKET_FLAG_CONNECTED))) return 0;
SYNCHRONIZE(synchronized);
#ifdef HAVE_THREADS
#else
putlog(LOGLEVEL_RAW, "[send %d] %s", len, msg);
#endif
- iohandler_send(client->iofd, msg, len)
+ iohandler_send(client->iofd, msg, len);
client->traffic_out += len;
DESYNCHRONIZE(synchronized);
- return ret;
+ return 1;
}
int write_socket(struct ClientSocket *client, char* msg, int len) {
static IOHANDLER_CALLBACK(socket_callback) {
struct ClientSocket *client = event->iofd->data;
+ unsigned int tid;
switch(event->type) {
case IOEVENT_CONNECTED:
client->flags |= SOCKET_FLAG_CONNECTED;
break;
case IOEVENT_RECV:
#ifdef HAVE_THREADS
+ tid = (unsigned int) pthread_self_tid();
clientsocket_start_of_recv(tid);
#endif
parse_line(client, event->data.recv_str);