]> andersk Git - moira.git/blob - lib/mr_connect.c
made the server to connect to an argument to sms_connect.
[moira.git] / lib / mr_connect.c
1 /*
2  *      $Source$
3  *      $Author$
4  *      $Header$
5  *
6  *      Copyright (C) 1987 by the Massachusetts Institute of Technology
7  *      For copying and distribution information, please see the file
8  *      <mit-copyright.h>.
9  *      
10  *      This routine is part of the client library.  It handles
11  *      creating a connection to the sms server.
12  */
13
14 #ifndef lint
15 static char *rcsid_sms_connect_c = "$Header$";
16 #endif lint
17
18 #include <mit-copyright.h>
19 #include "sms_private.h"
20
21 /*
22  * Open a connection to the sms server.
23  */
24
25 int sms_connect(server)
26 char *server;
27 {
28     extern int errno;
29         
30     if (!sms_inited) sms_init();
31     if (_sms_conn) return SMS_ALREADY_CONNECTED;
32                 
33     /* 
34      * XXX should do a hesiod call to find the sms machine name & service
35      * number/name.
36      */
37     errno = 0;
38     if (!server || (strlen(server) == 0))
39       server = SMS_GDB_SERV;
40     _sms_conn = start_server_connection(server, ""); 
41     if (_sms_conn == NULL)
42         return errno;
43     if (connection_status(_sms_conn) == CON_STOPPED) {
44         register status = connection_errno(_sms_conn);
45         if (!status) status = SMS_CANT_CONNECT;
46         sms_disconnect();
47         return status;
48     }
49     return 0;
50 }
51         
52 int sms_disconnect()
53 {
54     CHECK_CONNECTED;
55     _sms_conn = sever_connection(_sms_conn);
56     return 0;
57 }
58
59 int sms_noop()
60 {
61     int status;
62     sms_params param_st;
63     struct sms_params *params = NULL;
64     struct sms_params *reply = NULL;
65
66     CHECK_CONNECTED;
67     params = &param_st;
68     params->sms_version_no = sending_version_no;
69     params->sms_procno = SMS_NOOP;
70     params->sms_argc = 0;
71     params->sms_argl = NULL;
72     params->sms_argv = NULL;
73         
74     if ((status = sms_do_call(params, &reply)) == 0)
75         status = reply->sms_status;
76         
77     sms_destroy_reply(reply);
78
79     return status;
80 }
This page took 0.042046 seconds and 5 git commands to generate.