2 * Copyright (c) 1989, 1993
3 * The Regents of the University of California. All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 * 3. All advertising materials mentioning features or use of this software
14 * must display the following acknowledgement:
15 * This product includes software developed by the University of
16 * California, Berkeley and its contributors.
17 * 4. Neither the name of the University nor the names of its contributors
18 * may be used to endorse or promote products derived from this software
19 * without specific prior written permission.
21 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
36 RCSID("$Id: krcmd.c,v 1.10 1997/03/30 18:20:18 joda Exp $");
38 #define SERVICE_NAME "rcmd"
41 * krcmd: simplified version of Athena's "kcmd"
42 * returns a socket attached to the destination, -1 or krb error on error
43 * if fd2p is non-NULL, another socket is filled in for it
47 krcmd(char **ahost, u_short rport, char *remuser, char *cmd, int *fd2p, char *realm)
49 int sock = -1, err = 0;
57 NULL, /* locuser not used */
64 (CREDENTIALS *) NULL, /* credentials not used */
65 0, /* key schedule not used */
66 (MSG_DAT *) NULL, /* MSG_DAT not used */
67 (struct sockaddr_in *) NULL, /* local addr not used */
68 (struct sockaddr_in *) NULL, /* foreign addr not used */
72 if (err > KSUCCESS && err < MAX_KRB_ERRORS) {
73 warning("krcmd: %s", krb_get_err_text(err));
82 krcmd_mutual(char **ahost, u_short rport, char *remuser, char *cmd, int *fd2p, char *realm, CREDENTIALS *cred, Key_schedule sched)
87 struct sockaddr_in laddr, faddr;
88 long authopts = KOPT_DO_MUTUAL;
94 NULL, /* locuser not used */
101 cred, /* filled in */
102 sched, /* filled in */
103 &msg_dat, /* filled in */
104 &laddr, /* filled in */
105 &faddr, /* filled in */
109 if (err > KSUCCESS && err < MAX_KRB_ERRORS) {
110 warnx("krcmd_mutual: %s", krb_get_err_text(err));