summaryrefslogtreecommitdiffstats
path: root/eBones/libkadm/kadm_cli_wrap.c
diff options
context:
space:
mode:
Diffstat (limited to 'eBones/libkadm/kadm_cli_wrap.c')
-rw-r--r--eBones/libkadm/kadm_cli_wrap.c86
1 files changed, 36 insertions, 50 deletions
diff --git a/eBones/libkadm/kadm_cli_wrap.c b/eBones/libkadm/kadm_cli_wrap.c
index 7e1cfa9..3522e74 100644
--- a/eBones/libkadm/kadm_cli_wrap.c
+++ b/eBones/libkadm/kadm_cli_wrap.c
@@ -7,20 +7,22 @@
* Kerberos administration server client-side routines
*/
-#ifndef lint
#if 0
+#ifndef lint
static char rcsid_kadm_cli_wrap_c[] =
"from: Id: kadm_cli_wrap.c,v 4.6 89/12/30 20:09:45 qjb Exp";
-#endif
static const char rcsid[] =
- "$Id: kadm_cli_wrap.c,v 1.1 1995/01/20 02:02:51 wollman Exp $";
+ "$Id: kadm_cli_wrap.c,v 1.1 1995/07/18 16:40:23 mark Exp $";
#endif lint
+#endif
/*
* kadm_cli_wrap.c the client side wrapping of the calls to the admin server
*/
#include <sys/types.h>
+#include <unistd.h>
+#include <string.h>
#include <errno.h>
#include <signal.h>
#include <netdb.h>
@@ -29,6 +31,12 @@ static const char rcsid[] =
#include <kadm_err.h>
#include <krb_err.h>
+int kadm_cli_out(u_char *dat, int dat_len, u_char **ret_dat, int *ret_siz);
+int kadm_cli_send(u_char *st_dat, int st_siz, u_char **ret_dat, int *ret_siz);
+int kadm_cli_keyd(des_cblock *s_k, des_key_schedule s_s);
+int kadm_cli_conn(void);
+void kadm_cli_disconn(void);
+
#ifndef NULL
#define NULL 0
#endif
@@ -42,8 +50,7 @@ static Kadm_Client client_parm;
static des_cblock sess_key; /* to be filled in by kadm_cli_keyd */
static Key_schedule sess_sched;
-static
-clear_secrets()
+static void clear_secrets()
{
bzero((char *)sess_key, sizeof(sess_key));
bzero((char *)sess_sched, sizeof(sess_sched));
@@ -58,10 +65,7 @@ clear_secrets()
* data about the connection between the server and client, the services
* used, the locations and other fun things
*/
-kadm_init_link(n, i, r)
-char n[];
-char i[];
-char r[];
+int kadm_init_link(char n[], char i[], char r[])
{
struct servent *sep; /* service we will talk to */
struct hostent *hop; /* host we will talk to */
@@ -100,8 +104,7 @@ char r[];
* key. Returns no actual data from the master server, since this is called
* by a user
*/
-kadm_change_pw(newkey)
-des_cblock newkey; /* The DES form of the users key */
+int kadm_change_pw(des_cblock newkey)
{
int stsize, retc; /* stream size and return code */
u_char *send_st; /* send stream */
@@ -145,8 +148,7 @@ des_cblock newkey; /* The DES form of the users key */
* entry, so if you leave certain fields blank you will be able to determine
* the default values they are set to
*/
-kadm_add(vals)
-Kadm_vals *vals;
+int kadm_add(Kadm_vals *vals)
{
u_char *st, *st2; /* st will hold the stream of values */
int st_len; /* st2 the final stream with opcode */
@@ -182,9 +184,7 @@ Kadm_vals *vals;
* Modifies all entries corresponding to the first values so they match the
* second values. returns the values for the changed entries in vals2
*/
-kadm_mod(vals1, vals2)
-Kadm_vals *vals1;
-Kadm_vals *vals2;
+int kadm_mod(Kadm_vals *vals1, Kadm_vals *vals2)
{
u_char *st, *st2; /* st will hold the stream of values */
int st_len, nlen; /* st2 the final stream with opcode */
@@ -228,10 +228,7 @@ Kadm_vals *vals2;
* this data for each matching recipient, after a count of how many such
* matches there were
*/
-kadm_get(vals, fl)
-Kadm_vals *vals;
-u_char fl[4];
-
+int kadm_get(Kadm_vals *vals, u_char fl[4])
{
int loop; /* for copying the fields data */
u_char *st, *st2; /* st will hold the stream of values */
@@ -279,11 +276,7 @@ u_char fl[4];
* connection to the admin server. If the connection is succesfully open
* then it sends the data and waits for a reply.
*/
-kadm_cli_send(st_dat, st_siz, ret_dat, ret_siz)
-u_char *st_dat; /* the actual data */
-int st_siz; /* length of said data */
-u_char **ret_dat; /* to give return info */
-int *ret_siz; /* length of returned info */
+int kadm_cli_send(u_char *st_dat, int st_siz, u_char **ret_dat, int *ret_siz)
{
int act_len, retdat; /* current offset into packet, return
* data */
@@ -299,7 +292,7 @@ int *ret_siz; /* length of returned info */
(void) strncpy((char *)act_st, KADM_VERSTR, KADM_VERSIZE);
act_len = KADM_VERSIZE;
- if ((retdat = kadm_cli_keyd(sess_key, sess_sched)) != KADM_SUCCESS) {
+ if ((retdat = kadm_cli_keyd(&sess_key, sess_sched)) != KADM_SUCCESS) {
free((char *)act_st);
return retdat; /* couldnt get key working */
}
@@ -318,11 +311,11 @@ int *ret_siz; /* length of returned info */
#ifdef NOENCRYPTION
cksum = 0;
#else
- cksum = quad_cksum(priv_pak, (u_long *)0, (long)priv_len, 0,
- sess_key);
+ cksum = quad_cksum((des_cblock *)priv_pak, (des_cblock *)0,
+ (long)priv_len, 0, &sess_key);
#endif
- if (retdat = krb_mk_req(&authent, client_parm.sname, client_parm.sinst,
- client_parm.krbrlm, (long)cksum)) {
+ if ((retdat = krb_mk_req(&authent, client_parm.sname, client_parm.sinst,
+ client_parm.krbrlm, (long)cksum))) {
/* authenticator? */
RET_N_FREE(retdat + krb_err_base);
}
@@ -359,9 +352,9 @@ int *ret_siz; /* length of returned info */
RET_N_FREE2(retdat);
}
/* need to decode the ret_dat */
- if (retdat = krb_rd_priv(*ret_dat, (u_long)*ret_siz, sess_sched,
+ if ((retdat = krb_rd_priv(*ret_dat, (u_long)*ret_siz, sess_sched,
sess_key, &client_parm.admin_addr,
- &client_parm.my_addr, &mdat))
+ &client_parm.my_addr, &mdat)))
RET_N_FREE2(retdat+krb_err_base);
if (mdat.app_length < KADM_VERSIZE + 4)
/* too short! */
@@ -386,23 +379,21 @@ int *ret_siz; /* length of returned info */
}
/* takes in the sess_key and key_schedule and sets them appropriately */
-kadm_cli_keyd(s_k, s_s)
-des_cblock s_k; /* session key */
-des_key_schedule s_s; /* session key schedule */
+int kadm_cli_keyd(des_cblock *s_k, des_key_schedule s_s)
{
CREDENTIALS cred; /* to get key data */
int stat;
/* want .sname and .sinst here.... */
- if (stat = krb_get_cred(client_parm.sname, client_parm.sinst,
- client_parm.krbrlm, &cred))
+ if ((stat = krb_get_cred(client_parm.sname, client_parm.sinst,
+ client_parm.krbrlm, &cred)))
return stat + krb_err_base;
bcopy((char *) cred.session, (char *) s_k, sizeof(des_cblock));
bzero((char *) cred.session, sizeof(des_cblock));
#ifdef NOENCRYPTION
bzero(s_s, sizeof(des_key_schedule));
#else
- if (stat = key_sched(s_k,s_s))
+ if ((stat = key_sched(s_k,s_s)))
return(stat+krb_err_base);
#endif
return KADM_SUCCESS;
@@ -410,7 +401,7 @@ des_key_schedule s_s; /* session key schedule */
static sigtype (*opipe)();
-kadm_cli_conn()
+int kadm_cli_conn()
{ /* this connects and sets my_addr */
int on = 1;
@@ -444,20 +435,15 @@ kadm_cli_conn()
return KADM_SUCCESS;
}
-kadm_cli_disconn()
+void kadm_cli_disconn()
{
(void) close(client_parm.admin_fd);
(void) signal(SIGPIPE, opipe);
return;
}
-kadm_cli_out(dat, dat_len, ret_dat, ret_siz)
-u_char *dat;
-int dat_len;
-u_char **ret_dat;
-int *ret_siz;
+int kadm_cli_out(u_char *dat, int dat_len, u_char **ret_dat, int *ret_siz)
{
- extern int errno;
u_short dlen;
int retval;
@@ -474,8 +460,8 @@ int *ret_siz;
if (krb_net_write(client_parm.admin_fd, (char *) dat, dat_len) < 0)
return (errno); /* XXX */
- if (retval = krb_net_read(client_parm.admin_fd, (char *) &dlen,
- sizeof(u_short)) != sizeof(u_short)) {
+ if ((retval = krb_net_read(client_parm.admin_fd, (char *) &dlen,
+ sizeof(u_short))) != sizeof(u_short)) {
if (retval < 0)
return(errno); /* XXX */
else
@@ -487,8 +473,8 @@ int *ret_siz;
if (!*ret_dat)
return(KADM_NOMEM);
- if (retval = krb_net_read(client_parm.admin_fd, (char *) *ret_dat,
- (int) dlen) != dlen) {
+ if ((retval = krb_net_read(client_parm.admin_fd, (char *) *ret_dat,
+ (int) dlen)) != dlen) {
if (retval < 0)
return(errno); /* XXX */
else
OpenPOWER on IntegriCloud