updates.
authorPekka Riikonen <priikone@silcnet.org>
Thu, 29 Mar 2001 16:31:03 +0000 (16:31 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Thu, 29 Mar 2001 16:31:03 +0000 (16:31 +0000)
CHANGES
apps/silcd/command.c
doc/draft-riikonen-silc-pp-01.nroff
lib/silccore/silcchannel.h

diff --git a/CHANGES b/CHANGES
index 87385275867827abdd7a16784760312ce2d4f54e..83f0304c1ec084bc059f902404df0d23628097ea 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -4,6 +4,9 @@ Thu Mar 29 19:10:28 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
          crashed since it did not handle the fact that there is no cipher
          called "3" and didn't check the error condition.  Now fixed.
 
+       * Added SILC_MESSAGE_FLAG_REQUEST message flag as generic request
+         flag.  It can be used to send message requests.
+
 Thu Mar 29 12:26:25 EEST 2001  Pekka Riikonen <priikone@poseidon.pspt.fi>
 
        * Implemented the RESTART command in the client.
index 0f712ea04bcee725ef4f60d754defaff0ff78287..ec42a1f6312853a748796a4955a53da0becb7294 100644 (file)
@@ -2947,6 +2947,12 @@ SILC_SERVER_CMD_FUNC(join)
       if (server->standalone) {
        channel = silc_server_create_new_channel(server, server->id, cipher, 
                                                 hmac, channel_name, TRUE);
+       if (!channel) {
+         silc_server_command_send_status_reply(cmd, SILC_COMMAND_JOIN,
+                                    SILC_STATUS_ERR_UNKNOWN_ALGORITHM);
+         goto out;
+       }
+
        umode = (SILC_CHANNEL_UMODE_CHANOP | SILC_CHANNEL_UMODE_CHANFO);
        created = TRUE;
 
@@ -2988,6 +2994,12 @@ SILC_SERVER_CMD_FUNC(join)
          /* Channel really does not exist, create it */
          channel = silc_server_create_new_channel(server, server->id, cipher, 
                                                   hmac, channel_name, TRUE);
+         if (!channel) {
+           silc_server_command_send_status_reply(cmd, SILC_COMMAND_JOIN,
+                                      SILC_STATUS_ERR_UNKNOWN_ALGORITHM);
+           goto out;
+         }
+
          umode = (SILC_CHANNEL_UMODE_CHANOP | SILC_CHANNEL_UMODE_CHANFO);
          created = TRUE;
        }
@@ -3012,6 +3024,12 @@ SILC_SERVER_CMD_FUNC(join)
        /* Channel really does not exist, create it */
        channel = silc_server_create_new_channel(server, server->id, cipher, 
                                                 hmac, channel_name, TRUE);
+       if (!channel) {
+         silc_server_command_send_status_reply(cmd, SILC_COMMAND_JOIN,
+                                      SILC_STATUS_ERR_UNKNOWN_ALGORITHM);
+         goto out;
+       }
+
        umode = (SILC_CHANNEL_UMODE_CHANOP | SILC_CHANNEL_UMODE_CHANFO);
        created = TRUE;
       }
index b289427d4f6a9f987dbed5d651297f09e1b76b51..2920bd8c2c6104ecae247d67e9823746288e3323 100644 (file)
@@ -1493,7 +1493,12 @@ o Flags (2 bytes) - Includes the flags of the channel
           The message is for example and informational notice
           type message.
 
-  0x0010 - 0x0200 RESERVED
+  0x0010  SILC_MESSAGE_FLAG_REQUEST
+
+          This is a generic request flag to send request
+          messages.
+
+  0x0020 - 0x0200 RESERVED
 
           Reserved for future flags
 
index 53b249901b84697eee41bd03b5f761c9419937d4..813ad69437c4c64596da9e140c3195cc623d5106 100644 (file)
@@ -44,7 +44,8 @@ typedef unsigned short SilcMessageFlags;
 #define SILC_MESSAGE_FLAG_NOREPLY     0x0002
 #define SILC_MESSAGE_FLAG_ACTION      0x0004
 #define SILC_MESSAGE_FLAG_NOTICE      0x0008
-#define SILC_MESSAGE_FLAG_RESERVED    0x0010 /* to 0x0200 */
+#define SILC_MESSAGE_FLAG_REQUEST     0x0010
+#define SILC_MESSAGE_FLAG_RESERVED    0x0020 /* to 0x0200 */
 #define SILC_MESSAGE_FLAG_PRIVATE     0x0400 /* to 0x8000 */
 
 /* Prototypes */