static int is_running = 0;
if (is_running) return; /* Concurrency check - only one can run */
is_running = 1;
-
+
/*
* Don't do this if the site doesn't have it enabled.
*/
* Make sure we don't run the indexer too frequently.
* FIXME move the setting into config
*/
- if ( (time(NULL) - last_index) < 300L) {
+ time_t now = time(NULL);
+ if ( (now - last_index) < 300L) {
+ syslog(LOG_DEBUG,
+ "fulltext: indexing interval not yet reached; last run was %ldm%lds ago",
+ ((now - last_index) / 60),
+ ((now - last_index) % 60)
+ );
return;
}
if (!aaa) return -1;
sprintf(aaa, "ASUP %s|%s|%d|%ld|%ld|%d|%ld|%ld|%d",
- uret->fullname, uret->password, uret->flags,
- uret->timescalled, uret->posted, uret->axlevel,
- uret->usernum, uret->lastcall, uret->USuserpurge);
+ uret->fullname, uret->password, uret->flags, uret->timescalled,
+ uret->posted, uret->axlevel, uret->usernum, uret->lastcall, uret->USuserpurge
+ );
ret = CtdlIPCGenericCommand(ipc, aaa, NULL, 0, NULL, NULL, cret);
free(aaa);
return ret;
}
+/* ASEA */
+int CtdlIPCAideSetEmailAddresses(CtdlIPC *ipc, const char *who, char *emailaddrs, char *cret)
+{
+ char aaa[SIZ];
+ int ret;
+
+ if (!who) return -2;
+ if (!emailaddrs) return -2;
+ if (!cret) return -2;
+
+ sprintf(aaa, "ASEA %s", who);
+ ret = CtdlIPCGenericCommand(ipc, aaa, emailaddrs, 0, NULL, NULL, cret);
+ return ret;
+}
+
+
/* GPEX */
/* which is 0 = room, 1 = floor, 2 = site, 3 = default for mailboxes */
/* caller must free the struct ExpirePolicy */
int CtdlIPCAideGetUserParameters(CtdlIPC *ipc, const char *who, struct ctdluser **uret, char *cret);
int CtdlIPCAideGetEmailAddresses(CtdlIPC *ipc, const char *who, char *, char *cret);
int CtdlIPCAideSetUserParameters(CtdlIPC *ipc, const struct ctdluser *uret, char *cret);
-int CtdlIPCAideSetEmailAddresses(CtdlIPC *ipc, const struct ctdluser *uret, char *cret);
+int CtdlIPCAideSetEmailAddresses(CtdlIPC *ipc, const char *who, char *emailaddrs, char *cret);
int CtdlIPCRenameUser(CtdlIPC *ipc, char *oldname, char *newname, char *cret);
int CtdlIPCGetMessageExpirationPolicy(CtdlIPC *ipc, GPEXWhichPolicy which,
struct ExpirePolicy **policy, char *cret);
*/
void edit_user_internet_email_addresses(CtdlIPC *ipc, char *who)
{
- char buf[256];
+ char buf[SIZ];
char *resp = NULL;
int num_recs = 0;
char **recs = NULL;
while (!IsEmptyStr(emailaddrs)) {
extract_token(buf, emailaddrs, 0, '\n', sizeof buf);
remove_token(emailaddrs, 0, '\n');
-
- ++num_recs;
- if (num_recs == 1) recs = malloc(sizeof(char *));
- else recs = realloc(recs, (sizeof(char *)) * num_recs);
- recs[num_recs-1] = malloc(strlen(buf) + 1);
- strcpy(recs[num_recs-1], buf);
+ if (!IsEmptyStr(buf)) {
+ ++num_recs;
+ if (num_recs == 1) recs = malloc(sizeof(char *));
+ else recs = realloc(recs, (sizeof(char *)) * num_recs);
+ recs[num_recs-1] = malloc(strlen(buf) + 1);
+ strcpy(recs[num_recs-1], buf);
+ }
}
}
strcat(resp, recs[i]);
strcat(resp, "\n");
}
-
- //r = CtdlIPCSetSystemConfigByType(ipc, INTERNETCFG, resp, buf);
- //if (r / 100 != 4) {
- //scr_printf("%s\n", buf);
- //} else {
- //scr_printf("Wrote %d records.\n", num_recs);
- //modified = 0;
- //}
- scr_printf("<%s>\n", resp);
-
-
-
+ r = CtdlIPCAideSetEmailAddresses(ipc, who, resp, buf);
+ if (r / 100 != 4) {
+ scr_printf("%s\n", buf);
+ } else {
+ scr_printf("Saved %d addresses.\n", num_recs);
+ modified = 0;
+ quitting = 1;
+ }
free(resp);
break;
case 'q':