xref: /original-bsd/usr.bin/rlogin/krcmd.c (revision eafa6506)
1 /*
2  * Copyright (c) 1989 The Regents of the University of California.
3  * All rights reserved.
4  *
5  * %sccs.include.redist.c%
6  */
7 
8 #ifndef lint
9 static char sccsid[] = "@(#)krcmd.c	1.6.1.1 (Berkeley) 10/21/90";
10 #endif /* not lint */
11 
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 
21 #ifdef KERBEROS
22 #include <sys/types.h>
23 #include <stdio.h>
24 #include <kerberosIV/des.h>
25 #include <kerberosIV/krb.h>
26 
27 #define	SERVICE_NAME	"rcmd"
28 
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 
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 {
43 	int		sock = -1, err = 0;
44 	KTEXT_ST	ticket;
45 	long		authopts = 0L;
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,
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 */
63 		authopts
64 	);
65 
66 	if (err > KSUCCESS && err < MAX_KRB_ERRORS) {
67 		fprintf(stderr, "krcmd: %s\n", krb_err_txt[err]);
68 		return(-1);
69 	}
70 	if (err < 0)
71 		return(-1);
72 	return(sock);
73 }
74 
75 #endif /* KERBEROS */
76