From 76cbed11b16936a77f4c41d72ce04fb11df5d7d1 Mon Sep 17 00:00:00 2001 From: Art Cancro Date: Thu, 20 Dec 2018 12:29:25 -0500 Subject: [PATCH] Address generator is moved into internet_addressing.c because that's where it belongs! Also I'm going to enhance it later. --- citadel/internet_addressing.c | 13 +++++++++++++ citadel/internet_addressing.h | 1 + citadel/user_ops.c | 6 +----- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/citadel/internet_addressing.c b/citadel/internet_addressing.c index 7c9bac07a..90dd55a57 100644 --- a/citadel/internet_addressing.c +++ b/citadel/internet_addressing.c @@ -1708,3 +1708,16 @@ void CtdlSetEmailAddressesForUser(char *requested_user, char *new_emailaddrs) CtdlPutUserLock(&usbuf); } + + +/* + * Auto-generate an Internet email address for a user account + */ +void AutoGenerateEmailAddressForUser(struct ctdluser *user) +{ + char synthetic_email_addr[1024]; + snprintf(synthetic_email_addr, sizeof synthetic_email_addr, "ctdl%08lx@%s", user->usernum, CtdlGetConfigStr("c_fqdn")); + CtdlSetEmailAddressesForUser(user->fullname, synthetic_email_addr); + strncpy(CC->user.emailaddrs, synthetic_email_addr, sizeof(user->emailaddrs)); + syslog(LOG_DEBUG, "user_ops: auto-generated email address <%s> for <%s>", synthetic_email_addr, user->fullname); +} diff --git a/citadel/internet_addressing.h b/citadel/internet_addressing.h index cb19085c5..2c9cf9e41 100644 --- a/citadel/internet_addressing.h +++ b/citadel/internet_addressing.h @@ -15,6 +15,7 @@ int CtdlDirectoryAddUser(char *internet_addr, char *citadel_addr); int CtdlDirectoryDelUser(char *internet_addr, char *citadel_addr); int CtdlDirectoryLookup(char *target, char *internet_addr, size_t targbuflen); void CtdlSetEmailAddressesForUser(char *requested_user, char *new_emailaddrs); +void AutoGenerateEmailAddressForUser(struct ctdluser *user); struct CtdlMessage *convert_internet_message(char *rfc822); struct CtdlMessage *convert_internet_message_buf(StrBuf **rfc822); int CtdlIsMe(char *addr, int addr_buf_len); diff --git a/citadel/user_ops.c b/citadel/user_ops.c index 05f2fa0fb..607f16b3a 100644 --- a/citadel/user_ops.c +++ b/citadel/user_ops.c @@ -654,11 +654,7 @@ void do_login(void) /* If the user does not have any email addresses assigned, generate one. */ if (IsEmptyStr(CC->user.emailaddrs)) { - char synthetic_email_addr[1024]; - snprintf(synthetic_email_addr, sizeof synthetic_email_addr, "ctdl%08lx@%s", CC->user.usernum, CtdlGetConfigStr("c_fqdn")); - CtdlSetEmailAddressesForUser(CC->user.fullname, synthetic_email_addr); - strncpy(CC->user.emailaddrs, synthetic_email_addr, sizeof(CC->user.emailaddrs)); - syslog(LOG_DEBUG, "user_ops: auto-generated email address <%s> for <%s>", synthetic_email_addr, CC->user.fullname); + AutoGenerateEmailAddressForUser(&CC->user); } /* -- 2.30.2