From 35ae89771ed7d6bdf816b6036986f6c311a7e921 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Thu, 19 Jan 2006 18:21:21 +0000 Subject: [PATCH] * Refactored the code that populates the session's knowledge of the user's primary internet email address. We need it to be generic so that we can do this for other users. --- citadel/ChangeLog | 5 +++++ citadel/serv_vcard.c | 17 ++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/citadel/ChangeLog b/citadel/ChangeLog index d3823cd83..ba7037452 100644 --- a/citadel/ChangeLog +++ b/citadel/ChangeLog @@ -1,5 +1,10 @@ $Id$ +Thu Jan 19 13:20:30 EST 2006 ajc +* Refactored the code that populates the session's knowledge of the user's + primary internet email address. We need it to be generic so that we can + do this for other users. + Tue Jan 17 22:23:19 EST 2006 ajc * Misc small fixes to the new host auth mode. diff --git a/citadel/serv_vcard.c b/citadel/serv_vcard.c index 24ab2199e..2afd0f597 100644 --- a/citadel/serv_vcard.c +++ b/citadel/serv_vcard.c @@ -200,9 +200,9 @@ void cmd_igab(char *argbuf) { /* * See if there is a valid Internet address in a vCard to use for outbound - * Internet messages. If there is, stick it in CC->cs_inet_email. + * Internet messages. If there is, stick it in the buffer. */ -void vcard_populate_cs_inet_email(struct vCard *v) { +void extract_primary_inet_email(char *emailaddrbuf, size_t emailaddrbuf_len, struct vCard *v) { char *s, *addr; int continue_searching = 1; int instance = 0; @@ -219,10 +219,8 @@ void vcard_populate_cs_inet_email(struct vCard *v) { if (strlen(addr) > 0) { if (IsDirectory(addr)) { continue_searching = 0; - safestrncpy(CC->cs_inet_email, - addr, - sizeof(CC->cs_inet_email) - ); + safestrncpy(emailaddrbuf, addr, + emailaddrbuf_len); } } free(addr); @@ -451,7 +449,8 @@ int vcard_upload_aftersave(struct CtdlMessage *msg) { /* Store our Internet return address in memory */ v = vcard_load(msg->cm_fields['M']); - vcard_populate_cs_inet_email(v); + extract_primary_inet_email(CC->cs_inet_email, + sizeof CC->cs_inet_email, v); vcard_free(v); /* Put it in the Global Address Book room... */ @@ -907,8 +906,8 @@ void vcard_session_login_hook(void) { struct vCard *v; v = vcard_get_user(&CC->user); - vcard_populate_cs_inet_email(v); - + extract_primary_inet_email(CC->cs_inet_email, + sizeof CC->cs_inet_email, v); vcard_free(v); vcard_create_room(); -- 2.39.2