CtdlDirectoryInit();
/* We want *all* vCards in this room */
- CtdlForEachMessage(MSGS_ALL, 0, NULL, "^[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$",
+ CtdlForEachMessage(MSGS_ALL, 0, NULL, "[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$",
NULL, vcard_add_to_directory, NULL);
CtdlGetRoom(&CC->room, hold_rm); /* return to saved room */
&& (!strcasecmp(&CC->room.QRname[11], USERCONFIGROOM)) ) {
/* Yes, we want to do this */
yes_my_citadel_config = 1;
+ syslog(LOG_DEBUG, "GAB: user config room detected");
#ifdef VCARD_SAVES_BY_AIDES_ONLY
/* Prevent non-aides from performing registration changes */
/* Is this a room with an address book in it? */
if (CC->room.QRdefaultview == VIEW_ADDRESSBOOK) {
yes_any_vcard_room = 1;
+ syslog(LOG_DEBUG, "GAB: address book room detected");
}
/* If neither condition exists, don't run this hook. */
}
s = vcard_get_prop(v, "fn", 1, 0, 0);
- if (s) syslog(LOG_DEBUG, "vCard beforesave hook running for <%s>\n", s);
+ if (s) syslog(LOG_DEBUG, "GAB: vCard beforesave hook running for <%s>\n", s);
if (yes_my_citadel_config) {
/* Bingo! The user is uploading a new vCard, so
* vCard in the user's config room at all times.
*
*/
- CtdlDeleteMessages(CC->room.QRname, NULL, 0, "^[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$");
+ syslog(LOG_DEBUG, "GAB: deleting old vCard for user");
+ CtdlDeleteMessages(CC->room.QRname, NULL, 0, "[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$");
/* Make the author of the message the name of the user. */
if (msg->cm_fields['A'] != NULL) {
/* Now allow the save to complete. */
vcard_free(v);
+ syslog(LOG_DEBUG, "GAB: save will proceed");
return(0);
}
if ( (strlen(CC->room.QRname) >= 12) && (!strcasecmp(&CC->room.QRname[11], USERCONFIGROOM)) ) {
is_UserConf = 1; /* It's someone's config room */
+ syslog(LOG_DEBUG, "GAB: this is someone's config room");
}
CtdlMailboxName(roomname, sizeof roomname, &CC->user, USERCONFIGROOM);
if (!strcasecmp(CC->room.QRname, roomname)) {
is_UserConf = 1;
is_MY_UserConf = 1; /* It's MY config room */
+ syslog(LOG_DEBUG, "GAB: this is MY config room");
}
if (!strcasecmp(CC->room.QRname, ADDRESS_BOOK_ROOM)) {
is_GAB = 1; /* It's the Global Address Book */
+ syslog(LOG_DEBUG, "GAB: this is the Global Address Book");
}
if (!is_UserConf && !is_GAB) return(0);
if (!is_GAB)
{ // This is not the GAB
/* Put it in the Global Address Book room... */
+ syslog(LOG_DEBUG, "GAB: copying to Global Address Book");
CtdlSaveMsgPointerInRoom(ADDRESS_BOOK_ROOM, I, 1, msg);
}
/* We want the last (and probably only) vcard in this room */
VCmsgnum = (-1);
- CtdlForEachMessage(MSGS_LAST, 1, NULL, "^[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$",
+ CtdlForEachMessage(MSGS_LAST, 1, NULL, "[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$",
NULL, vcard_gu_backend, (void *)&VCmsgnum );
CtdlGetRoom(&CC->room, hold_rm); /* return to saved room */
time(&CC->lastcmd);
memset(cmdbuf, 0, sizeof cmdbuf); /* Clear it, just in case */
if (client_getln(cmdbuf, sizeof cmdbuf) < 1) {
- syslog(LOG_CRIT, "Client disconnected: ending session.\n");
+ syslog(LOG_CRIT, "vcard client disconnected: ending session.\n");
CC->kill_me = KILLME_CLIENT_DISCONNECTED;
return;
}
*/
void store_this_ha(struct addresses_to_be_filed *aptr) {
struct CtdlMessage *vmsg = NULL;
- long vmsgnum = (-1L);
char *ser = NULL;
struct vCard *v = NULL;
char recipient[256];
/* First remove any addresses we already have in the address book */
CtdlUserGoto(aptr->roomname, 0, 0, NULL, NULL);
- CtdlForEachMessage(MSGS_ALL, 0, NULL, "^[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$", NULL,
+ CtdlForEachMessage(MSGS_ALL, 0, NULL, "[Tt][Ee][Xx][Tt]/.*[Vv][Cc][Aa][Rr][Dd]$", NULL,
strip_addresses_already_have, aptr->collected_addresses);
if (!IsEmptyStr(aptr->collected_addresses))
vcard_free(v);
syslog(LOG_DEBUG, "Adding contact: %s\n", recipient);
- vmsgnum = CtdlSubmitMsg(vmsg, NULL, aptr->roomname, QP_EADDR);
+ CtdlSubmitMsg(vmsg, NULL, aptr->roomname, QP_EADDR);
CtdlFreeMessage(vmsg);
}
}
fp = fopen(filename, "a");
if (fp != NULL) fclose(fp);
rv = chown(filename, CTDLUID, (-1));
+ if (rv == -1)
+ syslog(LOG_EMERG, "Failed to adjust ownership of: %s [%s]\n",
+ filename, strerror(errno));
}
/* for postfix tcpdict */
CitadelServiceDICT_TCP);
}
- /* return our Subversion id for the Log */
+ /* return our module name for the log */
return "vcard";
}