X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=lib%2Fsilcclient%2Fcommand.c;h=a10505566f57608c2d79d2461f0efa8b9a7be83c;hb=49bd4f6cd6a28a9bcb8081eaef48567538ba486f;hp=602c527805f3c90f23a7ecd769a256e9e1c6f8e3;hpb=22df1889422ee8031d08d1d6f08117c79dbade96;p=silc.git diff --git a/lib/silcclient/command.c b/lib/silcclient/command.c index 602c5278..a1050556 100644 --- a/lib/silcclient/command.c +++ b/lib/silcclient/command.c @@ -68,7 +68,7 @@ static SilcUInt16 silc_client_cmd_ident(SilcClientConnection conn) SILC_FSM_STATE(silc_client_command_continue_error) { /* Destructor will free all resources */ - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Command reply callback to continue with the execution of a command. @@ -626,7 +626,7 @@ SILC_FSM_STATE(silc_client_command_whois) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } for (i = 1; i < cmd->argc; i++) { @@ -717,10 +717,10 @@ SILC_FSM_STATE(silc_client_command_whois) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /******************************** WHOWAS ************************************/ @@ -740,7 +740,7 @@ SILC_FSM_STATE(silc_client_command_whowas) "Usage: /WHOWAS [@] []"); COMMAND_ERROR((cmd->argc < 2 ? SILC_STATUS_ERR_NOT_ENOUGH_PARAMS : SILC_STATUS_ERR_TOO_MANY_PARAMS)); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } if (cmd->argc == 2) { @@ -759,7 +759,7 @@ SILC_FSM_STATE(silc_client_command_whowas) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /******************************** IDENTIFY **********************************/ @@ -775,7 +775,7 @@ SILC_FSM_STATE(silc_client_command_identify) int c; if (cmd->argc < 2 || cmd->argc > 3) - return SILC_FSM_FINISH; + SILC_FSM_FINISH; if (cmd->argc == 2) { silc_client_command_send_va(conn, cmd, cmd->cmd, NULL, NULL, @@ -790,7 +790,7 @@ SILC_FSM_STATE(silc_client_command_identify) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** NICK ************************************/ @@ -840,10 +840,10 @@ SILC_FSM_STATE(silc_client_command_nick) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************** LIST ************************************/ @@ -877,7 +877,7 @@ SILC_FSM_STATE(silc_client_command_list) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** TOPIC ***********************************/ @@ -940,10 +940,10 @@ SILC_FSM_STATE(silc_client_command_topic) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************* INVITE ***********************************/ @@ -993,10 +993,7 @@ SILC_FSM_STATE(silc_client_command_invite) /* Parse the typed nickname. */ if (cmd->argc == 3) { if (cmd->argv[2][0] != '+' && cmd->argv[2][0] != '-') { - if (client->internal->params->nickname_parse) - client->internal->params->nickname_parse(cmd->argv[2], &nickname); - else - nickname = strdup(cmd->argv[2]); + silc_client_nickname_parse(client, conn, cmd->argv[2], &nickname); /* Find client entry */ clients = silc_client_get_clients_local(client, conn, nickname, @@ -1067,11 +1064,11 @@ SILC_FSM_STATE(silc_client_command_invite) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: silc_free(nickname); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************** QUIT ************************************/ @@ -1098,10 +1095,10 @@ SILC_FSM_STATE(silc_client_command_quit_final) /* Signal to close connection */ if (!conn->internal->disconnected) { conn->internal->disconnected = TRUE; - SILC_FSM_SEMA_POST(&conn->internal->wait_event); + SILC_FSM_EVENT_SIGNAL(&conn->internal->wait_event); } - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Command QUIT. Closes connection with current server. */ @@ -1122,7 +1119,7 @@ SILC_FSM_STATE(silc_client_command_quit) /* We close the connection with a little timeout */ silc_fsm_next_later(fsm, silc_client_command_quit_final, 2, 0); - return SILC_FSM_WAIT; + SILC_FSM_WAIT; } /********************************** KILL ************************************/ @@ -1145,16 +1142,12 @@ SILC_FSM_STATE(silc_client_command_kill) SAY(conn->client, conn, SILC_CLIENT_MESSAGE_INFO, "Usage: /KILL [] [-pubkey]"); COMMAND_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Parse the typed nickname. */ - if (client->internal->params->nickname_parse) - client->internal->params->nickname_parse(cmd->argv[1], &nickname); - else - nickname = strdup(cmd->argv[1]); - if (!nickname) - return SILC_FSM_FINISH; + if (!silc_client_nickname_parse(client, conn, cmd->argv[1], &nickname)) + SILC_FSM_FINISH; /* Get the target client */ clients = silc_client_get_clients_local(client, conn, nickname, @@ -1199,7 +1192,7 @@ SILC_FSM_STATE(silc_client_command_kill) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** INFO ************************************/ @@ -1224,7 +1217,7 @@ SILC_FSM_STATE(silc_client_command_info) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** STATS ***********************************/ @@ -1246,7 +1239,7 @@ SILC_FSM_STATE(silc_client_command_stats) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** PING ************************************/ @@ -1260,7 +1253,7 @@ SILC_FSM_STATE(silc_client_command_ping) if (cmd->argc < 2) { COMMAND_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Send the command */ @@ -1276,7 +1269,7 @@ SILC_FSM_STATE(silc_client_command_ping) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** JOIN ************************************/ @@ -1391,10 +1384,10 @@ SILC_FSM_STATE(silc_client_command_join) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************** MOTD ************************************/ @@ -1411,7 +1404,7 @@ SILC_FSM_STATE(silc_client_command_motd) "Usage: /MOTD []"); COMMAND_ERROR((cmd->argc < 1 ? SILC_STATUS_ERR_NOT_ENOUGH_PARAMS : SILC_STATUS_ERR_TOO_MANY_PARAMS)); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Send the command */ @@ -1428,7 +1421,7 @@ SILC_FSM_STATE(silc_client_command_motd) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** UMODE ***********************************/ @@ -1448,7 +1441,7 @@ SILC_FSM_STATE(silc_client_command_umode) SAY(conn->client, conn, SILC_CLIENT_MESSAGE_INFO, "Usage: /UMODE +|-"); COMMAND_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } mode = conn->local_entry->mode; @@ -1549,7 +1542,7 @@ SILC_FSM_STATE(silc_client_command_umode) break; default: COMMAND_ERROR(SILC_STATUS_ERR_UNKNOWN_MODE); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; break; } } @@ -1567,7 +1560,7 @@ SILC_FSM_STATE(silc_client_command_umode) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** CMODE ***********************************/ @@ -1860,10 +1853,10 @@ SILC_FSM_STATE(silc_client_command_cmode) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************* CUMODE ***********************************/ @@ -1910,10 +1903,7 @@ SILC_FSM_STATE(silc_client_command_cumode) } /* Parse the typed nickname. */ - if (client->internal->params->nickname_parse) - client->internal->params->nickname_parse(cmd->argv[3], &nickname); - else - nickname = strdup(cmd->argv[3]); + silc_client_nickname_parse(client, conn, cmd->argv[3], &nickname); /* Find client entry */ clients = silc_client_get_clients_local(client, conn, nickname, @@ -2042,12 +2032,12 @@ SILC_FSM_STATE(silc_client_command_cumode) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: silc_client_list_free(client, conn, clients); silc_free(nickname); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************** KICK ************************************/ @@ -2096,10 +2086,7 @@ SILC_FSM_STATE(silc_client_command_kick) } /* Parse the typed nickname. */ - if (client->internal->params->nickname_parse) - client->internal->params->nickname_parse(cmd->argv[2], &nickname); - else - nickname = strdup(cmd->argv[2]); + silc_client_nickname_parse(client, conn, cmd->argv[2], &nickname); /* Get the target client */ clients = silc_client_get_clients_local(client, conn, nickname, @@ -2135,11 +2122,11 @@ SILC_FSM_STATE(silc_client_command_kick) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: silc_free(nickname); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /***************************** OPER & SILCOPER ******************************/ @@ -2204,7 +2191,7 @@ SILC_FSM_STATE(silc_client_command_oper_send) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* OPER command. Used to obtain server operator privileges. */ @@ -2219,14 +2206,14 @@ SILC_FSM_STATE(silc_client_command_oper) SAY(conn->client, conn, SILC_CLIENT_MESSAGE_INFO, "Usage: /OPER [-pubkey]"); COMMAND_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Get passphrase */ if (cmd->argc < 3) { oper = silc_calloc(1, sizeof(*oper)); if (!oper) - return SILC_FSM_FINISH; + SILC_FSM_FINISH; cmd->context = oper; SILC_FSM_CALL(conn->client->internal-> ops->ask_passphrase(conn->client, conn, @@ -2234,7 +2221,7 @@ SILC_FSM_STATE(silc_client_command_oper) } silc_fsm_next(fsm, silc_client_command_oper_send); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* SILCOPER command. Used to obtain router operator privileges. */ @@ -2249,14 +2236,14 @@ SILC_FSM_STATE(silc_client_command_silcoper) SAY(conn->client, conn, SILC_CLIENT_MESSAGE_INFO, "Usage: /SILCOPER [-pubkey]"); COMMAND_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Get passphrase */ if (cmd->argc < 3) { oper = silc_calloc(1, sizeof(*oper)); if (!oper) - return SILC_FSM_FINISH; + SILC_FSM_FINISH; cmd->context = oper; SILC_FSM_CALL(conn->client->internal-> ops->ask_passphrase(conn->client, conn, @@ -2264,7 +2251,7 @@ SILC_FSM_STATE(silc_client_command_silcoper) } silc_fsm_next(fsm, silc_client_command_oper_send); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /*********************************** BAN ************************************/ @@ -2351,10 +2338,10 @@ SILC_FSM_STATE(silc_client_command_ban) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************* DETACH ***********************************/ @@ -2373,7 +2360,7 @@ SILC_FSM_STATE(silc_client_command_detach) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************** WATCH ***********************************/ @@ -2445,10 +2432,10 @@ SILC_FSM_STATE(silc_client_command_watch) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************** LEAVE ***********************************/ @@ -2503,10 +2490,10 @@ SILC_FSM_STATE(silc_client_command_leave) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************** USERS ***********************************/ @@ -2546,10 +2533,10 @@ SILC_FSM_STATE(silc_client_command_users) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; out: - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /********************************* GETKEY ***********************************/ @@ -2571,17 +2558,13 @@ SILC_FSM_STATE(silc_client_command_getkey) client->internal->ops->say(client, conn, SILC_CLIENT_MESSAGE_INFO, "Usage: /GETKEY "); COMMAND_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Parse the typed nickname. */ - if (client->internal->params->nickname_parse) - client->internal->params->nickname_parse(cmd->argv[1], &nickname); - else - nickname = strdup(cmd->argv[1]); - if (!nickname) { + if (!silc_client_nickname_parse(client, conn, cmd->argv[1], &nickname)) { COMMAND_ERROR(SILC_STATUS_ERR_RESOURCE_LIMIT); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Find client entry */ @@ -2596,7 +2579,7 @@ SILC_FSM_STATE(silc_client_command_getkey) errors are handled in the resolving callback. */ COMMAND_ERROR(SILC_STATUS_ERR_NO_SUCH_NICK); COMMAND_ERROR(SILC_STATUS_ERR_NO_SUCH_SERVER); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* No client or server exist with this name, query for both. */ @@ -2631,7 +2614,7 @@ SILC_FSM_STATE(silc_client_command_getkey) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /********************************* SERVICE **********************************/ @@ -2651,7 +2634,7 @@ SILC_FSM_STATE(silc_client_command_service) SAY(conn->client, conn, SILC_CLIENT_MESSAGE_INFO, "Usage: /SERVICE [] [-pubkey]"); COMMAND_ERROR(SILC_STATUS_ERR_NOT_ENOUGH_PARAMS); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } name = cmd->argv[1]; @@ -2671,7 +2654,7 @@ SILC_FSM_STATE(silc_client_command_service) /** Wait for command reply */ silc_fsm_next(fsm, silc_client_command_reply_wait); - return SILC_FSM_CONTINUE; + SILC_FSM_CONTINUE; } /* Register all default commands provided by the client library for the @@ -2812,7 +2795,7 @@ SILC_FSM_STATE(silc_client_command) silc_buffer_len(&packet->buffer)); if (!payload) { SILC_LOG_DEBUG(("Bad command packet")); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; } /* Get arguments */ @@ -2824,7 +2807,7 @@ SILC_FSM_STATE(silc_client_command) case SILC_COMMAND_WHOIS: /* Ignore everything if requested by application */ - if (client->internal->params->ignore_requested_attributes) + if (conn->internal->params.ignore_requested_attributes) break; silc_client_command_process_whois(client, conn, payload, args); @@ -2835,5 +2818,5 @@ SILC_FSM_STATE(silc_client_command) } silc_command_payload_free(payload); - return SILC_FSM_FINISH; + SILC_FSM_FINISH; }