* <mit-copyright.h>.
*/
-#include <moira_site.h>
#include <mit-copyright.h>
-
-#define NULL 0
+#include <moira_site.h>
+#include <moira_schema.h>
#define MODE_ASK 1
#define MODE_NO 2
#define MODE_YES 4
extern int debug, mode, fast, dcmenable, warn;
-extern struct hash *users, *machines, *clusters, *lists;
+extern struct hash *users, *machines, *clusters, *lists, *printservers;
extern struct hash *filesys, *nfsphys, *strings, *subnets, *string_dups;
#define MAX_ID_VALUE 32765
#define MIN_ID_VALUE 100
-#define dprintf if (debug) printf
+#define dprintf if (debug) printf
struct user {
- char login[9];
+ char login[USERS_LOGIN_SIZE];
char potype;
char *fullname;
int status;
};
struct machine {
- char name[33];
+ char name[MACHINE_NAME_SIZE];
char owner_type;
int owner_id;
int snet_id;
};
struct subnet {
- char name[33];
+ char name[SUBNET_NAME_SIZE];
char owner_type;
int owner_id;
int snet_id;
};
struct cluster {
- char name[33];
- int clu_id;
- int modby;
+ char name[CLUSTERS_NAME_SIZE];
+ int clu_id;
+ int modby;
};
struct list {
- char name[33];
- char acl_type;
- int list_id;
- int acl_id;
- int members;
+ char name[LIST_NAME_SIZE];
+ char acl_type;
+ char memacl_type;
+ int list_id;
+ int acl_id;
+ int memacl_id;
+ int modby;
+ int members;
};
struct string {
- char *name;
- int string_id;
- int refc;
+ char *name;
+ int string_id;
+ int refc;
};
struct filesys {
- char name[33];
- char dir[33];
- char type;
- int filsys_id;
- int mach_id;
- int owner;
- int owners;
- int phys_id;
+ char name[FILESYS_LABEL_SIZE];
+ char dir[FILESYS_NAME_SIZE];
+ char type;
+ int filsys_id;
+ int mach_id;
+ int owner;
+ int owners;
+ int phys_id;
};
struct nfsphys {
- char dir[33];
- int mach_id;
- int nfsphys_id;
- int allocated;
- int count;
+ char dir[NFSPHYS_DIR_SIZE];
+ int mach_id;
+ int nfsphys_id;
+ int allocated;
+ int modby;
+ int count;
};
+
+struct printserver {
+ int mach_id;
+ int printer_types;
+ char owner_type;
+ int owner_id;
+ int lpc_acl;
+ int modby;
+};
+
+void dbmserr(void);
+void out_of_mem(char *msg);
+void cleanup(void);
+
+void modified(char *table);
+
+void phase1(void);
+void phase2(void);
+void phase3(void);
+void phase4(void);
+void count_only_setup(void);
+
+/* prototypes from fix.pc */
+void generic_delete(struct save_queue *sq, int (*pfunc)(void *), char *table,
+ char *idfield, int preen);
+void single_delete(char *table, char *idfield, int id);
+void zero_fix(char *tbl, char *zrfield, char *idfield, int id);
+int single_fix(char *msg, int preen);
+void generic_fix(struct save_queue *sq, int (*pfunc)(void *), char *msg,
+ void (*ffunc)(void *), int preen);
+int prompt(char *msg);
+int set_next_object_id(char *object, char *tablename);
+int generic_fix_id(char *tbl, char *idfield, char *txtfield,
+ int oldid, char *name);
+
+/* prototypes from phase3.pc */
+struct string *string_check(int id);