Commit | Line | Data |
---|---|---|
f788ac26 KF |
1 | /* |
2 | * Copyright (c) 1989 The Regents of the University of California. | |
3 | * All rights reserved. | |
4 | * | |
6d936b27 | 5 | * %sccs.include.redist.c% |
f788ac26 KF |
6 | */ |
7 | ||
8 | #ifndef lint | |
7ade1fbd | 9 | static char sccsid[] = "@(#)krcmd.c 1.6.1.1 (Berkeley) %G%"; |
f788ac26 KF |
10 | #endif /* not lint */ |
11 | ||
86dc635c KB |
12 | /* |
13 | * $Source: /mit/kerberos/ucb/mit/kcmd/RCS/krcmd.c,v $ | |
14 | * $Header: /mit/kerberos/ucb/mit/kcmd/RCS/krcmd.c,v 5.1 | |
15 | * 89/07/25 15:38:44 kfall Exp Locker: kfall $ | |
16 | * static char *rcsid_kcmd_c = | |
17 | * "$Header: /mit/kerberos/ucb/mit/kcmd/RCS/krcmd.c,v 5.1 89/07/25 15:38:44 | |
18 | * kfall Exp Locker: kfall $"; | |
19 | */ | |
20 | ||
8293b217 | 21 | #ifdef KERBEROS |
f788ac26 KF |
22 | #include <sys/types.h> |
23 | #include <stdio.h> | |
4f10ae0d | 24 | #include <kerberosIV/des.h> |
308c0e0f | 25 | #include <kerberosIV/krb.h> |
f788ac26 KF |
26 | |
27 | #define SERVICE_NAME "rcmd" | |
28 | ||
308c0e0f KB |
29 | /* |
30 | * krcmd: simplified version of Athena's "kcmd" | |
31 | * returns a socket attached to the destination, -1 or krb error on error | |
32 | * if fd2p is non-NULL, another socket is filled in for it | |
33 | */ | |
34 | ||
f788ac26 KF |
35 | int |
36 | krcmd(ahost, rport, remuser, cmd, fd2p, realm) | |
37 | char **ahost; | |
38 | u_short rport; | |
39 | char *remuser, *cmd; | |
40 | int *fd2p; | |
41 | char *realm; | |
42 | { | |
308c0e0f | 43 | int sock = -1, err = 0; |
f788ac26 | 44 | KTEXT_ST ticket; |
308c0e0f | 45 | long authopts = 0L; |
f788ac26 KF |
46 | |
47 | err = kcmd( | |
48 | &sock, | |
49 | ahost, | |
50 | rport, | |
51 | NULL, /* locuser not used */ | |
52 | remuser, | |
53 | cmd, | |
54 | fd2p, | |
55 | &ticket, | |
56 | SERVICE_NAME, | |
57 | realm, | |
308c0e0f KB |
58 | (CREDENTIALS *) NULL, /* credentials not used */ |
59 | (bit_64 *) NULL, /* key schedule not used */ | |
60 | (MSG_DAT *) NULL, /* MSG_DAT not used */ | |
61 | (struct sockaddr_in *) NULL, /* local addr not used */ | |
62 | (struct sockaddr_in *) NULL, /* foreign addr not used */ | |
f788ac26 KF |
63 | authopts |
64 | ); | |
65 | ||
308c0e0f | 66 | if (err > KSUCCESS && err < MAX_KRB_ERRORS) { |
f788ac26 KF |
67 | fprintf(stderr, "krcmd: %s\n", krb_err_txt[err]); |
68 | return(-1); | |
69 | } | |
308c0e0f KB |
70 | if (err < 0) |
71 | return(-1); | |
f788ac26 KF |
72 | return(sock); |
73 | } | |
74 | ||
8293b217 | 75 | #endif /* KERBEROS */ |