version 1.7, 2002/06/02 06:42:28 |
version 1.8, 2002/07/19 03:22:39 |
|
|
}; |
}; |
|
|
void |
void |
usage() |
usage(void) |
{ |
{ |
fprintf(stderr, "Usage:\n"); |
fprintf(stderr, "Usage:\n"); |
fprintf(stderr, "\typmatch [-d domain] [-t] [-k] key [key ...] mname\n"); |
fprintf(stderr, "\typmatch [-d domain] [-t] [-k] key [key ...] mname\n"); |
|
|
} |
} |
|
|
int |
int |
main(argc, argv) |
main(int argc, char *argv[]) |
char **argv; |
|
{ |
{ |
char *domainname; |
char *domainname, *inkey, *inmap, *outbuf; |
char *inkey, *inmap, *outbuf; |
|
extern char *optarg; |
extern char *optarg; |
extern int optind; |
extern int optind; |
int outbuflen, key, notrans; |
int outbuflen, key, notrans, rval; |
int c, r, i; |
int c, r, i; |
int rval; |
|
|
|
domainname = NULL; |
domainname = NULL; |
notrans = key = 0; |
notrans = key = 0; |
while( (c=getopt(argc, argv, "xd:kt")) != -1) |
while ((c=getopt(argc, argv, "xd:kt")) != -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++) |
|
|
usage(); |
usage(); |
} |
} |
|
|
if( (argc-optind) < 2 ) |
if ((argc-optind) < 2 ) |
usage(); |
usage(); |
|
|
if (!domainname) { |
if (!domainname) { |
|
|
inmap = argv[argc-1]; |
inmap = argv[argc-1]; |
if (!notrans) { |
if (!notrans) { |
for(i=0; i<sizeof ypaliases/sizeof ypaliases[0]; i++) |
for(i=0; i<sizeof ypaliases/sizeof ypaliases[0]; i++) |
if( strcmp(inmap, ypaliases[i].alias) == 0) |
if (strcmp(inmap, ypaliases[i].alias) == 0) |
inmap = ypaliases[i].name; |
inmap = ypaliases[i].name; |
} |
} |
|
|
|
|
strlen(inkey), &outbuf, &outbuflen); |
strlen(inkey), &outbuf, &outbuflen); |
switch (r) { |
switch (r) { |
case 0: |
case 0: |
if(key) |
if (key) |
printf("%s: ", inkey); |
printf("%s: ", inkey); |
printf("%*.*s\n", outbuflen, outbuflen, outbuf); |
printf("%*.*s\n", outbuflen, outbuflen, outbuf); |
break; |
break; |
|
|
exit(1); |
exit(1); |
default: |
default: |
fprintf(stderr, "Can't match key %s in map %s. Reason: %s\n", |
fprintf(stderr, "Can't match key %s in map %s. Reason: %s\n", |
inkey, inmap, yperr_string(r)); |
inkey, inmap, yperr_string(r)); |
rval = 1; |
rval = 1; |
break; |
break; |
} |
} |