Added preliminary Symbian support.
[silc.git] / tutorial / mybot / mybot.c
index f6297c4481fd2b1672c1e2205d8d411ec7b59ead..6e689d061cb106239301ed1a5f60d76a15abfcef 100644 (file)
@@ -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;
@@ -166,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);
 }
 
 
@@ -182,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)
 {
@@ -301,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);
@@ -331,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");
 }