Merged c0ffee's /set heartbeat patch.
authorPekka Riikonen <priikone@silcnet.org>
Sun, 27 Oct 2002 08:46:08 +0000 (08:46 +0000)
committerPekka Riikonen <priikone@silcnet.org>
Sun, 27 Oct 2002 08:46:08 +0000 (08:46 +0000)
CHANGES
apps/irssi/src/silc/core/silc-core.c
apps/irssi/src/silc/core/silc-servers.c

diff --git a/CHANGES b/CHANGES
index 9a49a529c3f31be598d98e9cc2003c4720dae2ac..f7c56de6a1683fc10aa039a324a829b1f1e2f308 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,8 @@
+Sun Oct 27 11:44:32 EET 2002  Pekka Riikonen <priikone@silcnet.org>
+
+       * Merged c0ffee's /set heartbeat patch to Irssi SILC client.
+         Affected files irssi/src/silc/core/silc-core, silc-server.c.
+
 Thu Oct 24 12:22:35 EEST 2002  Pekka Riikonen <priikone@silcnet.org>
 
        * Fixed channel key packet processing bug on backup router
index e7725f3c35db54fbe65644102e41c1eed8e945d5..2253c9ec9f72542ea68095e19b500c0113437f9e 100644 (file)
@@ -362,6 +362,7 @@ void silc_core_init(void)
   settings_add_int("server", "key_exchange_timeout_secs", 120);
   settings_add_int("server", "key_exchange_rekey_secs", 3600);
   settings_add_int("server", "connauth_request_secs", 2);
+  settings_add_int("server", "heartbeat", 300);
 
   /* Requested Attributes settings */
   settings_add_bool("silc", "attr_allow", TRUE);
index c3e4932fa7b2288d087c5b7ae82bd57e0d1f90b3..78298e5331499dcb0db19a38215f7a1027a39593 100644 (file)
@@ -258,6 +258,19 @@ static void send_message(SILC_SERVER_REC *server, char *target,
   silc_free(message);
 }
 
+void silc_send_heartbeat(SilcSocketConnection sock, 
+                        void *hb_context)
+{
+  SILC_SERVER_REC *server = SILC_SERVER(hb_context);
+
+  if (server == NULL)
+    return;
+
+  silc_client_packet_send(silc_client, sock, SILC_PACKET_HEARTBEAT, 0,
+                         NULL, 0, FALSE);
+
+}
+
 static void sig_connected(SILC_SERVER_REC *server)
 {
   SilcClientConnection conn;
@@ -299,6 +312,13 @@ static void sig_connected(SILC_SERVER_REC *server)
   /* Put default attributes */
   silc_query_attributes_default(silc_client, conn);
 
+  /* initialize heartbeat sending */
+  if (settings_get_int("heartbeat") > 0)
+    silc_socket_set_heartbeat(conn->sock, settings_get_int("heartbeat"),
+                               (void *)server,
+                               (SilcSocketConnectionHBCb)silc_send_heartbeat,
+                               silc_client->schedule);
+
   server->ftp_sessions = silc_dlist_init();
   server->isnickflag = isnickflag_func;
   server->ischannel = ischannel_func;