version 1.4, 1996/06/05 23:56:00 |
version 1.5, 1997/04/22 01:49:16 |
|
|
tv.tv_sec = 15; |
tv.tv_sec = 15; |
tv.tv_usec = 0; |
tv.tv_usec = 0; |
client = clntudp_create(sin, YPBINDPROG, YPBINDVERS, tv, &sock); |
client = clntudp_create(sin, YPBINDPROG, YPBINDVERS, tv, &sock); |
if(client==NULL) { |
if (client==NULL) { |
fprintf(stderr, "can't clntudp_create: %s\n", |
fprintf(stderr, "can't clntudp_create: %s\n", |
yperr_string(YPERR_YPBIND)); |
yperr_string(YPERR_YPBIND)); |
return YPERR_YPBIND; |
return YPERR_YPBIND; |
} |
} |
|
|
tv.tv_sec = 5; |
tv.tv_sec = 5; |
tv.tv_usec = 0; |
tv.tv_usec = 0; |
r = clnt_call(client, YPBINDPROC_DOMAIN, |
r = clnt_call(client, YPBINDPROC_DOMAIN, |
xdr_domainname, &dom, xdr_ypbind_resp, &ypbr, tv); |
xdr_domainname, &dom, xdr_ypbind_resp, &ypbr, tv); |
if( r != RPC_SUCCESS) { |
if (r != RPC_SUCCESS) { |
fprintf(stderr, "can't clnt_call: %s\n", |
fprintf(stderr, "can't clnt_call: %s\n", |
yperr_string(YPERR_YPBIND)); |
yperr_string(YPERR_YPBIND)); |
clnt_destroy(client); |
clnt_destroy(client); |
return YPERR_YPBIND; |
return YPERR_YPBIND; |
} else { |
} else { |
if (ypbr.ypbind_status != YPBIND_SUCC_VAL) { |
if (ypbr.ypbind_status != YPBIND_SUCC_VAL) { |
fprintf(stderr, "can't yp_bind: Reason: %s\n", |
fprintf(stderr, "can't yp_bind: Reason: %s\n", |
yperr_string(ypbr.ypbind_status)); |
yperr_string(ypbr.ypbind_status)); |
clnt_destroy(client); |
clnt_destroy(client); |
return r; |
return r; |
} |
} |
|
|
|
|
map = NULL; |
map = NULL; |
getmap = notrans = mode = 0; |
getmap = notrans = mode = 0; |
while( (c=getopt(argc, argv, "xd:mt")) != -1) |
while ((c=getopt(argc, argv, "xd:mt")) != -1) |
switch(c) { |
switch (c) { |
case 'x': |
case 'x': |
for(i=0; i<sizeof ypaliases/sizeof ypaliases[0]; i++) |
for (i=0; i<sizeof ypaliases/sizeof ypaliases[0]; i++) |
printf("Use \"%s\" for \"%s\"\n", |
printf("Use \"%s\" for \"%s\"\n", |
ypaliases[i].alias, |
ypaliases[i].alias, ypaliases[i].name); |
ypaliases[i].name); |
|
exit(0); |
exit(0); |
case 'd': |
case 'd': |
domain = optarg; |
domain = optarg; |
|
|
argc -= optind; |
argc -= optind; |
argv += optind; |
argv += optind; |
|
|
if(mode==0) { |
if (mode==0) { |
switch(argc) { |
switch (argc) { |
case 0: |
case 0: |
bzero(&sin, sizeof sin); |
bzero(&sin, sizeof sin); |
sin.sin_family = AF_INET; |
sin.sin_family = AF_INET; |
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); |
sin.sin_addr.s_addr = htonl(INADDR_LOOPBACK); |
|
|
if(bind_host(domain, &sin)) |
if (bind_host(domain, &sin)) |
exit(1); |
exit(1); |
break; |
break; |
case 1: |
case 1: |
|
|
sin.sin_family = AF_INET; |
sin.sin_family = AF_INET; |
if (inet_aton(argv[0], &sin.sin_addr) == 0) { |
if (inet_aton(argv[0], &sin.sin_addr) == 0) { |
hent = gethostbyname(argv[0]); |
hent = gethostbyname(argv[0]); |
if(!hent) { |
if (!hent) { |
fprintf(stderr, "ypwhich: host %s unknown\n", |
fprintf(stderr, "ypwhich: host %s unknown\n", |
argv[0]); |
argv[0]); |
exit(1); |
exit(1); |
} |
} |
bcopy((char *)hent->h_addr, |
bcopy((char *)hent->h_addr, |
(char *)&sin.sin_addr, sizeof sin.sin_addr); |
(char *)&sin.sin_addr, sizeof sin.sin_addr); |
} |
} |
if(bind_host(domain, &sin)) |
if (bind_host(domain, &sin)) |
exit(1); |
exit(1); |
break; |
break; |
default: |
default: |
|
|
exit(0); |
exit(0); |
} |
} |
|
|
if( argc > 1) |
if (argc > 1) |
usage(); |
usage(); |
|
|
if(argv[0]) { |
if (argv[0]) { |
map = argv[0]; |
map = argv[0]; |
for(i=0; (!notrans) && i<sizeof ypaliases/sizeof ypaliases[0]; i++) |
for (i=0; (!notrans) && i<sizeof ypaliases/sizeof ypaliases[0]; i++) |
if( strcmp(map, ypaliases[i].alias) == 0) |
if (strcmp(map, ypaliases[i].alias) == 0) |
map = ypaliases[i].name; |
map = ypaliases[i].name; |
r = yp_master(domain, map, &master); |
r = yp_master(domain, map, &master); |
switch(r) { |
switch (r) { |
case 0: |
case 0: |
printf("%s\n", master); |
printf("%s\n", master); |
free(master); |
free(master); |
|
|
exit(1); |
exit(1); |
default: |
default: |
fprintf(stderr, "Can't find master for map %s. Reason: %s\n", |
fprintf(stderr, "Can't find master for map %s. Reason: %s\n", |
map, yperr_string(r)); |
map, yperr_string(r)); |
exit(1); |
exit(1); |
} |
} |
exit(0); |
exit(0); |
|
|
r = 0; |
r = 0; |
switch(r) { |
switch(r) { |
case 0: |
case 0: |
for(y = ypml; y; ) { |
for (y = ypml; y; ) { |
ypml = y; |
ypml = y; |
r = yp_master(domain, ypml->map, &master); |
r = yp_master(domain, ypml->map, &master); |
switch(r) { |
switch(r) { |
|
|
break; |
break; |
default: |
default: |
fprintf(stderr, |
fprintf(stderr, |
"YP: can't find the master of %s: Reason: %s\n", |
"YP: can't find the master of %s: Reason: %s\n", |
ypml->map, yperr_string(r)); |
ypml->map, yperr_string(r)); |
break; |
break; |
} |
} |
y = ypml->next; |
y = ypml->next; |
|
|
exit(1); |
exit(1); |
default: |
default: |
fprintf(stderr, "Can't get map list for domain %s. Reason: %s\n", |
fprintf(stderr, "Can't get map list for domain %s. Reason: %s\n", |
domain, yperr_string(r)); |
domain, yperr_string(r)); |
exit(1); |
exit(1); |
} |
} |
exit(0); |
exit(0); |