6 * Copyright (C) 1987 by the Massachusetts Institute of Technology
7 * For copying and distribution information, please see the file
10 * Handles the client side of the sending of authenticators to
15 static char *rcsid_sms_auth_c = "$Header$";
18 #include <mit-copyright.h>
19 #include "sms_private.h"
24 /* Authenticate this client with the SMS server. prog is the name of the
25 * client program, and will be recorded in the database.
35 char realm[REALM_SZ], host[BUFSIZ], *p;
37 register sms_params *params = ¶ms_st;
38 sms_params *reply = NULL;
43 /* Build a Kerberos authenticator. */
45 bzero(host, sizeof(host));
46 if (status = sms_host(host, sizeof(host) - 1))
49 strcpy(realm, krb_realmofhost(host));
50 for (p = host; *p && *p != '.'; p++)
55 status = krb_mk_req(&auth, MOIRA_SNAME, host, realm, 0);
56 if (status != KSUCCESS) {
57 status += ERROR_TABLE_BASE_krb;
60 params->sms_version_no = sending_version_no;
61 params->sms_procno = SMS_AUTH;
63 params->sms_argv = args;
64 params->sms_argl = argl;
65 params->sms_argv[0] = (char *)auth.dat;
66 params->sms_argl[0] = auth.length;
67 params->sms_argv[1] = prog;
68 params->sms_argl[1] = strlen(prog) + 1;
70 if (sending_version_no == SMS_VERSION_1)
73 if ((status = sms_do_call(params, &reply)) == 0)
74 status = reply->sms_status;
76 sms_destroy_reply(reply);