From: danw Date: Mon, 20 Jan 1997 18:10:43 +0000 (+0000) Subject: Oracle and Solaris/POSIX changes X-Git-Tag: MOIRA4_INITIAL~9 X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/commitdiff_plain/c7e4633e1950ab362a46fc1647db176698e71e67 Oracle and Solaris/POSIX changes Get AFS stuff out of afsuser, not afsdev Source tree should only have Imakefiles, not Makefiles. --- diff --git a/afssync/Imakefile b/afssync/Imakefile index c27e135e..02c72e2e 100644 --- a/afssync/Imakefile +++ b/afssync/Imakefile @@ -8,7 +8,7 @@ OBJS= ptutils.o utils.o ubik.o SRCS= ptutils.c utils.c ubik.c CODE= $(SRCS) migrate.qc sync.dc -AFSDIR = /mit/afsdev/bld/dest +AFSDIR = /mit/afsuser AFSLIBS=$(AFSDIR)/lib/afs/libprot.a $(AFSDIR)/lib/afs/libauth.a \ $(AFSDIR)/lib/libubik.a $(AFSDIR)/lib/afs/util.a \ $(AFSDIR)/lib/librxkad.a $(AFSDIR)/lib/afs/libsys.a \ diff --git a/afssync/Makefile b/afssync/Makefile deleted file mode 100644 index c09a4df2..00000000 --- a/afssync/Makefile +++ /dev/null @@ -1,43 +0,0 @@ -# $Header$ - -DBCFLAGS= -DBLIBS= -L/usr/ingres/lib -lingres -lm - -AFSDIR = /mit/afsdev/bld/dest -CFLAGS = -I$(AFSDIR)/include -I$(AFSDIR)/include/afs -I../include \ - -I/usr/athena/include -O ${DBCFLAGS} -LDFLAGS= -L/usr/athena/lib - -OBJS= ptutils.o utils.o ubik.o -LIBS= -L../lib $(LDFLAGS) -lmoira -lcom_err -lkrb -ldes ${DBLIBS} - -AFSLIBS=$(AFSDIR)/lib/afs/libprot.a $(AFSDIR)/lib/afs/libauth.a \ - $(AFSDIR)/lib/libubik.a $(AFSDIR)/lib/afs/util.a \ - $(AFSDIR)/lib/librxkad.a $(AFSDIR)/lib/afs/libsys.a \ - $(AFSDIR)/lib/librx.a $(AFSDIR)/lib/liblwp.a - -.SUFFIXES: .dc .sc - -.dc.sc: - awk -f ../util/imake.includes/ingres.awk < $< > $*.sc -.sc.c: - /usr/ingres/bin/esqlc -p $* - -all: sync ptdump pt_util - -sync: sync.o $(OBJS) - $(CC) -o sync sync.o $(OBJS) $(AFSLIBS) $(LIBS) - -ptdump: ptdump.o - cc -o ptdump ptdump.o $(AFSLIBS) $(LDFLAGS) -ldes - -pt_util: pt_util.o $(OBJS) - cc -o pt_util pt_util.o $(OBJS) $(AFSLIBS) $(LDFLAGS) -lcom_err -ldes - -migrate: migrate.o - cc -o migrate migrate.o $(LIBS) - -migrate.c: migrate.qc - -clean: - rm -f *.o sync.c sync migrate.c migrate pt_util ptdump diff --git a/afssync/pt_util.c b/afssync/pt_util.c index bf75b5b4..355c0215 100644 --- a/afssync/pt_util.c +++ b/afssync/pt_util.c @@ -168,7 +168,7 @@ char **argv; if (ntohl(uh->magic) != UBIK_MAGIC) fprintf(stderr, "ptdump: %s: Bad UBIK_MAGIC. Is %x should be %x\n", pfile, ntohl(uh->magic), UBIK_MAGIC); - bcopy(&uh->version, &uv, sizeof(struct ubik_version)); + memcpy(&uv, &uh->version, sizeof(struct ubik_version)); fprintf(stderr, "Ubik Version is: %d.%d\n", uv.epoch, uv.counter); if (read(dbase_fd, &prh, sizeof(struct prheader)) < 0) { diff --git a/afssync/ptdump.c b/afssync/ptdump.c index 369ea7a1..1e443ba2 100644 --- a/afssync/ptdump.c +++ b/afssync/ptdump.c @@ -43,7 +43,7 @@ char **argv; char file[512]; register struct ubik_hdr *uh; int didit; - setlinebuf(stdout); + setvbuf(stdout, NULL, _IOLBF, BUFSIZ); strcpy(file, "/usr/afs/db/prdb.DB0"); while ((cc = getopt(argc, argv, "f:gnc")) != EOF) { switch (cc) { @@ -82,7 +82,7 @@ char **argv; if (ntohl(uh->magic) != UBIK_MAGIC) fprintf(stderr, "ptdump: %s: Bad UBIK_MAGIC. Is %x should be %x\n", file, ntohl(uh->magic), UBIK_MAGIC); - bcopy(&uh->version, &uv, sizeof(struct ubik_version)); + memcpy(&uv, &uh->version, sizeof(struct ubik_version)); fprintf(stderr, "Ubik Version is: %D.%d\n", uv.epoch, uv.counter); if (read(fd, &prh, sizeof(struct prheader)) < 0) { diff --git a/afssync/sync.dc b/afssync/sync.dc index 03e4c294..ba9e540d 100644 --- a/afssync/sync.dc +++ b/afssync/sync.dc @@ -9,7 +9,7 @@ #include #include #include -#include +#include #include #include "ptint.h" @@ -29,7 +29,9 @@ EXEC SQL BEGIN DECLARE SECTION; char db[33] = "moira"; EXEC SQL END DECLARE SECTION; +#ifndef min #define min(x,y) ((x) < (y) ? (x) : (y)) +#endif char *whoami = "sync"; int dbase_fd; @@ -63,6 +65,8 @@ char **argv; int status; long t; + setvbuf(stdout, NULL, _IOLBF, BUFSIZ); + if (argc > 2 && !strcmp(argv[1], "-db")) { strncpy(db, argv[2], sizeof(db)-1); argc -= 2; @@ -82,7 +86,6 @@ char **argv; initialize_sms_error_table(); initialize_pt_error_table(); Initdb(); /* Initialize prdb */ - setlinebuf(stdout); users = create_hash(10000); groups = create_hash(15000); @@ -90,14 +93,8 @@ char **argv; strings = create_hash(1000); #endif - EXEC SQL WHENEVER SQLERROR CALL sqlerr; -#ifsql INGRES - EXEC SQL CONNECT :db; - EXEC SQL SET LOCKMODE SESSION WHERE LEVEL=TABLE, READLOCK=SHARED; -#endsql -#ifsql INFORMIX - EXEC SQL DATABASE :db; -#endsql + EXEC SQL WHENEVER SQLERROR DO sqlerr(); + EXEC SQL CONNECT :db IDENTIFIED BY :db; do_passwd(); do_groups(); @@ -106,12 +103,7 @@ char **argv; fprintf(stderr, "Done (%d users, %d groups, %d kerberos, %d members): %s", ucount, gcount, kcount, mcount, ctime(&t)); -#ifsql INGRES - EXEC SQL DISCONNECT; -#endsql -#ifsql INFORMIX - EXEC SQL CLOSE DATABASE; -#endsql + EXEC SQL COMMIT; exit(MR_SUCCESS); } @@ -131,14 +123,11 @@ do_passwd() t = time(0); fprintf(stderr, "Doing users: %s", ctime(&t)); - /* get locks */ - EXEC SQL SELECT modtime INTO :name FROM users WHERE users_id = 0; - EXEC SQL DECLARE u_cursor CURSOR FOR - SELECT u.login, u.uid, u.users_id + SELECT u.login, u.unix_uid, u.users_id FROM users u - WHERE u.uid > 0 AND (u.status = 1 OR u.status = 2) - ORDER BY uid; + WHERE u.unix_uid > 0 AND (u.status = 1 OR u.status = 2) + ORDER BY unix_uid; EXEC SQL OPEN u_cursor; while (1) { EXEC SQL FETCH u_cursor INTO :login, :uid, :id; @@ -186,9 +175,6 @@ do_groups() t = time(0); fprintf(stderr, "Doing groups: %s", ctime(&t)); - /* get locks */ - EXEC SQL SELECT modtime INTO :name FROM list WHERE list_id = 0; - EXEC SQL DECLARE l_cursor CURSOR FOR SELECT l.name, l.gid, l.list_id, l.hidden FROM list l @@ -290,10 +276,10 @@ do_groups() if (aid == 0) { EXEC SQL DECLARE k_cursor2 CURSOR FOR - SELECT uid, status + SELECT unix_uid, status FROM users WHERE login = :name - ORDER BY uid; + ORDER BY unix_uid; EXEC SQL OPEN k_cursor2; while (1) { if (sqlca.sqlcode) break; @@ -411,6 +397,11 @@ do_groups() sqlerr() { - com_err(whoami, MR_INGRES_ERR, " code %d\n", sqlca.sqlcode); - exit(MR_INGRES_ERR); + char buf[256]; + int size=256, len=0; + + sqlglm(buf, &size, &len); + buf[len]='\0'; + com_err(whoami, MR_DBMS_ERR, " code %d\n%s", sqlca.sqlcode, buf); + exit(MR_DBMS_ERR); } diff --git a/afssync/ubik.c b/afssync/ubik.c index f00891c4..6c5622d5 100644 --- a/afssync/ubik.c +++ b/afssync/ubik.c @@ -5,6 +5,7 @@ #include #define UBIK_INTERNALS +#include #include #include #include "print.h" @@ -89,7 +90,7 @@ int ubik_GetVersion(dummy, ver) int dummy; struct ubik_version *ver; { - bzero(ver, sizeof(struct ubik_version)); + memset(ver, 0, sizeof(struct ubik_version)); return(0); } @@ -134,7 +135,7 @@ long len; return(1); } if (status < len) - bzero(&buf[status], len - status); + memset(&buf[status], 0, len - status); return(0); }