From aa427d8e98d1b24952f869062536ca6c49670479 Mon Sep 17 00:00:00 2001 From: Pekka Riikonen Date: Sat, 23 Dec 2006 17:53:32 +0000 Subject: [PATCH] SILC FSM API changes. --- lib/silcserver/server.c | 62 +++---- lib/silcserver/server_internal.h | 10 +- lib/silcserver/server_st_accept.c | 82 +++++----- lib/silcserver/server_st_command.c | 68 ++++---- lib/silcserver/server_st_command_reply.c | 36 ++-- lib/silcserver/server_st_connect.c | 2 +- lib/silcserver/server_st_notify.c | 2 +- lib/silcserver/server_st_packet.c | 72 ++++---- lib/silcserver/server_st_query.c | 90 +++++----- lib/silcske/silcconnauth.c | 60 +++---- lib/silcske/silcske.c | 199 +++++++++++++---------- lib/silcutil/tests/test_silcasync.c | 12 +- lib/silcutil/tests/test_silcfdstream.c | 16 +- lib/silcutil/tests/test_silcfsm.c | 64 ++++---- lib/silcutil/tests/test_silcnet.c | 20 +-- 15 files changed, 414 insertions(+), 381 deletions(-) diff --git a/lib/silcserver/server.c b/lib/silcserver/server.c index 756030e0..46baa97d 100644 --- a/lib/silcserver/server.c +++ b/lib/silcserver/server.c @@ -80,7 +80,7 @@ static SilcBool silc_server_packet_receive(SilcPacketEngine engine, /* Signal thread that packet has arrived */ if (!thread->new_packet) { thread->new_packet = TRUE; - SILC_FSM_SEMA_POST(&thread->wait_event); + SILC_FSM_EVENT_SIGNAL(&thread->wait_event); } return TRUE; @@ -190,7 +190,7 @@ static void silc_server_accept_connection(SilcNetStatus status, /* Signal server of new connection */ if (!server->new_connection) { server->new_connection = TRUE; - SILC_FSM_SEMA_POST(&server->wait_event); + SILC_FSM_EVENT_SIGNAL(&server->wait_event); } } @@ -216,14 +216,14 @@ SILC_FSM_STATE(silc_server_thread_st_start) /*** Run thread's machine */ silc_fsm_init(&thread->fsm, thread, NULL, NULL, silc_fsm_get_schedule(fsm)); - silc_fsm_sema_init(&thread->wait_event, &thread->fsm, 0); + silc_fsm_event_init(&thread->wait_event, &thread->fsm, 0); silc_fsm_start_sync(&thread->fsm, silc_server_thread_st_run); /* Signal server that we are up */ - SILC_FSM_SEMA_POST(&thread->server->thread_up); + SILC_FSM_EVENT_SIGNAL(&thread->server->thread_up); /* Wait here for this thread to finish */ - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Thread's machine's main state where we wait for various events. */ @@ -235,7 +235,7 @@ SILC_FSM_STATE(silc_server_thread_st_run) SILC_LOG_DEBUG(("Start")); /* Wait for events */ - SILC_FSM_SEMA_WAIT(&thread->wait_event); + SILC_FSM_EVENT_WAIT(&thread->wait_event); /* Process events */ @@ -262,7 +262,7 @@ SILC_FSM_STATE(silc_server_thread_st_run) silc_list_init(thread->packet_queue, struct SilcPacketStruct, next); thread->new_packet = FALSE; - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_mutex_lock(thread->server->lock); @@ -288,14 +288,14 @@ SILC_FSM_STATE(silc_server_thread_st_run) thread->new_connection = FALSE; silc_mutex_unlock(thread->server->lock); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* NOT REACHED */ #if defined(SILC_DEBUG) assert(FALSE); #endif /* SILC_DEBUG */ - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -310,7 +310,7 @@ SILC_FSM_STATE(silc_server_st_run) SILC_LOG_DEBUG(("Start")); /* Wait for events */ - SILC_FSM_SEMA_WAIT(&server->wait_event); + SILC_FSM_EVENT_WAIT(&server->wait_event); /* Process events */ @@ -318,44 +318,44 @@ SILC_FSM_STATE(silc_server_st_run) /* Call running callbcak back to application */ server->run_callback = FALSE; server->running(server, server->running_context); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (server->new_connection) { /** New connection */ silc_fsm_next(fsm, silc_server_st_new_connection); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (server->connect_router) { /** Connect to router(s) */ silc_fsm_next(fsm, silc_server_st_connect_router); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (server->get_statistics) { /** Retrieve statistics */ silc_fsm_next(fsm, silc_server_st_get_stats); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (server->reconfigure) { /** Reconfigure server */ silc_fsm_next(fsm, silc_server_st_reconfigure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (server->server_shutdown) { /** Shutdown server */ silc_fsm_next(fsm, silc_server_st_stop); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* NOT REACHED */ #if defined(SILC_DEBUG) assert(FALSE); #endif /* SILC_DEBUG */ - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* New connection received */ @@ -391,7 +391,7 @@ SILC_FSM_STATE(silc_server_st_new_connection) } silc_fsm_next(fsm, silc_server_st_wait_new_thread); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_list_del(server->new_conns, ac); @@ -406,7 +406,7 @@ SILC_FSM_STATE(silc_server_st_new_connection) /* Signal the thread for new connection */ if (!thread->new_connection) { thread->new_connection = TRUE; - SILC_FSM_SEMA_POST(&thread->wait_event); + SILC_FSM_EVENT_SIGNAL(&thread->wait_event); } silc_mutex_unlock(server->lock); } @@ -415,7 +415,7 @@ SILC_FSM_STATE(silc_server_st_new_connection) /** Connections processed */ silc_fsm_next(fsm, silc_server_st_run); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Wait here until newly created thread is up */ @@ -425,11 +425,11 @@ SILC_FSM_STATE(silc_server_st_wait_new_thread) SilcServer server = fsm_context; /* Wait here until new thread is up */ - SILC_FSM_SEMA_WAIT(&server->thread_up); + SILC_FSM_EVENT_WAIT(&server->thread_up); /** Process new connections */ silc_fsm_next(fsm, silc_server_st_new_connection); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Stops server */ @@ -493,7 +493,7 @@ SILC_FSM_STATE(silc_server_st_stop) /** Wait events */ silc_fsm_next(fsm, silc_server_st_run); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Reconfigure server */ @@ -507,7 +507,7 @@ SILC_FSM_STATE(silc_server_st_reconfigure) /** Wait events */ server->reconfigure = FALSE; silc_fsm_next(fsm, silc_server_st_run); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Get statistics */ @@ -521,7 +521,7 @@ SILC_FSM_STATE(silc_server_st_get_stats) /** Wait events */ server->get_statistics = FALSE; silc_fsm_next(fsm, silc_server_st_run); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -592,8 +592,8 @@ SilcServer silc_server_alloc(void *app_context, SilcServerParams params, silc_fsm_init(&server->fsm, server, silc_server_destructor, NULL, schedule); /* Init semaphore signallers */ - silc_fsm_sema_init(&server->wait_event, &server->fsm, 0); - silc_fsm_sema_init(&server->thread_up, &server->fsm, 0); + silc_fsm_event_init(&server->wait_event, &server->fsm, 0); + silc_fsm_event_init(&server->thread_up, &server->fsm, 0); /* Initialize lists */ silc_list_init(server->new_conns, struct SilcServerAcceptStruct, next); @@ -853,16 +853,16 @@ void silc_server_run(SilcServer server, SilcServerRunning running, /* Signal the application when we are running */ server->run_callback = TRUE; - SILC_FSM_SEMA_POST(&server->wait_event); + SILC_FSM_EVENT_SIGNAL(&server->wait_event); /* Signal to connect to router */ server->connect_router = TRUE; - SILC_FSM_SEMA_POST(&server->wait_event); + SILC_FSM_EVENT_SIGNAL(&server->wait_event); /* Start getting statistics from the network on normal server */ if (server->server_type != SILC_ROUTER) { server->get_statistics = TRUE; - SILC_FSM_SEMA_POST(&server->wait_event); + SILC_FSM_EVENT_SIGNAL(&server->wait_event); } } @@ -878,7 +878,7 @@ void silc_server_stop(SilcServer server, SilcServerStop stopped, /* Signal that server is going down */ server->server_shutdown = TRUE; - SILC_FSM_SEMA_POST(&server->wait_event); + SILC_FSM_EVENT_SIGNAL(&server->wait_event); } /* Disconnects remote connection */ diff --git a/lib/silcserver/server_internal.h b/lib/silcserver/server_internal.h index 80ffe34a..e1c5d9f0 100644 --- a/lib/silcserver/server_internal.h +++ b/lib/silcserver/server_internal.h @@ -47,7 +47,7 @@ typedef struct SilcServerThreadStruct *SilcServerThread; /* Pending command context */ typedef struct { - SilcFSMSemaStruct wait_reply; /* Pending command signaller */ + SilcFSMEventStruct wait_reply; /* Pending command signaller */ SilcServerCommand reply; /* Command reply context */ SilcUInt16 cmd_ident; /* Command identifier */ SilcInt16 refcnt; /* Reference counter */ @@ -177,7 +177,7 @@ typedef struct SilcServerAcceptStruct { SilcStream stream; /* Remote connection */ SilcPacketStream packet_stream; /* Remote connection */ SilcConnAuth connauth; /* Connection authentication context */ - SilcFSMSemaStruct wait_register; /* Signaller when registering received */ + SilcFSMEventStruct wait_register; /* Signaller when registering received */ SilcPacket register_packet; /* NEW_CLIENT/NEW_SERVER packet */ SilcServerParamClient cconfig; @@ -251,7 +251,7 @@ struct SilcServerThreadStruct { SilcPacketEngine packet_engine; /* Packet engine */ SilcFSMThreadStruct thread; /* FSM thread */ SilcFSMStruct fsm; /* Thread's FSM */ - SilcFSMSemaStruct wait_event; /* Thread's event signaller */ + SilcFSMEventStruct wait_event; /* Thread's event signaller */ SilcUInt32 num_conns; /* Number of connections in the thread */ SilcList new_conns; /* New network connections */ SilcList packet_queue; /* Incoming packet queue */ @@ -279,8 +279,8 @@ struct SilcServerStruct { SilcList command_pool; /* Command context freelist */ SilcHashTable pending_commands; /* Pending commands */ - SilcFSMSemaStruct wait_event; /* Main state signaller */ - SilcFSMSemaStruct thread_up; /* Signaller when thread is up */ + SilcFSMEventStruct wait_event; /* Main state signaller */ + SilcFSMEventStruct thread_up; /* Signaller when thread is up */ SilcIDCache clients; /* Client entry cache */ SilcIDCache servers; /* Server entry cache */ diff --git a/lib/silcserver/server_st_accept.c b/lib/silcserver/server_st_accept.c index 07a83ecf..cad6f55f 100644 --- a/lib/silcserver/server_st_accept.c +++ b/lib/silcserver/server_st_accept.c @@ -169,7 +169,7 @@ SILC_FSM_STATE(silc_server_st_accept_connection) /** Cannot create packet stream */ ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_packet_set_context(ac->packet_stream, ac); @@ -180,7 +180,7 @@ SILC_FSM_STATE(silc_server_st_accept_connection) /** Out of memory */ ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (!silc_socket_stream_get_info(ac->stream, NULL, &ac->hostname, @@ -188,7 +188,7 @@ SILC_FSM_STATE(silc_server_st_accept_connection) /** Bad socket stream */ ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check whether this connection is denied to connect to us. */ @@ -198,7 +198,7 @@ SILC_FSM_STATE(silc_server_st_accept_connection) SILC_LOG_INFO(("Connection %s (%s) is denied", ac->hostname, ac->ip)); ac->error = SILC_STATUS_ERR_BANNED_FROM_SERVER; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } server->params->refcnt++; @@ -217,7 +217,7 @@ SILC_FSM_STATE(silc_server_st_accept_connection) ac->ip)); ac->error = SILC_STATUS_ERR_BANNED_FROM_SERVER; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_LOG_INFO(("Incoming connection %s (%s)", ac->hostname, ac->ip)); @@ -241,7 +241,7 @@ SILC_FSM_STATE(silc_server_st_accept_connection) /** Out of memory */ ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_ske_set_callbacks(ac->data.ske, silc_server_accept_verify_key, silc_server_accept_completed, ac); @@ -265,7 +265,7 @@ SILC_FSM_STATE(silc_server_st_accept_set_keys) silc_ske_map_status(ac->status), ac->hostname, ac->ip)); ac->error = SILC_STATUS_ERR_KEY_EXCHANGE_FAILED; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_LOG_DEBUG(("Setting keys into use")); @@ -277,7 +277,7 @@ SILC_FSM_STATE(silc_server_st_accept_set_keys) /** Error setting keys */ ac->error = SILC_STATUS_ERR_KEY_EXCHANGE_FAILED; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_packet_set_ciphers(ac->packet_stream, send_key, receive_key); silc_packet_set_hmacs(ac->packet_stream, hmac_send, hmac_receive); @@ -291,7 +291,7 @@ SILC_FSM_STATE(silc_server_st_accept_set_keys) /** Error allocating auth protocol */ ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Waiting authentication completion */ @@ -321,7 +321,7 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) SILC_CONNTYPE_STRING(ac->data.type))); ac->error = SILC_STATUS_ERR_AUTH_FAILED; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_LOG_DEBUG(("Checking whether connection is allowed")); @@ -347,7 +347,7 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) conn_number = server->stat.my_routers; } - silc_fsm_sema_init(&ac->wait_register, silc_fsm_get_machine(fsm), 0); + silc_fsm_event_init(&ac->wait_register, silc_fsm_get_machine(fsm), 0); /* Check version */ l_protocol_version = silc_version_to_num(params && params->version_protocol ? @@ -372,7 +372,7 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) ac->error = SILC_STATUS_ERR_BAD_VERSION; ac->error_string = strdup("You support too old protocol version"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Match software version */ @@ -384,7 +384,7 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) ac->error = SILC_STATUS_ERR_BAD_VERSION; ac->error_string = strdup("You support too old software version"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Regex match vendor version */ @@ -396,7 +396,7 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) ac->error = SILC_STATUS_ERR_BAD_VERSION; ac->error_string = strdup("Your software is not supported"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_free(r_vendor_version); @@ -413,7 +413,7 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; ac->error_string = strdup("Server is full, try again later"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* XXX */ @@ -425,7 +425,7 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; ac->error_string = strdup("Too many connections from your host"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* If we are waiting backup router connection, do not accept any other @@ -438,7 +438,7 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) ac->error_string = strdup("We do not have connection to backup router " "established, try later"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* If we are backup router and this is incoming server connection @@ -454,10 +454,10 @@ SILC_FSM_STATE(silc_server_st_accept_authenticated) ac->error_string = strdup("We do not have connection to primary router " "established, try later"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(silc_server_st_accept_client) @@ -476,7 +476,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) int ret; /* Wait here for the NEW_CLIENT or RESUME_CLIENT packet */ - SILC_FSM_SEMA_TIMEDWAIT(&ac->wait_register, 20, 0, &timedout); + SILC_FSM_EVENT_TIMEDWAIT(&ac->wait_register, 20, 0, &timedout); if (!ac->register_packet || timedout) { /** Client did not register */ @@ -484,7 +484,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) ac->hostname, ac->ip)); ac->error = SILC_STATUS_ERR_NOT_REGISTERED; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_LOG_DEBUG(("Connection %s (%s) is client", ac->hostname, ac->ip)); @@ -494,7 +494,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) if (ac->register_packet->type == SILC_PACKET_RESUME_CLIENT) { /** Resume client connection */ silc_fsm_next(fsm, silc_server_st_accept_resume_client); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Get connection parameters */ @@ -530,7 +530,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) ac->error = SILC_STATUS_ERR_INCOMPLETE_INFORMATION; ac->error_string = strdup("Bad NEW_CLIENT packet"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (!username) { @@ -540,7 +540,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) ac->error = SILC_STATUS_ERR_INCOMPLETE_INFORMATION; ac->error_string = strdup("You did not send username"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (username_len > 128) { @@ -566,7 +566,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) ac->error = SILC_STATUS_ERR_INCOMPLETE_INFORMATION; ac->error_string = strdup("You sent wrong hostname string"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } snprintf(n, sizeof(n), "%s", u); snprintf(u, sizeof(u) - 1, "%s@%s", n, h); @@ -586,7 +586,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) /** Out of memory */ ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } username_len = strlen(scramble); @@ -610,7 +610,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) ac->error = SILC_STATUS_ERR_BAD_NICKNAME; ac->error_string = strdup("Bad nickname"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Create client entry */ @@ -621,7 +621,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) SILC_LOG_ERROR(("Could not create new client entry")); ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Save entry data */ @@ -636,7 +636,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) /** Out of memory */ ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Send the new client ID to the client. */ @@ -671,7 +671,7 @@ SILC_FSM_STATE(silc_server_st_accept_client) /** Connection accepted */ silc_fsm_next(fsm, silc_server_st_accept_finish); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(silc_server_st_accept_resume_client) @@ -679,7 +679,7 @@ SILC_FSM_STATE(silc_server_st_accept_resume_client) /** Connection accepted */ silc_fsm_next(fsm, silc_server_st_accept_finish); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(silc_server_st_accept_server) @@ -703,7 +703,7 @@ SILC_FSM_STATE(silc_server_st_accept_server) #if 0 /* Wait here for the NEW_SERVER packet */ - SILC_FSM_SEMA_TIMEDWAIT(&ac->wait_register, 20, 0, &timedout); + SILC_FSM_EVENT_TIMEDWAIT(&ac->wait_register, 20, 0, &timedout); if (!ac->register_packet || timedout) { /** Server did not register */ @@ -712,7 +712,7 @@ SILC_FSM_STATE(silc_server_st_accept_server) ac->hostname, ac->ip)); ac->error = SILC_STATUS_ERR_NOT_REGISTERED; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Get connection parameters */ @@ -780,7 +780,7 @@ SILC_FSM_STATE(silc_server_st_accept_server) ac->error = SILC_STATUS_ERR_INCOMPLETE_INFORMATION; ac->error_string = strdup("Bad NEW_SERVER packet"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (name_len > 256) { @@ -798,7 +798,7 @@ SILC_FSM_STATE(silc_server_st_accept_server) ac->error = SILC_STATUS_ERR_INCOMPLETE_INFORMATION; ac->error_string = strdup("Bad Server ID"); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check for valid server ID */ @@ -811,7 +811,7 @@ SILC_FSM_STATE(silc_server_st_accept_server) ac->error_string = strdup("Your Server ID is not based on your real " "IP address. Check your configuration."); silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Create server entry */ @@ -825,7 +825,7 @@ SILC_FSM_STATE(silc_server_st_accept_server) SILC_LOG_ERROR(("Could not create new server entry")); ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Save entry data */ @@ -840,7 +840,7 @@ SILC_FSM_STATE(silc_server_st_accept_server) /** Out of memory */ ac->error = SILC_STATUS_ERR_RESOURCE_LIMIT; silc_fsm_next(fsm, silc_server_st_accept_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* If the incoming connection is router and marked as backup router @@ -953,7 +953,7 @@ SILC_FSM_STATE(silc_server_st_accept_server) /** Connection accepted */ silc_fsm_next(fsm, silc_server_st_accept_finish); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(silc_server_st_accept_finish) @@ -963,7 +963,7 @@ SILC_FSM_STATE(silc_server_st_accept_finish) SILC_LOG_DEBUG(("New connection accepted")); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_accept_error) @@ -985,5 +985,5 @@ SILC_FSM_STATE(silc_server_st_accept_error) if (ac->connauth) server->stat.auth_failures++; - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } diff --git a/lib/silcserver/server_st_command.c b/lib/silcserver/server_st_command.c index 62779e08..39baac42 100644 --- a/lib/silcserver/server_st_command.c +++ b/lib/silcserver/server_st_command.c @@ -37,7 +37,7 @@ do { \ SILC_STATUS_ERR_NOT_ENOUGH_PARAMS, \ 0); \ silc_server_command_free(cmd); \ - return SILC_FSM_FINISH; \ + SILC_FSM_FINISH; \ } \ if (_argc > max) { \ SILC_LOG_DEBUG(("Too many parameters in command")); \ @@ -46,7 +46,7 @@ do { \ SILC_STATUS_ERR_TOO_MANY_PARAMS, \ 0); \ silc_server_command_free(cmd); \ - return SILC_FSM_FINISH; \ + SILC_FSM_FINISH; \ } \ } while(0) @@ -225,7 +225,7 @@ SilcServerPending silc_server_command_pending(SilcServerThread thread, return NULL; } - silc_fsm_sema_init(&pending->wait_reply, &thread->fsm, 0); + silc_fsm_event_init(&pending->wait_reply, &thread->fsm, 0); pending->refcnt = 1; pending->cmd_ident = cmd_ident; @@ -298,7 +298,7 @@ void silc_server_command_pending_signal(SilcServerCommand cmd) /* Signal */ pending->reply = cmd; - SILC_FSM_SEMA_POST(&pending->wait_reply); + SILC_FSM_EVENT_SIGNAL(&pending->wait_reply); /* Remove from pending */ silc_hash_table_del_by_context(thread->server->pending_commands, @@ -325,7 +325,7 @@ SILC_FSM_STATE(silc_server_st_packet_command) cmd = silc_server_command_alloc(thread); if (!cmd) { silc_packet_free(packet); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } cmd->packet = packet; @@ -336,7 +336,7 @@ SILC_FSM_STATE(silc_server_st_packet_command) if (!cmd->payload) { SILC_LOG_ERROR(("Bad command payload")); silc_server_command_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* If client executes commands more frequently than once in 2 seconds, @@ -506,7 +506,7 @@ SILC_FSM_STATE(silc_server_st_packet_command) default: SILC_LOG_DEBUG(("Unknown command %d", silc_command_get(cmd->payload))); silc_server_command_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; break; } @@ -528,7 +528,7 @@ SILC_FSM_STATE(silc_server_st_command_whois) /** WHOIS query */ silc_fsm_next(fsm, silc_server_st_query_whois); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -544,7 +544,7 @@ SILC_FSM_STATE(silc_server_st_command_whowas) /** WHOWAS query */ silc_fsm_next(fsm, silc_server_st_query_whowas); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -560,7 +560,7 @@ SILC_FSM_STATE(silc_server_st_command_identify) /** IDENTIFY query */ silc_fsm_next(fsm, silc_server_st_query_identify); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -664,7 +664,7 @@ SILC_FSM_STATE(silc_server_st_command_nick) out: silc_server_command_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -676,7 +676,7 @@ SILC_FSM_STATE(silc_server_st_command_list) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -688,7 +688,7 @@ SILC_FSM_STATE(silc_server_st_command_topic) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -700,7 +700,7 @@ SILC_FSM_STATE(silc_server_st_command_invite) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -712,7 +712,7 @@ SILC_FSM_STATE(silc_server_st_command_quit) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -724,7 +724,7 @@ SILC_FSM_STATE(silc_server_st_command_kill) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -732,7 +732,7 @@ SILC_FSM_STATE(silc_server_st_command_kill) SILC_FSM_STATE(silc_server_st_command_info) { - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -744,7 +744,7 @@ SILC_FSM_STATE(silc_server_st_command_stats) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -789,7 +789,7 @@ SILC_FSM_STATE(silc_server_st_command_ping) out: silc_server_command_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -801,7 +801,7 @@ SILC_FSM_STATE(silc_server_st_command_oper) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -813,7 +813,7 @@ SILC_FSM_STATE(silc_server_st_command_join) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -825,7 +825,7 @@ SILC_FSM_STATE(silc_server_st_command_motd) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -837,7 +837,7 @@ SILC_FSM_STATE(silc_server_st_command_umode) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -849,7 +849,7 @@ SILC_FSM_STATE(silc_server_st_command_cmode) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -861,7 +861,7 @@ SILC_FSM_STATE(silc_server_st_command_cumode) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -873,7 +873,7 @@ SILC_FSM_STATE(silc_server_st_command_kick) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -885,7 +885,7 @@ SILC_FSM_STATE(silc_server_st_command_ban) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -897,7 +897,7 @@ SILC_FSM_STATE(silc_server_st_command_detach) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -909,7 +909,7 @@ SILC_FSM_STATE(silc_server_st_command_watch) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -921,7 +921,7 @@ SILC_FSM_STATE(silc_server_st_command_silcoper) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -933,7 +933,7 @@ SILC_FSM_STATE(silc_server_st_command_leave) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -945,7 +945,7 @@ SILC_FSM_STATE(silc_server_st_command_users) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -957,7 +957,7 @@ SILC_FSM_STATE(silc_server_st_command_getkey) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -969,5 +969,5 @@ SILC_FSM_STATE(silc_server_st_command_service) SilcServerCommand cmd = state_context; SilcArgumentPayload args = silc_command_get_args(cmd->payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } diff --git a/lib/silcserver/server_st_command_reply.c b/lib/silcserver/server_st_command_reply.c index 83ddfd06..558d2f49 100644 --- a/lib/silcserver/server_st_command_reply.c +++ b/lib/silcserver/server_st_command_reply.c @@ -71,7 +71,7 @@ SILC_FSM_STATE(silc_server_st_packet_command_reply) cmd = silc_server_command_alloc(thread); if (!cmd) { silc_packet_free(packet); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } cmd->packet = packet; @@ -82,14 +82,14 @@ SILC_FSM_STATE(silc_server_st_packet_command_reply) if (!cmd->payload) { SILC_LOG_DEBUG(("Bad command reply payload")); silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Client is allowed to send reply only to WHOIS command. */ if (data->type == SILC_CONN_CLIENT && silc_command_get(cmd->payload) != SILC_COMMAND_WHOIS) { silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Get all command pending for this reply */ @@ -171,13 +171,13 @@ SILC_FSM_STATE(silc_server_st_packet_command_reply) SILC_LOG_DEBUG(("Unknown command %d", silc_command_get(cmd->payload))); cmd->pending = NULL; silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; break; } /* Statistics */ - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } @@ -196,7 +196,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_whois) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -215,7 +215,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_whowas) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -234,7 +234,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_identify) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -253,7 +253,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_list) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -272,7 +272,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_info) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -319,7 +319,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_stats) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -338,7 +338,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_ping) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -357,7 +357,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_join) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -376,7 +376,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_motd) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -395,7 +395,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_watch) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -414,7 +414,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_users) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -493,7 +493,7 @@ SILC_FSM_STATE(silc_server_st_command_reply_getkey) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } @@ -512,5 +512,5 @@ SILC_FSM_STATE(silc_server_st_command_reply_service) err: silc_server_command_reply_free(cmd); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } diff --git a/lib/silcserver/server_st_connect.c b/lib/silcserver/server_st_connect.c index aeca0599..e29de086 100644 --- a/lib/silcserver/server_st_connect.c +++ b/lib/silcserver/server_st_connect.c @@ -32,5 +32,5 @@ SILC_FSM_STATE(silc_server_st_connect_router) /** Wait events */ server->connect_router = FALSE; silc_fsm_next(fsm, silc_server_st_run); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } diff --git a/lib/silcserver/server_st_notify.c b/lib/silcserver/server_st_notify.c index 73c7aea0..06b57dfb 100644 --- a/lib/silcserver/server_st_notify.c +++ b/lib/silcserver/server_st_notify.c @@ -27,5 +27,5 @@ SILC_FSM_STATE(silc_server_st_packet_notify) SilcPacket packet = state_context; SilcEntryData data = silc_packet_get_context(packet->stream); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } diff --git a/lib/silcserver/server_st_packet.c b/lib/silcserver/server_st_packet.c index e8676ca8..5f0f3caf 100644 --- a/lib/silcserver/server_st_packet.c +++ b/lib/silcserver/server_st_packet.c @@ -34,7 +34,7 @@ SILC_FSM_STATE(silc_server_st_packet_disconnect) SilcPacket packet = fsm_context; SilcEntryData data = silc_packet_get_context(packet->stream); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_channel_message) @@ -51,7 +51,7 @@ SILC_FSM_STATE(silc_server_st_packet_channel_message) silc_server_channel_message(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_channel_key) @@ -68,7 +68,7 @@ SILC_FSM_STATE(silc_server_st_packet_channel_key) silc_server_channel_key(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_private_message) @@ -84,7 +84,7 @@ SILC_FSM_STATE(silc_server_st_packet_private_message) silc_server_private_message(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_private_message_key) @@ -98,7 +98,7 @@ SILC_FSM_STATE(silc_server_st_packet_private_message_key) silc_server_private_message_key(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_new_id) @@ -116,7 +116,7 @@ SILC_FSM_STATE(silc_server_st_packet_new_id) silc_server_new_id(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_new_channel) @@ -132,7 +132,7 @@ SILC_FSM_STATE(silc_server_st_packet_new_channel) silc_server_new_channel(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_key_agreement) @@ -143,7 +143,7 @@ SILC_FSM_STATE(silc_server_st_packet_key_agreement) silc_server_key_agreement(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_ftp) @@ -155,7 +155,7 @@ SILC_FSM_STATE(silc_server_st_packet_ftp) silc_server_ftp(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_resume_router) @@ -168,7 +168,7 @@ SILC_FSM_STATE(silc_server_st_packet_resume_router) silc_server_backup_resume_router(server, sock, packet); #endif - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_server_st_packet_received) @@ -186,7 +186,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_channel_message); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_PRIVATE_MESSAGE: @@ -194,13 +194,13 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_private_message); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_NOTIFY: /** Packet NOTIFY */ silc_fsm_next(fsm, silc_server_st_packet_notify); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_COMMAND: @@ -208,7 +208,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_command); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_COMMAND_REPLY: @@ -216,7 +216,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_command_reply); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_CHANNEL_KEY: @@ -224,13 +224,13 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_channel_key); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_NEW_ID: /** Packet NEW_ID */ silc_fsm_next(fsm, silc_server_st_packet_new_id); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_NEW_CLIENT: @@ -238,7 +238,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_new_client); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_NEW_SERVER: @@ -246,13 +246,13 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_new_server); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_NEW_CHANNEL: /** Packet NEW_CHANNEL */ silc_fsm_next(fsm, silc_server_st_packet_new_channel); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_KEY_AGREEMENT: @@ -260,7 +260,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_key_agreement); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_FTP: @@ -268,7 +268,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_ftp); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_RESUME_CLIENT: @@ -276,7 +276,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_resume_client); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_RESUME_ROUTER: @@ -284,7 +284,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_resume_router); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_DISCONNECT: @@ -292,7 +292,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_disconnect); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_PRIVATE_MESSAGE_KEY: @@ -300,7 +300,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) if (packet->flags & SILC_PACKET_FLAG_LIST) break; silc_fsm_next(fsm, silc_server_st_packet_private_message_key); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; break; case SILC_PACKET_HEARTBEAT: @@ -323,7 +323,7 @@ SILC_FSM_STATE(silc_server_st_packet_received) } silc_packet_free(packet); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Received NEW_CLIENT packet, used to register client to SILC network. */ @@ -336,14 +336,14 @@ SILC_FSM_STATE(silc_server_st_packet_new_client) if (!ac || ac->register_packet) { silc_packet_free(packet); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Signal that client registers to network */ ac->register_packet = packet; - SILC_FSM_SEMA_POST(&ac->wait_register); + SILC_FSM_EVENT_SIGNAL(&ac->wait_register); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Received NEW_SERVER packet, used to register server to SILC network. */ @@ -356,14 +356,14 @@ SILC_FSM_STATE(silc_server_st_packet_new_server) if (!ac || ac->register_packet) { silc_packet_free(packet); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Signal that server registers to network */ ac->register_packet = packet; - SILC_FSM_SEMA_POST(&ac->wait_register); + SILC_FSM_EVENT_SIGNAL(&ac->wait_register); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Received RESUME_CLIENT packet, used to resume detached session. */ @@ -376,12 +376,12 @@ SILC_FSM_STATE(silc_server_st_packet_resume_client) if (!ac || ac->register_packet) { silc_packet_free(packet); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Signal that client resumes session */ ac->register_packet = packet; - SILC_FSM_SEMA_POST(&ac->wait_register); + SILC_FSM_EVENT_SIGNAL(&ac->wait_register); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } 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; } diff --git a/lib/silcske/silcconnauth.c b/lib/silcske/silcconnauth.c index e47be82b..0f417d33 100644 --- a/lib/silcske/silcconnauth.c +++ b/lib/silcske/silcconnauth.c @@ -260,13 +260,14 @@ SILC_FSM_STATE(silc_connauth_st_initiator_start) int payload_len = 0; unsigned char *auth_data = NULL; SilcUInt32 auth_data_len = 0; + SilcPacketFlags flags = 0; SILC_LOG_DEBUG(("Start")); if (connauth->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_connauth_st_initiator_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Start timeout */ @@ -285,16 +286,17 @@ SILC_FSM_STATE(silc_connauth_st_initiator_start) if (!auth_data) { /** Out of memory */ silc_fsm_next(fsm, silc_connauth_st_initiator_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } auth_data_len = connauth->auth_data_len; + flags = SILC_PACKET_FLAG_LONG_PAD; break; case SILC_AUTH_PUBLIC_KEY: if (!silc_connauth_get_signature(connauth, &auth_data, &auth_data_len)) { /** Error computing signature */ silc_fsm_next(fsm, silc_connauth_st_initiator_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } break; } @@ -304,7 +306,7 @@ SILC_FSM_STATE(silc_connauth_st_initiator_start) if (!packet) { /** Out of memory */ silc_fsm_next(fsm, silc_connauth_st_initiator_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_buffer_format(packet, @@ -314,11 +316,11 @@ SILC_FSM_STATE(silc_connauth_st_initiator_start) SILC_STR_END); /* Send the packet */ - if (!silc_packet_send(connauth->ske->stream, SILC_PACKET_CONNECTION_AUTH, 0, - packet->data, silc_buffer_len(packet))) { + if (!silc_packet_send(connauth->ske->stream, SILC_PACKET_CONNECTION_AUTH, + flags, packet->data, silc_buffer_len(packet))) { /** Error sending packet */ silc_fsm_next(fsm, silc_connauth_st_initiator_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (auth_data) { @@ -329,7 +331,7 @@ SILC_FSM_STATE(silc_connauth_st_initiator_start) /** Wait for responder */ silc_fsm_next(fsm, silc_connauth_st_initiator_result); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_FSM_STATE(silc_connauth_st_initiator_result) @@ -341,7 +343,7 @@ SILC_FSM_STATE(silc_connauth_st_initiator_result) if (connauth->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_connauth_st_initiator_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check the status of authentication */ @@ -361,7 +363,7 @@ SILC_FSM_STATE(silc_connauth_st_initiator_result) /* Call completion callback */ connauth->completion(connauth, connauth->success, connauth->context); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_connauth_st_initiator_failure) @@ -382,7 +384,7 @@ SILC_FSM_STATE(silc_connauth_st_initiator_failure) &silc_connauth_stream_cbs, connauth); silc_schedule_task_del_by_context(silc_fsm_get_schedule(fsm), connauth); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SilcAsyncOperation @@ -445,7 +447,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_start) if (connauth->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Start timeout */ @@ -456,7 +458,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_start) /** Wait for initiator */ silc_fsm_next(fsm, silc_connauth_st_responder_authenticate); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_FSM_STATE(silc_connauth_st_responder_authenticate) @@ -475,14 +477,14 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) /** Aborted */ silc_packet_free(connauth->packet); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (connauth->packet->type != SILC_PACKET_CONNECTION_AUTH) { /** Protocol failure */ silc_packet_free(connauth->packet); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Parse the received authentication data packet. The received @@ -496,7 +498,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) SILC_LOG_ERROR(("Bad payload in authentication packet")); silc_packet_free(connauth->packet); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (payload_len != silc_buffer_len(&connauth->packet->buffer)) { @@ -504,7 +506,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) SILC_LOG_ERROR(("Bad payload length in authentication packet")); silc_packet_free(connauth->packet); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } payload_len -= 4; @@ -515,7 +517,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) conn_type)); silc_packet_free(connauth->packet); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (payload_len > 0) { @@ -530,7 +532,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) SILC_LOG_DEBUG(("Bad payload in authentication payload")); silc_packet_free(connauth->packet); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } } silc_packet_free(connauth->packet); @@ -544,7 +546,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) /** Connection not configured */ SILC_LOG_ERROR(("Remote connection not configured")); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Verify */ @@ -555,7 +557,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) if (!memcmp(auth_data, passphrase, passphrase_len)) { /** Authentication failed */ silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } } else if (repository) { /* Digital signature */ @@ -572,7 +574,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) if (!find || !connauth->auth_data) { /** Out of memory */ silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_skr_find_set_pkcs_type(find, connauth->ske->pk_type); @@ -591,7 +593,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate) /** Authentication successful */ silc_fsm_next(fsm, silc_connauth_st_responder_success); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(silc_connauth_st_responder_authenticate_pk) @@ -602,14 +604,14 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate_pk) if (connauth->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (connauth->skr_status != SILC_SKR_OK) { /** Public key not found */ SILC_LOG_DEBUG(("Public key not found, error %d", connauth->skr_status)); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_LOG_DEBUG(("Found %d public keys", @@ -624,14 +626,14 @@ SILC_FSM_STATE(silc_connauth_st_responder_authenticate_pk) SILC_LOG_DEBUG(("Invalid signature")); silc_free(connauth->auth_data); silc_fsm_next(fsm, silc_connauth_st_responder_failure); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_free(connauth->auth_data); /** Authentication successful */ silc_fsm_next(fsm, silc_connauth_st_responder_success); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(silc_connauth_st_responder_success) @@ -652,7 +654,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_success) &silc_connauth_stream_cbs, connauth); silc_schedule_task_del_by_context(silc_fsm_get_schedule(fsm), connauth); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(silc_connauth_st_responder_failure) @@ -673,7 +675,7 @@ SILC_FSM_STATE(silc_connauth_st_responder_failure) &silc_connauth_stream_cbs, connauth); silc_schedule_task_del_by_context(silc_fsm_get_schedule(fsm), connauth); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SilcAsyncOperation diff --git a/lib/silcske/silcske.c b/lib/silcske/silcske.c index f554e3b0..d49d9ccb 100644 --- a/lib/silcske/silcske.c +++ b/lib/silcske/silcske.c @@ -1120,7 +1120,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_start) if (ske->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_ske_st_initiator_aborted); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Encode the payload */ @@ -1130,7 +1130,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_start) /** Error encoding Start Payload */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Save the the payload buffer for future use. It is later used to @@ -1145,7 +1145,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_start) SILC_LOG_DEBUG(("Error sending packet")); ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* XXX timeout */ @@ -1153,7 +1153,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_start) /** Wait for responder proposal */ SILC_LOG_DEBUG(("Waiting for reponder proposal")); silc_fsm_next(fsm, silc_ske_st_initiator_phase1); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Phase-1. Receives responder's proposal */ @@ -1177,7 +1177,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase1) silc_ske_install_retransmission(ske); silc_packet_free(ske->packet); ske->packet = NULL; - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Decode the payload */ @@ -1188,7 +1188,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase1) ske->packet = NULL; ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Get remote ID and set it to stream */ @@ -1221,7 +1221,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase1) SILC_LOG_ERROR(("Invalid cookie, modified or unsupported feature")); ske->status = SILC_SKE_STATUS_INVALID_COOKIE; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check version string */ @@ -1231,7 +1231,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase1) /** Version mismatch */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Free our KE Start Payload context, we don't need it anymore. */ @@ -1274,7 +1274,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase1) /** Send KE Payload */ silc_fsm_next(fsm, silc_ske_st_initiator_phase2); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; err: if (payload) @@ -1296,7 +1296,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase1) /** Error */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Phase-2. Send KE payload */ @@ -1318,7 +1318,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase2) /** Out of memory */ ske->status = SILC_SKE_STATUS_OUT_OF_MEMORY; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_mp_init(x); status = @@ -1331,7 +1331,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase2) silc_free(x); ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Encode the result to Key Exchange Payload. */ @@ -1343,7 +1343,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase2) silc_free(x); ske->status = SILC_SKE_STATUS_OUT_OF_MEMORY; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } ske->ke1_payload = payload; @@ -1365,7 +1365,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase2) ske->ke1_payload = NULL; ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } payload->pk_len = pk_len; payload->pk_type = silc_pkcs_get_type(ske->public_key); @@ -1396,7 +1396,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase2) ske->ke1_payload = NULL; ske->status = SILC_SKE_STATUS_SIGNATURE_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } payload->sign_data = silc_memdup(sign, sign_len); if (payload->sign_data) @@ -1416,7 +1416,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase2) ske->ke1_payload = NULL; ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } ske->x = x; @@ -1431,14 +1431,14 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase2) SILC_LOG_DEBUG(("Error sending packet")); ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_buffer_free(payload_buf); /** Waiting responder's KE payload */ silc_fsm_next(fsm, silc_ske_st_initiator_phase3); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Phase-3. Process responder's KE payload */ @@ -1458,7 +1458,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase3) silc_ske_install_retransmission(ske); silc_packet_free(ske->packet); ske->packet = NULL; - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Decode the payload */ @@ -1469,7 +1469,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase3) ske->packet = NULL; ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_packet_free(ske->packet); ske->packet = NULL; @@ -1535,7 +1535,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase3) /** Process key material */ silc_fsm_next(fsm, silc_ske_st_initiator_phase4); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; err: silc_ske_payload_ke_free(payload); @@ -1551,7 +1551,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase3) /** Error */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Process key material */ @@ -1568,7 +1568,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase4) if (ske->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_ske_st_initiator_aborted); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check result of public key verification */ @@ -1576,7 +1576,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase4) /** Public key not verified */ SILC_LOG_DEBUG(("Public key verification failed")); silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } payload = ske->ke2_payload; @@ -1612,7 +1612,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase4) if (ske->rekey) { /** Finish rekey */ silc_fsm_next(fsm, silc_ske_st_rekey_initiator_done); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Process key material */ @@ -1635,12 +1635,12 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase4) SILC_LOG_DEBUG(("Error sending packet")); ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Waiting completion */ silc_fsm_next(fsm, silc_ske_st_initiator_end); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; err: memset(hash, 'F', sizeof(hash)); @@ -1663,7 +1663,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_phase4) /** Error */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Protocol completed */ @@ -1679,7 +1679,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_end) silc_ske_install_retransmission(ske); silc_packet_free(ske->packet); ske->packet = NULL; - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_LOG_DEBUG(("Key exchange completed successfully")); @@ -1689,7 +1689,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_end) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Aborted by application */ @@ -1708,7 +1708,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_aborted) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Error occurred. Send error to remote host */ @@ -1733,7 +1733,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_error) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Failure received from remote */ @@ -1756,7 +1756,7 @@ SILC_FSM_STATE(silc_ske_st_initiator_failure) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Starts the protocol as initiator */ @@ -1821,7 +1821,7 @@ SILC_FSM_STATE(silc_ske_st_responder_start) if (ske->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_ske_st_responder_aborted); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Start timeout */ @@ -1829,7 +1829,7 @@ SILC_FSM_STATE(silc_ske_st_responder_start) /** Wait for initiator */ silc_fsm_next(fsm, silc_ske_st_responder_phase1); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Decode initiator's start payload. Select the security properties from @@ -1852,7 +1852,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase1) ske->packet = NULL; ske->status = status; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Take a copy of the payload buffer for future use. It is used to @@ -1889,7 +1889,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase1) silc_ske_payload_start_free(remote_payload); ske->status = status; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_ske_payload_start_free(remote_payload); @@ -1910,7 +1910,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase1) /** Waiting initiator's KE payload */ silc_fsm_next(fsm, silc_ske_st_responder_phase2); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; err: if (ske->prop->group) @@ -1930,7 +1930,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase1) /** Error */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Phase-2. Decode initiator's KE payload */ @@ -1949,7 +1949,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase2) silc_ske_install_retransmission(ske); silc_packet_free(ske->packet); ske->packet = NULL; - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Decode Key Exchange Payload */ @@ -1960,7 +1960,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase2) ske->packet = NULL; ske->status = status; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } ske->ke1_payload = recv_payload; @@ -1982,7 +1982,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase2) "certificate), even though we require it")); ske->status = SILC_SKE_STATUS_PUBLIC_KEY_NOT_PROVIDED; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Decode the remote's public key */ @@ -1995,7 +1995,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase2) SILC_LOG_ERROR(("Unsupported/malformed public key received")); ske->status = SILC_SKE_STATUS_UNSUPPORTED_PUBLIC_KEY; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } if (ske->prop->public_key && (ske->callbacks->verify_key || @@ -2013,7 +2013,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase2) if (!find) { ske->status = SILC_SKE_STATUS_OUT_OF_MEMORY; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_skr_find_set_pkcs_type(find, silc_pkcs_get_type(ske->prop->public_key)); @@ -2035,7 +2035,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase2) /** Generate KE2 payload */ silc_fsm_next(fsm, silc_ske_st_responder_phase4); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Phase-4. Generate KE2 payload */ @@ -2050,7 +2050,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase4) if (ske->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_ske_st_responder_aborted); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Check result of public key verification */ @@ -2058,7 +2058,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase4) /** Public key not verified */ SILC_LOG_DEBUG(("Public key verification failed")); silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } recv_payload = ske->ke1_payload; @@ -2078,7 +2078,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase4) /** Error computing hash */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_LOG_DEBUG(("Verifying signature (HASH_i)")); @@ -2090,7 +2090,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase4) SILC_LOG_ERROR(("Signature verification failed, incorrect signature")); ske->status = SILC_SKE_STATUS_INCORRECT_SIGNATURE; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_LOG_DEBUG(("Signature is Ok")); @@ -2111,7 +2111,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase4) silc_free(x); ske->status = status; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Save the results for later processing */ @@ -2137,7 +2137,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase4) /** Send KE2 payload */ silc_fsm_next(fsm, silc_ske_st_responder_phase5); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Phase-5. Send KE2 payload */ @@ -2161,7 +2161,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase5) /** Error encoding public key */ status = SILC_SKE_STATUS_OUT_OF_MEMORY; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } ske->ke2_payload->pk_data = pk; ske->ke2_payload->pk_len = pk_len; @@ -2175,7 +2175,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase5) /** Error computing hash */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } ske->hash = silc_memdup(hash, hash_len); @@ -2189,7 +2189,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase5) /** Error computing signature */ status = SILC_SKE_STATUS_SIGNATURE_ERROR; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } ske->ke2_payload->sign_data = silc_memdup(sign, sign_len); ske->ke2_payload->sign_len = sign_len; @@ -2204,7 +2204,7 @@ SILC_FSM_STATE(silc_ske_st_responder_phase5) /** Error encoding KE payload */ ske->status = status; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Send the packet. */ @@ -2213,14 +2213,14 @@ SILC_FSM_STATE(silc_ske_st_responder_phase5) SILC_LOG_DEBUG(("Error sending packet")); ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_buffer_free(payload_buf); /** Waiting completion */ silc_fsm_next(fsm, silc_ske_st_responder_end); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Protocol completed */ @@ -2236,7 +2236,7 @@ SILC_FSM_STATE(silc_ske_st_responder_end) silc_ske_install_retransmission(ske); silc_packet_free(ske->packet); ske->packet = NULL; - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } silc_packet_free(ske->packet); ske->packet = NULL; @@ -2252,7 +2252,7 @@ SILC_FSM_STATE(silc_ske_st_responder_end) /** Error processing key material */ ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_responder_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Send SUCCESS packet */ @@ -2262,7 +2262,7 @@ SILC_FSM_STATE(silc_ske_st_responder_end) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Aborted by application */ @@ -2281,7 +2281,7 @@ SILC_FSM_STATE(silc_ske_st_responder_aborted) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Failure received from remote */ @@ -2303,7 +2303,7 @@ SILC_FSM_STATE(silc_ske_st_responder_failure) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Error occurred */ @@ -2325,7 +2325,7 @@ SILC_FSM_STATE(silc_ske_st_responder_error) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Starts the protocol as responder. */ @@ -2383,7 +2383,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_start) if (ske->aborted) { /** Aborted */ silc_fsm_next(fsm, silc_ske_st_initiator_aborted); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* XXX timeout */ @@ -2393,7 +2393,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_start) /** No memory */ ske->status = SILC_SKE_STATUS_OUT_OF_MEMORY; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Send REKEY packet to start rekey protocol */ @@ -2402,14 +2402,14 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_start) SILC_LOG_DEBUG(("Error sending packet")); ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* If doing rekey without PFS, move directly to the end of the protocol. */ if (!ske->rekey->pfs) { /** Rekey without PFS */ silc_fsm_next(fsm, silc_ske_st_rekey_initiator_done); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } status = silc_ske_group_get_by_number(ske->rekey->ske_group, @@ -2417,12 +2417,12 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_start) if (status != SILC_SKE_STATUS_OK) { /** Unknown group */ silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Rekey with PFS */ silc_fsm_next(fsm, silc_ske_st_initiator_phase2); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Sends REKEY_DONE packet to finish the protocol. */ @@ -2446,7 +2446,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_done) /** Cannot allocate hash */ ske->status = SILC_SKE_STATUS_OUT_OF_MEMORY; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } hash_len = silc_hash_len(hash); @@ -2473,7 +2473,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_done) if (!ske->keymat) { SILC_LOG_ERROR(("Error processing key material")); silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } ske->prop->cipher = send_key; @@ -2486,7 +2486,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_done) /** Cannot get keys */ ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Set the new keys into use. This will also send REKEY_DONE packet. Any @@ -2497,12 +2497,12 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_done) SILC_LOG_DEBUG(("Cannot set new keys, error sending REKEY_DONE")); ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /** Wait for REKEY_DONE */ silc_fsm_next(fsm, silc_ske_st_rekey_initiator_end); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /* Rekey protocol end */ @@ -2520,7 +2520,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_end) SILC_LOG_DEBUG(("Remote retransmitted an old packet")); silc_packet_free(ske->packet); ske->packet = NULL; - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } silc_packet_get_keys(ske->stream, NULL, &receive_key, NULL, &hmac_receive); @@ -2533,7 +2533,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_end) /** Cannot get keys */ ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Set new receiving keys into use. All packets received after this will @@ -2544,7 +2544,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_end) SILC_LOG_DEBUG(("Cannot set new keys")); ske->status = SILC_SKE_STATUS_ERROR; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_LOG_DEBUG(("Rekey completed successfully")); @@ -2555,7 +2555,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_end) /** No memory */ ske->status = SILC_SKE_STATUS_OUT_OF_MEMORY; silc_fsm_next(fsm, silc_ske_st_initiator_error); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } rekey->pfs = ske->rekey->pfs; ske->rekey = rekey; @@ -2567,7 +2567,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_initiator_end) silc_packet_stream_unlink(ske->stream, &silc_ske_stream_cbs, ske); silc_schedule_task_del_by_context(ske->schedule, ske); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Starts rekey protocol as initiator */ @@ -2614,7 +2614,7 @@ SILC_FSM_STATE(silc_ske_st_rekey_responder_start); SILC_FSM_STATE(silc_ske_st_rekey_responder_start) { - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Starts rekey protocol as responder */ @@ -2954,6 +2954,8 @@ SilcBool silc_ske_set_keys(SilcSKE ske, SilcHmac *ret_hmac_receive, SilcHash *ret_hash) { + unsigned char iv[32]; + /* Allocate ciphers to be used in the communication */ if (ret_send_key) { if (!silc_cipher_alloc((char *)silc_cipher_get_name(prop->cipher), @@ -2979,16 +2981,31 @@ SilcBool silc_ske_set_keys(SilcSKE ske, } /* Set key material */ + memset(iv, 0, sizeof(iv)); if (ske->responder) { if (ret_send_key) { silc_cipher_set_key(*ret_send_key, keymat->receive_enc_key, keymat->enc_key_len, TRUE); - silc_cipher_set_iv(*ret_send_key, keymat->receive_iv); + + if (silc_cipher_get_mode(*ret_send_key) == SILC_CIPHER_MODE_CTR) { + memcpy(iv, ske->hash, 4); + memcpy(iv + 4, keymat->receive_iv, 4); + silc_cipher_set_iv(*ret_send_key, iv); + } else { + silc_cipher_set_iv(*ret_send_key, keymat->receive_iv); + } } if (ret_receive_key) { silc_cipher_set_key(*ret_receive_key, keymat->send_enc_key, keymat->enc_key_len, FALSE); - silc_cipher_set_iv(*ret_receive_key, keymat->send_iv); + + if (silc_cipher_get_mode(*ret_receive_key) == SILC_CIPHER_MODE_CTR) { + memcpy(iv, ske->hash, 4); + memcpy(iv + 4, keymat->send_iv, 4); + silc_cipher_set_iv(*ret_receive_key, iv); + } else { + silc_cipher_set_iv(*ret_receive_key, keymat->send_iv); + } } if (ret_hmac_send) silc_hmac_set_key(*ret_hmac_send, keymat->receive_hmac_key, @@ -3000,12 +3017,26 @@ SilcBool silc_ske_set_keys(SilcSKE ske, if (ret_send_key) { silc_cipher_set_key(*ret_send_key, keymat->send_enc_key, keymat->enc_key_len, TRUE); - silc_cipher_set_iv(*ret_send_key, keymat->send_iv); + + if (silc_cipher_get_mode(*ret_send_key) == SILC_CIPHER_MODE_CTR) { + memcpy(iv, ske->hash, 4); + memcpy(iv + 4, keymat->send_iv, 4); + silc_cipher_set_iv(*ret_send_key, iv); + } else { + silc_cipher_set_iv(*ret_send_key, keymat->send_iv); + } } if (ret_receive_key) { silc_cipher_set_key(*ret_receive_key, keymat->receive_enc_key, keymat->enc_key_len, FALSE); - silc_cipher_set_iv(*ret_receive_key, keymat->receive_iv); + + if (silc_cipher_get_mode(*ret_receive_key) == SILC_CIPHER_MODE_CTR) { + memcpy(iv, ske->hash, 4); + memcpy(iv + 4, keymat->receive_iv, 4); + silc_cipher_set_iv(*ret_receive_key, iv); + } else { + silc_cipher_set_iv(*ret_receive_key, keymat->receive_iv); + } } if (ret_hmac_send) silc_hmac_set_key(*ret_hmac_send, keymat->send_hmac_key, diff --git a/lib/silcutil/tests/test_silcasync.c b/lib/silcutil/tests/test_silcasync.c index 0a1fecc8..96210e08 100644 --- a/lib/silcutil/tests/test_silcasync.c +++ b/lib/silcutil/tests/test_silcasync.c @@ -10,7 +10,7 @@ SilcSchedule schedule; typedef struct { SilcFSM fsm; - SilcFSMSemaStruct sema; + SilcFSMEventStruct sema; SilcAsyncOperation op; Callback cb; void *cb_context; @@ -59,7 +59,7 @@ static void async_call_cb(void *context) Foo f = context; SILC_LOG_DEBUG(("*******Callback, signal and continue to next state")); f->op = NULL; - SILC_FSM_SEMA_POST(&f->sema); + SILC_FSM_EVENT_SIGNAL(&f->sema); SILC_FSM_CALL_CONTINUE(f->fsm); } @@ -69,7 +69,7 @@ SILC_FSM_STATE(test_st_start) SILC_LOG_DEBUG(("test_st_start")); - silc_fsm_sema_init(&f->sema, fsm, 0); + silc_fsm_event_init(&f->sema, fsm); /** Wait async callback */ SILC_LOG_DEBUG(("Call async call")); @@ -84,7 +84,7 @@ SILC_FSM_STATE(test_st_second) SILC_LOG_DEBUG(("test_st_second")); - SILC_FSM_SEMA_TIMEDWAIT(&f->sema, 0, 1, &timedout); + SILC_FSM_EVENT_TIMEDWAIT(&f->sema, 0, 1, &timedout); if (timedout == TRUE) { SILC_LOG_DEBUG(("Sema timedout, aborting async operation")); @@ -94,7 +94,7 @@ SILC_FSM_STATE(test_st_second) /** Finish */ silc_fsm_next_later(fsm, test_st_finish, 2, 0); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_FSM_STATE(test_st_finish) @@ -102,7 +102,7 @@ SILC_FSM_STATE(test_st_finish) SILC_LOG_DEBUG(("test_st_finish")); SILC_LOG_DEBUG(("Finish machine")); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } static void destructor(SilcFSM fsm, void *fsm_context, diff --git a/lib/silcutil/tests/test_silcfdstream.c b/lib/silcutil/tests/test_silcfdstream.c index e4d53a59..c0039b1c 100644 --- a/lib/silcutil/tests/test_silcfdstream.c +++ b/lib/silcutil/tests/test_silcfdstream.c @@ -32,7 +32,7 @@ SILC_FSM_STATE(st_end) { unlink("/tmp/test_silcfdstream"); unlink("/tmp/test_silcfdstream_copy"); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(st_readwrite) @@ -83,7 +83,7 @@ SILC_FSM_STATE(st_readwrite) if (i == -1) { SILC_LOG_DEBUG(("Would block, write later")); silc_fsm_next(fsm, st_end); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } if (i == -2) { @@ -99,7 +99,7 @@ SILC_FSM_STATE(st_readwrite) if (ret == -1) { SILC_LOG_DEBUG(("Would block, read later")); silc_fsm_next(fsm, st_end); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } if (ret == -2) { @@ -117,11 +117,11 @@ SILC_FSM_STATE(st_readwrite) } silc_fsm_next(fsm, st_end); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; err: silc_fsm_next(fsm, st_end); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(st_write) @@ -159,7 +159,7 @@ SILC_FSM_STATE(st_write) if (ret == -1) { SILC_LOG_DEBUG(("Would block, write later")); silc_fsm_next(fsm, st_readwrite); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } if (ret == -2) { @@ -179,11 +179,11 @@ SILC_FSM_STATE(st_write) SILC_LOG_DEBUG(("Continue to next state")); silc_fsm_next(fsm, st_readwrite); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; err: silc_fsm_next(fsm, st_end); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } static void fsm_dest(SilcFSM fsm, void *fsm_context, void *context) diff --git a/lib/silcutil/tests/test_silcfsm.c b/lib/silcutil/tests/test_silcfsm.c index df11891b..5432d418 100644 --- a/lib/silcutil/tests/test_silcfsm.c +++ b/lib/silcutil/tests/test_silcfsm.c @@ -11,7 +11,7 @@ typedef struct FooStruct *Foo; typedef struct { SilcFSMThreadStruct thread; - SilcFSMSemaStruct sema; + SilcFSMEventStruct sema; SilcBool finished; int rounds; Foo f; @@ -22,7 +22,7 @@ struct FooStruct { SilcFSM fsm; SilcFSMThreadStruct thread; int timeout; - SilcFSMSemaStruct sema; + SilcFSMEventStruct sema; SilcSchedule schedule; Callback cb; void *cb_context; @@ -75,7 +75,7 @@ SILC_FSM_STATE(test_st_start) /** Move to second state */ SILC_LOG_DEBUG(("Move to next state")); silc_fsm_next(fsm, test_st_second); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_second) @@ -85,7 +85,7 @@ SILC_FSM_STATE(test_st_second) /** Move to second timeout state, timeout */ SILC_LOG_DEBUG(("Move to next state with 2 second timeout")); silc_fsm_next_later(fsm, test_st_second_timeout, 2, 0); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_TASK_CALLBACK(test_second_timeout) @@ -111,7 +111,7 @@ SILC_FSM_STATE(test_st_second_timeout) silc_fsm_next_later(fsm, test_st_third, 3, 0); silc_schedule_task_add_timeout(silc_fsm_get_schedule(fsm), test_second_timeout, f, 2, 500000); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } static void async_call_cb(void *context) @@ -167,7 +167,7 @@ SILC_FSM_STATE(test_thread_st_start) /** Move to final state, timeout */ SILC_LOG_DEBUG(("Move to final state with %d second timeout", f->timeout)); silc_fsm_next_later(fsm, test_thread_st_finish, f->timeout, 0); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_FSM_STATE(test_thread_st_finish) @@ -175,7 +175,7 @@ SILC_FSM_STATE(test_thread_st_finish) SILC_LOG_DEBUG(("test_thread_st_finish")); SILC_LOG_DEBUG(("Finishing the thread")); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(test_st_fifth) @@ -187,8 +187,8 @@ SILC_FSM_STATE(test_st_fifth) f->timeout = 7; - SILC_LOG_DEBUG(("Creating FSM semaphore")); - silc_fsm_sema_init(&f->sema, fsm, 0); + SILC_LOG_DEBUG(("Creating FSM event")); + silc_fsm_event_init(&f->sema, fsm); SILC_LOG_DEBUG(("Creating FSM thread")); silc_fsm_thread_init(&f->thread, fsm, f, NULL, NULL, TRUE); @@ -198,8 +198,8 @@ SILC_FSM_STATE(test_st_fifth) /** Waiting thread to terminate, timeout */ SILC_LOG_DEBUG(("Waiting for thread to terminate for 5 seconds")); silc_fsm_next(fsm, test_st_sixth); - SILC_FSM_SEMA_TIMEDWAIT(&f->sema, 5, 0, NULL); - return SILC_FSM_CONTINUE; + SILC_FSM_EVENT_TIMEDWAIT(&f->sema, 5, 0, NULL); + SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_thread2_st_start) @@ -211,7 +211,7 @@ SILC_FSM_STATE(test_thread2_st_start) /** Move to final state, timeout */ SILC_LOG_DEBUG(("Move to final state with %d second timeout", f->timeout)); silc_fsm_next_later(fsm, test_thread2_st_finish, f->timeout, 0); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_FSM_STATE(test_thread2_st_finish) @@ -220,10 +220,10 @@ SILC_FSM_STATE(test_thread2_st_finish) SILC_LOG_DEBUG(("test_thread2_st_finish")); SILC_LOG_DEBUG(("Post semaphore")); - SILC_FSM_SEMA_POST(&f->sema); + SILC_FSM_EVENT_SIGNAL(&f->sema); SILC_LOG_DEBUG(("Finishing the thread")); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(test_st_sixth) @@ -235,7 +235,7 @@ SILC_FSM_STATE(test_st_sixth) /** Move to next state, timeout */ SILC_LOG_DEBUG(("Continue to next state with 4 second timeout")); silc_fsm_next_later(fsm, test_st_seventh, 4, 0); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_FSM_STATE(test_thread3_st_start) @@ -243,15 +243,15 @@ SILC_FSM_STATE(test_thread3_st_start) T *t = fsm_context; if (t->rounds == 0) { - SILC_FSM_SEMA_POST(&t->sema); - return SILC_FSM_FINISH; + SILC_FSM_EVENT_SIGNAL(&t->sema); + SILC_FSM_FINISH; } t->rounds--; /** Call in recursive */ silc_fsm_next(fsm, test_thread3_st_start); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_seventh) @@ -266,7 +266,7 @@ SILC_FSM_STATE(test_st_seventh) for (i = 0; i < NUM_THREADS; i++) { f->threads[i].rounds = 10; f->threads[i].f = f; - silc_fsm_sema_init(&f->threads[i].sema, fsm, 0); + silc_fsm_event_init(&f->threads[i].sema, fsm); silc_fsm_thread_init(&f->threads[i].thread, fsm, &f->threads[i], NULL, NULL, FALSE); silc_fsm_start(&f->threads[i].thread, test_thread3_st_start); @@ -274,7 +274,7 @@ SILC_FSM_STATE(test_st_seventh) /** Move to wait threads */ silc_fsm_next(fsm, test_st_eighth); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_eighth) @@ -284,7 +284,7 @@ SILC_FSM_STATE(test_st_eighth) for (i = 0; i < NUM_THREADS; i++) { if (f->threads[i].finished == FALSE) { - SILC_FSM_SEMA_WAIT(&f->threads[i].sema); + SILC_FSM_EVENT_WAIT(&f->threads[i].sema); f->threads[i].finished = TRUE; } } @@ -293,7 +293,7 @@ SILC_FSM_STATE(test_st_eighth) /** Move to next thread */ silc_fsm_next(fsm, test_st_ninth); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_thread4_st_start) @@ -301,15 +301,15 @@ SILC_FSM_STATE(test_thread4_st_start) T *t = fsm_context; if (t->rounds == 0) { - SILC_FSM_SEMA_POST(&t->sema); - return SILC_FSM_FINISH; + SILC_FSM_EVENT_SIGNAL(&t->sema); + SILC_FSM_FINISH; } t->rounds--; /** Call in recursive */ silc_fsm_next(fsm, test_thread4_st_start); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_ninth) @@ -319,14 +319,14 @@ SILC_FSM_STATE(test_st_ninth) SILC_LOG_DEBUG(("test_st_ninth")); - SILC_LOG_DEBUG(("Creating FSM semaphore")); - silc_fsm_sema_init(&f->sema, fsm, NUM_THREADS + 1); + SILC_LOG_DEBUG(("Creating FSM event")); + silc_fsm_event_init(&f->sema, fsm); SILC_LOG_DEBUG(("Creating %d real FSM threads", NUM_THREADS)); for (i = 0; i < NUM_THREADS; i++) { f->threads2[i].rounds = 10; f->threads2[i].f = f; - silc_fsm_sema_init(&f->threads2[i].sema, fsm, 0); + silc_fsm_event_init(&f->threads2[i].sema, fsm); silc_fsm_thread_init(&f->threads2[i].thread, fsm, &f->threads2[i], NULL, NULL, TRUE); silc_fsm_start(&f->threads2[i].thread, test_thread4_st_start); @@ -334,7 +334,7 @@ SILC_FSM_STATE(test_st_ninth) /** Move to wait threads */ silc_fsm_next(fsm, test_st_tenth); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_tenth) @@ -344,7 +344,7 @@ SILC_FSM_STATE(test_st_tenth) for (i = 0; i < NUM_THREADS; i++) if (f->threads2[i].finished == FALSE) { - SILC_FSM_SEMA_WAIT(&f->threads2[i].sema); + SILC_FSM_EVENT_WAIT(&f->threads2[i].sema); f->threads2[i].finished = TRUE; } @@ -352,7 +352,7 @@ SILC_FSM_STATE(test_st_tenth) /** Finished successfully */ silc_fsm_next_later(fsm, test_st_finish, 2, 0); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } SILC_FSM_STATE(test_st_finish) @@ -360,7 +360,7 @@ SILC_FSM_STATE(test_st_finish) SILC_LOG_DEBUG(("test_st_finish")); SILC_LOG_DEBUG(("Finish machine")); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } static void destructor(SilcFSM fsm, void *fsm_context, diff --git a/lib/silcutil/tests/test_silcnet.c b/lib/silcutil/tests/test_silcnet.c index 91585858..246d56bf 100644 --- a/lib/silcutil/tests/test_silcnet.c +++ b/lib/silcutil/tests/test_silcnet.c @@ -6,7 +6,7 @@ SilcSchedule schedule; typedef struct { SilcFSM fsm; - SilcFSMSemaStruct sema; + SilcFSMEventStruct sema; SilcFSMThreadStruct thread; SilcNetListener server; SilcStream client_stream; @@ -30,7 +30,7 @@ static void test_accept_connection(SilcNetStatus status, SilcStream stream, SILC_LOG_DEBUG(("Accepted new connection")); f->client_status = status; f->client_stream = stream; - SILC_FSM_SEMA_POST(&f->sema); + SILC_FSM_EVENT_SIGNAL(&f->sema); } static void test_connected(SilcNetStatus status, SilcStream stream, @@ -66,13 +66,13 @@ SILC_FSM_STATE(test_st_connected) if (f->server_status != SILC_NET_OK) { SILC_LOG_DEBUG(("Creating connection failed")); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } silc_socket_stream_get_info(f->server_stream, NULL, &host, &ip, &port); SILC_LOG_DEBUG(("Connected to server %s, %s:%d", host, ip, port)); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } SILC_FSM_STATE(test_st_start) @@ -89,7 +89,7 @@ SILC_FSM_STATE(test_st_start) /** Creating network listener failed */ SILC_LOG_DEBUG(("Listener creation failed")); silc_fsm_next(fsm, test_st_finish); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Create thread to connect to the listener */ @@ -98,9 +98,9 @@ SILC_FSM_STATE(test_st_start) /** Start waiting connection */ SILC_LOG_DEBUG(("Start waiting for incoming connections")); - silc_fsm_sema_init(&f->sema, fsm, 0); + silc_fsm_event_init(&f->sema, fsm); silc_fsm_next(fsm, test_st_second); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } SILC_FSM_STATE(test_st_second) @@ -111,13 +111,13 @@ SILC_FSM_STATE(test_st_second) SILC_LOG_DEBUG(("test_st_second")); - SILC_FSM_SEMA_WAIT(&f->sema); + SILC_FSM_EVENT_WAIT(&f->sema); if (f->client_status != SILC_NET_OK) { /** Accepting new connection failed */ SILC_LOG_DEBUG(("Accepting failed %d", f->client_status)); silc_fsm_next(fsm, test_st_finish); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } silc_socket_stream_get_info(f->client_stream, NULL, &host, &ip, &port); @@ -148,7 +148,7 @@ SILC_FSM_STATE(test_st_finish) silc_net_close_listener(f->server); SILC_LOG_DEBUG(("Finish machine")); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } static void destructor(SilcFSM fsm, void *fsm_context, -- 2.24.0