X-Git-Url: http://git.silcnet.org/gitweb/?a=blobdiff_plain;f=tutorial%2Fmybot%2Fmybot.c;h=6e689d061cb106239301ed1a5f60d76a15abfcef;hb=9905799a86c606304fd7df2cd401de1740a272a1;hp=cbb25d4d393fd0dcb249f708e972e2f2b2bc4988;hpb=86b27b598786e41e8e004467eb053220a580cdb1;p=silc.git diff --git a/tutorial/mybot/mybot.c b/tutorial/mybot/mybot.c index cbb25d4d..6e689d06 100644 --- a/tutorial/mybot/mybot.c +++ b/tutorial/mybot/mybot.c @@ -29,7 +29,7 @@ v silc_get_auth_method v - silc_connected -> silc_client_send_command (JOIN) + silc_connected -> silc_client_command_call (JOIN) v silc_command_reply -> silc_send_channel_message ("hello") v @@ -39,7 +39,7 @@ */ -#include "silcincludes.h" /* Mandatory include for SILC applications */ +#include "silc.h" /* Mandatory include for SILC applications */ #include "silcclient.h" /* SILC Client Library API */ SilcClientOperations ops; @@ -73,8 +73,7 @@ int mybot_start(void) application - our application, ie. the MyBot of course! version - silc version, provided by the library if we put NULL */ - mybot->client = silc_client_alloc(&ops, NULL, mybot, - /* NULL */"SILC-1.1-0.9.4"); + mybot->client = silc_client_alloc(&ops, NULL, mybot, NULL); if (!mybot->client) { perror("Could not allocate SILC Client"); return 1; @@ -106,8 +105,8 @@ int mybot_start(void) /* The keys don't exist. Let's generate us a key pair then! There's nice ready routine for that too. Let's do 2048 bit RSA key pair. */ fprintf(stdout, "MyBot: Key pair does not exist, generating it.\n"); - if (!silc_create_key_pair("rsa", 2048, "mybot.pub", "mybot.prv", NULL, - "", &mybot->client->pkcs, + if (!silc_create_key_pair("rsa", 2048, "mybot.pub", "mybot.prv", NULL, "", + &mybot->client->pkcs, &mybot->client->public_key, &mybot->client->private_key, FALSE)) { perror("Could not generated key pair"); @@ -167,11 +166,17 @@ silc_say(SilcClient client, SilcClientConnection conn, static void silc_channel_message(SilcClient client, SilcClientConnection conn, SilcClientEntry sender, SilcChannelEntry channel, + SilcMessagePayload payload, + SilcChannelPrivateKey key, SilcMessageFlags flags, const unsigned char *message, SilcUInt32 message_len) { /* Yay! We got a message from channel. */ - fprintf(stdout, "<%s> %s\n", sender->nickname, message); + + if (flags & SILC_MESSAGE_FLAG_SIGNED) + fprintf(stdout, "[SIGNED] <%s> %s\n", sender->nickname, message); + else + fprintf(stdout, "<%s> %s\n", sender->nickname, message); } @@ -183,7 +188,8 @@ silc_channel_message(SilcClient client, SilcClientConnection conn, static void silc_private_message(SilcClient client, SilcClientConnection conn, - SilcClientEntry sender, SilcMessageFlags flags, + SilcClientEntry sender, SilcMessagePayload payload, + SilcMessageFlags flags, const unsigned char *message, SilcUInt32 message_len) { @@ -302,6 +308,13 @@ silc_command_reply(SilcClient client, SilcClientConnection conn, silc_client_send_channel_message(client, conn, channel, NULL, 0, "hello", strlen("hello"), FALSE); fprintf(stdout, "MyBot: Sent 'hello' to channel\n"); + + /* Now send digitally signed "hello" to the channel */ + silc_client_send_channel_message(client, conn, channel, NULL, + SILC_MESSAGE_FLAG_SIGNED, + "hello, with signature", + strlen("hello, with signature"), FALSE); + fprintf(stdout, "MyBot: Sent 'hello, with signature' to channel\n"); } va_end(va); @@ -332,13 +345,8 @@ silc_connected(SilcClient client, SilcClientConnection conn, /* Save the connection context */ mybot->conn = conn; - /* Now that we are connected, send the JOIN command to the "mybot" - channel */ - idp = silc_id_payload_encode(conn->local_id, SILC_ID_CLIENT); - silc_client_command_send(client, conn, SILC_COMMAND_JOIN, 0, 2, - 1, "mybot", strlen("mybot"), - 2, idp->data, idp->len); - silc_buffer_free(idp); + /* Now that we are connected, join to mybot channel with JOIN command. */ + silc_client_command_call(client, conn, "JOIN mybot"); }