/** 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);
/** 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,
/** 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. */
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++;
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));
/** 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);
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"));
/** 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);
/** 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 */
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"));
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 ?
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 */
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 */
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);
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 */
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
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
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)
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 */
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));
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 */
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) {
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) {
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);
/** 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);
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 */
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 */
/** 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. */
/** 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)
/** 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)
#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 */
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 */
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) {
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 */
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 */
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 */
/** 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
/** 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)
SILC_LOG_DEBUG(("New connection accepted"));
- return SILC_FSM_FINISH;
+ SILC_FSM_FINISH;
}
SILC_FSM_STATE(silc_server_st_accept_error)
if (ac->connauth)
server->stat.auth_failures++;
- return SILC_FSM_FINISH;
+ SILC_FSM_FINISH;
}