psplay_init_root (&global_base.files, rxpd_file_cmp, rxpd_file_delete);
- llist_init (&global_base.sockets_pending);
- llist_init (&global_base.sockets_active);
- llist_init (&global_base.connections_pending);
- llist_init (&global_base.connections_active);
+ llist_init (&global_base.sockets);
return &global_base;
}
{
free (global_base.rulesdir);
psplay_destroy_root (&global_base.files);
- LLIST_WHILE_HEAD (&global_base.sockets_pending, n)
+ LLIST_WHILE_HEAD (&global_base.sockets, n)
{
struct rxpd_socket* socket = (struct rxpd_socket*)n;
rxpd_socket_delete (socket);
}
- LLIST_WHILE_HEAD (&global_base.sockets_active, n)
- {
- struct rxpd_socket* socket = (struct rxpd_socket*)n;
- rxpd_socket_delete (socket);
- }
- LLIST_WHILE_HEAD (&global_base.connections_pending, n)
- {
- struct rxpd_connection* connection = (struct rxpd_connection*)n;
- rxpd_connection_delete (connection);
- }
- LLIST_WHILE_HEAD (&global_base.connections_active, n)
- {
- struct rxpd_connection* connection = (struct rxpd_connection*)n;
- rxpd_connection_delete (connection);
- }
}
}
abort ();
event_set (&self->ev, self->fd, EV_READ, rxpd_socket_accept, self);
- llist_insert_tail (&base->sockets_pending, &self->node);
+ llist_insert_tail (&base->sockets, &self->node);
return self;
}
{
if (self)
{
- llist_insert_head (&self->base->sockets_active, &self->node);
event_add (&self->ev, NULL);
}
return self;
if (self)
{
event_del (&self->ev);
- llist_insert_tail (&self->base->sockets_pending, &self->node);
}
return self;
}
rxpd_buffer_init (&self->out, self);
event_set (&self->ev, self->fd, EV_READ, rxpd_connection_parse_cmd, self);
-
- llist_insert_tail (&base->connections_pending, &self->node);
-
return self;
}
{
if (self)
{
- llist_insert_tail (&self->base->connections_active, &self->node);
event_add (&self->ev, NULL);
}
return self;
}
-struct rxpd_connection*
-rxpd_connection_suspend (struct rxpd_connection* self)
-{
- if (self)
- {
- event_del (&self->ev);
- llist_insert_tail (&self->base->connections_pending, &self->node);
- }
- return self;
-}
-
void
rxpd_connection_parse_cmd (int fd, short event, void* ptr)
{
{
struct rxpd_connection* self = (struct rxpd_connection*) ptr;
// destroy all sockets
- LLIST_WHILE_HEAD (&self->base->sockets_pending, n)
- {
- struct rxpd_socket* socket = (struct rxpd_socket*)n;
- rxpd_socket_delete (socket);
- }
- LLIST_WHILE_HEAD (&self->base->sockets_active, n)
+ LLIST_WHILE_HEAD (&self->base->sockets, n)
{
struct rxpd_socket* socket = (struct rxpd_socket*)n;
rxpd_socket_delete (socket);
}
-
rxpd_buffer_printf (&self->out, "#OK:\n");
close (fd);
}