* $Header$
*
* Copyright (C) 1987 by the Massachusetts Institute of Technology
+ * For copying and distribution information, please see the file
+ * <mit-copyright.h>.
*
* This routine is part of the client library. It handles
- * creating a connection to the sms server.
+ * creating a connection to the sms server.
*/
#ifndef lint
static char *rcsid_sms_connect_c = "$Header$";
#endif lint
+#include <mit-copyright.h>
#include "sms_private.h"
/*
* Open a connection to the sms server.
*/
-int sms_connect()
+int sms_connect(server)
+char *server;
{
extern int errno;
if (_sms_conn) return SMS_ALREADY_CONNECTED;
/*
- * * should do a hesiod call to find the sms machine name & service
- * * number/name.
- * */
- /* XXX gdb doesn't give real return codes. Can we trust errno?*/
+ * XXX should do a hesiod call to find the sms machine name & service
+ * number/name.
+ */
errno = 0;
- _sms_conn = start_server_connection(SMS_GDB_SERV, "");
- if (_sms_conn == NULL) {
+ 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) {
+ register status = connection_errno(_sms_conn);
+ if (!status) status = SMS_CANT_CONNECT;
+ sms_disconnect();
+ return status;
}
return 0;
}
CHECK_CONNECTED;
params = ¶m_st;
+ params->sms_version_no = sending_version_no;
params->sms_procno = SMS_NOOP;
params->sms_argc = 0;
params->sms_argl = NULL;
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:
- */