updates
authorPekka Riikonen <priikone@silcnet.org>
Tue, 4 Jul 2000 07:08:23 +0000 (07:08 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Tue, 4 Jul 2000 07:08:23 +0000 (07:08 +0000)
12 files changed:
CHANGES
README
TODO
configure.in
doc/CodingStyle
doc/FAQ
doc/draft-riikonen-silc-spec-00.nroff
public_html/contribute.html
public_html/download.html
public_html/faq.html
public_html/index.html
public_html/todo.html

diff --git a/CHANGES b/CHANGES
index f8598787bec90864f13b0bd63b3664abc13fdc65..d20c7abdbca3f2a551ff645e18084c6f65a62bf3 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,18 @@
+Mon Jul  3 18:51:27 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
+
+       * Added silc_server_get_route (route.[ch]) to get connection
+         data for the fastest route for given ID.
+
+       * Implemented INVITE command on client and server.  The command
+         were re-defined in the SILC Protocol Specification and the
+         implementation now complies with the specification.
+
+       * Implemented PING command on client and server.
+
+       * Implemented NAMES command on client and server.  The server side
+         supports currently only normal server not router server yet.
+         Some changes to NAMES definition is SILC Protocol Specification.
+
 Sun Jul  2 18:23:01 EEST 2000  Pekka Riikonen <priikone@poseidon.pspt.fi>
 
        * Implemented LEAVE command on client and server.
diff --git a/README b/README
index 60c19dd60e64cd04522516fa499dbc4479b011e4..9b94d5ca5b5fa78f8db2b458b3066a783a44fd41 100644 (file)
--- a/README
+++ b/README
@@ -66,6 +66,15 @@ Following commands has been, at least partly, implemented:
                Joins to a channel.  Channel names start with `#'
                character.
 
+       /LEAVE  <channel>
+
+               Leaves the channel.  If /leave * is given the client
+               leaves the current channel.
+
+       /NAMES  <channel>
+
+               Lists clients currently joined to the channel.
+
        /MSG    <nickname> <message>
 
                Sends private message to remote client.  Support for
@@ -78,10 +87,19 @@ Following commands has been, at least partly, implemented:
                handling multiple same nicknames with this command is
                still missing.
 
+       /PING   [<server>]
+
+               Pings server.  Only locally connected server may be 
+               pinged.
+
        /QUIT
 
                Quits session.  Connection to remote server is closed.
 
+       /CLEAR
+
+               Clears current screen.
+
 
 Features
 ========
diff --git a/TODO b/TODO
index 0df29f45ac2bd228bc828c07f81ee5a21c0ad5cb..d60eeed476971a531dc5d140acbffe8660ca8ef7 100644 (file)
--- a/TODO
+++ b/TODO
@@ -146,6 +146,9 @@ TODO In SILC Server
    are suitable.  They should be tested on high load which I haven't done
    at all yet.
 
+ o INVITE command must set the channel's invite list if channel is 
+   invite-only channel.
+
  o Public and private key generation is now done everytime the program
    is run.  Now, this is only for testing period as I've been lazy to
    do it any better for now.  This must be fixed.
index 677d4cbf98656252722a926a98e317f9b657dd72..86e2b3ba24b612a84abe71dfb9986533605001c0 100644 (file)
@@ -33,7 +33,7 @@ case "$target" in
     ;;
 esac
 
-AM_INIT_AUTOMAKE(silc, 28062000)
+AM_INIT_AUTOMAKE(silc, 07072000)
 AC_PREREQ(2.3)
 AM_CONFIG_HEADER(includes/silcdefs.h)
 
index e6033530145e79dc41726f16e4221184201c5c1e..cf4e865a99ef081e1048f5af0a907467353083b7 100644 (file)
@@ -152,7 +152,7 @@ The <module> is the module you are programming currently.  You should
 have a pretty good idea what you are programming and what the module
 does.  For example, <cipher>, <config>, <command>, <packet>, etc.
 
-The <function> is the describtion of the functionality of the function
+The <function> is the description of the functionality of the function
 you are writing.  Naturally it should be self explanatory and weird
 short names should be avoided.  It is better to have long function
 names than some odd name that does not tell what it is about.  Function
@@ -305,7 +305,8 @@ that looks good.  Here are some issues on general appearance.
 
        o If you are not sure about how something should be done or
          the code you've done is not finished, it should be commented
-         with XXX plus explanation what is going on.
+         with XXX plus explanation what is going on.  For example,
+          /* XXX hmm... how is this flushed? */
 
 
 Source Files
@@ -336,6 +337,14 @@ functions if any of those exist.  After macros should include the
 public prototypes of the functions.  Go see any header file as an example.
 
 
+Using gotos
+===========
+
+Gotos are used in the SILC code quite often.  If you know how to use
+goto's properly then it is ok to use them for example to optimize the
+code.  However, if you don' know how to use goto's do not use them.
+
+
 Debug Messages
 ==============
 
diff --git a/doc/FAQ b/doc/FAQ
index a55ad7f4633ebae08b7045d7c6fe7cae23fedb2d..67393975d09aa567f54573cb3296c8e42b564ed9 100644 (file)
--- a/doc/FAQ
+++ b/doc/FAQ
@@ -50,6 +50,21 @@ A: Answer for both question is no.  IRC client is in no way compatible
    That just is not possible.
 
 
+Q: Why client/server protocol is based on IRC? Would it be more
+   interesting to implement something extensible and more powerful?
+A: They are not, non the least.  Have you read the protocol specification?
+   The client superficially resembles IRC client but everything that
+   happens under the hood is nothing alike IRC.  SILC could *never*
+   support IRC because the entire network toppology is different
+   (hopefully more scalable and powerful).  So no, SILC protocol (client
+   or server) is not based on IRC.  Instead, I've taken good things from
+   IRC and leaved all the bad things behind and not even tried to burden
+   myself with the IRC caveats that will burden IRC and future IRC
+   projects til the end.  SILC client resembles IRC client because it is
+   easier for new users to start using SILC when they already know all the
+   commands.
+
+
 Q: Why SILC? Why not IRC3?
 A: Question that is justified no doubt of that.  I didn't start doing SILC
    to be replacement for IRC.  SILC was something that didn't exist in
index e4a960f2f4be65294da2bd6b530fe8e0d72997aa..e3f5d3aa2d822fa105c75951989b6fbfac8d3b8d 100644 (file)
@@ -1866,9 +1866,9 @@ List of all defined commands in SILC follows.
 
         Reply messages to the command:
 
-        Max Arguments:  3
-            Arguments:  (1) <Status Payload>  (2) <channel>
-                        (3) <topic>
+        Max Arguments:  4
+            Arguments:  (1) <Status Payload>  (2) <Channel ID>
+                        (3) <channel>         (4) <topic>
 
         This command may reply with several command reply messages to form
         a list of results.  In this case the status payload will include
@@ -1876,7 +1876,7 @@ List of all defined commands in SILC follows.
         the last reply to indicate the end of the list.  If there are only 
         one reply the status is set to normal STATUS_OK.
 
-        This command replies with channel name and the topic of the
+        This command replies with Channel ID, name and the topic of the
         channel.  If the channel is private channel the <topic> includes
         "*private*" string.
 
@@ -1930,17 +1930,19 @@ List of all defined commands in SILC follows.
    8    SILC_COMMAND_INVITE
 
         Max Arguments:  2
-            Arguments:  (1) <Client ID>  (2) <channel>
+            Arguments:  (1) <Client ID>  (2) <Channel ID>
 
         This command is used to invite other clients to join to the
-        channel.  There is no requirement that the channel the target
-        client is being invited to must exist or be a valid channel.
-        The <Client ID> argument is the target client's ID that is being
-        invited.
+        channel.  The <Client ID> argument is the target client's ID that
+        is being invited.  The <Channel ID> is the Channel ID of the
+        requested channel.  The sender of this command must be on the
+        channel.  This command must fail if the requested channel does
+        not exist, the requested client is already on the channel or if
+        the channel is invite only channel and the caller of this command
+        does not have at least channel operator privileges.
 
         Reply messages to the command:
 
-
         Max Arguments:  2
             Arguments:  (1) <Status Payload>
 
@@ -1949,15 +1951,15 @@ List of all defined commands in SILC follows.
         Status messages:
 
             SILC_STATUS_OK
-            SILC_STATUS_ERR_NOT_ON_CHANNEL
-            SILC_STATUS_ERR_WILDCARDS
             SILC_STATUS_ERR_NOT_REGISTERED
             SILC_STATUS_ERR_NOT_ENOUGH_PARAMS
-            SILC_STATUS_ERR_NO_SUCH_CLIENT_ID
             SILC_STATUS_ERR_TOO_MANY_PARAMS
-            SILC_STATUS_ERR_NO_RECIPIENT
-            SILC_STATUS_ERR_USER_ON_CHANNEL
+            SILC_STATUS_ERR_NO_SUCH_CLIENT_ID
             SILC_STATUS_ERR_NO_CLIENT_ID
+            SILC_STATUS_ERR_NO_SUCH_CHANNEL_ID
+            SILC_STATUS_ERR_NO_CHANNEL_ID
+            SILC_STATUS_ERR_NOT_ON_CHANNEL
+            SILC_STATUS_ERR_USER_ON_CHANNEL
 
 
    9    SILC_COMMAND_QUIT
@@ -2074,10 +2076,10 @@ List of all defined commands in SILC follows.
         Max Arguments:  1
             Arguments:  (1) <Server ID>
 
-        This command is used by clients to test the communication
-        channel to its server if client suspects that the communication
-        is not working correctly.  The <Server ID> is the ID of the
-        server the client is connected to.
+        This command is used by client and server to test the communication
+        channel to its server if one suspects that the communication is not
+        working correctly.  The <Server ID> is the ID of the server the
+        sender is connected to.
 
         Reply messages to the command:
 
@@ -2092,7 +2094,8 @@ List of all defined commands in SILC follows.
             SILC_STATUS_OK
             SILC_STATUS_ERR_NOT_ENOUGH_PARAMS
             SILC_STATUS_ERR_TOO_MANY_PARAMS
-            SILC_STATUS_ERR_NO_SUCH_SERVER_ID
+            SILC_STATUS_ERR_NO_SERVER_ID
+            SILC_STATUS_ERR_NO_SUCH_SERVER
             SILC_STATUS_ERR_NOT_REGISTERED
 
 
@@ -2688,11 +2691,12 @@ List of all defined commands in SILC follows.
 
         Reply messages to the command:
 
-        Max Arguments:  2
-            Arguments:  (1) <Status Payload>  (2) <name list>
+        Max Arguments:  3
+            Arguments:  (1) <Status Payload>  (2) <Channel ID>
+                        (3) <name list>
 
         This command replies with the comma separated list of users on
-        the channel.
+        the channel and the Channel ID of the channel requested.
 
         Status messages:
 
@@ -2831,124 +2835,129 @@ List of all defined command status messages following.
         "No Channel ID given".  Channel ID were expected as command
         parameter but were not found.
 
-   19   SILC_STATUS_ERR_BAD_CLIENT_ID
+   19   SILC_STATUS_ERR_NO_SERVER_ID
+
+        "No Serve ID given".  Server ID were expected as command
+        parameter but were not found.
+
+   20   SILC_STATUS_ERR_BAD_CLIENT_ID
 
         "Bad Client ID".  Client ID provided were erroneous.
 
-   20   SILC_STATUS_ERR_BAD_CHANNEL_ID
+   21   SILC_STATUS_ERR_BAD_CHANNEL_ID
 
         "Bad Channel ID".  Channel ID provided were erroneous.
 
-   21   SILC_STATUS_ERR_NO_SUCH_CLIENT_ID
+   22   SILC_STATUS_ERR_NO_SUCH_CLIENT_ID
 
         "No such Client ID".  Client ID provided does not exist.
 
 
-   22   SILC_STATUS_ERR_NO_SUCH_CHANNEL_ID
+   23   SILC_STATUS_ERR_NO_SUCH_CHANNEL_ID
 
         "No such Channel ID".  Channel ID provided does not exist.
 
-   23   SILC_STATUS_ERR_NICKNAME_IN_USE
+   24   SILC_STATUS_ERR_NICKNAME_IN_USE
 
         "Nickname already exists".  Nickname created could not be 
         registered because number of same nicknames were already set to
         maximum.  This is not expected to happen in real life but is
         possible to occur.
 
-   24   SILC_STATUS_ERR_NOT_ON_CHANNEL
+   25   SILC_STATUS_ERR_NOT_ON_CHANNEL
 
         "You are not on that channel".  The command were specified for
         client user is not currently on.
 
-   25   SILC_STATUS_ERR_USER_ON_CHANNEL
+   26   SILC_STATUS_ERR_USER_ON_CHANNEL
 
         "User already on channel".  User were invited on channel they
         already are on.
 
-   26   SILC_STATUS_ERR_NOT_REGISTERED
+   27   SILC_STATUS_ERR_NOT_REGISTERED
 
         "You have not registered".  User executed command that requires
         the client to be registered on the server before it may be
         executed.
 
-   27   SILC_STATUS_ERR_NOT_ENOUGH_PARAMS
+   28   SILC_STATUS_ERR_NOT_ENOUGH_PARAMS
 
         "Not enough parameters".  Command requires more parameters
         than provided.
 
-   28   SILC_STATUS_ERR_TOO_MANY_PARAMS
+   29   SILC_STATUS_ERR_TOO_MANY_PARAMS
 
         "Too many parameters".  Too many parameters were provided
         for the command.
 
-   29   SILC_STATUS_ERR_PERM_DENIED
+   30   SILC_STATUS_ERR_PERM_DENIED
 
         "Your host is not among the privileged".  The client tried to
         register on server that does not allow this host to connect.
 
-   30   SILC_STATUS_ERR_BANNED_FROM_SERVER
+   31   SILC_STATUS_ERR_BANNED_FROM_SERVER
 
         "You are banned from this server".  The client tried to register
         on server that has explicitly denied this host to connect.
 
 
 
-   31   SILC_STATUS_ERR_BAD_PASSWORD
+   32   SILC_STATUS_ERR_BAD_PASSWORD
 
         "Cannot join channel. Incorrect password".  Password provided for 
         channel were not accepted.
 
-   32   SILC_STATUS_ERR_CHANNEL_IS_FULL
+   33   SILC_STATUS_ERR_CHANNEL_IS_FULL
 
         "Cannot join channel. Channel is full".  The channel is full
         and client cannot be joined to it.
 
-   33   SILC_STATUS_ERR_NOT_INVITED
+   34   SILC_STATUS_ERR_NOT_INVITED
 
         "Cannot join channel. You have not been invited".  The channel
         is invite only channel and client has not been invited.
 
-   34   SILC_STATUS_ERR_BANNED_FROM_CHANNEL
+   35   SILC_STATUS_ERR_BANNED_FROM_CHANNEL
 
         "Cannot join channel. You have been banned".  The client has
         been banned from the channel.
 
-   35   SILC_STATUS_ERR_UNKNOWN_MODE
+   36   SILC_STATUS_ERR_UNKNOWN_MODE
 
         "Unknown mode".  Mode provided by the client were unknown to
         the server.
 
-   36   SILC_STATUS_ERR_NOT_YOU
+   37   SILC_STATUS_ERR_NOT_YOU
 
         "Cannot change mode for other users".  User tried to change
         someone else's mode.
 
-   37   SILC_STATUS_ERR_NO_CHANNEL_PRIV
+   38   SILC_STATUS_ERR_NO_CHANNEL_PRIV
 
         "Permission denied. You are not channel operator".  Command may 
         be executed only by channel operator.
 
-   38   SILC_STATUS_ERR_NO_SERVER_PRIV
+   39   SILC_STATUS_ERR_NO_SERVER_PRIV
 
         "Permission denied. You are not server operator".  Command may
         be executed only by server operator.
 
-   39   SILC_STATUS_ERR_NO_ROUTER_PRIV
+   40   SILC_STATUS_ERR_NO_ROUTER_PRIV
 
         "Permission denied. You are not SILC operator".  Command may be
         executed only by router (SILC) operator.
 
-   40   SILC_STATUS_ERR_BAD_NICKNAME
+   41   SILC_STATUS_ERR_BAD_NICKNAME
 
         "Bad nickname".  Nickname requested contained illegal characters
         or were malformed.
 
-   41   SILC_STATUS_ERR_BAD_CHANNEL
+   42   SILC_STATUS_ERR_BAD_CHANNEL
 
         "Bad channel name".  Channel requested contained illegal characters
         or were malformed.
 
-   42   SILC_STATUS_ERR_AUTH_FAILED
+   43   SILC_STATUS_ERR_AUTH_FAILED
 
         "Authentication failed".  The authentication data sent as 
         argument were wrong and thus authentication failed.
index 65866ffb2c9319f75966361ba9ba23a07af67879..4d8bdc304df58defdfcdccedde56dfa60defa6bb 100644 (file)
@@ -24,6 +24,11 @@ SILC actually is.  The current software version might not give the
 whole picture of the SILC.  The Internet Drafts are available in
 <a href="docs.html">documentation page.</a>
 <p>
+Who wants to send code to the project should read the <a 
+href="docs/CodingStyle">CodingStyle</a>
+documentation.  New code must comply with the coding style conventions
+described in that document.
+<p>
 There will be anonymous CVS access as soon as I get around to set it up.
 It will be available any day now.
 </td>
index dab491563ff3d8be43e1e677bb2bf96ed6fd30ae..a1b808b6e14931bb0ebebec42ae1b7a62efcfd8a 100644 (file)
@@ -11,14 +11,14 @@ align=center>
 <font size=4>
 <h1>Download SILC</h1>
 <p>
-Currently only available version is 28062000 Development Version that is
+Currently only available version is 03072000 Development Version that is
 meant for testing only.
 <p>
-HTTP: <a href="http://silc.pspt.fi/silc-28062000.tar.gz">
-silc-28062000.tar.gz (1.1 MB)</a>
+HTTP: <a href="http://silc.pspt.fi/silc-03072000.tar.gz">
+silc-03072000.tar.gz (1.1 MB)</a>
 <br>
-FTP: <a href="ftp://silc.pspt.fi/pub/silc/snapshots/silc-28062000.tar.gz">
-silc-28062000.tar.gz (1.1 MB)</a>
+FTP: <a href="ftp://silc.pspt.fi/pub/silc/snapshots/silc-03072000.tar.gz">
+silc-03072000.tar.gz (1.1 MB)</a>
 <p>
 SILC has been coded and tested under Linux. It has not been tested on
 any other Unix platform just yet.
index f070dff26c7ac01437d2d96272f1bd79d6450853..44008caf468cc163188c4e404f026bc1406ee282 100644 (file)
@@ -62,6 +62,22 @@ A: Answer for both question is no.  IRC client is in no way compatible
    That just is not possible.
 <p><br>
 
+<i>Q: Why client/server protocol is based on IRC? Would it be more
+   interesting to implement something extensible and more powerful?</i><br>
+A: They are not, non the least.  Have you read the protocol specification?
+   The client superficially resembles IRC client but everything that
+   happens under the hood is nothing alike IRC.  SILC could *never*
+   support IRC because the entire network toppology is different
+   (hopefully more scalable and powerful).  So no, SILC protocol (client  
+   or server) is not based on IRC.  Instead, I've taken good things from
+   IRC and leaved all the bad things behind and not even tried to burden
+   myself with the IRC caveats that will burden IRC and future IRC
+   projects til the end.  SILC client resembles IRC client because it is  
+   easier for new users to start using SILC when they already know all the
+   commands.
+<p><br>
+
+
 <i>Q: Why SILC? Why not IRC3?</i><br>
 A: Question that is justified no doubt of that.  I didn't start doing SILC
    to be replacement for IRC.  SILC was something that didn't exist in
index ad35094117b7f7e59bebb128cfd9e38594e38c48..702f8797eede52957f3a15a8a5bc04e2c007f31e 100644 (file)
 <tr><td bgcolor="#EEEEFF">&nbsp;<tr><td>&nbsp;</td></tr>
 <tr><td>
 <div style="margin-left: 20px">
-<center><h1>SILC 28062000 Development Version Available</h1></center>
+<center><h1>SILC 03072000 Development Version Available</h1></center>
 <center>
 <font size=4>
-First public release of SILC is finally available.  The Developer's version
-28062000 of SILC is available for testing.  Note that the version is really
-a developer's version and there is no guarantees that this package even
-compiles, and even if it compiles there is no guarantees that it would work,
-and even if it works there is no guarantees that it would work correctly,
-and even if it seems to work correctly it may be just plain luck.
-<p>
-Download: <a href="download.html">SILC 28062000 Development Version</a>
+The Developer's version 03072000 of SILC is available for testing.  Note
+that the version is really a developer's version and there is no
+guarantees that this package even compiles, and even if it compiles there
+is no guarantees that it would work, and even if it works there is no
+guarantees that it would work correctly, and even if it seems to work
+correctly it may be just plain luck.
+<p>
+Download: <a href="download.html">SILC 03072000 Development Version</a>
+<br>
+Changes: <a href="changes.txt">SILC 03072000 Changes</a>
+<p>
 </center>
 <p><br>
 </div>
index fb9f238f9847f71a5067d674a0517ff503ce4c0b..8a89da289b9ba3332f8c73dab95d4abb05534135 100644 (file)
@@ -22,10 +22,6 @@ help is really appreciated - and needed.
 
                                                        - Pekka
 
-[Latest Note:  The protocol has changed a bit in some parts which 
-causes that the current implementation violates some requirements.
-These are not listed here, currently.]
-
 
 New features TODO
 =================
@@ -385,4 +381,4 @@ TODO After 1.0
 </tr>
 </table>
 </body>
-</html>
\ No newline at end of file
+</html>