X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcserver%2Fserver_st_query.c;h=8c9a1aab6b10b8ae42749e395cef67b158af26f9;hb=aa427d8e98d1b24952f869062536ca6c49670479;hp=c940ba04a4455830ff05b01ca8b5f1980ddda8a7;hpb=bdf83e1e0e5c65a888075986a452c6e431047a6d;p=silc.git diff --git a/lib/silcserver/server_st_query.c b/lib/silcserver/server_st_query.c index c940ba04..8c9a1aab 100644 --- a/lib/silcserver/server_st_query.c +++ b/lib/silcserver/server_st_query.c @@ -55,7 +55,7 @@ typedef struct { SilcUInt32 ids_count; /* number of queried IDs */ SilcUInt32 reply_count; /* Requested reply count */ SilcDList attrs; /* Requested Attributes in WHOIS */ - SilcFSMSemaStruct wait_resolve; /* Resolving signaller */ + SilcFSMEventStruct wait_resolve; /* Resolving signaller */ /* Query session data */ SilcServerComman cmd; /* Command context for query */ @@ -90,7 +90,7 @@ SILC_FSM_STATE(silc_server_st_query_whois) query = silc_calloc(1, sizeof(*query)); if (!query) { silc_server_command_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } query->querycmd = SILC_COMMAND_WHOIS; @@ -109,12 +109,12 @@ SILC_FSM_STATE(silc_server_st_query_whois) silc_argument_get_arg_type(args, 3, NULL)))) { /** Send query to router */ silc_fsm_next(fsm, silc_server_st_query_send_router); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Parse WHOIS query */ silc_fsm_next(fsm, silc_server_st_query_parse); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -130,7 +130,7 @@ SILC_FSM_STATE(silc_server_st_query_whowas) query = silc_calloc(1, sizeof(*query)); if (!query) { silc_server_command_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } query->querycmd = SILC_COMMAND_WHOWAS; @@ -143,12 +143,12 @@ SILC_FSM_STATE(silc_server_st_query_whowas) cmd->packet->stream != SILC_PRIMARY_ROUTE(server)) { /** Send query to router */ silc_fsm_next(fsm, silc_server_st_query_send_router); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Parse WHOWAS query */ silc_fsm_next(fsm, silc_server_st_query_parse); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -165,7 +165,7 @@ SILC_FSM_STATE(silc_server_st_query_identify) query = silc_calloc(1, sizeof(*query)); if (!query) { silc_server_command_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } query->querycmd = SILC_COMMAND_IDENTIFY; @@ -180,12 +180,12 @@ SILC_FSM_STATE(silc_server_st_query_identify) !silc_argument_get_arg_type(args, 5, NULL)) { /** Send query to router */ silc_fsm_next(fsm, silc_server_st_query_send_router); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Parse IDENTIFY query */ silc_fsm_next(fsm, silc_server_st_query_parse); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -216,7 +216,7 @@ SILC_FSM_STATE(silc_server_st_query_send_router) silc_server_query_send_error(server, query, SILC_STATUS_ERR_RESOURCE_LIMIT, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_command_set_ident(query->cmd->payload, old_ident); @@ -232,13 +232,13 @@ SILC_FSM_STATE(silc_server_st_query_send_router) silc_server_query_send_error(server, query, SILC_STATUS_ERR_RESOURCE_LIMIT, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Wait router reply */ query->resolved = TRUE; silc_fsm_next(fsm, silc_server_st_query_router_reply) - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Wait for router reply and process the reply when it arrives. */ @@ -252,14 +252,14 @@ SILC_FSM_STATE(silc_server_st_query_router_reply) SilcBool timedout; /* Wait here for the reply */ - SILC_FSM_SEMA_TIMEDWAIT(&pending->wait_reply, 10, 0, &timedout); + SILC_FSM_EVENT_TIMEDWAIT(&pending->wait_reply, 10, 0, &timedout); if (timedout) { /** Timeout waiting reply */ silc_server_command_pending_free(thread, pending); silc_server_query_send_error(server, query, SILC_STATUS_ERR_TIMEDOUT, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check if the query failed */ @@ -285,14 +285,14 @@ SILC_FSM_STATE(silc_server_st_query_router_reply) /** Query error received */ silc_server_command_pending_free(thread, pending); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_server_command_pending_free(thread, pending); /** Parse query command */ silc_fsm_next(fsm, silc_server_st_query_parse); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /***************************** Query processing *****************************/ @@ -335,7 +335,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) /** Not enough arguments */ silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Get the nickname@server string and parse it */ @@ -346,7 +346,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_BAD_NICKNAME, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check nickname */ @@ -358,7 +358,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_BAD_NICKNAME, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* XXX why free nickname */ silc_free(query->nickname); @@ -373,7 +373,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_RESOURCE_LIMIT, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } for (i = 0; i < argc - 3; i++) { @@ -397,7 +397,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) query->ids = NULL; query->ids_count = 0; silc_fsm_next(fsm, silc_server_st_query_send_router); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } query->ids[query->ids_count] = id; @@ -419,7 +419,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_NOT_ENOUGH_PARAMS, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Get the nickname@server string and parse it */ @@ -429,7 +429,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_BAD_NICKNAME, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check nickname */ @@ -440,7 +440,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_BAD_NICKNAME, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* XXX why free nickname */ silc_free(query->nickname); @@ -475,7 +475,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_BAD_NICKNAME, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* XXX why free nickname */ silc_free(query->nickname); @@ -493,7 +493,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_BAD_SERVER, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } query->server_name = tmp; } @@ -509,7 +509,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_BAD_CHANNEL, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } query->channel_name = tmp; } @@ -519,7 +519,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) silc_server_query_send_error(server, query, SILC_STATUS_ERR_NOT_ENOUGH_PARAMS, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } } else { @@ -547,7 +547,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) query->ids = NULL; query->ids_count = 0; silc_fsm_next(fsm, silc_server_st_query_send_router); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } } else { /* For now all other ID's except Client ID's are explicitly @@ -558,7 +558,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) query->ids = NULL; query->ids_count = 0; silc_fsm_next(fsm, silc_server_st_query_send_router); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } } @@ -576,7 +576,7 @@ SILC_FSM_STATE(silc_server_st_query_parse) /** Find entries for query */ silc_fsm_next(fsm, silc_server_st_query_find); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Find the entries according to the query */ @@ -675,12 +675,12 @@ SILC_FSM_STATE(silc_server_st_query_find) if (query->attrs) { /** Check user attributes */ silc_fsm_next(fsm, silc_server_st_query_check_attrs); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Process found entries */ silc_fsm_next(fsm, silc_server_st_query_process); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check user attributes to narrow down clients in WHOIS query */ @@ -690,7 +690,7 @@ SILC_FSM_STATE(silc_server_st_query_check_attrs) /** Proecss found entries */ silc_fsm_next(fsm, silc_server_st_query_process); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Process found entries */ @@ -723,7 +723,7 @@ SILC_FSM_STATE(silc_server_st_query_process) !silc_list_count(query->servers)) { /** Nothing found, send errors */ silc_fsm_next(fsm, silc_server_st_query_reply); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } #if 0 @@ -852,12 +852,12 @@ SILC_FSM_STATE(silc_server_st_query_process) if (silc_list_count(query->resolve)) { /** Resolve entries */ silc_fsm_next(fsm, silc_server_st_query_resolve); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Send reply to query */ silc_fsm_next(fsm, silc_server_st_query_reply); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Resolve incomplete client entries. Other types of entries need not @@ -991,7 +991,7 @@ SILC_FSM_STATE(silc_server_st_query_resolve) silc_server_query_send_error(server, query, SILC_STATUS_ERR_RESOURCE_LIMIT, 0); silc_fsm_next(fsm, silc_server_st_query_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_packet_send(res->stream, SILC_PACKET_COMMAND, 0, @@ -1020,7 +1020,7 @@ SILC_FSM_STATE(silc_server_st_query_resolve) /** Wait all resolvings */ silc_fsm_next(fsm, silc_server_st_query_resolved); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Wait for resolving command reply */ @@ -1032,7 +1032,7 @@ SILC_FSM_STATE(silc_server_st_query_wait_resolve) SilcBool timedout; /* Wait here for the reply */ - SILC_FSM_SEMA_TIMEDWAIT(&res->pending->wait_reply, + SILC_FSM_EVENT_TIMEDWAIT(&res->pending->wait_reply, res->local ? 3 : 10, 0, &timedout); @@ -1042,9 +1042,9 @@ SILC_FSM_STATE(silc_server_st_query_wait_resolve) silc_free(res); /* Signal main thread that reply was received */ - SILC_FSM_SEMA_POST(&query->wait_resolve); + SILC_FSM_EVENT_SIGNAL(&query->wait_resolve); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Wait here that all resolvings has been received */ @@ -1057,9 +1057,9 @@ SILC_FSM_STATE(silc_server_st_query_resolved) SilcServerCommand cmd = query->cmd; /* Wait here until all resolvings has arrived */ - SILC_FSM_SEMA_WAIT(&query->wait_resolve); + SILC_FSM_EVENT_WAIT(&query->wait_resolve); if (silc_list_count(query->resolvings) > 0) - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; }