char *outf = NULL, outft[64];
struct stat sb;
int flag;
+ struct timeval tv;
EXEC SQL BEGIN DECLARE SECTION;
- char login[10], fullname[34], addr[84];
+ char login[10], first[17], last[17], fullname[34], addr[84];
int lastrun, when;
EXEC SQL END DECLARE SECTION;
EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
- lastrun = sb.st_mtime;
+ EXEC SQL SELECT secure INTO :lastrun FROM users WHERE users_id = 0;
+
+ gettimeofday(&tv, NULL);
+
EXEC SQL DECLARE x CURSOR FOR SELECT
- login, fullname, xaddress, secure
+ login, first, last, xaddress, secure
FROM users WHERE secure > :lastrun;
EXEC SQL OPEN x;
while (1) {
- EXEC SQL FETCH x INTO :login, :fullname, :addr, :when;
+ EXEC SQL FETCH x INTO :login, :first, :last, :addr, :when;
if (sqlca.sqlcode != 0) break;
strtrim(login);
- strtrim(fullname);
+ strtrim(first);
+ strtrim(last);
+ sprintf(fullname, "%s %s", first, last);
print_letter(out, login, fullname, strtrim(addr), when);
}
EXEC SQL CLOSE x;
+
+ lastrun = tv.tv_sec;
+ EXEC SQL UPDATE users SET secure = :lastrun WHERE users_id = 0;
+
#ifsql INGRES
EXEC SQL DISCONNECT;
#endsql
int when;
{
register char *p;
- char buf[256], *a1, *a2;
+ char buf[256], *a1, *a2, *d;
char *rindex();
/* split address into two lines.
/* Must be interdepartmental */
a2 = "MIT INTERDEPARTMENTAL MAIL";
}
-
- com_err(whoami, 0, "addr = \"%s\", a1 = \"%s\", a2 = \"%s\"", addr, a1, a2);
+ d = ctime(&when);
+ d[strlen(d)-1] = 0;
for (p = letter_text; *p; p++) {
if (*p == '%') {
}
break;
case 'd':
- fputs(ctime(&when), out);
- break;
- case '%':
- putc('%', out);
+ fputs(d, out);
break;
default:
putc('%', out);