*/
struct GNUNET_SERVER_Handle
{
- /**
- * My scheduler.
- */
- struct GNUNET_SCHEDULER_Handle *sched;
-
/**
* List of handlers for incoming messages.
*/
*/
struct GNUNET_TIME_Relative idle_timeout;
- /**
- * maximum write buffer size for accepted sockets
- */
- size_t maxbuf;
-
/**
* Task scheduled to do the listening.
*/
if (0 != (tc->reason & GNUNET_SCHEDULER_REASON_SHUTDOWN))
{
/* ignore shutdown, someone else will take care of it! */
- server->listen_task = GNUNET_SCHEDULER_add_select (server->sched,
- GNUNET_SCHEDULER_PRIORITY_HIGH,
+ server->listen_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH,
GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
r, NULL,
(tc->read_ready, server->listen_sockets[i]))
{
sock =
- GNUNET_CONNECTION_create_from_accept (tc->sched, server->access,
+ GNUNET_CONNECTION_create_from_accept (server->access,
server->access_cls,
- server->listen_sockets[i],
- server->maxbuf);
+ server->listen_sockets[i]);
if (sock != NULL)
{
#if DEBUG_SERVER
i++;
}
/* listen for more! */
- server->listen_task = GNUNET_SCHEDULER_add_select (server->sched,
- GNUNET_SCHEDULER_PRIORITY_HIGH,
+ server->listen_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH,
GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
r, NULL,
/**
* Create a new server.
*
- * @param sched scheduler to use
* @param access function for access control
* @param access_cls closure for access
* @param lsocks NULL-terminated array of listen sockets
- * @param maxbuf maximum write buffer size for accepted sockets
* @param idle_timeout after how long should we timeout idle connections?
* @param require_found if YES, connections sending messages of unknown type
* will be closed
* (typically, "port" already in use)
*/
struct GNUNET_SERVER_Handle *
-GNUNET_SERVER_create_with_sockets (struct GNUNET_SCHEDULER_Handle *sched,
- GNUNET_CONNECTION_AccessCheck access, void *access_cls,
+GNUNET_SERVER_create_with_sockets (GNUNET_CONNECTION_AccessCheck access, void *access_cls,
struct GNUNET_NETWORK_Handle **lsocks,
- size_t maxbuf,
struct GNUNET_TIME_Relative
idle_timeout,
int require_found)
int i;
ret = GNUNET_malloc (sizeof (struct GNUNET_SERVER_Handle));
- ret->sched = sched;
- ret->maxbuf = maxbuf;
ret->idle_timeout = idle_timeout;
ret->listen_sockets = lsocks;
ret->access = access;
i = 0;
while (NULL != ret->listen_sockets[i])
GNUNET_NETWORK_fdset_set (r, ret->listen_sockets[i++]);
- ret->listen_task = GNUNET_SCHEDULER_add_select (sched,
- GNUNET_SCHEDULER_PRIORITY_HIGH,
+ ret->listen_task = GNUNET_SCHEDULER_add_select (GNUNET_SCHEDULER_PRIORITY_HIGH,
GNUNET_SCHEDULER_NO_TASK,
GNUNET_TIME_UNIT_FOREVER_REL,
r, NULL,
/**
* Create a new server.
*
- * @param sched scheduler to use
* @param access function for access control
* @param access_cls closure for access
* @param serverAddr address to listen on (including port), NULL terminated array
* @param socklen length of serverAddr
- * @param maxbuf maximum write buffer size for accepted sockets
* @param idle_timeout after how long should we timeout idle connections?
* @param require_found if YES, connections sending messages of unknown type
* will be closed
* (typically, "port" already in use)
*/
struct GNUNET_SERVER_Handle *
-GNUNET_SERVER_create (struct GNUNET_SCHEDULER_Handle *sched,
- GNUNET_CONNECTION_AccessCheck access,
+GNUNET_SERVER_create (GNUNET_CONNECTION_AccessCheck access,
void *access_cls,
struct sockaddr *const *serverAddr,
const socklen_t * socklen,
- size_t maxbuf,
struct GNUNET_TIME_Relative
idle_timeout, int require_found)
{
{
lsocks = NULL;
}
- return GNUNET_SERVER_create_with_sockets (sched,
- access, access_cls,
+ return GNUNET_SERVER_create_with_sockets (access, access_cls,
lsocks,
- maxbuf,
idle_timeout,
require_found);
}
#endif
if (GNUNET_SCHEDULER_NO_TASK != s->listen_task)
{
- GNUNET_SCHEDULER_cancel (s->sched, s->listen_task);
+ GNUNET_SCHEDULER_cancel (s->listen_task);
s->listen_task = GNUNET_SCHEDULER_NO_TASK;
}
if (s->listen_sockets != NULL)
{
if ((mh->expected_size != 0) && (mh->expected_size != size))
{
+#if GNUNET8_NETWORK_IS_DEAD
+ GNUNET_log (GNUNET_ERROR_TYPE_WARNING,
+ "Expected %u bytes for message of type %u, got %u\n",
+ mh->expected_size,
+ mh->type,
+ size);
GNUNET_break_op (0);
+#endif
return GNUNET_SYSERR;
}
if (sender != NULL)
"Server re-enters receive loop.\n");
#endif
GNUNET_CONNECTION_receive (client->connection,
- GNUNET_SERVER_MAX_MESSAGE_SIZE,
+ GNUNET_SERVER_MAX_MESSAGE_SIZE - 1,
client->server->idle_timeout,
&process_incoming, client);
break;
#endif
client->receive_pending = GNUNET_YES;
GNUNET_CONNECTION_receive (client->connection,
- GNUNET_SERVER_MAX_MESSAGE_SIZE,
+ GNUNET_SERVER_MAX_MESSAGE_SIZE - 1,
client->server->idle_timeout, &process_incoming, client);
return;
}
client = GNUNET_malloc (sizeof (struct GNUNET_SERVER_Client));
client->connection = connection;
- client->mst = GNUNET_SERVER_mst_create (GNUNET_SERVER_MAX_MESSAGE_SIZE,
- &client_message_tokenizer_callback,
+ client->mst = GNUNET_SERVER_mst_create (&client_message_tokenizer_callback,
server);
client->reference_count = 1;
client->server = server;
server->clients = client;
client->receive_pending = GNUNET_YES;
GNUNET_CONNECTION_receive (client->connection,
- GNUNET_SERVER_MAX_MESSAGE_SIZE,
+ GNUNET_SERVER_MAX_MESSAGE_SIZE - 1,
server->idle_timeout, &process_incoming, client);
return client;
}
#endif
if (client->restart_task != GNUNET_SCHEDULER_NO_TASK)
{
- GNUNET_SCHEDULER_cancel (client->server->sched,
- client->restart_task);
+ GNUNET_SCHEDULER_cancel (client->restart_task);
client->restart_task = GNUNET_SCHEDULER_NO_TASK;
}
if (GNUNET_YES == client->receive_pending)
prev->next = pos->next;
if (client->restart_task != GNUNET_SCHEDULER_NO_TASK)
{
- GNUNET_SCHEDULER_cancel (server->sched,
- client->restart_task);
+ GNUNET_SCHEDULER_cancel (client->restart_task);
client->restart_task = GNUNET_SCHEDULER_NO_TASK;
}
n = server->disconnect_notify_list;
"GNUNET_SERVER_receive_done causes restart in reading from the socket\n");
#endif
GNUNET_assert (GNUNET_SCHEDULER_NO_TASK == client->restart_task);
- client->restart_task = GNUNET_SCHEDULER_add_now (client->server->sched,
- &restart_processing,
+ client->restart_task = GNUNET_SCHEDULER_add_now (&restart_processing,
client);
}