summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorderaadt <deraadt@openbsd.org>2001-11-19 09:03:03 +0000
committerderaadt <deraadt@openbsd.org>2001-11-19 09:03:03 +0000
commit71e925635680d389f3efd1248e87a390f0757a19 (patch)
tree3259cc818f4b77c2b170828e08282deb77a3152e
parentKNFightmare (diff)
downloadwireguard-openbsd-71e925635680d389f3efd1248e87a390f0757a19.tar.xz
wireguard-openbsd-71e925635680d389f3efd1248e87a390f0757a19.zip
use a private svc_run() function that checks for a signal handler flag;
now signal safe. Also, massive KNF.
-rw-r--r--usr.sbin/ypserv/common/ypdb.c20
-rw-r--r--usr.sbin/ypserv/common/yplib_host.c179
-rw-r--r--usr.sbin/ypserv/ypserv/acl.c1010
-rw-r--r--usr.sbin/ypserv/ypserv/ypserv.c131
-rw-r--r--usr.sbin/ypserv/ypserv/ypserv_db.c301
-rw-r--r--usr.sbin/ypserv/ypserv/ypserv_proc.c334
-rw-r--r--usr.sbin/ypserv/ypserv/ypserv_xdr.c357
-rw-r--r--usr.sbin/ypserv/ypserv/ypserv_xdr_v1.c24
8 files changed, 1136 insertions, 1220 deletions
diff --git a/usr.sbin/ypserv/common/ypdb.c b/usr.sbin/ypserv/common/ypdb.c
index 6f6234d9574..5ece3f2dd6f 100644
--- a/usr.sbin/ypserv/common/ypdb.c
+++ b/usr.sbin/ypserv/common/ypdb.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ypdb.c,v 1.5 1997/02/09 09:49:36 maja Exp $ */
+/* $OpenBSD: ypdb.c,v 1.6 2001/11/19 09:03:03 deraadt Exp $ */
/*
* Copyright (c) 1990, 1993
@@ -209,7 +209,7 @@ ypdb_nextkey(db)
extern datum
ypdb_setkey(db, key)
DBM *db;
- datum key;
+ datum key;
{
int status;
datum retdata;
@@ -219,13 +219,13 @@ ypdb_setkey(db, key)
status = (db->seq)(db, (DBT *)&retkey, (DBT *)&retdata, R_FIRST);
if (status)
retkey.dptr = NULL;
- while ((retkey.dptr != NULL) &&
- ((retkey.dsize != key.dsize) ||
- (strncmp(key.dptr,retkey.dptr,retkey.dsize) != 0))) {
- status = (db->seq)(db, (DBT *)&retkey, (DBT *)&retdata, R_NEXT);
- if (status)
- retkey.dptr = NULL;
- };
+ while (retkey.dptr != NULL &&
+ (retkey.dsize != key.dsize ||
+ strncmp(key.dptr, retkey.dptr, retkey.dsize) != 0)) {
+ status = (db->seq)(db, (DBT *)&retkey, (DBT *)&retdata, R_NEXT);
+ if (status)
+ retkey.dptr = NULL;
+ }
return (retkey);
#else
status = (db->seq)(db, (DBT *)&key, (DBT *)&retdata, R_CURSOR);
@@ -240,7 +240,6 @@ ypdb_setkey(db, key)
* 0 on success
* <0 failure
*/
-
int
ypdb_delete(db, key)
DBM *db;
@@ -261,7 +260,6 @@ ypdb_delete(db, key)
* <0 failure
* 1 if YPDB_INSERT and entry exists
*/
-
int
ypdb_store(db, key, content, flags)
DBM *db;
diff --git a/usr.sbin/ypserv/common/yplib_host.c b/usr.sbin/ypserv/common/yplib_host.c
index 7d7282a7d00..d91ecc9dd03 100644
--- a/usr.sbin/ypserv/common/yplib_host.c
+++ b/usr.sbin/ypserv/common/yplib_host.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: yplib_host.c,v 1.9 1998/02/14 10:05:26 maja Exp $ */
+/* $OpenBSD: yplib_host.c,v 1.10 2001/11/19 09:03:03 deraadt Exp $ */
/*
* Copyright (c) 1992, 1993 Theo de Raadt <deraadt@theos.com>
@@ -32,7 +32,7 @@
*/
#ifndef LINT
-static char *rcsid = "$OpenBSD: yplib_host.c,v 1.9 1998/02/14 10:05:26 maja Exp $";
+static char *rcsid = "$OpenBSD: yplib_host.c,v 1.10 2001/11/19 09:03:03 deraadt Exp $";
#endif
#include <sys/param.h>
@@ -66,11 +66,11 @@ extern void *ypresp_data;
int _yplib_host_timeout = 10;
CLIENT *
-yp_bind_host(server,program,version,port,usetcp)
-char *server;
-u_long program,version;
-u_short port;
-int usetcp;
+yp_bind_host(server, program, version, port, usetcp)
+ char *server;
+ u_long program, version;
+ u_short port;
+ int usetcp;
{
struct sockaddr_in rsrv_sin;
int rsrv_sock;
@@ -82,22 +82,21 @@ int usetcp;
rsrv_sin.sin_len = sizeof rsrv_sin;
rsrv_sin.sin_family = AF_INET;
rsrv_sock = RPC_ANYSOCK;
- if (port != 0) {
+ if (port != 0)
rsrv_sin.sin_port = htons(port);
- }
- if ((*server >= '0') && (*server <= '9')) {
- if(inet_aton(server,&rsrv_sin.sin_addr) == 0) {
+ if (*server >= '0' && *server <= '9') {
+ if (inet_aton(server, &rsrv_sin.sin_addr) == 0) {
fprintf(stderr, "inet_aton: invalid address %s.\n",
- server);
- exit(1);
+ server);
+ exit(1);
}
} else {
h = gethostbyname(server);
- if(h == NULL) {
+ if (h == NULL) {
fprintf(stderr, "gethostbyname: unknown host %s.\n",
- server);
- exit(1);
+ server);
+ exit(1);
}
rsrv_sin.sin_addr.s_addr = *(u_int32_t *)h->h_addr;
}
@@ -105,18 +104,17 @@ int usetcp;
tv.tv_sec = 10;
tv.tv_usec = 0;
- if (usetcp) {
+ if (usetcp)
client = clnttcp_create(&rsrv_sin, program, version,
- &rsrv_sock, 0, 0);
- } else {
+ &rsrv_sock, 0, 0);
+ else
client = clntudp_create(&rsrv_sin, program, version, tv,
- &rsrv_sock);
- }
+ &rsrv_sock);
if (client == NULL) {
fprintf(stderr, "clntudp_create: no contact with host %s.\n",
- server);
- exit(1);
+ server);
+ exit(1);
}
return(client);
@@ -124,8 +122,8 @@ int usetcp;
}
CLIENT *
-yp_bind_local(program,version)
-u_long program,version;
+yp_bind_local(program, version)
+ u_long program, version;
{
struct sockaddr_in rsrv_sin;
int rsrv_sock;
@@ -144,22 +142,20 @@ u_long program,version;
client = clntudp_create(&rsrv_sin, program, version, tv, &rsrv_sock);
if (client == NULL) {
fprintf(stderr,"clntudp_create: no contact with localhost.\n");
- exit(1);
+ exit(1);
}
-
return(client);
-
}
int
yp_match_host(client, indomain, inmap, inkey, inkeylen, outval, outvallen)
-CLIENT *client;
-char *indomain;
-char *inmap;
-const char *inkey;
-int inkeylen;
-char **outval;
-int *outvallen;
+ CLIENT *client;
+ char *indomain;
+ char *inmap;
+ const char *inkey;
+ int inkeylen;
+ char **outval;
+ int *outvallen;
{
struct ypresp_val yprv;
struct timeval tv;
@@ -180,11 +176,10 @@ int *outvallen;
memset(&yprv, 0, sizeof yprv);
r = clnt_call(client, YPPROC_MATCH,
- xdr_ypreq_key, &yprk, xdr_ypresp_val, &yprv, tv);
- if(r != RPC_SUCCESS) {
+ xdr_ypreq_key, &yprk, xdr_ypresp_val, &yprv, tv);
+ if (r != RPC_SUCCESS)
clnt_perror(client, "yp_match_host: clnt_call");
- }
- if( !(r=ypprot_err(yprv.stat)) ) {
+ if ( !(r=ypprot_err(yprv.stat)) ) {
*outvallen = yprv.val.valdat_len;
*outval = (char *)malloc(*outvallen+1);
memcpy(*outval, yprv.val.valdat_val, *outvallen);
@@ -196,13 +191,13 @@ int *outvallen;
int
yp_first_host(client, indomain, inmap, outkey, outkeylen, outval, outvallen)
-CLIENT *client;
-char *indomain;
-char *inmap;
-char **outkey;
-int *outkeylen;
-char **outval;
-int *outvallen;
+ CLIENT *client;
+ char *indomain;
+ char *inmap;
+ char **outkey;
+ int *outkeylen;
+ char **outval;
+ int *outvallen;
{
struct ypresp_key_val yprkv;
struct ypreq_nokey yprnk;
@@ -220,11 +215,10 @@ int *outvallen;
memset(&yprkv, 0, sizeof yprkv);
r = clnt_call(client, YPPROC_FIRST,
- xdr_ypreq_nokey, &yprnk, xdr_ypresp_key_val, &yprkv, tv);
- if(r != RPC_SUCCESS) {
+ xdr_ypreq_nokey, &yprnk, xdr_ypresp_key_val, &yprkv, tv);
+ if (r != RPC_SUCCESS)
clnt_perror(client, "yp_first_host: clnt_call");
- }
- if( !(r=ypprot_err(yprkv.stat)) ) {
+ if ( !(r=ypprot_err(yprkv.stat)) ) {
*outkeylen = yprkv.key.keydat_len;
*outkey = (char *)malloc(*outkeylen+1);
memcpy(*outkey, yprkv.key.keydat_val, *outkeylen);
@@ -239,16 +233,17 @@ int *outvallen;
}
int
-yp_next_host(client, indomain, inmap, inkey, inkeylen, outkey, outkeylen, outval, outvallen)
-CLIENT *client;
-char *indomain;
-char *inmap;
-char *inkey;
-int inkeylen;
-char **outkey;
-int *outkeylen;
-char **outval;
-int *outvallen;
+yp_next_host(client, indomain, inmap, inkey, inkeylen, outkey,
+ outkeylen, outval, outvallen)
+ CLIENT *client;
+ char *indomain;
+ char *inmap;
+ char *inkey;
+ int inkeylen;
+ char **outkey;
+ int *outkeylen;
+ char **outval;
+ int *outvallen;
{
struct ypresp_key_val yprkv;
struct ypreq_key yprk;
@@ -268,11 +263,10 @@ int *outvallen;
memset(&yprkv, 0, sizeof yprkv);
r = clnt_call(client, YPPROC_NEXT,
- xdr_ypreq_key, &yprk, xdr_ypresp_key_val, &yprkv, tv);
- if(r != RPC_SUCCESS) {
+ xdr_ypreq_key, &yprk, xdr_ypresp_key_val, &yprkv, tv);
+ if (r != RPC_SUCCESS)
clnt_perror(client, "yp_next_host: clnt_call");
- }
- if( !(r=ypprot_err(yprkv.stat)) ) {
+ if ( !(r=ypprot_err(yprkv.stat)) ) {
*outkeylen = yprkv.key.keydat_len;
*outkey = (char *)malloc(*outkeylen+1);
memcpy(*outkey, yprkv.key.keydat_val, *outkeylen);
@@ -288,10 +282,10 @@ int *outvallen;
int
yp_all_host(client, indomain, inmap, incallback)
-CLIENT *client;
-char *indomain;
-char *inmap;
-struct ypall_callback *incallback;
+ CLIENT *client;
+ char *indomain;
+ char *inmap;
+ struct ypall_callback *incallback;
{
struct ypreq_nokey yprnk;
struct timeval tv;
@@ -306,19 +300,18 @@ struct ypall_callback *incallback;
ypresp_data = (void *)incallback->data;
(void) clnt_call(client, YPPROC_ALL,
- xdr_ypreq_nokey, &yprnk, xdr_ypresp_all_seq, &status, tv);
-
- if(status != YP_FALSE)
+ xdr_ypreq_nokey, &yprnk, xdr_ypresp_all_seq, &status, tv);
+ if (status != YP_FALSE)
return ypprot_err(status);
return 0;
}
int
yp_order_host(client, indomain, inmap, outorder)
-CLIENT *client;
-char *indomain;
-char *inmap;
-u_int32_t *outorder;
+ CLIENT *client;
+ char *indomain;
+ char *inmap;
+ u_int32_t *outorder;
{
struct ypresp_order ypro;
struct ypreq_nokey yprnk;
@@ -334,11 +327,9 @@ u_int32_t *outorder;
memset(&ypro, 0, sizeof ypro);
r = clnt_call(client, YPPROC_ORDER,
- xdr_ypreq_nokey, &yprnk, xdr_ypresp_order, &ypro, tv);
- if(r != RPC_SUCCESS) {
+ xdr_ypreq_nokey, &yprnk, xdr_ypresp_order, &ypro, tv);
+ if (r != RPC_SUCCESS)
clnt_perror(client, "yp_order_host: clnt_call");
- }
-
*outorder = ypro.ordernum;
xdr_free(xdr_ypresp_order, (char *)&ypro);
return ypprot_err(ypro.stat);
@@ -346,10 +337,10 @@ u_int32_t *outorder;
int
yp_master_host(client, indomain, inmap, outname)
-CLIENT *client;
-char *indomain;
-char *inmap;
-char **outname;
+ CLIENT *client;
+ char *indomain;
+ char *inmap;
+ char **outname;
{
struct ypresp_master yprm;
struct ypreq_nokey yprnk;
@@ -358,29 +349,26 @@ char **outname;
tv.tv_sec = _yplib_host_timeout;
tv.tv_usec = 0;
-
yprnk.domain = indomain;
yprnk.map = inmap;
memset(&yprm, 0, sizeof yprm);
r = clnt_call(client, YPPROC_MASTER,
- xdr_ypreq_nokey, &yprnk, xdr_ypresp_master, &yprm, tv);
- if(r != RPC_SUCCESS) {
+ xdr_ypreq_nokey, &yprnk, xdr_ypresp_master, &yprm, tv);
+ if (r != RPC_SUCCESS)
clnt_perror(client, "yp_master: clnt_call");
- }
- if( !(r=ypprot_err(yprm.stat)) ) {
- *outname = (char *)strdup(yprm.peer);
- }
+ if (!(r=ypprot_err(yprm.stat)) )
+ *outname = (char *)strdup(yprm.peer);
xdr_free(xdr_ypresp_master, (char *)&yprm);
return r;
}
int
yp_maplist_host(client, indomain, outmaplist)
-CLIENT *client;
-char *indomain;
-struct ypmaplist **outmaplist;
+ CLIENT *client;
+ char *indomain;
+ struct ypmaplist **outmaplist;
{
struct ypresp_maplist ypml;
struct timeval tv;
@@ -392,10 +380,9 @@ struct ypmaplist **outmaplist;
memset(&ypml, 0, sizeof ypml);
r = clnt_call(client, YPPROC_MAPLIST,
- xdr_domainname, &indomain, xdr_ypresp_maplist, &ypml, tv);
- if (r != RPC_SUCCESS) {
+ xdr_domainname, &indomain, xdr_ypresp_maplist, &ypml, tv);
+ if (r != RPC_SUCCESS)
clnt_perror(client, "yp_maplist: clnt_call");
- }
*outmaplist = ypml.maps;
/* NO: xdr_free(xdr_ypresp_maplist, &ypml);*/
return ypprot_err(ypml.stat);
diff --git a/usr.sbin/ypserv/ypserv/acl.c b/usr.sbin/ypserv/ypserv/acl.c
index b455c32e6f8..4ab5ab3896f 100644
--- a/usr.sbin/ypserv/ypserv/acl.c
+++ b/usr.sbin/ypserv/ypserv/acl.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: acl.c,v 1.6 1998/02/24 04:29:07 deraadt Exp $ */
+/* $OpenBSD: acl.c,v 1.7 2001/11/19 09:03:06 deraadt Exp $ */
/*
* Copyright (c) 1994 Mats O Jansson <moj@stacken.kth.se>
@@ -32,7 +32,7 @@
*/
#ifndef LINT
-static char rcsid[] = "$OpenBSD: acl.c,v 1.6 1998/02/24 04:29:07 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: acl.c,v 1.7 2001/11/19 09:03:06 deraadt Exp $";
#endif
#include <sys/types.h>
@@ -51,559 +51,527 @@ static char rcsid[] = "$OpenBSD: acl.c,v 1.6 1998/02/24 04:29:07 deraadt Exp $";
static struct aclent *acl_root = NULL;
-static int acl_read_line(fp, buf, size)
-FILE *fp;
-char *buf;
-int size;
+static int
+acl_read_line(fp, buf, size)
+ FILE *fp;
+ char *buf;
+ int size;
{
- int len = 0;
- char *c,*p,l;
-
- /* Read a line, and remove any comment, trim space */
-
- do {
- while (fgets(buf, size, fp)) {
- c = buf;
- while(*c != '\0') {
- if ((*c == '#') || (*c == '\n')) {
- *c = '\0';
- } else {
- c++;
- }
- }
-
- c = p = buf; l = ' ';
- while(*c != '\0') {
- if ((isspace(l) != 0) && (isspace(*c) != 0)) {
- c++;
- } else {
- l = *c++; *p = l; p++;
- }
- }
- *p = '\0';
-
- if (p != buf) {
- --p;
- if (isspace(*p) != 0) {
- *p = '\0';
- }
- }
-
- len = strlen(buf);
- return len + 1;
- }
- } while (size > 0 && !feof(fp));
-
- return len;
+ int len = 0;
+ char *c, *p, l;
+
+ /* Read a line, and remove any comment, trim space */
+
+ do {
+ while (fgets(buf, size, fp)) {
+ c = buf;
+ while(*c != '\0') {
+ if (*c == '#' || *c == '\n') {
+ *c = '\0';
+ } else {
+ c++;
+ }
+ }
+
+ c = p = buf; l = ' ';
+ while(*c != '\0') {
+ if (isspace(l) && isspace(*c)) {
+ c++;
+ } else {
+ l = *c++; *p = l; p++;
+ }
+ }
+ *p = '\0';
+
+ if (p != buf) {
+ --p;
+ if (isspace(*p) != 0) {
+ *p = '\0';
+ }
+ }
+
+ len = strlen(buf);
+ return len + 1;
+ }
+ } while (size > 0 && !feof(fp));
+ return len;
}
int
acl_check_host(addr)
struct in_addr *addr;
{
- struct aclent *p;
-
- p = acl_root;
- while (p != NULL) {
- if ((addr->s_addr & p->s_mask) == p->s_addr) {
- return(p->allow);
- }
- p = p->next;
- }
- return(TRUE);
+ struct aclent *p;
+
+ p = acl_root;
+ while (p != NULL) {
+ if ((addr->s_addr & p->s_mask) == p->s_addr)
+ return(p->allow);
+ p = p->next;
+ }
+ return(TRUE);
}
void
-acl_add_net(allow,addr,mask)
-int allow;
-struct in_addr *addr,*mask;
+acl_add_net(allow, addr,mask)
+ int allow;
+ struct in_addr *addr, *mask;
{
-
- struct aclent *acl,*p;
-
- acl = (struct aclent *) malloc((unsigned) sizeof(struct aclent));
-
- acl->next = NULL;
- acl->allow = allow;
- acl->s_addr = addr->s_addr;
- acl->s_mask = mask->s_addr;
-
- if (acl_root == NULL) {
- acl_root = acl;
- } else {
- p = acl_root;
- while (p->next != NULL)
- p = p->next;
- p->next = acl;
- }
-
+ struct aclent *acl, *p;
+
+ acl = (struct aclent *) malloc(sizeof(struct aclent));
+ acl->next = NULL;
+ acl->allow = allow;
+ acl->s_addr = addr->s_addr;
+ acl->s_mask = mask->s_addr;
+
+ if (acl_root == NULL) {
+ acl_root = acl;
+ } else {
+ p = acl_root;
+ while (p->next != NULL)
+ p = p->next;
+ p->next = acl;
+ }
}
void
-acl_add_host(allow,addr)
-int allow;
-struct in_addr *addr;
+acl_add_host(allow, addr)
+ int allow;
+ struct in_addr *addr;
{
- struct in_addr mask;
+ struct in_addr mask;
mask.s_addr = htonl(0xffffffff);
-
- acl_add_net(allow,addr,&mask);
+ acl_add_net(allow, addr, &mask);
}
int
acl_init(file)
-char *file;
+ char *file;
{
- char data_line[1024];
- int line_no = 0;
- int len,i;
- int allow = TRUE;
- int error_cnt = 0;
- char *p,*k;
- int state;
- struct in_addr addr,mask,*host_addr;
- struct hostent *host;
- struct netent *net;
- FILE *data_file = NULL;
-
- if (file != NULL) {
- data_file = fopen(file,"r");
- };
-
- while ((data_file != NULL) &&
- (acl_read_line(data_file,data_line,sizeof(data_line)))) {
-
- line_no++;
-
- len = strlen(data_line);
- if (len == 0) {
- continue;
- }
-
- p = (char *) &data_line;
-
- /* State 1: Initial State */
-
- state = ACLS_INIT;
- addr.s_addr = mask.s_addr = 0;
-
- k = p; i = 0; /* save start of verb */
- while ((*p != '\0') &&
- (!isspace(*p = tolower(*p)))) {
- p++; i++;
- };
-
- if (*p != '\0') {
- *p++ = '\0';
- }
-
- if (strcmp(k,"allow") == 0) {
- allow = TRUE;
- state = ACLS_ALLOW;
- }
-
- if (strcmp(k,"deny") == 0) {
- allow = FALSE;
- state = ACLS_DENY;
- }
-
- if (state == ACLS_INIT) {
- state = ACLE_UVERB;
- }
-
- /* State 2: allow row */
- /* State 3: deny row */
-
- if ((*p != '\0') &&
- ((state == ACLS_ALLOW) || (state == ACLS_DENY))) {
-
- k = p; i = 0; /* save start of verb */
- while ((*p != '\0') &&
- (!isspace(*p = tolower(*p)))) {
- p++; i++;
- };
-
- if (*p != '\0') {
- *p++ = '\0';
- }
-
- if (strcmp(k,"all") == 0) {
- state = state + ACLD_ALL;
- }
-
- if (strcmp(k,"host") == 0) {
- state = state + ACLD_HOST;
- }
-
- if (strcmp(k,"net") == 0) {
- state = state + ACLD_NET;
- }
-
- if ((state == ACLS_ALLOW) || (state == ACLS_DENY)) {
- state = ACLE_U2VERB;
- }
-
- }
-
- if ((state == ACLS_ALLOW) || (state == ACLS_DENY)) {
- state = ACLE_UEOL;
- }
-
- /* State 4 & 5: all state, remove any comment */
-
- if ((*p == '\0') &&
- ((state == ACLS_ALLOW_ALL) || (state == ACLS_DENY_ALL))) {
- acl_add_net(allow,&addr,&mask);
- state = ACLE_OK;
- }
-
- /* State 6 & 7: host line */
- /* State 8 & 9: net line */
-
- if ((*p != '\0') &&
- (state >= ACLS_ALLOW_HOST) && (state <= ACLS_DENY_NET)) {
-
- k = p; i = 0; /* save start of verb */
- while ((*p != '\0') &&
- (!isspace(*p = tolower(*p)))) {
- p++; i++;
- };
-
- if (*p != '\0') {
- *p++ = '\0';
- }
-
- if ((state == ACLS_ALLOW_HOST) || (state == ACLS_DENY_HOST)) {
- if ((*k >= '0') && (*k <= '9')) {
- (void)inet_aton(k,&addr);
- acl_add_host(allow,&addr);
- state = state + ACLD_HOST_DONE;
- } else {
- host = gethostbyname(k);
- if (host == NULL) {
- state = ACLE_NOHOST;
- } else {
- if (host->h_addrtype == AF_INET) {
- while ((host_addr = (struct in_addr *) *host->h_addr_list++)
- != NULL)
- acl_add_host(allow,host_addr);
- }
- state = state + ACLD_HOST_DONE;
- }
- }
- }
-
- if ((state == ACLS_ALLOW_NET) || (state == ACLS_DENY_NET)) {
- if ((*k >= '0') && (*k <= '9')) {
- (void)inet_aton(k,&addr);
- state = state + ACLD_NET_DONE;
- } else {
- net = getnetbyname(k);
- if (net == NULL) {
- state = ACLE_NONET;
- } else {
- addr.s_addr = ntohl(net->n_net);
- state = state + ACLD_NET_DONE;
- }
+ char data_line[1024];
+ int line_no = 0;
+ int len, i;
+ int allow = TRUE;
+ int error_cnt = 0;
+ char *p, *k;
+ int state;
+ struct in_addr addr, mask, *host_addr;
+ struct hostent *host;
+ struct netent *net;
+ FILE *data_file = NULL;
+
+ if (file != NULL)
+ data_file = fopen(file, "r");
+
+ while (data_file != NULL &&
+ acl_read_line(data_file, data_line, sizeof(data_line))) {
+
+ line_no++;
+ len = strlen(data_line);
+ if (len == 0)
+ continue;
+ p = (char *) &data_line;
+
+ /* State 1: Initial State */
+
+ state = ACLS_INIT;
+ addr.s_addr = mask.s_addr = 0;
+
+ k = p; /* save start of verb */
+ i = 0;
+ while (*p != '\0' && !isspace(*p = tolower(*p))) {
+ p++;
+ i++;
+ }
+
+ if (*p != '\0')
+ *p++ = '\0';
+
+ if (strcmp(k, "allow") == 0) {
+ allow = TRUE;
+ state = ACLS_ALLOW;
+ }
+
+ if (strcmp(k, "deny") == 0) {
+ allow = FALSE;
+ state = ACLS_DENY;
+ }
+
+ if (state == ACLS_INIT)
+ state = ACLE_UVERB;
+
+ /* State 2: allow row */
+ /* State 3: deny row */
+
+ if (*p != '\0' &&
+ (state == ACLS_ALLOW || state == ACLS_DENY)) {
+ k = p; /* save start of verb */
+ i = 0;
+ while (*p != '\0' && !isspace(*p = tolower(*p))) {
+ p++;
+ i++;
+ }
+
+ if (*p != '\0')
+ *p++ = '\0';
+
+ if (strcmp(k, "all") == 0)
+ state = state + ACLD_ALL;
+
+ if (strcmp(k, "host") == 0)
+ state = state + ACLD_HOST;
+
+ if (strcmp(k, "net") == 0)
+ state = state + ACLD_NET;
+
+ if (state == ACLS_ALLOW || state == ACLS_DENY)
+ state = ACLE_U2VERB;
+ }
+
+ if (state == ACLS_ALLOW || state == ACLS_DENY)
+ state = ACLE_UEOL;
+
+ /* State 4 & 5: all state, remove any comment */
+
+ if (*p == '\0' &&
+ (state == ACLS_ALLOW_ALL || state == ACLS_DENY_ALL)) {
+ acl_add_net(allow, &addr, &mask);
+ state = ACLE_OK;
+ }
+
+ /* State 6 & 7: host line */
+ /* State 8 & 9: net line */
+
+ if (*p != '\0' &&
+ state >= ACLS_ALLOW_HOST && state <= ACLS_DENY_NET) {
+
+ k = p; /* save start of verb */
+ i = 0;
+ while (*p != '\0' && !isspace(*p = tolower(*p))) {
+ p++;
+ i++;
+ }
+
+ if (*p != '\0')
+ *p++ = '\0';
+
+ if (state == ACLS_ALLOW_HOST || state == ACLS_DENY_HOST) {
+ if (*k >= '0' && *k <= '9') {
+ (void)inet_aton(k, &addr);
+ acl_add_host(allow, &addr);
+ state = state + ACLD_HOST_DONE;
+ } else {
+ host = gethostbyname(k);
+ if (host == NULL) {
+ state = ACLE_NOHOST;
+ } else {
+ if (host->h_addrtype == AF_INET) {
+ while ((host_addr = (struct in_addr *) *host->h_addr_list++) != NULL)
+ acl_add_host(allow, host_addr);
+ }
+ state = state + ACLD_HOST_DONE;
+ }
+ }
+ }
+
+ if (state == ACLS_ALLOW_NET || state == ACLS_DENY_NET) {
+ if (*k >= '0' && *k <= '9') {
+ (void)inet_aton(k, &addr);
+ state = state + ACLD_NET_DONE;
+ } else {
+ net = getnetbyname(k);
+ if (net == NULL) {
+ state = ACLE_NONET;
+ } else {
+ addr.s_addr = ntohl(net->n_net);
+ state = state + ACLD_NET_DONE;
+ }
+ }
+ }
+
+ }
+
+ if (state >= ACLS_ALLOW_HOST && state <= ACLS_DENY_NET)
+ state = ACLE_UEOL;
+
+
+ /* State 10 & 11: allow/deny host line */
+ if (*p == '\0' &&
+ (state == ACLS_ALLOW_HOST_DONE || state == ACLS_DENY_HOST_DONE))
+ state = ACLE_OK;
+
+ /* State 12 & 13: allow/deny net line */
+ if (*p == '\0' &&
+ (state == ACLS_ALLOW_NET_DONE || state == ACLS_DENY_NET_DONE)) {
+ mask.s_addr = htonl(0xffffff00);
+ if (ntohl(addr.s_addr) < 0xc0000000)
+ mask.s_addr = htonl(0xffff0000);
+ if (ntohl(addr.s_addr) < 0x80000000)
+ mask.s_addr = htonl(0xff000000);
+ acl_add_net(allow, &addr, &mask);
+ state = ACLE_OK;
+ }
+
+ if (*p != '\0' &&
+ (state == ACLS_ALLOW_NET_DONE || state == ACLS_DENY_NET_DONE)) {
+
+ k = p; /* save start of verb */
+ i = 0;
+ while (*p != '\0' && !isspace(*p = tolower(*p))) {
+ p++;
+ i++;
+ }
+
+ if (*p != '\0')
+ *p++ = '\0';
+
+ if (strcmp(k, "netmask") == 0)
+ state = state + ACLD_NET_MASK;
+
+ if (state == ACLS_ALLOW_NET_DONE ||
+ state == ACLS_DENY_NET_DONE)
+ state = ACLE_NONETMASK;
+ }
+
+ /* State 14 & 15: allow/deny net netmask line */
+ if (*p != '\0' &&
+ (state == ACLS_ALLOW_NET_MASK || state == ACLS_DENY_NET_MASK)) {
+
+ k = p; /* save start of verb */
+ i = 0;
+ while (*p != '\0' && !isspace(*p = tolower(*p))) {
+ p++;
+ i++;
+ }
+
+ if (*p != '\0')
+ *p++ = '\0';
+
+ if (state == ACLS_ALLOW_NET_MASK ||
+ state == ACLS_DENY_NET_MASK) {
+ if (*k >= '0' && *k <= '9') {
+ (void)inet_aton(k, &mask);
+ state = state + ACLD_NET_EOL;
+ } else {
+ net = getnetbyname(k);
+ if (net == NULL) {
+ state = ACLE_NONET;
+ } else {
+ mask.s_addr = ntohl(net->n_net);
+ state = state + ACLD_NET_EOL;
+ }
+ }
+ }
+
+ }
+
+ if (state == ACLS_ALLOW_NET_MASK || state == ACLS_DENY_NET_MASK)
+ state = ACLE_UEOL;
+
+ /* State 16 & 17: allow/deny host line */
+ if (*p == '\0' &&
+ (state == ACLS_ALLOW_NET_EOL || state == ACLS_DENY_NET_EOL)) {
+ acl_add_net(allow, &addr, &mask);
+ state = ACLE_OK;
+ }
+
+ switch (state) {
+ case ACLE_NONETMASK:
+ fprintf(stderr,
+ "acl: excpected \"netmask\" missing at line %d\n",
+ line_no);
+ break;
+ case ACLE_NONET:
+ error_cnt++;
+ fprintf(stderr, "acl: unknown network at line %d\n",
+ line_no);
+ break;
+ case ACLE_NOHOST:
+ error_cnt++;
+ fprintf(stderr, "acl: unknown host at line %d\n",
+ line_no);
+ break;
+ case ACLE_UVERB:
+ error_cnt++;
+ fprintf(stderr, "acl: unknown verb at line %d\n",
+ line_no);
+ break;
+ case ACLE_U2VERB:
+ error_cnt++;
+ fprintf(stderr,
+ "acl: unknown secondary verb at line %d\n",
+ line_no);
+ break;
+ case ACLE_UEOL:
+ error_cnt++;
+ fprintf(stderr,
+ "acl: unexpected end of line at line %d\n",
+ line_no);
+ break;
+ case ACLE_OK:
+ break;
+ default:
+ error_cnt++;
+ fprintf(stderr, "acl: unexpected state %d %s\n",state,k);
+ }
+
}
- }
-
- }
-
- if ((state >= ACLS_ALLOW_HOST) && (state <= ACLS_DENY_NET)) {
- state = ACLE_UEOL;
- }
-
- /* State 10 & 11: allow/deny host line */
-
- if ((*p == '\0') &&
- ((state == ACLS_ALLOW_HOST_DONE) || (state == ACLS_DENY_HOST_DONE))) {
- state = ACLE_OK;
- }
-
- /* State 12 & 13: allow/deny net line */
-
- if ((*p == '\0') &&
- ((state == ACLS_ALLOW_NET_DONE) || (state == ACLS_DENY_NET_DONE))) {
- mask.s_addr = htonl(0xffffff00);
- if (ntohl(addr.s_addr) < 0xc0000000) {
- mask.s_addr = htonl(0xffff0000);
- }
- if (ntohl(addr.s_addr) < 0x80000000) {
- mask.s_addr = htonl(0xff000000);
- }
- acl_add_net(allow,&addr,&mask);
- state = ACLE_OK;
- }
-
- if ((*p != '\0') &&
- ((state == ACLS_ALLOW_NET_DONE) || (state == ACLS_DENY_NET_DONE))) {
-
- k = p; i = 0; /* save start of verb */
- while ((*p != '\0') &&
- (!isspace(*p = tolower(*p)))) {
- p++; i++;
- };
-
- if (*p != '\0') {
- *p++ = '\0';
- }
-
- if (strcmp(k,"netmask") == 0) {
- state = state + ACLD_NET_MASK;
- }
-
- if ((state == ACLS_ALLOW_NET_DONE) || (state == ACLS_DENY_NET_DONE)) {
- state = ACLE_NONETMASK;
- }
-
- }
-
- /* State 14 & 15: allow/deny net netmask line */
-
- if ((*p != '\0') &&
- ((state == ACLS_ALLOW_NET_MASK) || (state == ACLS_DENY_NET_MASK))) {
-
- k = p; i = 0; /* save start of verb */
- while ((*p != '\0') &&
- (!isspace(*p = tolower(*p)))) {
- p++; i++;
- };
-
- if (*p != '\0') {
- *p++ = '\0';
- }
-
- if ((state == ACLS_ALLOW_NET_MASK) || (state == ACLS_DENY_NET_MASK)) {
- if ((*k >= '0') && (*k <= '9')) {
- (void)inet_aton(k,&mask);
- state = state + ACLD_NET_EOL;
- } else {
- net = getnetbyname(k);
- if (net == NULL) {
- state = ACLE_NONET;
- } else {
- mask.s_addr = ntohl(net->n_net);
- state = state + ACLD_NET_EOL;
- }
+
+ if (data_file != NULL) {
+ (void)fflush(stderr);
+ (void)fclose(data_file);
}
- }
-
- }
-
- if ((state == ACLS_ALLOW_NET_MASK) || (state == ACLS_DENY_NET_MASK)) {
- state = ACLE_UEOL;
- }
-
- /* State 16 & 17: allow/deny host line */
-
- if ((*p == '\0') &&
- ((state == ACLS_ALLOW_NET_EOL) || (state == ACLS_DENY_NET_EOL))) {
- acl_add_net(allow,&addr,&mask);
- state = ACLE_OK;
- }
-
- switch (state) {
- case ACLE_NONETMASK:
- fprintf(stderr,"acl: excpected \"netmask\" missing at line %d\n",line_no);
- break;
- case ACLE_NONET:
- error_cnt++;
- fprintf(stderr,"acl: unknown network at line %d\n",line_no);
- break;
- case ACLE_NOHOST:
- error_cnt++;
- fprintf(stderr,"acl: unknown host at line %d\n",line_no);
- break;
- case ACLE_UVERB:
- error_cnt++;
- fprintf(stderr,"acl: unknown verb at line %d\n",line_no);
- break;
- case ACLE_U2VERB:
- error_cnt++;
- fprintf(stderr,"acl: unknown secondary verb at line %d\n",line_no);
- break;
- case ACLE_UEOL:
- error_cnt++;
- fprintf(stderr,"acl: unexpected end of line at line %d\n",line_no);
- break;
- case ACLE_OK:
- break;
- default:
- error_cnt++;
- fprintf(stderr,"acl: unexpected state %d %s\n",state,k);
- }
-
- }
-
- if (data_file != NULL) {
- (void)fflush(stderr);
- (void)fclose(data_file);
- }
-
- /* Always add a last allow all if file don't exists or */
- /* the file doesn't cover all cases. */
-
- addr.s_addr = mask.s_addr = 0;
- allow = TRUE;
- acl_add_net(allow,&addr,&mask);
-
- return(error_cnt);
+ /* Always add a last allow all if file don't exists or */
+ /* the file doesn't cover all cases. */
+ addr.s_addr = mask.s_addr = 0;
+ allow = TRUE;
+ acl_add_net(allow, &addr, &mask);
+ return(error_cnt);
}
int
acl_securenet(file)
char *file;
{
- char data_line[1024];
- int line_no = 0;
- int len,i;
- int allow = TRUE;
- int error_cnt = 0;
- char *p,*k;
- int state;
- struct in_addr addr,mask;
- struct netent *net;
- FILE *data_file = NULL;
-
- if (file != NULL) {
- data_file = fopen(file,"r");
- };
-
- /* Always add a localhost allow first, to be compatable with sun */
-
- addr.s_addr = htonl(0x7f000001);
- mask.s_addr = htonl(0xffffffff);
- allow = TRUE;
- acl_add_net(allow,&addr,&mask);
-
- while ((data_file != NULL) &&
- (acl_read_line(data_file,data_line,sizeof(data_line)))) {
-
- line_no++;
-
- len = strlen(data_line);
- if (len == 0) {
- continue;
- }
-
- p = (char *) &data_line;
-
- /* State 1: Initial State */
-
- state = ACLS_INIT;
- addr.s_addr = mask.s_addr = 0;
-
- k = p; i = 0; /* save start of verb */
- while ((*p != '\0') &&
- (!isspace(*p = tolower(*p)))) {
- p++; i++;
- };
-
- if (*p != '\0') {
- *p++ = '\0';
- state = ACLS_ALLOW_NET_MASK;
- }
-
- if (state == ACLS_INIT) {
- state = ACLE_UEOL;
- }
-
- if (state == ACLS_ALLOW_NET_MASK) {
-
- if ((*k >= '0') && (*k <= '9')) {
- (void)inet_aton(k,&mask);
- state = ACLS_ALLOW_NET;
- } else {
- net = getnetbyname(k);
- if (net == NULL) {
- state = ACLE_NONET;
- } else {
- mask.s_addr = ntohl(net->n_net);
- state = ACLS_ALLOW_NET;
+ char data_line[1024];
+ int line_no = 0;
+ int len, i;
+ int allow = TRUE;
+ int error_cnt = 0;
+ char *p, *k;
+ int state;
+ struct in_addr addr, mask;
+ struct netent *net;
+ FILE *data_file = NULL;
+
+ if (file != NULL)
+ data_file = fopen(file, "r");
+
+ /* Always add a localhost allow first, to be compatable with sun */
+ addr.s_addr = htonl(0x7f000001);
+ mask.s_addr = htonl(0xffffffff);
+ allow = TRUE;
+ acl_add_net(allow, &addr, &mask);
+
+ while (data_file != NULL &&
+ acl_read_line(data_file, data_line, sizeof(data_line))) {
+ line_no++;
+ len = strlen(data_line);
+ if (len == 0)
+ continue;
+ p = (char *) &data_line;
+
+ /* State 1: Initial State */
+ state = ACLS_INIT;
+ addr.s_addr = mask.s_addr = 0;
+
+ k = p; /* save start of verb */
+ i = 0;
+ while (*p != '\0' && !isspace(*p = tolower(*p))) {
+ p++;
+ i++;
+ }
+
+ if (*p != '\0') {
+ *p++ = '\0';
+ state = ACLS_ALLOW_NET_MASK;
+ }
+
+ if (state == ACLS_INIT)
+ state = ACLE_UEOL;
+
+ if (state == ACLS_ALLOW_NET_MASK) {
+ if (*k >= '0' && *k <= '9') {
+ (void)inet_aton(k, &mask);
+ state = ACLS_ALLOW_NET;
+ } else {
+ net = getnetbyname(k);
+ if (net == NULL) {
+ state = ACLE_NONET;
+ } else {
+ mask.s_addr = ntohl(net->n_net);
+ state = ACLS_ALLOW_NET;
+ }
+ }
+
+ k = p; /* save start of verb */
+ i = 0;
+ while (*p != '\0' && !isspace(*p = tolower(*p))) {
+ p++;
+ i++;
+ }
+
+ if (*p != '\0')
+ *p++ = '\0';
+ }
+
+ if (state == ACLS_ALLOW_NET_MASK)
+ state = ACLE_UEOL;
+
+ if (state == ACLS_ALLOW_NET) {
+ if (*k >= '0' && *k <= '9') {
+ (void)inet_aton(k, &addr);
+ state = ACLS_ALLOW_NET_EOL;
+ } else {
+ net = getnetbyname(k);
+ if (net == NULL) {
+ state = ACLE_NONET;
+ } else {
+ addr.s_addr = ntohl(net->n_net);
+ state = ACLS_ALLOW_NET_EOL;
+ }
+ }
+ }
+
+ if (state == ACLS_ALLOW_NET)
+ state = ACLE_UEOL;
+
+ if (*p == '\0' && state == ACLS_ALLOW_NET_EOL) {
+ acl_add_net(allow, &addr, &mask);
+ state = ACLE_OK;
+ }
+
+ switch (state) {
+ case ACLE_NONET:
+ error_cnt++;
+ fprintf(stderr,
+ "securenet: unknown network at line %d\n",
+ line_no);
+ break;
+ case ACLE_UEOL:
+ error_cnt++;
+ fprintf(stderr,
+ "securenet: unexpected end of line at line %d\n",
+ line_no);
+ break;
+ case ACLE_OK:
+ break;
+ default:
+ error_cnt++;
+ fprintf(stderr, "securenet: unexpected state %d %s\n",
+ state, k);
+ }
}
- }
-
- k = p; i = 0; /* save start of verb */
- while ((*p != '\0') &&
- (!isspace(*p = tolower(*p)))) {
- p++; i++;
- };
-
- if (*p != '\0') {
- *p++ = '\0';
- }
- }
-
- if ((state == ACLS_ALLOW_NET_MASK)) {
- state = ACLE_UEOL;
- }
-
- if (state == ACLS_ALLOW_NET) {
-
- if ((*k >= '0') && (*k <= '9')) {
- (void)inet_aton(k,&addr);
- state = ACLS_ALLOW_NET_EOL;
- } else {
- net = getnetbyname(k);
- if (net == NULL) {
- state = ACLE_NONET;
- } else {
- addr.s_addr = ntohl(net->n_net);
- state = ACLS_ALLOW_NET_EOL;
+
+ if (data_file != NULL) {
+ (void)fflush(stderr);
+ (void)fclose(data_file);
+
+ /* Always add a last deny all if file exists */
+ addr.s_addr = mask.s_addr = 0;
+ allow = FALSE;
+ acl_add_net(allow, &addr, &mask);
}
- }
- }
-
- if ((state == ACLS_ALLOW_NET)) {
- state = ACLE_UEOL;
- }
-
- if ((*p == '\0') && (state == ACLS_ALLOW_NET_EOL)) {
- acl_add_net(allow,&addr,&mask);
- state = ACLE_OK;
- }
-
- switch (state) {
- case ACLE_NONET:
- error_cnt++;
- fprintf(stderr,"securenet: unknown network at line %d\n",line_no);
- break;
- case ACLE_UEOL:
- error_cnt++;
- fprintf(stderr,"securenet: unexpected end of line at line %d\n",line_no);
- break;
- case ACLE_OK:
- break;
- default:
- error_cnt++;
- fprintf(stderr,"securenet: unexpected state %d %s\n",state,k);
- }
-
- }
-
- if (data_file != NULL) {
- (void)fflush(stderr);
- (void)fclose(data_file);
-
- /* Always add a last deny all if file exists */
-
- addr.s_addr = mask.s_addr = 0;
- allow = FALSE;
- acl_add_net(allow,&addr,&mask);
-
- }
-
- /* Always add a last allow all if file don't exists */
-
- addr.s_addr = mask.s_addr = 0;
- allow = TRUE;
- acl_add_net(allow,&addr,&mask);
-
- return(error_cnt);
+ /* Always add a last allow all if file don't exists */
+
+ addr.s_addr = mask.s_addr = 0;
+ allow = TRUE;
+ acl_add_net(allow, &addr, &mask);
+ return(error_cnt);
}
void
diff --git a/usr.sbin/ypserv/ypserv/ypserv.c b/usr.sbin/ypserv/ypserv/ypserv.c
index f0ad24958ad..a081acd0471 100644
--- a/usr.sbin/ypserv/ypserv/ypserv.c
+++ b/usr.sbin/ypserv/ypserv/ypserv.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ypserv.c,v 1.15 2001/01/11 23:37:01 deraadt Exp $ */
+/* $OpenBSD: ypserv.c,v 1.16 2001/11/19 09:03:06 deraadt Exp $ */
/*
* Copyright (c) 1994 Mats O Jansson <moj@stacken.kth.se>
@@ -32,25 +32,26 @@
*/
#ifndef LINT
-static char rcsid[] = "$OpenBSD: ypserv.c,v 1.15 2001/01/11 23:37:01 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: ypserv.c,v 1.16 2001/11/19 09:03:06 deraadt Exp $";
#endif
+#include <sys/types.h>
+#include <sys/socket.h>
+#include <sys/ioctl.h>
+#include <sys/ttycom.h>/* TIOCNOTTY */
+#include <netinet/in.h>
#include "yp.h"
#include "ypv1.h"
#include <stdio.h>
#include <stdlib.h>/* getenv, exit */
-#include <rpc/pmap_clnt.h> /* for pmap_unset */
#include <string.h> /* strcmp */
#include <netdb.h>
#include <signal.h>
#include <errno.h>
-#include <sys/ttycom.h>/* TIOCNOTTY */
-#ifdef __cplusplus
-#include <sysent.h> /* getdtablesize, open */
-#endif /* __cplusplus */
+#include <unistd.h>
+#include <fcntl.h>
+#include <rpc/pmap_clnt.h> /* for pmap_unset */
#include <memory.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
#ifdef SYSLOG
#include <syslog.h>
#else
@@ -79,8 +80,14 @@ int usedns = FALSE;
char *progname = "ypserv";
char *aclfile = NULL;
-void sig_child();
-void sig_hup();
+void sig_child();
+void sig_hup();
+
+extern int __svc_fdsetsize;
+extern fd_set *__svc_fdset;
+extern void svc_getreqset2 __P((fd_set *, int));
+
+volatile sig_atomic_t wantsighup;
static
void _msgout(char* msg)
@@ -214,7 +221,6 @@ ypprog_1(struct svc_req *rqstp, register SVCXPRT *transp)
exit(1);
}
_rpcsvcdirty = 0;
- return;
}
static void
@@ -330,13 +336,68 @@ ypprog_2(struct svc_req *rqstp, register SVCXPRT *transp)
exit(1);
}
_rpcsvcdirty = 0;
- return;
+}
+
+void
+hup()
+{
+ /* Handle the log. */
+ ypcloselog();
+ ypopenlog();
+
+ acl_reset();
+ if (aclfile != NULL) {
+ yplog("sig_hup: reread %s", aclfile);
+ (void)acl_init(aclfile);
+ } else {
+ yplog("sig_hup: reread %s", YP_SECURENET_FILE);
+ (void)acl_securenet(YP_SECURENET_FILE);
+ }
+}
+
+void
+my_svc_run()
+{
+ fd_set *fds;
+
+ for (;;) {
+ if (wantsighup) {
+ hup();
+ wantsighup = 0;
+ }
+ if (__svc_fdset) {
+ int bytes = howmany(__svc_fdsetsize, NFDBITS) *
+ sizeof(fd_mask);
+ fds = (fd_set *)malloc(bytes); /* XXX */
+ memcpy(fds, __svc_fdset, bytes);
+ } else
+ fds = NULL;
+ switch (select(svc_maxfd+1, fds, 0, 0, (struct timeval *)0)) {
+ case -1:
+ if (errno == EINTR) {
+ if (fds)
+ free(fds);
+ continue;
+ }
+ perror("svc_run: - select failed");
+ if (fds)
+ free(fds);
+ return;
+ case 0:
+ if (fds)
+ free(fds);
+ continue;
+ default:
+ svc_getreqset2(fds, svc_maxfd+1);
+ free(fds);
+ }
+ }
}
int
-main (argc,argv)
-int argc;
-char *argv[];
+main(argc, argv)
+ int argc;
+ char *argv[];
{
register SVCXPRT *transp;
int sock;
@@ -369,12 +430,12 @@ char *argv[];
}
if (usage) {
- (void)fprintf(stderr,"usage: %s [-a aclfile] [-d] [-x]\n",progname);
+ (void)fprintf(stderr, "usage: %s [-a aclfile] [-d] [-x]\n",progname);
exit(1);
}
if (geteuid() != 0) {
- (void)fprintf(stderr,"%s: must be root to run.\n",progname);
+ (void)fprintf(stderr, "%s: must be root to run.\n",progname);
exit(1);
}
@@ -385,7 +446,7 @@ char *argv[];
}
if (xflag) {
exit(1);
- };
+ }
if (getsockname(0, (struct sockaddr *)&saddr, &asize) == 0) {
int ssize = sizeof (int);
@@ -393,7 +454,7 @@ char *argv[];
if (saddr.sin_family != AF_INET)
exit(1);
if (getsockopt(0, SOL_SOCKET, SO_TYPE,
- (char *)&_rpcfdtype, &ssize) == -1)
+ (char *)&_rpcfdtype, &ssize) == -1)
exit(1);
sock = 0;
_rpcpmstart = 1;
@@ -436,11 +497,12 @@ char *argv[];
(void)signal(SIGCHLD, sig_child);
(void)signal(SIGHUP, sig_hup);
- { FILE *pidfile = fopen(YPSERV_PID_PATH, "w");
- if (pidfile != NULL) {
- fprintf(pidfile, "%d\n", getpid());
- fclose(pidfile);
- }
+ {
+ FILE *pidfile = fopen(YPSERV_PID_PATH, "w");
+ if (pidfile != NULL) {
+ fprintf(pidfile, "%d\n", getpid());
+ fclose(pidfile);
+ }
}
if ((_rpcfdtype == 0) || (_rpcfdtype == SOCK_DGRAM)) {
@@ -502,7 +564,7 @@ char *argv[];
(void) signal(SIGALRM, (SIG_PF) closedown);
(void) alarm(_RPCSVC_CLOSEDOWN);
}
- svc_run();
+ my_svc_run();
_msgout("svc_run returned");
exit(1);
/* NOTREACHED */
@@ -526,20 +588,5 @@ sig_child()
void
sig_hup()
{
- int save_errno = errno;
-
- /* Handle the log. */
- ypcloselog();
- ypopenlog();
-
- acl_reset();
- if (aclfile != NULL) {
- yplog("sig_hup: reread %s",aclfile);
- (void)acl_init(aclfile);
- } else {
- yplog("sig_hup: reread %s",YP_SECURENET_FILE);
- (void)acl_securenet(YP_SECURENET_FILE);
- }
-
- errno = save_errno;
+ wantsighup = 1;
}
diff --git a/usr.sbin/ypserv/ypserv/ypserv_db.c b/usr.sbin/ypserv/ypserv/ypserv_db.c
index aeece700011..2255ae7790d 100644
--- a/usr.sbin/ypserv/ypserv/ypserv_db.c
+++ b/usr.sbin/ypserv/ypserv/ypserv_db.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ypserv_db.c,v 1.15 2001/01/11 23:36:07 deraadt Exp $ */
+/* $OpenBSD: ypserv_db.c,v 1.16 2001/11/19 09:03:06 deraadt Exp $ */
/*
* Copyright (c) 1994 Mats O Jansson <moj@stacken.kth.se>
@@ -34,7 +34,7 @@
*/
#ifndef LINT
-static char rcsid[] = "$OpenBSD: ypserv_db.c,v 1.15 2001/01/11 23:36:07 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: ypserv_db.c,v 1.16 2001/11/19 09:03:06 deraadt Exp $";
#endif
/*
@@ -43,7 +43,6 @@ static char rcsid[] = "$OpenBSD: ypserv_db.c,v 1.15 2001/01/11 23:36:07 deraadt
* Jan 1996.
*/
-
#include <rpc/rpc.h>
#include <rpcsvc/yp.h>
#include <rpcsvc/ypclnt.h>
@@ -87,7 +86,6 @@ struct opt_domain {
LIST_ENTRY(opt_domain) domsl; /* global linked list of domains */
};
-
struct domainlist doms; /* global list of domains */
struct mapq maps; /* global queue of maps (LRU) */
@@ -96,7 +94,6 @@ extern int usedns;
/*
* ypdb_init: init the queues and lists
*/
-
void
ypdb_init()
@@ -105,56 +102,53 @@ ypdb_init()
CIRCLEQ_INIT(&maps);
}
-
/*
* yp_private:
* Check if key is a YP private key. Return TRUE if it is and
* ypprivate is FALSE.
*/
-
int
-yp_private(key,ypprivate)
+yp_private(key, ypprivate)
datum key;
int ypprivate;
{
int result;
if (ypprivate)
- return (FALSE);
+ return (FALSE);
if (key.dsize == 0 || key.dptr == NULL)
return (FALSE);
if (key.dsize == YP_LAST_LEN &&
- strncmp(key.dptr,YP_LAST_KEY,YP_LAST_LEN) == 0)
+ strncmp(key.dptr, YP_LAST_KEY, YP_LAST_LEN) == 0)
return(TRUE);
if (key.dsize == YP_INPUT_LEN &&
- strncmp(key.dptr,YP_INPUT_KEY,YP_INPUT_LEN) == 0)
+ strncmp(key.dptr, YP_INPUT_KEY, YP_INPUT_LEN) == 0)
return(TRUE);
if (key.dsize == YP_OUTPUT_LEN &&
- strncmp(key.dptr,YP_OUTPUT_KEY,YP_OUTPUT_LEN) == 0)
+ strncmp(key.dptr, YP_OUTPUT_KEY, YP_OUTPUT_LEN) == 0)
return(TRUE);
if (key.dsize == YP_MASTER_LEN &&
- strncmp(key.dptr,YP_MASTER_KEY,YP_MASTER_LEN) == 0)
+ strncmp(key.dptr, YP_MASTER_KEY, YP_MASTER_LEN) == 0)
return(TRUE);
if (key.dsize == YP_DOMAIN_LEN &&
- strncmp(key.dptr,YP_DOMAIN_KEY,YP_DOMAIN_LEN) == 0)
+ strncmp(key.dptr, YP_DOMAIN_KEY, YP_DOMAIN_LEN) == 0)
return(TRUE);
if (key.dsize == YP_INTERDOMAIN_LEN &&
- strncmp(key.dptr,YP_INTERDOMAIN_KEY,YP_INTERDOMAIN_LEN) == 0)
+ strncmp(key.dptr, YP_INTERDOMAIN_KEY, YP_INTERDOMAIN_LEN) == 0)
return(TRUE);
if (key.dsize == YP_SECURE_LEN &&
- strncmp(key.dptr,YP_SECURE_KEY,YP_SECURE_LEN) == 0)
+ strncmp(key.dptr, YP_SECURE_KEY, YP_SECURE_LEN) == 0)
return(TRUE);
return(FALSE);
-}
+}
/*
* Close least recent used map. This routine is called when we have
* no more file descripotors free, or we want to close all maps.
*/
-
void
ypdb_close_last()
{
@@ -170,20 +164,17 @@ ypdb_close_last()
#ifdef DEBUG
yplog(" ypdb_close_last: closing map %s in domain %s [db=0x%x]",
- last->map, last->dom->domain, last->db);
+ last->map, last->dom->domain, last->db);
#endif
ypdb_close(last->db); /* close DB */
free(last->map); /* free map name */
free(last); /* free map */
-
-
}
/*
* Close all open maps.
*/
-
void
ypdb_close_all()
{
@@ -191,9 +182,8 @@ ypdb_close_all()
#ifdef DEBUG
yplog(" ypdb_close_all(): start");
#endif
- while (maps.cqh_first != (void *)&maps) {
+ while (maps.cqh_first != (void *)&maps)
ypdb_close_last();
- }
#ifdef DEBUG
yplog(" ypdb_close_all(): done");
#endif
@@ -202,7 +192,6 @@ ypdb_close_all()
/*
* Close Database if Open/Close Optimization isn't turned on.
*/
-
void
ypdb_close_db(db)
DBM *db;
@@ -218,7 +207,6 @@ ypdb_close_db(db)
/*
* ypdb_open_db
*/
-
DBM *
ypdb_open_db(domain, map, status, map_info)
domainname domain;
@@ -234,36 +222,38 @@ ypdb_open_db(domain, map, status, map_info)
int fd;
struct opt_domain *d = NULL;
struct opt_map *m = NULL;
- datum k,v;
+ datum k, v;
#ifdef OPTDB
int i;
#endif
+
/*
* check for preloaded domain, map
*/
-
for (d = doms.lh_first ; d != NULL ; d = d->domsl.le_next) {
- if (strcmp(domain, d->domain) == 0) break;
+ if (strcmp(domain, d->domain) == 0)
+ break;
}
if (d) {
for (m = d->dmaps.lh_first ; m != NULL ; m = m->mapsl.le_next)
- if (strcmp(map, m->map) == 0) break;
+ if (strcmp(map, m->map) == 0)
+ break;
}
/*
* map found open?
*/
-
if (m) {
#ifdef DEBUG
yplog(" ypdb_open_db: cached open: domain=%s, map=%s, db=0x%x",
- domain, map, m->db);
+ domain, map, m->db);
#endif
CIRCLEQ_REMOVE(&maps, m, mapsq); /* adjust LRU queue */
CIRCLEQ_INSERT_HEAD(&maps, m, mapsq);
*status = YP_TRUE;
- if (map_info) *map_info = m;
+ if (map_info)
+ *map_info = m;
return(m->db);
}
@@ -278,7 +268,6 @@ ypdb_open_db(domain, map, status, map_info)
return (NULL);
}
-
/*
* open map
*/
@@ -287,15 +276,15 @@ ypdb_open_db(domain, map, status, map_info)
while (i == 0) {
#endif
snprintf(map_path, sizeof(map_path), "%s/%s/%s", YP_DB_PATH,
- domain, map);
+ domain, map);
db = ypdb_open(map_path, O_RDONLY, 0444);
#ifdef OPTDB
if (db == NULL) {
#ifdef DEBUG
yplog(" ypdb_open_db: errno %d (%s)",
- errno,sys_errlist[errno]);
+ errno, sys_errlist[errno]);
#endif
- if ((errno == ENFILE) || (errno == EMFILE)) {
+ if (errno == ENFILE || errno == EMFILE) {
ypdb_close_last();
} else {
i = errno;
@@ -303,20 +292,20 @@ ypdb_open_db(domain, map, status, map_info)
} else {
i = 4711;
}
- };
+ }
#endif
*status = YP_NOMAP; /* see note below */
if (db == NULL) {
if (errno == ENOENT) {
#ifdef DEBUG
yplog(" ypdb_open_db: no map %s (domain=%s)",
- map, domain);
+ map, domain);
#endif
return(NULL);
}
#ifdef DEBUG
yplog(" ypdb_open_db: ypdb_open FAILED: map %s (domain=%s)",
- map, domain);
+ map, domain);
#endif
return(NULL);
}
@@ -327,11 +316,13 @@ ypdb_open_db(domain, map, status, map_info)
if (d == NULL) { /* allocate new domain? */
d = (struct opt_domain *) malloc(sizeof(*d));
- if (d) d->domain = strdup(domain);
+ if (d)
+ d->domain = strdup(domain);
if (d == NULL || d->domain == NULL) {
yplog(" ypdb_open_db: MALLOC failed");
ypdb_close(db);
- if (d) free(d);
+ if (d)
+ free(d);
return(NULL);
}
LIST_INIT(&d->dmaps);
@@ -346,11 +337,11 @@ ypdb_open_db(domain, map, status, map_info)
*/
m = (struct opt_map *) malloc(sizeof(*m));
- if (m) {
+ if (m)
m->map = strdup(map);
- }
if (m == NULL || m->map == NULL) {
- if (m) free(m);
+ if (m)
+ free(m);
yplog(" ypdb_open_db: MALLOC failed");
ypdb_close(db);
return(NULL);
@@ -364,22 +355,24 @@ ypdb_open_db(domain, map, status, map_info)
if (!usedns) {
k.dptr = domain_key;
k.dsize = YP_INTERDOMAIN_LEN;
- v = ypdb_fetch(db,k);
- if (v.dptr) m->host_lookup = TRUE;
- } else {
+ v = ypdb_fetch(db, k);
+ if (v.dptr)
+ m->host_lookup = TRUE;
+ } else
m->host_lookup = TRUE;
- }
}
m->secure = FALSE;
k.dptr = secure_key;
k.dsize = YP_SECURE_LEN;
- v = ypdb_fetch(db,k);
- if (v.dptr) m->secure = TRUE;
+ v = ypdb_fetch(db, k);
+ if (v.dptr)
+ m->secure = TRUE;
*status = YP_TRUE;
- if (map_info) *map_info = m;
+ if (map_info)
+ *map_info = m;
#ifdef DEBUG
- yplog(" ypdb_open_db: NEW MAP domain=%s, map=%s, hl=%d, s=%d, db=0x%x",
- domain, map, m->host_lookup, m->secure, m->db);
+ yplog(" ypdb_open_db: NEW MAP domain=%s, map=%s, hl=%d, s=%d, db=0x%x",
+ domain, map, m->host_lookup, m->secure, m->db);
#endif
return(m->db);
}
@@ -387,7 +380,6 @@ ypdb_open_db(domain, map, status, map_info)
/*
* lookup host
*/
-
ypstat
lookup_host(nametable, host_lookup, db, keystr, result)
int nametable;
@@ -406,7 +398,8 @@ lookup_host(nametable, host_lookup, db, keystr, result)
int l;
char *ptr;
- if (!host_lookup) return(YP_NOKEY);
+ if (!host_lookup)
+ return(YP_NOKEY);
if ((_res.options & RES_INIT) == 0)
res_init();
@@ -439,7 +432,8 @@ lookup_host(nametable, host_lookup, db, keystr, result)
strncpy((char *)hostname, host->h_name, sizeof(hostname) - 1);
hostname[sizeof(hostname) - 1] = '\0';
host = gethostbyname((char *)hostname);
- if (host == NULL) return(YP_NOKEY);
+ if (host == NULL)
+ return(YP_NOKEY);
l = 0;
for(; host->h_addr_list[0] != NULL; host->h_addr_list++)
@@ -447,14 +441,14 @@ lookup_host(nametable, host_lookup, db, keystr, result)
l++;
if (l == 0) {
yplog("lookup_host: address %s not listed for host %s\n",
- inet_ntoa(addr_addr), hostname);
+ inet_ntoa(addr_addr), hostname);
syslog(LOG_NOTICE,
- "ypserv: address %s not listed for host %s\n",
- inet_ntoa(addr_addr), hostname);
+ "ypserv: address %s not listed for host %s\n",
+ inet_ntoa(addr_addr), hostname);
return(YP_NOKEY);
}
- snprintf(val,sizeof(val),"%s %s",keystr,host->h_name);
+ snprintf(val, sizeof(val), "%s %s", keystr, host->h_name);
l = strlen(val);
v = val + l;
while ((ptr = *(host->h_aliases)) != NULL) {
@@ -483,7 +477,7 @@ ypdb_get_record(domain, map, key, ypprivate)
static ypresp_val res;
static char keystr[YPMAXRECORD+1];
DBM *db;
- datum k,v;
+ datum k, v;
int host_lookup, hn;
struct opt_map *map_info = NULL;
@@ -498,7 +492,7 @@ ypdb_get_record(domain, map, key, ypprivate)
k.dptr = key.keydat_val;
k.dsize = key.keydat_len;
- if (yp_private(k,ypprivate)) {
+ if (yp_private(k, ypprivate)) {
res.stat = YP_NOKEY;
goto done;
}
@@ -508,13 +502,13 @@ ypdb_get_record(domain, map, key, ypprivate)
if (v.dptr == NULL) {
res.stat = YP_NOKEY;
if ((hn = strcmp(map, YP_HOSTNAME)) != 0 &&
- strcmp(map, YP_HOSTADDR) != 0)
+ strcmp(map, YP_HOSTADDR) != 0)
goto done;
/* note: lookup_host needs null terminated string */
strncpy(keystr, key.keydat_val, key.keydat_len);
keystr[key.keydat_len] = '\0';
res.stat = lookup_host((hn == 0) ? TRUE : FALSE,
- host_lookup, db, keystr, &res);
+ host_lookup, db, keystr, &res);
} else {
res.val.valdat_val = v.dptr;
res.val.valdat_len = v.dsize;
@@ -534,37 +528,33 @@ ypdb_get_first(domain, map, ypprivate)
{
static ypresp_key_val res;
DBM *db;
- datum k,v;
+ datum k, v;
bzero((char *)&res, sizeof(res));
db = ypdb_open_db(domain, map, &res.stat, NULL);
if (res.stat >= 0) {
-
- k = ypdb_firstkey(db);
+ k = ypdb_firstkey(db);
- while (yp_private(k,ypprivate)) {
- k = ypdb_nextkey(db);
- };
+ while (yp_private(k, ypprivate))
+ k = ypdb_nextkey(db);
- if (k.dptr == NULL) {
- res.stat = YP_NOKEY;
- } else {
- res.key.keydat_val = k.dptr;
- res.key.keydat_len = k.dsize;
- v = ypdb_fetch(db,k);
- if (v.dptr == NULL) {
- res.stat = YP_NOKEY;
- } else {
- res.val.valdat_val = v.dptr;
- res.val.valdat_len = v.dsize;
- }
- }
+ if (k.dptr == NULL) {
+ res.stat = YP_NOKEY;
+ } else {
+ res.key.keydat_val = k.dptr;
+ res.key.keydat_len = k.dsize;
+ v = ypdb_fetch(db, k);
+ if (v.dptr == NULL) {
+ res.stat = YP_NOKEY;
+ } else {
+ res.val.valdat_val = v.dptr;
+ res.val.valdat_len = v.dsize;
+ }
+ }
}
-
ypdb_close_db(db);
-
return (res);
}
@@ -577,52 +567,46 @@ ypdb_get_next(domain, map, key, ypprivate)
{
static ypresp_key_val res;
DBM *db;
- datum k,v,n;
+ datum k, v, n;
bzero((char *)&res, sizeof(res));
-
db = ypdb_open_db(domain, map, &res.stat, NULL);
if (res.stat >= 0) {
+ n.dptr = key.keydat_val;
+ n.dsize = key.keydat_len;
+ v.dptr = NULL;
+ v.dsize = 0;
+ k.dptr = NULL;
+ k.dsize = 0;
- n.dptr = key.keydat_val;
- n.dsize = key.keydat_len;
- v.dptr = NULL;
- v.dsize = 0;
- k.dptr = NULL;
- k.dsize = 0;
-
- n = ypdb_setkey(db,n);
-
- if (n.dptr != NULL) {
- k = ypdb_nextkey(db);
- } else {
- k.dptr = NULL;
- };
-
- if (k.dptr != NULL) {
- while (yp_private(k,ypprivate)) {
- k = ypdb_nextkey(db);
- };
- };
-
- if (k.dptr == NULL) {
- res.stat = YP_NOMORE;
- } else {
- res.key.keydat_val = k.dptr;
- res.key.keydat_len = k.dsize;
- v = ypdb_fetch(db,k);
- if (v.dptr == NULL) {
- res.stat = YP_NOMORE;
- } else {
- res.val.valdat_val = v.dptr;
- res.val.valdat_len = v.dsize;
- }
- }
- }
+ n = ypdb_setkey(db, n);
+
+ if (n.dptr != NULL)
+ k = ypdb_nextkey(db);
+ else
+ k.dptr = NULL;
+ if (k.dptr != NULL) {
+ while (yp_private(k, ypprivate))
+ k = ypdb_nextkey(db);
+ }
+
+ if (k.dptr == NULL) {
+ res.stat = YP_NOMORE;
+ } else {
+ res.key.keydat_val = k.dptr;
+ res.key.keydat_len = k.dsize;
+ v = ypdb_fetch(db, k);
+ if (v.dptr == NULL) {
+ res.stat = YP_NOMORE;
+ } else {
+ res.val.valdat_val = v.dptr;
+ res.val.valdat_len = v.dsize;
+ }
+ }
+ }
ypdb_close_db(db);
-
return (res);
}
@@ -635,29 +619,25 @@ ypdb_get_order(domain, map)
static char *order_key = YP_LAST_KEY;
char order[MAX_LAST_LEN+1];
DBM *db;
- datum k,v;
+ datum k, v;
bzero((char *)&res, sizeof(res));
-
db = ypdb_open_db(domain, map, &res.stat, NULL);
if (res.stat >= 0) {
+ k.dptr = order_key;
+ k.dsize = YP_LAST_LEN;
- k.dptr = order_key;
- k.dsize = YP_LAST_LEN;
-
- v = ypdb_fetch(db,k);
- if (v.dptr == NULL) {
- res.stat = YP_NOKEY;
- } else {
- strncpy(order, v.dptr, v.dsize);
- order[v.dsize] = '\0';
- res.ordernum = (u_int32_t)atol(order);
- }
+ v = ypdb_fetch(db, k);
+ if (v.dptr == NULL) {
+ res.stat = YP_NOKEY;
+ } else {
+ strncpy(order, v.dptr, v.dsize);
+ order[v.dsize] = '\0';
+ res.ordernum = (u_int32_t)atol(order);
+ }
}
-
ypdb_close_db(db);
-
return (res);
}
@@ -670,29 +650,25 @@ ypdb_get_master(domain, map)
static char *master_key = YP_MASTER_KEY;
static char master[MAX_MASTER_LEN+1];
DBM *db;
- datum k,v;
+ datum k, v;
bzero((char *)&res, sizeof(res));
-
db = ypdb_open_db(domain, map, &res.stat, NULL);
if (res.stat >= 0) {
+ k.dptr = master_key;
+ k.dsize = YP_MASTER_LEN;
- k.dptr = master_key;
- k.dsize = YP_MASTER_LEN;
-
- v = ypdb_fetch(db,k);
- if (v.dptr == NULL) {
- res.stat = YP_NOKEY;
- } else {
- strncpy(master, v.dptr, v.dsize);
- master[v.dsize] = '\0';
- res.peer = (peername) &master;
- }
+ v = ypdb_fetch(db, k);
+ if (v.dptr == NULL) {
+ res.stat = YP_NOKEY;
+ } else {
+ strncpy(master, v.dptr, v.dsize);
+ master[v.dsize] = '\0';
+ res.peer = (peername) &master;
+ }
}
-
ypdb_close_db(db);
-
return (res);
}
@@ -703,30 +679,26 @@ ypdb_xdr_get_all(xdrs, req)
{
static ypresp_all resp;
DBM *db;
- datum k,v;
+ datum k, v;
bzero((char *)&resp, sizeof(resp));
/*
* open db, and advance past any private keys we may see
*/
-
db = ypdb_open_db(req->domain, req->map,
- &resp.ypresp_all_u.val.stat, NULL);
+ &resp.ypresp_all_u.val.stat, NULL);
if (!db || resp.ypresp_all_u.val.stat < 0)
return(FALSE);
k = ypdb_firstkey(db);
- while (yp_private(k,FALSE)) {
+ while (yp_private(k, FALSE))
k = ypdb_nextkey(db);
- };
while(1) {
-
if (k.dptr == NULL)
break;
- v = ypdb_fetch(db,k);
-
+ v = ypdb_fetch(db, k);
if (v.dptr == NULL)
break;
@@ -746,9 +718,8 @@ ypdb_xdr_get_all(xdrs, req)
/* advance past private keys */
k = ypdb_nextkey(db);
- while (yp_private(k,FALSE)) {
+ while (yp_private(k, FALSE))
k = ypdb_nextkey(db);
- }
}
bzero((char *)&resp, sizeof(resp));
@@ -761,9 +732,7 @@ ypdb_xdr_get_all(xdrs, req)
#endif
return(FALSE);
}
-
ypdb_close_db(db);
-
return (TRUE);
}
diff --git a/usr.sbin/ypserv/ypserv/ypserv_proc.c b/usr.sbin/ypserv/ypserv/ypserv_proc.c
index 806c538d431..56e7a0b7458 100644
--- a/usr.sbin/ypserv/ypserv/ypserv_proc.c
+++ b/usr.sbin/ypserv/ypserv/ypserv_proc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ypserv_proc.c,v 1.16 2001/07/09 07:05:06 deraadt Exp $ */
+/* $OpenBSD: ypserv_proc.c,v 1.17 2001/11/19 09:03:07 deraadt Exp $ */
/*
* Copyright (c) 1994 Mats O Jansson <moj@stacken.kth.se>
@@ -32,7 +32,7 @@
*/
#ifndef LINT
-static char rcsid[] = "$OpenBSD: ypserv_proc.c,v 1.16 2001/07/09 07:05:06 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: ypserv_proc.c,v 1.17 2001/11/19 09:03:07 deraadt Exp $";
#endif
#include <rpc/rpc.h>
@@ -72,17 +72,18 @@ extern int ypdb_secure();
static char *True = "true";
static char *False = "FALSE";
#define TORF(N) ((N) ? True : False)
+
void *
ypproc_null_2_svc(argp, rqstp)
void *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static char *result;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
YPLOG("null_2: caller=[%s].%d, auth_ok=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok));
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok));
if (!ok) {
svcerr_auth(rqstp->rq_xprt, AUTH_FAILED);
@@ -90,44 +91,42 @@ ypproc_null_2_svc(argp, rqstp)
}
result = NULL;
-
return ((void *)&result);
}
bool_t *
ypproc_domain_2_svc(argp, rqstp)
domainname *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
- static bool_t result; /* is domain_served? */
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
static char domain_path[MAXPATHLEN];
+ static bool_t result;
struct stat finfo;
if (strchr(*argp, '/'))
goto bail;
snprintf(domain_path, sizeof(domain_path), "%s/%s", YP_DB_PATH, *argp);
result = (bool_t) ((stat(domain_path, &finfo) == 0) &&
- (finfo.st_mode & S_IFDIR));
+ (finfo.st_mode & S_IFDIR));
YPLOG("domain_2: caller=[%s].%d, auth_ok=%s, domain=%s, served=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), *argp, TORF(result));
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), *argp, TORF(result));
if (!ok) {
bail:
svcerr_auth(rqstp->rq_xprt, AUTH_FAILED);
return(NULL);
}
-
return (&result);
}
bool_t *
ypproc_domain_nonack_2_svc(argp, rqstp)
domainname *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static bool_t result; /* is domain served? */
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
@@ -139,12 +138,11 @@ ypproc_domain_nonack_2_svc(argp, rqstp)
goto bail;
snprintf(domain_path, sizeof(domain_path), "%s/%s", YP_DB_PATH, *argp);
result = (bool_t) ((stat(domain_path, &finfo) == 0) &&
- (finfo.st_mode & S_IFDIR));
+ (finfo.st_mode & S_IFDIR));
- YPLOG(
- "domain_nonack_2: caller=[%s].%d, auth_ok=%s, domain=%s, served=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok),
- *argp, TORF(result));
+ YPLOG("domain_nonack_2: caller=[%s].%d, auth_ok=%s, domain=%s, served=%s",
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok),
+ *argp, TORF(result));
if (!ok) {
bail:
@@ -152,30 +150,27 @@ bail:
return(NULL);
}
- if (!result) {
+ if (!result)
return(NULL); /* don't send nack */
- }
-
return (&result);
}
ypresp_val *
ypproc_match_2_svc(argp, rqstp)
ypreq_key *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
- static ypresp_val res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
- int secure = ypdb_secure(argp->domain,argp->map);
+ int secure = ypdb_secure(argp->domain, argp->map);
+ static ypresp_val res;
if (strchr(argp->domain, '/') || strchr(argp->map, '/'))
goto bail;
- YPLOG(
- "match_2: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s, key=%.*s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), TORF(secure),
- argp->domain, argp->map, argp->key.keydat_len, argp->key.keydat_val);
+ YPLOG("match_2: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s, key=%.*s",
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), TORF(secure),
+ argp->domain, argp->map, argp->key.keydat_len, argp->key.keydat_val);
if (!ok) {
bail:
@@ -186,33 +181,30 @@ bail:
if (secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
res.stat = YP_YPERR;
} else {
- res = ypdb_get_record(argp->domain,argp->map,argp->key, TRUE);
+ res = ypdb_get_record(argp->domain, argp->map, argp->key, TRUE);
}
#ifdef DEBUG
yplog(" match2_status: %s", yperr_string(ypprot_err(res.stat)));
#endif
-
return (&res);
}
ypresp_key_val *
ypproc_first_2_svc(argp, rqstp)
ypreq_nokey *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
- static ypresp_key_val res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
- int secure = ypdb_secure(argp->domain,argp->map);
+ int secure = ypdb_secure(argp->domain, argp->map);
+ static ypresp_key_val res;
if (strchr(argp->domain, '/') || strchr(argp->map, '/'))
goto bail;
YPLOG( "first_2: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), TORF(secure),
- argp->domain, argp->map);
-
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), TORF(secure), argp->domain, argp->map);
if (!ok) {
bail:
svcerr_auth(rqstp->rq_xprt, AUTH_FAILED);
@@ -222,33 +214,31 @@ bail:
if (secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
res.stat = YP_YPERR;
} else {
- res = ypdb_get_first(argp->domain,argp->map,FALSE);
+ res = ypdb_get_first(argp->domain, argp->map,FALSE);
}
#ifdef DEBUG
yplog(" first2_status: %s", yperr_string(ypprot_err(res.stat)));
#endif
-
return (&res);
}
ypresp_key_val *
ypproc_next_2_svc(argp, rqstp)
ypreq_key *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresp_key_val res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
- int secure = ypdb_secure(argp->domain,argp->map);
+ int secure = ypdb_secure(argp->domain, argp->map);
if (strchr(argp->domain, '/') || strchr(argp->map, '/'))
goto bail;
- YPLOG(
- "next_2: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s, key=%.*s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), TORF(secure),
- argp->domain, argp->map, argp->key.keydat_len, argp->key.keydat_val);
+ YPLOG("next_2: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s, key=%.*s",
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), TORF(secure),
+ argp->domain, argp->map, argp->key.keydat_len, argp->key.keydat_val);
if (!ok) {
bail:
@@ -259,38 +249,34 @@ bail:
if (secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
res.stat = YP_YPERR;
} else {
- res = ypdb_get_next(argp->domain,argp->map,argp->key,FALSE);
+ res = ypdb_get_next(argp->domain, argp->map, argp->key,FALSE);
}
#ifdef DEBUG
yplog(" next2_status: %s", yperr_string(ypprot_err(res.stat)));
#endif
-
return (&res);
}
ypresp_xfr *
ypproc_xfr_2_svc(argp, rqstp)
ypreq_xfr *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresp_xfr res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
pid_t pid;
- char tid[11];
- char prog[11];
- char port[11];
- char ypxfr_proc[] = YPXFR_PROC;
- char *ipadd;
+ char tid[11], prog[11], port[11];
+ char ypxfr_proc[] = YPXFR_PROC, *ipadd;
bzero((char *)&res, sizeof(res));
YPLOG("xfr_2: caller=[%s].%d, auth_ok=%s, domain=%s, tid=%d, prog=%d",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok),
- argp->map_parms.domain, argp->transid, argp->prog);
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok),
+ argp->map_parms.domain, argp->transid, argp->prog);
YPLOG(" ipadd=%s, port=%d, map=%s", inet_ntoa(caller->sin_addr),
- argp->port, argp->map_parms.map);
+ argp->port, argp->map_parms.map);
if (strchr(argp->map_parms.domain, '/') ||
strchr(argp->map_parms.map, '/') ||
@@ -299,7 +285,7 @@ ypproc_xfr_2_svc(argp, rqstp)
return(NULL);
}
- snprintf(tid, sizeof(tid), "%d",argp->transid);
+ snprintf(tid, sizeof(tid), "%d", argp->transid);
snprintf(prog, sizeof(prog), "%d", argp->prog);
snprintf(port, sizeof(port), "%d", argp->port);
ipadd = inet_ntoa(caller->sin_addr);
@@ -314,7 +300,6 @@ ypproc_xfr_2_svc(argp, rqstp)
"-C",tid, prog, ipadd, port, argp->map_parms.map, (char *)NULL);
_exit(1);
}
-
/*
* XXX: fill in res
*/
@@ -324,7 +309,7 @@ ypproc_xfr_2_svc(argp, rqstp)
void *
ypproc_clear_2_svc(argp, rqstp)
void *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static char *res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
@@ -348,82 +333,73 @@ ypproc_clear_2_svc(argp, rqstp)
}
res = NULL;
-
+
#ifdef OPTDB
- ypdb_close_all();
+ ypdb_close_all();
#endif
-
return ((void *)&res);
}
ypresp_all *
ypproc_all_2_svc(argp, rqstp)
ypreq_nokey *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresp_all res;
pid_t pid;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
- int secure = ypdb_secure(argp->domain,argp->map);
+ int secure = ypdb_secure(argp->domain, argp->map);
if (strchr(argp->domain, '/') || strchr(argp->map, '/'))
goto bail;
YPLOG( "all_2: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), TORF(secure), argp->domain, argp->map);
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), TORF(secure), argp->domain, argp->map);
if (!ok) {
bail:
svcerr_auth(rqstp->rq_xprt, AUTH_FAILED);
return(NULL);
}
-
bzero((char *)&res, sizeof(res));
-
+
if (secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
res.ypresp_all_u.val.stat = YP_YPERR;
return(&res);
}
pid = fork();
-
if (pid) {
-
if (pid == -1) {
/* XXXCDC An error has occurred */
}
-
return(NULL); /* PARENT: continue */
-
}
/* CHILD: send result, then exit */
if (!svc_sendreply(rqstp->rq_xprt, ypdb_xdr_get_all, (char *) argp)) {
svcerr_systemerr(rqstp->rq_xprt);
}
-
- /* note: no need to free args, we are exiting */
-
exit(0);
}
ypresp_master *
ypproc_master_2_svc(argp, rqstp)
ypreq_nokey *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresp_master res;
static peername nopeer = "";
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
- int secure = ypdb_secure(argp->domain,argp->map);
+ int secure = ypdb_secure(argp->domain, argp->map);
if (strchr(argp->domain, '/') || strchr(argp->map, '/'))
goto bail;
YPLOG( "master_2: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), TORF(secure), argp->domain, argp->map);
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), TORF(secure), argp->domain, argp->map);
if (!ok) {
bail:
@@ -434,28 +410,25 @@ bail:
if (secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
res.stat = YP_YPERR;
} else {
- res = ypdb_get_master(argp->domain,argp->map);
+ res = ypdb_get_master(argp->domain, argp->map);
}
#ifdef DEBUG
yplog(" master2_status: %s", yperr_string(ypprot_err(res.stat)));
#endif
- /* This code was added because a yppoll <unknown-domain> */
- /* from a sun crashed the server in xdr_string, trying */
- /* to access the peer through a NULL-pointer. yppoll in */
- /* this server start asking for order. If order is ok */
- /* then it will ask for master. SunOS 4 asks for both */
- /* always. I'm not sure this is the best place for the */
- /* fix, but for now it will do. xdr_peername or */
- /* xdr_string in ypserv_xdr.c may be a better place? */
-
- if (res.peer == NULL) {
+ /*
+ * This code was added because a yppoll <unknown-domain>
+ * from a sun crashed the server in xdr_string, trying
+ * to access the peer through a NULL-pointer. yppoll in
+ * this server start asking for order. If order is ok
+ * then it will ask for master. SunOS 4 asks for both
+ * always. I'm not sure this is the best place for the
+ * fix, but for now it will do. xdr_peername or
+ * xdr_string in ypserv_xdr.c may be a better place?
+ */
+ if (res.peer == NULL)
res.peer = nopeer;
- }
-
- /* End of fix */
-
return (&res);
}
@@ -463,18 +436,18 @@ bail:
ypresp_order *
ypproc_order_2_svc(argp, rqstp)
ypreq_nokey *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresp_order res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
- int secure = ypdb_secure(argp->domain,argp->map);
+ int secure = ypdb_secure(argp->domain, argp->map);
if (strchr(argp->domain, '/'))
goto bail;
YPLOG( "order_2: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), TORF(secure), argp->domain, argp->map);
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), TORF(secure), argp->domain, argp->map);
if (!ok) {
bail:
@@ -487,13 +460,12 @@ bail:
} else if (strchr(argp->map, '/')) {
res.stat = YP_NOMAP;
} else {
- res = ypdb_get_order(argp->domain,argp->map);
+ res = ypdb_get_order(argp->domain, argp->map);
}
#ifdef DEBUG
yplog(" order2_status: %s", yperr_string(ypprot_err(res.stat)));
#endif
-
return (&res);
}
@@ -501,7 +473,7 @@ bail:
ypresp_maplist *
ypproc_maplist_2_svc(argp, rqstp)
domainname *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresp_maplist res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
@@ -518,8 +490,8 @@ ypproc_maplist_2_svc(argp, rqstp)
if (strchr(*argp, '/'))
goto bail;
YPLOG("maplist_2: caller=[%s].%d, auth_ok=%s, domain=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok),
- *argp);
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok),
+ *argp);
if (!ok) {
bail:
@@ -528,78 +500,69 @@ bail:
}
bzero((char *)&res, sizeof(res));
-
snprintf(domain_path,MAXPATHLEN, "%s/%s",YP_DB_PATH,*argp);
status = YP_TRUE;
-
res.maps = NULL;
if (!((stat(domain_path, &finfo) == 0) &&
- ((finfo.st_mode & S_IFMT) == S_IFDIR)))
+ ((finfo.st_mode & S_IFMT) == S_IFDIR)))
status = YP_NODOM;
if (status >= 0) {
- if ((dirp = opendir(domain_path)) == NULL) {
- status = YP_NODOM;
- }
+ if ((dirp = opendir(domain_path)) == NULL)
+ status = YP_NODOM;
}
if (status >= 0) {
- for(dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
- if ((!strcmp(dp->d_name, ".")) ||
- ((!strcmp(dp->d_name, ".."))) ||
- (dp->d_namlen < 4))
- continue;
- suffix = (char *) &dp->d_name[dp->d_namlen-3];
- if (strcmp(suffix,".db") == 0) {
-
- if ((m = (struct ypmaplist *)
- malloc((unsigned) sizeof(struct ypmaplist))) == NULL) {
- status = YP_YPERR;
- break;
- }
-
- if ((map_name = (char *)
- malloc((unsigned) dp->d_namlen - 2)) == NULL) {
- status = YP_YPERR;
- break;
- }
-
- m->next = res.maps;
- m->map = map_name;
- res.maps = m;
- strncpy(map_name, dp->d_name, dp->d_namlen - 3);
- m->map[dp->d_namlen - 3] = '\0';
-
- }
- }
- }
-
- if (dirp != NULL) {
- closedir(dirp);
+ for(dp = readdir(dirp); dp != NULL; dp = readdir(dirp)) {
+ if ((!strcmp(dp->d_name, ".")) ||
+ ((!strcmp(dp->d_name, ".."))) ||
+ (dp->d_namlen < 4))
+ continue;
+ suffix = (char *) &dp->d_name[dp->d_namlen-3];
+ if (strcmp(suffix, ".db") == 0) {
+ if ((m = (struct ypmaplist *)malloc((unsigned)
+ sizeof(struct ypmaplist))) == NULL) {
+ status = YP_YPERR;
+ break;
+ }
+
+ if ((map_name = (char *)malloc((unsigned)
+ dp->d_namlen - 2)) == NULL) {
+ status = YP_YPERR;
+ break;
+ }
+
+ m->next = res.maps;
+ m->map = map_name;
+ res.maps = m;
+ strncpy(map_name, dp->d_name, dp->d_namlen - 3);
+ m->map[dp->d_namlen - 3] = '\0';
+ }
+ }
}
+ if (dirp != NULL)
+ closedir(dirp);
res.stat = status;
-
#ifdef DEBUG
yplog(" maplist_status: %s", yperr_string(ypprot_err(res.stat)));
#endif
-
return (&res);
}
void *
ypproc_null_1_svc(argp, rqstp)
void *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static char *result;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
YPLOG("null_1: caller=[%s].%d, auth_ok=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok));
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok));
if (!ok) {
svcerr_auth(rqstp->rq_xprt, AUTH_FAILED);
@@ -614,7 +577,7 @@ ypproc_null_1_svc(argp, rqstp)
bool_t *
ypproc_domain_1_svc(argp, rqstp)
domainname *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static bool_t result; /* is domain_served? */
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
@@ -629,8 +592,8 @@ ypproc_domain_1_svc(argp, rqstp)
(finfo.st_mode & S_IFDIR));
YPLOG("domain_1: caller=[%s].%d, auth_ok=%s, domain=%s, served=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), *argp, TORF(result));
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), *argp, TORF(result));
if (!ok) {
bail:
@@ -644,7 +607,7 @@ bail:
bool_t *
ypproc_domain_nonack_1_svc(argp, rqstp)
domainname *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static bool_t result; /* is domain served? */
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
@@ -660,7 +623,7 @@ ypproc_domain_nonack_1_svc(argp, rqstp)
YPLOG(
"domain_nonack_1: caller=[%s].%d, auth_ok=%s, domain=%s, served=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok),
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port), TORF(ok),
*argp, TORF(result));
if (!ok) {
@@ -679,7 +642,7 @@ bail:
ypresponse *
ypproc_match_1_svc(argp, rqstp)
yprequest *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresponse res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
@@ -716,16 +679,14 @@ bail:
if (secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
res.ypmatch_resp_status = YP_YPERR;
} else {
- res.ypmatch_resp_val =
- ypdb_get_record(argp->ypmatch_req_domain,
- argp->ypmatch_req_map,
- argp->ypmatch_req_keydat,
- TRUE);
+ res.ypmatch_resp_val = ypdb_get_record(
+ argp->ypmatch_req_domain, argp->ypmatch_req_map,
+ argp->ypmatch_req_keydat, TRUE);
}
#ifdef DEBUG
yplog(" match1_status: %s",
- yperr_string(ypprot_err(res.ypmatch_resp_status)));
+ yperr_string(ypprot_err(res.ypmatch_resp_status)));
#endif
return (&res);
@@ -734,7 +695,7 @@ bail:
ypresponse *
ypproc_first_1_svc(argp, rqstp)
yprequest *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresponse res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
@@ -759,7 +720,7 @@ ypproc_first_1_svc(argp, rqstp)
inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
TORF(ok), TORF(secure),
argp->ypfirst_req_domain, argp->ypfirst_req_map);
-
+
if (!ok) {
bail:
svcerr_auth(rqstp->rq_xprt, AUTH_FAILED);
@@ -769,15 +730,13 @@ bail:
if (secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
res.ypfirst_resp_status = YP_YPERR;
} else {
- res.ypfirst_resp_val =
- ypdb_get_first(argp->ypfirst_req_domain,
- argp->ypfirst_req_map,
- FALSE);
+ res.ypfirst_resp_val = ypdb_get_first(
+ argp->ypfirst_req_domain, argp->ypfirst_req_map, FALSE);
}
#ifdef DEBUG
yplog(" first1_status: %s",
- yperr_string(ypprot_err(res.ypfirst_resp_status)));
+ yperr_string(ypprot_err(res.ypfirst_resp_status)));
#endif
return (&res);
@@ -786,7 +745,7 @@ bail:
ypresponse *
ypproc_next_1_svc(argp, rqstp)
yprequest *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresponse res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
@@ -823,16 +782,14 @@ bail:
if (secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED)) {
res.ypnext_resp_status = YP_YPERR;
} else {
- res.ypnext_resp_val =
- ypdb_get_next(argp->ypnext_req_domain,
- argp->ypnext_req_map,
- argp->ypnext_req_keydat,
- FALSE);
+ res.ypnext_resp_val = ypdb_get_next(
+ argp->ypnext_req_domain, argp->ypnext_req_map,
+ argp->ypnext_req_keydat, FALSE);
}
#ifdef DEBUG
yplog(" next1_status: %s",
- yperr_string(ypprot_err(res.ypnext_resp_status)));
+ yperr_string(ypprot_err(res.ypnext_resp_status)));
#endif
return (&res);
@@ -841,7 +798,7 @@ bail:
ypresponse *
ypproc_poll_1_svc(argp, rqstp)
yprequest *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
static ypresponse res;
ypresp_order order;
@@ -878,9 +835,9 @@ bail:
if (!(secure && (ntohs(caller->sin_port) >= IPPORT_RESERVED))) {
order = ypdb_get_order(argp->yppoll_req_domain,
- argp->yppoll_req_map);
+ argp->yppoll_req_map);
master = ypdb_get_master(argp->yppoll_req_domain,
- argp->yppoll_req_map);
+ argp->yppoll_req_map);
res.yppoll_resp_ordernum = order.ordernum;
res.yppoll_resp_owner = master.peer;
}
@@ -894,7 +851,7 @@ bail:
void *
ypproc_push_1_svc(argp, rqstp)
yprequest *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
@@ -932,17 +889,16 @@ bail:
}
if (pid == 0) {
execl(yppush_proc, "yppush", "-d", argp->yppush_req_domain,
- argp->yppush_req_map, (char *)NULL);
+ argp->yppush_req_map, (char *)NULL);
_exit(1);
}
-
return (NULL);
}
void *
ypproc_pull_1_svc(argp, rqstp)
yprequest *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
@@ -980,19 +936,17 @@ bail:
}
if (pid == 0) {
execl(ypxfr_proc, "ypxfr", "-d", argp->yppull_req_domain,
- argp->yppull_req_map, (char *)NULL);
+ argp->yppull_req_map, (char *)NULL);
_exit(1);
}
-
return (NULL);
}
void *
ypproc_get_1_svc(argp, rqstp)
yprequest *argp;
- struct svc_req *rqstp;
+ struct svc_req *rqstp;
{
- char *res;
struct sockaddr_in *caller = svc_getcaller(rqstp->rq_xprt);
int ok = acl_check_host(&caller->sin_addr);
int secure;
@@ -1002,17 +956,16 @@ ypproc_get_1_svc(argp, rqstp)
if (strchr(argp->ypget_req_domain, '/') ||
strchr(argp->ypget_req_map, '/'))
goto bail;
- if (argp->yp_reqtype != YPGET_REQTYPE) {
+ if (argp->yp_reqtype != YPGET_REQTYPE)
return(NULL);
- }
secure = ypdb_secure(argp->ypget_req_domain, argp->ypget_req_map);
YPLOG( "get_1: caller=[%s].%d, auth_ok=%s, secure=%s, domain=%s, map=%s, owner=%s",
- inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
- TORF(ok), TORF(secure),
- argp->ypget_req_domain, argp->ypget_req_map,
- argp->ypget_req_owner);
+ inet_ntoa(caller->sin_addr), ntohs(caller->sin_port),
+ TORF(ok), TORF(secure),
+ argp->ypget_req_domain, argp->ypget_req_map,
+ argp->ypget_req_owner);
if (ntohs(caller->sin_port) >= IPPORT_RESERVED)
ok = FALSE;
@@ -1030,9 +983,8 @@ bail:
}
if (pid == 0) {
execl(ypxfr_proc, "ypxfr", "-d", argp->ypget_req_domain, "-h",
- argp->ypget_req_owner, argp->yppush_req_map, (char *)NULL);
+ argp->ypget_req_owner, argp->yppush_req_map, (char *)NULL);
_exit(1);
}
-
return (NULL);
}
diff --git a/usr.sbin/ypserv/ypserv/ypserv_xdr.c b/usr.sbin/ypserv/ypserv/ypserv_xdr.c
index 1cd424d2510..f49c40b2b5a 100644
--- a/usr.sbin/ypserv/ypserv/ypserv_xdr.c
+++ b/usr.sbin/ypserv/ypserv/ypserv_xdr.c
@@ -5,7 +5,7 @@
#include "yp.h"
#ifndef lint
-static char rcsid[] = "$OpenBSD: ypserv_xdr.c,v 1.3 1996/05/30 09:53:31 deraadt Exp $";
+static char rcsid[] = "$OpenBSD: ypserv_xdr.c,v 1.4 2001/11/19 09:03:07 deraadt Exp $";
#endif /* not lint */
bool_t
@@ -14,11 +14,11 @@ xdr_ypstat(xdrs, objp)
ypstat *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_enum(xdrs, (enum_t *)objp)) {
- return (FALSE);
- }
+ if (!xdr_enum(xdrs, (enum_t *)objp)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -28,11 +28,11 @@ xdr_ypxfrstat(xdrs, objp)
ypxfrstat *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_enum(xdrs, (enum_t *)objp)) {
- return (FALSE);
- }
+ if (!xdr_enum(xdrs, (enum_t *)objp)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -42,11 +42,11 @@ xdr_domainname(xdrs, objp)
domainname *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_string(xdrs, objp, YPMAXDOMAIN)) {
- return (FALSE);
- }
+ if (!xdr_string(xdrs, objp, YPMAXDOMAIN)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -56,11 +56,11 @@ xdr_mapname(xdrs, objp)
mapname *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_string(xdrs, objp, YPMAXMAP)) {
- return (FALSE);
- }
+ if (!xdr_string(xdrs, objp, YPMAXMAP)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -70,11 +70,11 @@ xdr_peername(xdrs, objp)
peername *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_string(xdrs, objp, YPMAXPEER)) {
- return (FALSE);
- }
+ if (!xdr_string(xdrs, objp, YPMAXPEER)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -84,11 +84,11 @@ xdr_keydat(xdrs, objp)
keydat *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_bytes(xdrs, (char **)&objp->keydat_val, (u_int *)&objp->keydat_len, YPMAXRECORD)) {
- return (FALSE);
- }
+ if (!xdr_bytes(xdrs, (char **)&objp->keydat_val, (u_int *)&objp->keydat_len, YPMAXRECORD)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -98,11 +98,11 @@ xdr_valdat(xdrs, objp)
valdat *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_bytes(xdrs, (char **)&objp->valdat_val, (u_int *)&objp->valdat_len, YPMAXRECORD)) {
- return (FALSE);
- }
+ if (!xdr_bytes(xdrs, (char **)&objp->valdat_val, (u_int *)&objp->valdat_len, YPMAXRECORD)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -112,20 +112,20 @@ xdr_ypmap_parms(xdrs, objp)
ypmap_parms *objp;
{
- register long *buf;
-
- if (!xdr_domainname(xdrs, &objp->domain)) {
- return (FALSE);
- }
- if (!xdr_mapname(xdrs, &objp->map)) {
- return (FALSE);
- }
- if (!xdr_u_int(xdrs, &objp->ordernum)) {
- return (FALSE);
- }
- if (!xdr_peername(xdrs, &objp->peer)) {
- return (FALSE);
- }
+ register long *buf;
+
+ if (!xdr_domainname(xdrs, &objp->domain)) {
+ return (FALSE);
+ }
+ if (!xdr_mapname(xdrs, &objp->map)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int(xdrs, &objp->ordernum)) {
+ return (FALSE);
+ }
+ if (!xdr_peername(xdrs, &objp->peer)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -135,17 +135,17 @@ xdr_ypreq_key(xdrs, objp)
ypreq_key *objp;
{
- register long *buf;
-
- if (!xdr_domainname(xdrs, &objp->domain)) {
- return (FALSE);
- }
- if (!xdr_mapname(xdrs, &objp->map)) {
- return (FALSE);
- }
- if (!xdr_keydat(xdrs, &objp->key)) {
- return (FALSE);
- }
+ register long *buf;
+
+ if (!xdr_domainname(xdrs, &objp->domain)) {
+ return (FALSE);
+ }
+ if (!xdr_mapname(xdrs, &objp->map)) {
+ return (FALSE);
+ }
+ if (!xdr_keydat(xdrs, &objp->key)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -155,14 +155,14 @@ xdr_ypreq_nokey(xdrs, objp)
ypreq_nokey *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_domainname(xdrs, &objp->domain)) {
- return (FALSE);
- }
- if (!xdr_mapname(xdrs, &objp->map)) {
- return (FALSE);
- }
+ if (!xdr_domainname(xdrs, &objp->domain)) {
+ return (FALSE);
+ }
+ if (!xdr_mapname(xdrs, &objp->map)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -172,20 +172,20 @@ xdr_ypreq_xfr(xdrs, objp)
ypreq_xfr *objp;
{
- register long *buf;
-
- if (!xdr_ypmap_parms(xdrs, &objp->map_parms)) {
- return (FALSE);
- }
- if (!xdr_u_int(xdrs, &objp->transid)) {
- return (FALSE);
- }
- if (!xdr_u_int(xdrs, &objp->prog)) {
- return (FALSE);
- }
- if (!xdr_u_int(xdrs, &objp->port)) {
- return (FALSE);
- }
+ register long *buf;
+
+ if (!xdr_ypmap_parms(xdrs, &objp->map_parms)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int(xdrs, &objp->transid)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int(xdrs, &objp->prog)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int(xdrs, &objp->port)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -195,14 +195,14 @@ xdr_ypresp_val(xdrs, objp)
ypresp_val *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_ypstat(xdrs, &objp->stat)) {
- return (FALSE);
- }
- if (!xdr_valdat(xdrs, &objp->val)) {
- return (FALSE);
- }
+ if (!xdr_ypstat(xdrs, &objp->stat)) {
+ return (FALSE);
+ }
+ if (!xdr_valdat(xdrs, &objp->val)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -212,17 +212,17 @@ xdr_ypresp_key_val(xdrs, objp)
ypresp_key_val *objp;
{
- register long *buf;
-
- if (!xdr_ypstat(xdrs, &objp->stat)) {
- return (FALSE);
- }
- if (!xdr_valdat(xdrs, &objp->val)) {
- return (FALSE);
- }
- if (!xdr_keydat(xdrs, &objp->key)) {
- return (FALSE);
- }
+ register long *buf;
+
+ if (!xdr_ypstat(xdrs, &objp->stat)) {
+ return (FALSE);
+ }
+ if (!xdr_valdat(xdrs, &objp->val)) {
+ return (FALSE);
+ }
+ if (!xdr_keydat(xdrs, &objp->key)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -232,14 +232,14 @@ xdr_ypresp_master(xdrs, objp)
ypresp_master *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_ypstat(xdrs, &objp->stat)) {
- return (FALSE);
- }
- if (!xdr_peername(xdrs, &objp->peer)) {
- return (FALSE);
- }
+ if (!xdr_ypstat(xdrs, &objp->stat)) {
+ return (FALSE);
+ }
+ if (!xdr_peername(xdrs, &objp->peer)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -249,14 +249,14 @@ xdr_ypresp_order(xdrs, objp)
ypresp_order *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_ypstat(xdrs, &objp->stat)) {
- return (FALSE);
- }
- if (!xdr_u_int(xdrs, &objp->ordernum)) {
- return (FALSE);
- }
+ if (!xdr_ypstat(xdrs, &objp->stat)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int(xdrs, &objp->ordernum)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -266,16 +266,16 @@ xdr_ypresp_all(xdrs, objp)
ypresp_all *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_bool(xdrs, &objp->more)) {
- return (FALSE);
- }
+ if (!xdr_bool(xdrs, &objp->more)) {
+ return (FALSE);
+ }
switch (objp->more) {
case TRUE:
- if (!xdr_ypresp_key_val(xdrs, &objp->ypresp_all_u.val)) {
- return (FALSE);
- }
+ if (!xdr_ypresp_key_val(xdrs, &objp->ypresp_all_u.val)) {
+ return (FALSE);
+ }
break;
case FALSE:
break;
@@ -291,14 +291,14 @@ xdr_ypresp_xfr(xdrs, objp)
ypresp_xfr *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_u_int(xdrs, &objp->transid)) {
- return (FALSE);
- }
- if (!xdr_ypxfrstat(xdrs, &objp->xfrstat)) {
- return (FALSE);
- }
+ if (!xdr_u_int(xdrs, &objp->transid)) {
+ return (FALSE);
+ }
+ if (!xdr_ypxfrstat(xdrs, &objp->xfrstat)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -308,14 +308,14 @@ xdr_ypmaplist(xdrs, objp)
ypmaplist *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_mapname(xdrs, &objp->map)) {
- return (FALSE);
- }
- if (!xdr_pointer(xdrs, (char **)&objp->next, sizeof(ypmaplist), (xdrproc_t)xdr_ypmaplist)) {
- return (FALSE);
- }
+ if (!xdr_mapname(xdrs, &objp->map)) {
+ return (FALSE);
+ }
+ if (!xdr_pointer(xdrs, (char **)&objp->next, sizeof(ypmaplist), (xdrproc_t)xdr_ypmaplist)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -325,14 +325,14 @@ xdr_ypresp_maplist(xdrs, objp)
ypresp_maplist *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_ypstat(xdrs, &objp->stat)) {
- return (FALSE);
- }
- if (!xdr_pointer(xdrs, (char **)&objp->maps, sizeof(ypmaplist), (xdrproc_t)xdr_ypmaplist)) {
- return (FALSE);
- }
+ if (!xdr_ypstat(xdrs, &objp->stat)) {
+ return (FALSE);
+ }
+ if (!xdr_pointer(xdrs, (char **)&objp->maps, sizeof(ypmaplist), (xdrproc_t)xdr_ypmaplist)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -342,11 +342,11 @@ xdr_yppush_status(xdrs, objp)
yppush_status *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_enum(xdrs, (enum_t *)objp)) {
- return (FALSE);
- }
+ if (!xdr_enum(xdrs, (enum_t *)objp)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -356,14 +356,14 @@ xdr_yppushresp_xfr(xdrs, objp)
yppushresp_xfr *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_u_int(xdrs, &objp->transid)) {
- return (FALSE);
- }
- if (!xdr_yppush_status(xdrs, &objp->status)) {
- return (FALSE);
- }
+ if (!xdr_u_int(xdrs, &objp->transid)) {
+ return (FALSE);
+ }
+ if (!xdr_yppush_status(xdrs, &objp->status)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -373,11 +373,11 @@ xdr_ypbind_resptype(xdrs, objp)
ypbind_resptype *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_enum(xdrs, (enum_t *)objp)) {
- return (FALSE);
- }
+ if (!xdr_enum(xdrs, (enum_t *)objp)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -387,15 +387,14 @@ xdr_ypbind_binding(xdrs, objp)
ypbind_binding *objp;
{
- register long *buf;
+ register long *buf;
- int i;
- if (!xdr_opaque(xdrs, objp->ypbind_binding_addr, 4)) {
- return (FALSE);
- }
- if (!xdr_opaque(xdrs, objp->ypbind_binding_port, 2)) {
- return (FALSE);
- }
+ if (!xdr_opaque(xdrs, objp->ypbind_binding_addr, 4)) {
+ return (FALSE);
+ }
+ if (!xdr_opaque(xdrs, objp->ypbind_binding_port, 2)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -405,21 +404,21 @@ xdr_ypbind_resp(xdrs, objp)
ypbind_resp *objp;
{
- register long *buf;
+ register long *buf;
- if (!xdr_ypbind_resptype(xdrs, &objp->ypbind_status)) {
- return (FALSE);
- }
+ if (!xdr_ypbind_resptype(xdrs, &objp->ypbind_status)) {
+ return (FALSE);
+ }
switch (objp->ypbind_status) {
case YPBIND_FAIL_VAL:
- if (!xdr_u_int(xdrs, &objp->ypbind_resp_u.ypbind_error)) {
- return (FALSE);
- }
+ if (!xdr_u_int(xdrs, &objp->ypbind_resp_u.ypbind_error)) {
+ return (FALSE);
+ }
break;
case YPBIND_SUCC_VAL:
- if (!xdr_ypbind_binding(xdrs, &objp->ypbind_resp_u.ypbind_bindinfo)) {
- return (FALSE);
- }
+ if (!xdr_ypbind_binding(xdrs, &objp->ypbind_resp_u.ypbind_bindinfo)) {
+ return (FALSE);
+ }
break;
default:
return (FALSE);
@@ -433,16 +432,16 @@ xdr_ypbind_setdom(xdrs, objp)
ypbind_setdom *objp;
{
- register long *buf;
-
- if (!xdr_domainname(xdrs, &objp->ypsetdom_domain)) {
- return (FALSE);
- }
- if (!xdr_ypbind_binding(xdrs, &objp->ypsetdom_binding)) {
- return (FALSE);
- }
- if (!xdr_u_int(xdrs, &objp->ypsetdom_vers)) {
- return (FALSE);
- }
+ register long *buf;
+
+ if (!xdr_domainname(xdrs, &objp->ypsetdom_domain)) {
+ return (FALSE);
+ }
+ if (!xdr_ypbind_binding(xdrs, &objp->ypsetdom_binding)) {
+ return (FALSE);
+ }
+ if (!xdr_u_int(xdrs, &objp->ypsetdom_vers)) {
+ return (FALSE);
+ }
return (TRUE);
}
diff --git a/usr.sbin/ypserv/ypserv/ypserv_xdr_v1.c b/usr.sbin/ypserv/ypserv/ypserv_xdr_v1.c
index 68964cc7b02..97eec5d6a25 100644
--- a/usr.sbin/ypserv/ypserv/ypserv_xdr_v1.c
+++ b/usr.sbin/ypserv/ypserv/ypserv_xdr_v1.c
@@ -6,7 +6,7 @@
#include "yp.h"
#include "ypv1.h"
#ifndef lint
-static char rcsid[] = "$OpenBSD: ypserv_xdr_v1.c,v 1.1 1997/03/30 20:51:22 maja Exp $";
+static char rcsid[] = "$OpenBSD: ypserv_xdr_v1.c,v 1.2 2001/11/19 09:03:07 deraadt Exp $";
#endif /* not lint */
bool_t
@@ -14,12 +14,11 @@ xdr_ypreqtype(xdrs, objp)
XDR *xdrs;
ypreqtype *objp;
{
+ register long *buf;
- register long *buf;
-
- if (!xdr_enum(xdrs, (enum_t *)objp)) {
- return (FALSE);
- }
+ if (!xdr_enum(xdrs, (enum_t *)objp)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -28,12 +27,11 @@ xdr_ypresptype(xdrs, objp)
XDR *xdrs;
ypresptype *objp;
{
+ register long *buf;
- register long *buf;
-
- if (!xdr_enum(xdrs, (enum_t *)objp)) {
- return (FALSE);
- }
+ if (!xdr_enum(xdrs, (enum_t *)objp)) {
+ return (FALSE);
+ }
return (TRUE);
}
@@ -67,7 +65,7 @@ xdr_yprequest(xdrs, objp)
break;
default:
printf("error 5\n");
- return (FALSE);
+ return (FALSE);
}
return (TRUE);
}
@@ -77,7 +75,6 @@ xdr_ypresponse(xdrs, objp)
XDR *xdrs;
ypresponse *objp;
{
-
register long *buf;
if (!xdr_ypresptype(xdrs, &objp->yp_resptype)) {
@@ -104,4 +101,3 @@ xdr_ypresponse(xdrs, objp)
}
return (TRUE);
}
-