]> andersk Git - moira.git/commitdiff
Added shutdown; fixed noop.
authorwesommer <wesommer>
Mon, 1 Jun 1987 03:34:20 +0000 (03:34 +0000)
committerwesommer <wesommer>
Mon, 1 Jun 1987 03:34:20 +0000 (03:34 +0000)
lib/mr_connect.c

index 2b0f56b1e14cca2351098b1276850295fb39e557..25ba36eac12fbe1cf11788df9234e0199b46156e 100644 (file)
@@ -21,18 +21,19 @@ static char *rcsid_sms_connect_c = "$Header$";
 
 int sms_connect()
 {
+       extern int errno;
+       
        if (!sms_inited) sms_init();
        
        /* 
         * should do a hesiod call to find the sms machine name & service
         * number/name.
         */
-
-       _sms_conn = start_server_connection(SMS_GDB_SERV, "XXX"); 
        /* XXX gdb doesn't give real return codes. Can we trust errno?*/
+       errno = 0;
+       _sms_conn = start_server_connection(SMS_GDB_SERV, ""); 
        if (_sms_conn == NULL) {
-               perror("gdb_connect"); /*XXX*/
-               return SMS_CANT_CONNECT;
+               return errno;
        }
        return 0;
 }
@@ -50,8 +51,8 @@ int sms_disconnect()
 int sms_noop()
 {
        int status;
-       struct sms_params *parms;
-       struct sms_params *reply;
+       struct sms_params *parms = NULL;
+       struct sms_params *reply = NULL;
        
 
        parms = (struct sms_params *) malloc(sizeof(*parms));
@@ -69,3 +70,33 @@ ok:
        free(parms);
        return status;
 }
+
+int sms_shutdown(why)
+       char *why;
+{
+       int status;
+       sms_params *parms=NULL;
+       sms_params *reply=NULL;
+
+       parms = (sms_params *) malloc(sizeof(*parms));
+       
+       parms->sms_procno = SMS_SHUTDOWN;
+       parms->sms_argc = 1;
+       parms->sms_argv = (char **)malloc(sizeof(char *) * 2);
+       parms->sms_argv[0] = why;
+       parms->sms_argv[1] = NULL;
+
+       if ((status = sms_do_call(parms, &reply)) || (status = reply->sms_status))
+               goto punt;
+       
+       
+punt:
+       sms_destroy_reply(reply);
+ok:
+       if(parms) {
+               if(parms->sms_argv)
+                       free(parms->sms_argv);
+               free(parms);
+       }
+       return status;
+}
This page took 0.050482 seconds and 5 git commands to generate.