X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=apps%2Fsilc%2Fclient_ops.c;h=19dbb519c25741e10976790412e86d85af51061d;hb=a818c5b5411bbc4436d1c5f011236985c96bb787;hp=47761266bedf11c78c0142df67e0746fca660953;hpb=01f3ed70ac686777ebfb992e062d65f2322d8998;p=silc.git diff --git a/apps/silc/client_ops.c b/apps/silc/client_ops.c index 47761266..19dbb519 100644 --- a/apps/silc/client_ops.c +++ b/apps/silc/client_ops.c @@ -23,7 +23,7 @@ static bool silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, SilcSocketType conn_type, unsigned char *pk, - uint32 pk_len, SilcSKEPKType pk_type) + SilcUInt32 pk_len, SilcSKEPKType pk_type) { int i; char file[256], filename[256], *fingerprint; @@ -89,7 +89,7 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, /* The key already exists, verify it. */ SilcPublicKey public_key; unsigned char *encpk; - uint32 encpk_len; + SilcUInt32 encpk_len; /* Load the key file */ if (!silc_pkcs_load_public_key(filename, &public_key, @@ -177,12 +177,30 @@ silc_verify_public_key_internal(SilcClient client, SilcClientConnection conn, return FALSE; } +void silc_say(SilcClient client, SilcClientConnection conn, + char *msg, ...) +{ + va_list vp; + char message[2048]; + SilcClientInternal app = (SilcClientInternal)client->application; + + memset(message, 0, sizeof(message)); + strncat(message, "\n*** ", 5); + + va_start(vp, msg); + vsprintf(message + 5, msg, vp); + va_end(vp); + + /* Print the message */ + silc_print_to_window(app->screen->output_win[0], message); +} + /* Prints a message with three star (*) sign before the actual message on the current output window. This is used to print command outputs and error messages. */ -void silc_say(SilcClient client, SilcClientConnection conn, - char *msg, ...) +void silc_op_say(SilcClient client, SilcClientConnection conn, + SilcClientMessageType type, char *msg, ...) { va_list vp; char message[2048]; @@ -261,7 +279,7 @@ void silc_notify(SilcClient client, SilcClientConnection conn, SilcClientEntry client_entry, client_entry2; SilcChannelEntry channel_entry; char *tmp = NULL; - uint32 tmp_int; + SilcUInt32 tmp_int; va_start(vp, type); @@ -358,7 +376,7 @@ void silc_notify(SilcClient client, SilcClientConnection conn, case SILC_NOTIFY_TYPE_CMODE_CHANGE: client_entry = va_arg(vp, SilcClientEntry); - tmp_int = va_arg(vp, uint32); + tmp_int = va_arg(vp, SilcUInt32); (void)va_arg(vp, char *); (void)va_arg(vp, char *); channel_entry = va_arg(vp, SilcChannelEntry); @@ -394,7 +412,7 @@ void silc_notify(SilcClient client, SilcClientConnection conn, case SILC_NOTIFY_TYPE_CUMODE_CHANGE: client_entry = va_arg(vp, SilcClientEntry); - tmp_int = va_arg(vp, uint32); + tmp_int = va_arg(vp, SilcUInt32); tmp = silc_client_chumode(tmp_int); client_entry2 = va_arg(vp, SilcClientEntry); channel_entry = va_arg(vp, SilcChannelEntry); @@ -483,12 +501,12 @@ void silc_notify(SilcClient client, SilcClientConnection conn, case SILC_NOTIFY_TYPE_SERVER_SIGNOFF: { SilcClientEntry *clients; - uint32 clients_count; + SilcUInt32 clients_count; int i; (void)va_arg(vp, void *); clients = va_arg(vp, SilcClientEntry *); - clients_count = va_arg(vp, uint32); + clients_count = va_arg(vp, SilcUInt32); for (i = 0; i < clients_count; i++) { if (clients[i]->server) @@ -553,7 +571,7 @@ void silc_command(SilcClient client, SilcClientConnection conn, void silc_client_show_users(SilcClient client, SilcClientConnection conn, SilcClientEntry *clients, - uint32 clients_count, + SilcUInt32 clients_count, void *context) { SilcChannelEntry channel = (SilcChannelEntry)context; @@ -592,7 +610,7 @@ void silc_client_show_users(SilcClient client, k++; } - client->ops->say(client, conn, "Users on %s: %s", channel->channel_name, + silc_say(client, conn, "Users on %s: %s", channel->channel_name, name_list); silc_free(name_list); } @@ -629,7 +647,7 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, { char buf[1024], *nickname, *username, *realname; int len; - uint32 idle, mode; + SilcUInt32 idle, mode; SilcBuffer channels; if (status == SILC_STATUS_ERR_NO_SUCH_NICK || @@ -638,10 +656,10 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, tmp = silc_argument_get_arg_type(silc_command_get_args(cmd_payload), 3, NULL); if (tmp) - client->ops->say(client, conn, "%s: %s", tmp, + silc_say(client, conn, "%s: %s", tmp, silc_client_command_status_message(status)); else - client->ops->say(client, conn, "%s", + silc_say(client, conn, "%s", silc_client_command_status_message(status)); break; } @@ -654,8 +672,8 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, username = va_arg(vp, char *); realname = va_arg(vp, char *); channels = va_arg(vp, SilcBuffer); - mode = va_arg(vp, uint32); - idle = va_arg(vp, uint32); + mode = va_arg(vp, SilcUInt32); + idle = va_arg(vp, SilcUInt32); memset(buf, 0, sizeof(buf)); @@ -675,7 +693,7 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, strncat(buf, ")", 1); } - client->ops->say(client, conn, "%s", buf); + silc_say(client, conn, "%s", buf); if (channels) { SilcDList list = silc_channel_payload_parse_list(channels); @@ -688,7 +706,7 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, silc_dlist_start(list); while ((entry = silc_dlist_get(list)) != SILC_LIST_END) { char *m = silc_client_chumode_char(silc_channel_get_mode(entry)); - uint32 name_len; + SilcUInt32 name_len; char *name = silc_channel_get_name(entry, &name_len); if (m) @@ -698,7 +716,7 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, silc_free(m); } - client->ops->say(client, conn, "%s", buf); + silc_say(client, conn, "%s", buf); silc_channel_payload_list_free(list); } } @@ -706,18 +724,18 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, if (mode) { if ((mode & SILC_UMODE_SERVER_OPERATOR) || (mode & SILC_UMODE_ROUTER_OPERATOR)) - client->ops->say(client, conn, "%s is %s", nickname, + silc_say(client, conn, "%s is %s", nickname, (mode & SILC_UMODE_SERVER_OPERATOR) ? "Server Operator" : (mode & SILC_UMODE_ROUTER_OPERATOR) ? "SILC Operator" : "[Unknown mode]"); if (mode & SILC_UMODE_GONE) - client->ops->say(client, conn, "%s is gone", nickname); + silc_say(client, conn, "%s is gone", nickname); } if (idle && nickname) - client->ops->say(client, conn, "%s has been idle %d %s", + silc_say(client, conn, "%s has been idle %d %s", nickname, idle > 60 ? (idle / 60) : idle, idle > 60 ? "minutes" : "seconds"); @@ -735,10 +753,10 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, tmp = silc_argument_get_arg_type(silc_command_get_args(cmd_payload), 3, NULL); if (tmp) - client->ops->say(client, conn, "%s: %s", tmp, + silc_say(client, conn, "%s: %s", tmp, silc_client_command_status_message(status)); else - client->ops->say(client, conn, "%s", + silc_say(client, conn, "%s", silc_client_command_status_message(status)); break; } @@ -769,7 +787,7 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, strncat(buf, ")", 1); } - client->ops->say(client, conn, "%s", buf); + silc_say(client, conn, "%s", buf); } break; @@ -795,10 +813,10 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, case SILC_COMMAND_JOIN: { - uint32 mode; + SilcUInt32 mode; char *topic; SilcBuffer client_id_list; - uint32 list_count; + SilcUInt32 list_count; SilcChannelEntry channel; if (!success) @@ -806,18 +824,18 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, app->screen->bottom_line->channel = va_arg(vp, char *); channel = va_arg(vp, SilcChannelEntry); - mode = va_arg(vp, uint32); - (void)va_arg(vp, uint32); + mode = va_arg(vp, SilcUInt32); + (void)va_arg(vp, SilcUInt32); (void)va_arg(vp, unsigned char *); (void)va_arg(vp, unsigned char *); (void)va_arg(vp, unsigned char *); topic = va_arg(vp, char *); (void)va_arg(vp, unsigned char *); - list_count = va_arg(vp, uint32); + list_count = va_arg(vp, SilcUInt32); client_id_list = va_arg(vp, SilcBuffer); if (topic) - client->ops->say(client, conn, "Topic for %s: %s", + silc_say(client, conn, "Topic for %s: %s", app->screen->bottom_line->channel, topic); app->screen->bottom_line->channel_mode = @@ -898,12 +916,12 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, case SILC_COMMAND_UMODE: { - uint32 mode; + SilcUInt32 mode; if (!success) return; - mode = va_arg(vp, uint32); + mode = va_arg(vp, SilcUInt32); if (!mode && app->screen->bottom_line->umode) { silc_free(app->screen->bottom_line->umode); @@ -1057,9 +1075,9 @@ void silc_command_reply(SilcClient client, SilcClientConnection conn, void *entry; SilcPublicKey public_key; unsigned char *pk; - uint32 pk_len; + SilcUInt32 pk_len; - id_type = va_arg(vp, uint32); + id_type = va_arg(vp, SilcUInt32); entry = va_arg(vp, void *); public_key = va_arg(vp, SilcPublicKey); @@ -1175,7 +1193,7 @@ void silc_ask_passphrase(SilcClient client, SilcClientConnection conn, void silc_verify_public_key(SilcClient client, SilcClientConnection conn, SilcSocketType conn_type, unsigned char *pk, - uint32 pk_len, SilcSKEPKType pk_type, + SilcUInt32 pk_len, SilcSKEPKType pk_type, SilcVerifyPublicKey completion, void *context) { if (silc_verify_public_key_internal(client, conn, conn_type, pk, @@ -1194,10 +1212,10 @@ void silc_verify_public_key(SilcClient client, SilcClientConnection conn, is found and FALSE if not. `conn' may be NULL. */ int silc_get_auth_method(SilcClient client, SilcClientConnection conn, - char *hostname, uint16 port, + char *hostname, SilcUInt16 port, SilcProtocolAuthMeth *auth_meth, unsigned char **auth_data, - uint32 *auth_data_len) + SilcUInt32 *auth_data_len) { SilcClientInternal app = (SilcClientInternal)client->application; @@ -1267,7 +1285,7 @@ void silc_failure(SilcClient client, SilcClientConnection conn, } if (protocol->protocol->type == SILC_PROTOCOL_CLIENT_CONNECTION_AUTH) { - uint32 err = (uint32)failure; + SilcUInt32 err = (SilcUInt32)failure; if (err == SILC_AUTH_FAILED) silc_say(client, conn, "Authentication failed"); @@ -1308,7 +1326,7 @@ int silc_key_agreement(SilcClient client, SilcClientConnection conn, /* SILC client operations */ SilcClientOperations ops = { - silc_say, + silc_op_say, silc_channel_message, silc_private_message, silc_notify,