/* $Id$ * * Utility program to generate magic words for a given ID * * Copyright (C) 1998 by the Massachusetts Institute of Technology * For copying and distribution information, please see the file * . * */ #include #include #include #include "reg_svr.h" #include #include EXEC SQL INCLUDE sqlca; RCSID("$Header$"); int main(int argc, char **argv) { char *words[6]; int verb; if (argc > 1 && !strcmp(argv[1], "-v")) { verb++; argv++; argc--; } if (argc != 2) { fprintf(stderr, "Usage: genwords [-v] id\n"); exit(1); } if (!read_hmac_key()) { fprintf(stderr, "Couldn't read hmac key\n"); exit(1); } getwordlist(argv[1], words); if (verb) { EXEC SQL BEGIN DECLARE SECTION; char first[USERS_FIRST_SIZE], middle[USERS_MIDDLE_SIZE]; char last[USERS_LAST_SIZE], *id, *database = "moira"; EXEC SQL END DECLARE SECTION; EXEC SQL CONNECT :database IDENTIFIED BY :database; id = argv[1]; EXEC SQL SELECT first, middle, last INTO :first, :middle, :last FROM users WHERE clearid = :id; if (sqlca.sqlcode) { sprintf(first, "%d", sqlca.sqlcode); *middle = *last = '\0'; } else { strtrim(first); strtrim(middle); strtrim(last); } printf("(%s%s%s %s) (%s) (%s) (%s) (%s) (%s) (%s) (%s) dopage\n", first, *middle ? " " : "", middle, last, id, words[0], words[1], words[2], words[3], words[4], words[5]); } else { printf("%s %s %s %s %s %s\n", words[0], words[1], words[2], words[3], words[4], words[5]); } } /* used by words.c */ void *xmalloc(size_t size) { /* we won't run out of memory here */ return malloc(size); }