]> andersk Git - moira.git/blobdiff - lib/mr_connect.c
added sms_host() and support in sms_connect() [qjb]
[moira.git] / lib / mr_connect.c
index ab9fef64531687b2003a42e18fb23251a30daadc..1dc75ce593e3fb962c440a9eb5805ecc82dea69c 100644 (file)
@@ -17,14 +17,19 @@ static char *rcsid_sms_connect_c = "$Header$";
 
 #include <mit-copyright.h>
 #include "sms_private.h"
+#include <strings.h>
+
+static char *sms_server_host = 0;
 
 /*
  * Open a connection to the sms server.
  */
 
-int sms_connect()
+int sms_connect(server)
+char *server;
 {
     extern int errno;
+    char *p;
        
     if (!sms_inited) sms_init();
     if (_sms_conn) return SMS_ALREADY_CONNECTED;
@@ -34,7 +39,9 @@ int sms_connect()
      * number/name.
      */
     errno = 0;
-    _sms_conn = start_server_connection(SMS_GDB_SERV, ""); 
+    if (!server || (strlen(server) == 0))
+      server = SMS_GDB_SERV;
+    _sms_conn = start_server_connection(server, ""); 
     if (_sms_conn == NULL)
        return errno;
     if (connection_status(_sms_conn) == CON_STOPPED) {
@@ -43,6 +50,15 @@ int sms_connect()
        sms_disconnect();
        return status;
     }
+
+    /*
+     * stash hostname for later use
+     */
+
+    sms_server_host = strsave(server);
+    if (p = index(sms_server_host, ':'))
+       *p = 0;
+    sms_server_host = canonicalize_hostname(sms_server_host);
     return 0;
 }
        
@@ -50,9 +66,22 @@ int sms_disconnect()
 {
     CHECK_CONNECTED;
     _sms_conn = sever_connection(_sms_conn);
+    free(sms_server_host);
+    sms_server_host = 0;
     return 0;
 }
 
+int sms_host(host, size)
+  char *host;
+  int size;
+{
+    CHECK_CONNECTED;
+
+    /* If we are connected, sms_server_host points to a valid string. */
+    strncpy(host, sms_server_host, size);
+    return(0);
+}
+
 int sms_noop()
 {
     int status;
@@ -75,14 +104,3 @@ int sms_noop()
 
     return status;
 }
-
-/*
- * Local Variables:
- * mode: c
- * c-indent-level: 4
- * c-continued-statement-offset: 4
- * c-brace-offset: -4
- * c-argdecl-indent: 4
- * c-label-offset: -4
- * End:
- */
This page took 0.058585 seconds and 4 git commands to generate.