commit c5168f9ee82f8e96f52c6263a76e51e9016d735c
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Thu Jan 8 11:31:48 2009 +0200

    Documented public_ip field

commit 6e596af78adee828595e00a0988625453f9ecbc9
Author: Skywing <skywing@valhallalegends.com>
Date:   Sat Dec 13 16:27:48 2008 -0500

    Don't decrement my_clients when killing or expiring a detached client.
    
    This prevents my_clients from getting out of sync when a detached
    client is forcibly removed, fixing a regression.

commit aff29861afd2c1344bde46f8d997a53919274a1a
Author: Skywing <skywing@valhallalegends.com>
Date:   Sat Dec 13 14:15:15 2008 -0500

    Cancel future rekeys on a detaching client connection.
    
    Previously, these wouldn't be cancelled properly, and might result in
    some complaints from the SILC SKE library due to bad parameters.

commit 2652f16abc04e55355d948a10d92ce9771ca1f4b
Author: Skywing <skywing@valhallalegends.com>
Date:   Sat Dec 13 13:43:25 2008 -0500

    Send resume notifications to previous owner server when client resumes.
    
    Previously, resume notifications were broadcast to all routers, but not
    necessarily the original owner of a particular detached user.  This
    caused various breakage when a user was previously homed at a plain
    server and then resumed at a router server, as the users previous home
    server would never have been properly notified about the resume.

commit 85f7454c353763cb25aa719409e656bfd8d878df
Author: Skywing <skywing@valhallalegends.com>
Date:   Thu Dec 11 23:57:37 2008 -0500

    Fix use-after-free condition when reconnecting silcd to router silcd.
    
    This fixes a use-after-free bug wherein silcd can reuse the context on
    the SilcPacketStream when we receive an EOS indication after the link
    was terminated due to a timeout error.

commit ce742c4140e578ab25c84eef9c189892c3681214
Author: Skywing <skywing@valhallalegends.com>
Date:   Thu Dec 11 23:22:04 2008 -0500

    Don't count detached users in server local user count.
    
    This commit decrements the count of users when a detach occurs, and
    increments the count when a user re-attaches.
    
    This is done as current silc routers have a bug where only a detached
    users previous home server is not properly pro-actively notified of a
    user resuming elsewhere unless the user resumes on a router server.
    
    The issue with non-router-server resume notification will be fixed
    seperately.  This change allows member servers to operate reliably in
    the event that there is a router with the aforementioned bug in their
    silcnet.

commit 4f370664520f87d3054cad72b9d011a684806632
Author: Skywing <skywing@valhallalegends.com>
Date:   Sun Nov 23 13:54:12 2008 -0500

    Use primary router when sending WHOIS packet if client->router is NULL.
    
    client may be non-NULL, but client->router may be NULL when we enter
    silc_server_query_client in the case of a detached client on a remote
    server that has not been fully resolved yet.  In this case, we should
    try and send the packet using the primary router.  This fixes a crash
    wherein silc_server_query_client would sometimes crash with a NULL
    dereference if called on a remote detached client.

commit b560ba10ed343202962d5575a988e1faec91e0db
Author: Skywing <skywing@valhallalegends.com>
Date:   Sun Nov 23 13:54:12 2008 -0500

    Use primary router when sending WHOIS packet if client->router is NULL.
    
    client may be non-NULL, but client->router may be NULL when we enter
    silc_server_query_client in the case of a detached client on a remote
    server that has not been fully resolved yet.  In this case, we should
    try and send the packet using the primary router.  This fixes a crash
    wherein silc_server_query_client would sometimes crash with a NULL
    dereference if called on a remote detached client.

commit e85b8c3b0b68d9c5e82fa058683fb57595f37bd6
Author: Pekka Riikonen <priikone@silcnet.org>
Date:   Sun Nov 23 12:58:28 2008 +0200

    silcd: disconnect packet errors with random timeout

commit 5c43a88e369950a34b1c40d655b598bedd16beda
Author: Skywing <skywing@valhallalegends.com>
Date:   Fri Nov 21 23:57:32 2008 -0500

    Cancel silc_server_connect_to_router_retry when connecting.
    
    There exists a crash bug such that an un-cancelled timeout callback for
    silc_server_connect_to_retry fires after the connection object has
    already been cleaned up.  Any router_retry requests must be cancelled
    when we are deleting the associated connect object.  The fix that was
    implemented was to cancel silc_server_connect_to_router_retry in
    addition to silc_server_connect_to_router when a call to
    silc_server_create_connections is made.  (This routine is called when
    we are to make new server connections if reconnects are enabled.)
    
    The problem would typically occur after a long enough time with silcd
    trying to connect to a router server over and over; there is a race
    condition component that can delay the initial use-after-free condition
    for some time.

commit 068abf8c90f47d9b5d17fc1650b2b9f14ffd278c
Author: Skywing <skywing@valhallalegends.com>
Date:   Fri Nov 21 21:24:07 2008 -0500

    Mark outbound initiated server to server connections as local.
    
    This fixes an issue where if a disconnect packet is received by the
    server for an outbound silc connection (i.e. a server to server link)
    and there is an outstanding async operation, such as an SKE or
    connection auth, the server will corrupt the heap due to not properly
    calling the async abort routine.
    
    This issue would typically happen when we have a silcd setup to connect
    to a remote router server, where both ends of the connection have public
    keys configured, but the initiator server's IP is wrong.  In this case,
    we will get past key exchange and then fail at the connection auth
    packet, typically crashing the initiator silcd after heap corruption.

commit e69eab552f385361553ef94c80dd64040873a02f
Author: Kp <kp@valhallalegends.com>
Date:   Fri Jul 4 13:06:00 2008 -0500

    Assert that the client count is positive prior to decrementing it.
    
    A situation has been observed where a silcd has clients connected to it,
    but reports 0 local users.  It is believed that when these users log
    off, the server underflows and refuses new connections.  Assert that no
    underflow occurs, which should prove or disprove this theory.

commit 985f57f253454fde2875f3623d76635d90a273cc
Author: Skywing <skywing@valhallalegends.com>
Date:   Fri Jun 27 00:16:37 2008 -0500

    Add ``ExternalIp'' config directive to ServerInfo tag in
    
    silcd.conf.  This allows server linking with a server
    behind a NAT connecting out to a router.

 apps/silcd/command.c                     |   13 ++
 apps/silcd/idlist.h                      |   11 ++
 apps/silcd/packet_receive.c              |   39 ++++++-
 apps/silcd/server.c                      |   34 +++++-
 apps/silcd/server.h                      |    1 +
 apps/silcd/server_internal.h             |   24 +----
 apps/silcd/server_query.c                |    3 +-
 apps/silcd/server_util.c                 |   10 ++-
 apps/silcd/serverconfig.c                |    2 +-
 apps/silcmap/silcmap_bitmap.c            |    2 +-
