SILC FSM API changes.
authorPekka Riikonen <priikone@silcnet.org>
Sat, 23 Dec 2006 17:53:32 +0000 (17:53 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sat, 23 Dec 2006 17:53:32 +0000 (17:53 +0000)
15 files changed:
lib/silcserver/server.c
lib/silcserver/server_internal.h
lib/silcserver/server_st_accept.c
lib/silcserver/server_st_command.c
lib/silcserver/server_st_command_reply.c
lib/silcserver/server_st_connect.c
lib/silcserver/server_st_notify.c
lib/silcserver/server_st_packet.c
lib/silcserver/server_st_query.c
lib/silcske/silcconnauth.c
lib/silcske/silcske.c
lib/silcutil/tests/test_silcasync.c
lib/silcutil/tests/test_silcfdstream.c
lib/silcutil/tests/test_silcfsm.c
lib/silcutil/tests/test_silcnet.c

index 756030e0e89a851e8d52868d01e60436b7b08be6..46baa97d6a6e4273e3e09c7fdcb789f4917ed67e 100644 (file)
@@ -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 */
index 80ffe34a3d754763185338dd0150a418c140b2a1..e1c5d9f00457991905bb22ba4bfb02d7997c4fa3 100644 (file)
@@ -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 */
index 07a83ecf1e0a248bd2476583849784157b62c551..cad6f55fb5b106b8814563bad2a374bfbaa7baed 100644 (file)
@@ -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;
 }
index 62779e084b0eda67b257eff212676e1039c7b302..39baac420d1ba47a18fc03ba612be7c0ac4e943b 100644 (file)
@@ -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;
 }
index 83ddfd0686895d4411b75be508085c932a8b31ae..558d2f492b6448f957c75f96168708443e5d0696 100644 (file)
@@ -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;
 }
index aeca05996ba2658c4a6ab14f7654483c394abb97..e29de086e3c2e444a84bd2ea10f5018beca6493f 100644 (file)
@@ -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;
 }
index 73c7aea0c2e3a3c2c21b3754d305a4e65e6b23b0..06b57dfb0e0126eac20a4e40950e48ceb02a79e6 100644 (file)
@@ -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;
 }
index e8676ca829b696adb7077fe702812c8ee5d65e70..5f0f3caf158bc795ee012a8ba10d25572b44afc4 100644 (file)
@@ -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;
 }
index c940ba04a4455830ff05b01ca8b5f1980ddda8a7..8c9a1aab6b10b8ae42749e395cef67b158af26f9 100644 (file)
@@ -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;
 
 }
 
index e47be82b56fcf9206098f5bb9b2f5604d055451c..0f417d3304dc905ba623b1f120d7b6e00ab9f023 100644 (file)
@@ -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
index f554e3b0f6becccf430e63864f85b59d43d11df2..d49d9ccb040a412e82d7abbdc6b96198bf6ae791 100644 (file)
@@ -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,
index 0a1fecc8a1478d55a1cdebf68ea0c0de3868c865..96210e08df50431c2286fb000f8070e5b5163841 100644 (file)
@@ -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,
index e4d53a59e7316d327107c6c8a8875ded929b7f14..c0039b1ce5f73d72deef4b6035e42bc5751f06b4 100644 (file)
@@ -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)
index df11891ba2bb90c1b817355a51340a9c8fc96dcf..5432d418c9fc5e6179060515668c0a0083a99ec3 100644 (file)
@@ -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,
index 9158585809677f3193cdc0bccf6b40c28e6077eb..246d56bf3b7a04ce9cd5d35963a1e76e9bef52e8 100644 (file)
@@ -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,