#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <errno.h>
#include "LKDCHelper.h"
int main (int argc, char * const argv[])
{
LKDCHelperErrorType error;
char *string = NULL;
uint16_t kdcport = 0;
int i, ch;
while ((ch = getopt (argc, argv, "sqvr")) != -1) {
switch (ch) {
case 's':
LKDCDumpStatus (ASL_LEVEL_NOTICE);
break;
case 'q':
LKDCHelperExit ();
break;
case 'v':
LKDCSetLogLevel (ASL_LEVEL_NOTICE);
break;
case 'r':
error = LKDCGetLocalRealm (&string);
if (0 != error) {
fprintf (stderr, "LKDCGetLocalRealm -> %d: %s\n", error, LKDCHelperError (error));
} else {
printf ("%s\n", string);
}
break;
case '?':
default:
fprintf (stderr, "The -x flag causes LKDCHelper to dump its cache\n");
fprintf (stderr, "Otherwise supply either a hostname or an LKDC Realm to look up\n");
error ++;
break;
}
}
argc -= optind;
argv += optind;
error = 1;
for (i = 0; i < argc; i++) {
char * argument = argv[i];
if (strncmp ("LKDC:", argument, 5) == 0) {
error = LKDCFindKDCForRealm (argument, &string, &kdcport);
} else {
error = LKDCDiscoverRealm (argument, &string);
}
if (0 != error) {
fprintf (stderr, "LKDCHelper -> %d (%s): %s\n", error, LKDCHelperError (error), argument);
error++;
} else {
printf ("%s\n", string);
}
}
exit (error);
}