P8000/WEGA/contrib/ingres/dbs/src/sys/printadmin.c

102 lines
1.8 KiB
C

# include <stdio.h>
# include "../conf/gen.h"
# include "../h/dbs.h"
# include "../h/access.h"
# include "../h/aux.h"
# include "../h/bs.h"
# ifdef P8000
ret_buf AAjmp_buf;
# else
jmp_buf AAjmp_buf;
# endif
extern int AAdbstat;
main(argc, argv)
int argc;
char *argv[];
{
struct admin ad;
register int i;
register int fp;
register char *db;
extern char *AAdbpath;
extern char *AAproc_name;
extern char *Parmvect[];
extern char *Flagvect[];
# ifdef SETBUF
char stdbuf[BUFSIZ];
setbuf(stdout, stdbuf);
# endif
AAproc_name = "ADMIN";
# ifdef xSTR1
AAtTrace(&argc, argv, 'X');
# endif
i = initucode(argc, argv, TRUE, (char *) 0, -1);
db = Parmvect[0];
switch (i)
{
case 0:
case 5:
break;
case 1:
case 6:
AAsyserr(0, "Die Datenbank '%s' existiert nicht", db);
case 2:
AAsyserr(0, "Sie duerfen auf die Datenbank '%s' nicht zugreifen", db);
case 3:
AAsyserr(0, "Sie sind kein eingetragener DBS-Nutzer");
case 4:
printf("Sie haben keinen Datenbankname angegeben\n");
usage:
AAsyserr(0, "HINWEIS: admin db_name");
default:
AAsyserr(22000, AAproc_name, i);
}
if (Flagvect[0])
{
printf("Fuer dieses Kommando sind keine Flags gestattet\n");
goto usage;
}
if (Parmvect[1])
goto usage;
if (!(AAdbstat & U_SUPER))
AAsyserr(0, "Sie duerfen ADMIN nicht verwenden");
if (chdir(AAdbpath) < 0)
AAsyserr(22001, AAproc_name, db);
if ((fp = open(AA_ADMIN, 0)) < 0)
AAsyserr(0, "Fehler beim Eroeffnen des DBA file '%s/admin'", AAdbpath);
if (read(fp, &ad, sizeof ad) != sizeof ad)
AAsyserr(22076);
printf("Datenbank %s, DBA %.2s, Flags 0%o\n", db, ad.adhdr.adowner, ad.adhdr.adflags);
AAprdesc(&ad.adreld);
printf("\n\n");
AAprdesc(&ad.adattd);
fflush(stdout);
exit(0);
}
rubproc()
{
fflush(stdout);
exit(1);
}