$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.
/*
* 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;
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);
/* 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... */
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();