#include <stdio.h>
#include <strings.h>
#include <sys/types.h>
-#include <sms.h>
+#include <moira.h>
#include <menu.h>
+#include <krb_et.h>
#include "mit-copyright.h"
#include "defs.h"
char * whoami; /* used by menu.c ugh!!! */
char * moira_server;
+int interrupt = 0;
-extern Menu sms_top_menu, list_menu, user_menu, dcm_menu;
+extern Menu moira_top_menu, list_menu, user_menu, dcm_menu;
#ifndef DEBUG
-static void SignalHandler();
+static void SignalHandler(), CatchInterrupt();
#endif DEBUG
static void ErrorExit(), Usage();
uid_t getuid();
struct passwd *getpwuid();
+#ifdef _AIX
+Bool use_menu = FALSE; /* whether or not we are using a menu. */
+#else
Bool use_menu = TRUE; /* whether or not we are using a menu. */
+#endif
/* Function Name: main
* Description: The main driver for the Moira Client.
verbose = TRUE;
arg = argv;
- moira_server = SMS_SERVER;
+ moira_server = NULL;
while (++arg - argv < argc) {
if (**arg == '-') {
}
}
- if ( status = sms_connect(moira_server) )
+ if ( status = mr_connect(moira_server) )
ErrorExit("\nConnection to Moira server failed", status);
- if ( status = sms_motd(&motd) )
+ if ( status = mr_motd(&motd) )
ErrorExit("\nUnable to check server status", status);
if (motd) {
fprintf(stderr, "The Moira server is currently unavailable:\n%s\n", motd);
- sms_disconnect();
+ mr_disconnect();
exit(1);
}
- if ( status = sms_auth(program_name) ) {
- if (status == SMS_USER_AUTH) {
+ if ( status = mr_auth(program_name) ) {
+ if (status == MR_USER_AUTH) {
char buf[BUFSIZ];
com_err(program_name, status, "\nPress [RETURN] to continue");
gets(buf);
- } else
- ErrorExit("\nAuthorization failed -- please run kinit", status);
+ } else {
+ if (status >= ERROR_TABLE_BASE_krb &&
+ status <= ERROR_TABLE_BASE_krb + 256)
+ ErrorExit("\nAuthorization failed -- please run kinit", status);
+ else
+ ErrorExit("\nAuthorization failed.", status);
+ }
}
/*
#ifndef DEBUG
(void) signal(SIGHUP, SignalHandler);
- (void) signal(SIGINT, SignalHandler);
(void) signal(SIGQUIT, SignalHandler);
+ if (use_menu)
+ (void) signal(SIGINT, SignalHandler);
+ else
+ (void) signal(SIGINT, CatchInterrupt);
#endif DEBUG
+ initialize_gdss_error_table();
+
if (!strcmp(program_name, "listmaint"))
menu = &list_menu;
else if (!strcmp(program_name, "usermaint"))
else if (!strcmp(program_name, "dcmmaint"))
menu = &dcm_menu;
else
- menu = &sms_top_menu;
+ menu = &moira_top_menu;
if (use_menu) { /* Start menus that execute program */
Start_paging();
else /* Start program without menus. */
Start_no_menu(menu);
- sms_disconnect();
+ mr_disconnect();
exit(0);
}
char * buf;
{
com_err(program_name, status, buf);
- sms_disconnect();
+ mr_disconnect();
exit(1);
}
Put_message("Signal caught - exiting");
if (use_menu)
Cleanup_menu();
- sms_disconnect();
+ mr_disconnect();
exit(1);
}
+
+
+static void
+CatchInterrupt()
+{
+ Put_message("Interrupt! Press RETURN to continue");
+ interrupt = 1;
+}
#endif DEBUG