version 1.1, 1996/05/14 23:37:32 |
version 1.2, 1996/05/18 19:01:31 |
Line 39 static char rcsid[] = "$NetBSD$"; |
|
Line 39 static char rcsid[] = "$NetBSD$"; |
|
#include <rpcsvc/yp_prot.h> |
#include <rpcsvc/yp_prot.h> |
#include <rpcsvc/ypclnt.h> |
#include <rpcsvc/ypclnt.h> |
|
|
extern int _yplib_timeout; |
extern struct timeval _yplib_timeout; |
|
|
int |
int |
yp_order(indomain, inmap, outorder) |
yp_order(indomain, inmap, outorder) |
Line 50 yp_order(indomain, inmap, outorder) |
|
Line 50 yp_order(indomain, inmap, outorder) |
|
struct dom_binding *ysd; |
struct dom_binding *ysd; |
struct ypresp_order ypro; |
struct ypresp_order ypro; |
struct ypreq_nokey yprnk; |
struct ypreq_nokey yprnk; |
struct timeval tv; |
|
int r; |
int r; |
|
|
|
if (indomain == NULL || *indomain == '\0' |
|
|| strlen(indomain) > YPMAXDOMAIN) |
|
return YPERR_BADARGS; |
|
if (inmap == NULL || *inmap == '\0' |
|
|| strlen(inmap) > YPMAXMAP) |
|
return YPERR_BADARGS; |
|
if (outorder == NULL) |
|
return YPERR_BADARGS; |
|
|
again: |
again: |
if (_yp_dobind(indomain, &ysd) != 0) |
if (_yp_dobind(indomain, &ysd) != 0) |
return YPERR_DOMAIN; |
return YPERR_DOMAIN; |
|
|
tv.tv_sec = _yplib_timeout; |
|
tv.tv_usec = 0; |
|
|
|
yprnk.domain = indomain; |
yprnk.domain = indomain; |
yprnk.map = inmap; |
yprnk.map = inmap; |
|
|
(void)memset(&ypro, 0, sizeof ypro); |
(void)memset(&ypro, 0, sizeof ypro); |
|
|
r = clnt_call(ysd->dom_client, YPPROC_ORDER, |
r = clnt_call(ysd->dom_client, YPPROC_ORDER, |
xdr_ypreq_nokey, &yprnk, xdr_ypresp_order, &ypro, tv); |
xdr_ypreq_nokey, &yprnk, xdr_ypresp_order, &ypro, |
|
_yplib_timeout); |
if (r != RPC_SUCCESS) { |
if (r != RPC_SUCCESS) { |
clnt_perror(ysd->dom_client, "yp_order: clnt_call"); |
clnt_perror(ysd->dom_client, "yp_order: clnt_call"); |
if (r == RPC_PROCUNAVAIL) { |
if (r == RPC_PROCUNAVAIL) { |