From ab472129567331427686fd2dc4dacf61afe58ff9 Mon Sep 17 00:00:00 2001 From: Wilfried Goesgens Date: Sat, 5 Oct 2013 05:38:38 +0200 Subject: [PATCH] remember the lengths of config strings. --- citadel/citadel.h | 10 --- citadel/config.c | 51 +++++++++--- citadel/config.h | 1 - citadel/control.c | 91 ++++++++++++---------- citadel/include/ctdl_module.h | 39 ++++++++++ citadel/modules/calendar/serv_calendar.c | 4 +- citadel/modules/imap/imap_fetch.c | 2 +- citadel/modules/imap/imap_misc.c | 4 +- citadel/modules/instmsg/serv_instmsg.c | 2 +- citadel/modules/network/serv_netspool.c | 2 +- citadel/modules/network/serv_network.c | 2 +- citadel/modules/rssclient/serv_rssclient.c | 2 +- citadel/modules/smtp/serv_smtp.c | 4 +- citadel/modules/smtp/serv_smtpqueue.c | 2 +- citadel/modules/smtp/smtp_util.c | 2 +- citadel/modules/vcard/serv_vcard.c | 2 +- citadel/modules/wiki/serv_wiki.c | 2 +- citadel/msgbase.c | 12 +-- citadel/user_ops.c | 10 ++- 19 files changed, 154 insertions(+), 90 deletions(-) diff --git a/citadel/citadel.h b/citadel/citadel.h index a3ad3c312..b8e245bae 100644 --- a/citadel/citadel.h +++ b/citadel/citadel.h @@ -98,16 +98,6 @@ struct march { int march_access; }; -#define NODENAME config.c_nodename -#define FQDN config.c_fqdn -#define HUMANNODE config.c_humannode -#define PHONENUM config.c_phonenum -#define CTDLUID config.c_ctdluid -#define CREATAIDE config.c_creataide -#define REGISCALL config.c_regiscall -#define TWITDETECT config.c_twitdetect -#define TWITROOM config.c_twitroom -#define RESTRICT_INTERNET config.c_restrict /* * User records. diff --git a/citadel/config.c b/citadel/config.c index 7ac1a748b..25b7f66e2 100644 --- a/citadel/config.c +++ b/citadel/config.c @@ -20,6 +20,7 @@ #include "ctdl_module.h" struct config config; +struct configlen configlen; /* * Put some sane default values into our configuration. Some will be overridden when we run setup. @@ -32,25 +33,25 @@ void brand_new_installation_set_defaults(void) { /* Determine our host name, in case we need to use it as a default */ uname(&my_utsname); - + memset(&configlen, 0, sizeof(struct configlen)); /* set some sample/default values in place of blanks... */ - extract_token(config.c_nodename, my_utsname.nodename, 0, '.', sizeof config.c_nodename); + configlen.c_nodename = extract_token(config.c_nodename, my_utsname.nodename, 0, '.', sizeof config.c_nodename); if (IsEmptyStr(config.c_fqdn) ) { if ((he = gethostbyname(my_utsname.nodename)) != NULL) { - safestrncpy(config.c_fqdn, he->h_name, sizeof config.c_fqdn); + configlen.c_fqdn = safestrncpy(config.c_fqdn, he->h_name, sizeof config.c_fqdn); } else { - safestrncpy(config.c_fqdn, my_utsname.nodename, sizeof config.c_fqdn); + configlen.c_fqdn = safestrncpy(config.c_fqdn, my_utsname.nodename, sizeof config.c_fqdn); } } - safestrncpy(config.c_humannode, "Citadel Server", sizeof config.c_humannode); - safestrncpy(config.c_phonenum, "US 800 555 1212", sizeof config.c_phonenum); + configlen.c_humannode = safestrncpy(config.c_humannode, "Citadel Server", sizeof config.c_humannode); + configlen.c_phonenum = safestrncpy(config.c_phonenum, "US 800 555 1212", sizeof config.c_phonenum); config.c_initax = 4; - safestrncpy(config.c_moreprompt, "", sizeof config.c_moreprompt); - safestrncpy(config.c_twitroom, "Trashcan", sizeof config.c_twitroom); - safestrncpy(config.c_baseroom, BASEROOM, sizeof config.c_baseroom); - safestrncpy(config.c_aideroom, "Aide", sizeof config.c_aideroom); + configlen.c_moreprompt = safestrncpy(config.c_moreprompt, "", sizeof config.c_moreprompt); + configlen.c_twitroom = safestrncpy(config.c_twitroom, "Trashcan", sizeof config.c_twitroom); + configlen.c_baseroom = safestrncpy(config.c_baseroom, BASEROOM, sizeof config.c_baseroom); + configlen.c_aideroom = safestrncpy(config.c_aideroom, "Aide", sizeof config.c_aideroom); config.c_port_number = 504; config.c_sleeping = 900; @@ -92,7 +93,34 @@ void brand_new_installation_set_defaults(void) { config.c_xmpp_s2s_port = 5269; } - +void setcfglen(void) +{ + configlen.c_nodename = strlen(config.c_nodename); + configlen.c_fqdn = strlen(config.c_fqdn); + configlen.c_humannode = strlen(config.c_humannode); + configlen.c_phonenum = strlen(config.c_phonenum); + configlen.c_twitroom = strlen(config.c_twitroom); + configlen.c_moreprompt = strlen(config.c_moreprompt); + configlen.c_site_location = strlen(config.c_site_location); + configlen.c_sysadm = strlen(config.c_sysadm); + configlen.c_niu_2 = strlen(config.c_niu_2); + configlen.c_ip_addr = strlen(config.c_ip_addr); + configlen.c_logpages = strlen(config.c_logpages); + configlen.c_baseroom = strlen(config.c_baseroom); + configlen.c_aideroom = strlen(config.c_aideroom); + configlen.c_ldap_host = strlen(config.c_ldap_host); + configlen.c_ldap_base_dn = strlen(config.c_ldap_base_dn); + configlen.c_ldap_bind_dn = strlen(config.c_ldap_bind_dn); + configlen.c_ldap_bind_pw = strlen(config.c_ldap_bind_pw); + configlen.c_journal_dest = strlen(config.c_journal_dest); + configlen.c_default_cal_zone = strlen(config.c_default_cal_zone); + configlen.c_funambol_host = strlen(config.c_funambol_host); + configlen.c_funambol_source = strlen(config.c_funambol_source); + configlen.c_funambol_auth = strlen(config.c_funambol_auth); + configlen.c_master_user = strlen(config.c_master_user); + configlen.c_master_pass = strlen(config.c_master_pass); + configlen.c_pager_program = strlen(config.c_pager_program); +} /* * get_config() is called during the initialization of Citadel server. @@ -123,6 +151,7 @@ void get_config(void) { ); } fclose(cfp); + setcfglen(); } else { brand_new_installation_set_defaults(); diff --git a/citadel/config.h b/citadel/config.h index f541ebfa2..d1529c5a0 100644 --- a/citadel/config.h +++ b/citadel/config.h @@ -19,4 +19,3 @@ void put_config(void); char *CtdlGetSysConfig(char *sysconfname); void CtdlPutSysConfig(char *sysconfname, char *sysconfdata); - diff --git a/citadel/control.c b/citadel/control.c index cc3165531..f543e8d43 100644 --- a/citadel/control.c +++ b/citadel/control.c @@ -397,20 +397,20 @@ void cmd_conf(char *argbuf) while (client_getln(buf, sizeof buf) >= 0 && strcmp(buf, "000")) { switch (a) { case 0: - safestrncpy(config.c_nodename, buf, - sizeof config.c_nodename); + configlen.c_nodename = safestrncpy(config.c_nodename, buf, + sizeof config.c_nodename); break; case 1: - safestrncpy(config.c_fqdn, buf, - sizeof config.c_fqdn); + configlen.c_fqdn = safestrncpy(config.c_fqdn, buf, + sizeof config.c_fqdn); break; case 2: - safestrncpy(config.c_humannode, buf, - sizeof config.c_humannode); + configlen.c_humannode = safestrncpy(config.c_humannode, buf, + sizeof config.c_humannode); break; case 3: - safestrncpy(config.c_phonenum, buf, - sizeof config.c_phonenum); + configlen.c_phonenum = safestrncpy(config.c_phonenum, buf, + sizeof config.c_phonenum); break; case 4: config.c_creataide = atoi(buf); @@ -436,12 +436,12 @@ void cmd_conf(char *argbuf) config.c_twitdetect = 1; break; case 9: - safestrncpy(config.c_twitroom, buf, - sizeof config.c_twitroom); + configlen.c_twitroom = safestrncpy(config.c_twitroom, buf, + sizeof config.c_twitroom); break; case 10: - safestrncpy(config.c_moreprompt, buf, - sizeof config.c_moreprompt); + configlen.c_moreprompt = safestrncpy(config.c_moreprompt, buf, + sizeof config.c_moreprompt); break; case 11: config.c_restrict = atoi(buf); @@ -449,12 +449,13 @@ void cmd_conf(char *argbuf) config.c_restrict = 1; break; case 12: - safestrncpy(config.c_site_location, buf, - sizeof config.c_site_location); + configlen.c_site_location = safestrncpy( + config.c_site_location, buf, + sizeof config.c_site_location); break; case 13: - safestrncpy(config.c_sysadm, buf, - sizeof config.c_sysadm); + configlen.c_sysadm = safestrncpy(config.c_sysadm, buf, + sizeof config.c_sysadm); break; case 14: config.c_maxsessions = atoi(buf); @@ -471,8 +472,8 @@ void cmd_conf(char *argbuf) config.c_roompurge = atoi(buf); break; case 18: - safestrncpy(config.c_logpages, buf, - sizeof config.c_logpages); + configlen.c_logpages = safestrncpy(config.c_logpages, buf, + sizeof config.c_logpages); break; case 19: config.c_createax = atoi(buf); @@ -521,34 +522,34 @@ void cmd_conf(char *argbuf) break; case 31: if ((config.c_purge_hour >= 0) - && (config.c_purge_hour <= 23)) { + && (config.c_purge_hour <= 23)) { config.c_purge_hour = atoi(buf); } break; #ifdef HAVE_LDAP case 32: - safestrncpy(config.c_ldap_host, buf, - sizeof config.c_ldap_host); + configlen.c_ldap_host = safestrncpy(config.c_ldap_host, buf, + sizeof config.c_ldap_host); break; case 33: config.c_ldap_port = atoi(buf); break; case 34: - safestrncpy(config.c_ldap_base_dn, buf, - sizeof config.c_ldap_base_dn); + configlen.c_ldap_base_dn = safestrncpy(config.c_ldap_base_dn, buf, + sizeof config.c_ldap_base_dn); break; case 35: - safestrncpy(config.c_ldap_bind_dn, buf, - sizeof config.c_ldap_bind_dn); + configlen.c_ldap_bind_dn = safestrncpy(config.c_ldap_bind_dn, buf, + sizeof config.c_ldap_bind_dn); break; case 36: - safestrncpy(config.c_ldap_bind_pw, buf, - sizeof config.c_ldap_bind_pw); + configlen.c_ldap_bind_pw = safestrncpy(config.c_ldap_bind_pw, buf, + sizeof config.c_ldap_bind_pw); break; #endif case 37: - safestrncpy(config.c_ip_addr, buf, - sizeof config.c_ip_addr); + configlen.c_ip_addr = safestrncpy(config.c_ip_addr, buf, + sizeof config.c_ip_addr); case 38: config.c_msa_port = atoi(buf); break; @@ -580,11 +581,12 @@ void cmd_conf(char *argbuf) config.c_journal_pubmsgs = atoi(buf); break; case 48: - safestrncpy(config.c_journal_dest, buf, - sizeof config.c_journal_dest); + configlen.c_journal_dest = safestrncpy(config.c_journal_dest, buf, + sizeof config.c_journal_dest); case 49: - safestrncpy(config.c_default_cal_zone, buf, - sizeof config.c_default_cal_zone); + configlen.c_default_cal_zone = safestrncpy( + config.c_default_cal_zone, buf, + sizeof config.c_default_cal_zone); break; case 50: config.c_pftcpdict_port = atoi(buf); @@ -595,35 +597,38 @@ void cmd_conf(char *argbuf) case 52: config.c_auth_mode = atoi(buf); case 53: - safestrncpy(config.c_funambol_host, buf, + configlen.c_funambol_host = safestrncpy( + config.c_funambol_host, buf, sizeof config.c_funambol_host); break; case 54: config.c_funambol_port = atoi(buf); break; case 55: - safestrncpy(config.c_funambol_source, - buf, + configlen.c_funambol_source = safestrncpy( + config.c_funambol_source, buf, sizeof config.c_funambol_source); break; case 56: - safestrncpy(config.c_funambol_auth, - buf, + configlen.c_funambol_auth = safestrncpy( + config.c_funambol_auth, buf, sizeof config.c_funambol_auth); break; case 57: config.c_rbl_at_greeting = atoi(buf); break; case 58: - safestrncpy(config.c_master_user, buf, sizeof config.c_master_user); + configlen.c_master_user = safestrncpy( + config.c_master_user, + buf, sizeof config.c_master_user); break; case 59: - safestrncpy(config.c_master_pass, buf, sizeof config.c_master_pass); + configlen.c_master_pass = safestrncpy( + config.c_master_pass, buf, sizeof config.c_master_pass); break; case 60: - safestrncpy(config.c_pager_program, - buf, - sizeof config.c_pager_program); + configlen.c_pager_program = safestrncpy( + config.c_pager_program, buf, sizeof config.c_pager_program); break; case 61: config.c_imap_keep_from = atoi(buf); diff --git a/citadel/include/ctdl_module.h b/citadel/include/ctdl_module.h index ca447f595..8a0f265ff 100644 --- a/citadel/include/ctdl_module.h +++ b/citadel/include/ctdl_module.h @@ -390,9 +390,48 @@ struct config { int c_spam_flag_only; int c_guest_logins; }; +struct configlen { + long c_nodename; + long c_fqdn; + long c_humannode; + long c_phonenum; + long c_twitroom; + long c_moreprompt; + long c_site_location; + long c_sysadm; + long c_niu_2; + long c_ip_addr; + long c_logpages; + long c_baseroom; + long c_aideroom; + long c_ldap_host; + long c_ldap_base_dn; + long c_ldap_bind_dn; + long c_ldap_bind_pw; + long c_journal_dest; + long c_default_cal_zone; + long c_funambol_host; + long c_funambol_source; + long c_funambol_auth; + long c_master_user; + long c_master_pass; + long c_pager_program; +}; extern struct config config; +extern struct configlen configlen; + + +#define NODENAME config.c_nodename +#define FQDN config.c_fqdn +#define CTDLUID config.c_ctdluid +#define CREATAIDE config.c_creataide +#define REGISCALL config.c_regiscall +#define TWITDETECT config.c_twitdetect +#define TWITROOM config.c_twitroom +#define RESTRICT_INTERNET config.c_restrict +#define CFG_KEY(which) config.which, configlen.which typedef void (*CfgLineParser)(const CfgLineType *ThisOne, StrBuf *Line, const char *LinePos, OneRoomNetCfg *rncfg); typedef void (*CfgLineSerializer)(const CfgLineType *ThisOne, StrBuf *OuptputBuffer, OneRoomNetCfg *rncfg, RoomNetCfgLine *data); diff --git a/citadel/modules/calendar/serv_calendar.c b/citadel/modules/calendar/serv_calendar.c index 414f9caae..1504fcc93 100644 --- a/citadel/modules/calendar/serv_calendar.c +++ b/citadel/modules/calendar/serv_calendar.c @@ -149,8 +149,8 @@ void ical_write_to_cal(struct ctdluser *u, icalcomponent *cal) { msg->cm_format_type = 4; CM_SetField(msg, eAuthor, CCC->user.fullname, strlen(CCC->user.fullname)); CM_SetField(msg, eOriginalRoom, CCC->room.QRname, strlen(CCC->room.QRname)); - CM_SetField(msg, eNodeName, config.c_nodename, strlen(config.c_nodename)); - CM_SetField(msg, eHumanNode, config.c_humannode, strlen(config.c_humannode)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); + CM_SetField(msg, eHumanNode, CFG_KEY(c_humannode)); MsgBody = NewStrBufPlain(NULL, serlen + 100); StrBufAppendBufPlain(MsgBody, HKEY("Content-type: text/calendar\r\n\r\n"), 0); diff --git a/citadel/modules/imap/imap_fetch.c b/citadel/modules/imap/imap_fetch.c index f010b37dc..75a4cdbea 100644 --- a/citadel/modules/imap/imap_fetch.c +++ b/citadel/modules/imap/imap_fetch.c @@ -364,7 +364,7 @@ void imap_output_envelope_from(struct CtdlMessage *msg) { IPutStr(user, strlen(user)); /* mailbox name (user id) */ IAPuts(" "); if (!strcasecmp(node, config.c_nodename)) { - IPutStr(config.c_fqdn, strlen(config.c_fqdn)); + IPutStr(CFG_KEY(c_fqdn)); } else { IPutStr(node, strlen(node)); /* host name */ diff --git a/citadel/modules/imap/imap_misc.c b/citadel/modules/imap/imap_misc.c index 5485836a9..5cfe8be8f 100644 --- a/citadel/modules/imap/imap_misc.c +++ b/citadel/modules/imap/imap_misc.c @@ -387,8 +387,8 @@ void imap_append(int num_parms, ConstStr *Params) { if ( ((CCC->room.QRflags & QR_MAILBOX) == 0) && (config.c_imap_keep_from == 0)) { CM_SetField(msg, eAuthor, CCC->user.fullname, strlen(CCC->user.fullname)); - CM_SetField(msg, eNodeName, config.c_nodename, strlen(config.c_nodename)); - CM_SetField(msg, eHumanNode, config.c_humannode, strlen(config.c_humannode)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); + CM_SetField(msg, eHumanNode, CFG_KEY(c_humannode)); } } diff --git a/citadel/modules/instmsg/serv_instmsg.c b/citadel/modules/instmsg/serv_instmsg.c index 72f3256de..17ed7cc62 100644 --- a/citadel/modules/instmsg/serv_instmsg.c +++ b/citadel/modules/instmsg/serv_instmsg.c @@ -468,7 +468,7 @@ void flush_individual_conversation(struct imlog *im) { } CM_SetField(msg, eOriginalRoom, HKEY(PAGELOGROOM)); - CM_SetField(msg, eNodeName, NODENAME, strlen(NODENAME)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); CM_SetAsFieldSB(msg, eMesageText, &im->conversation); /* we own this memory now */ /* Start with usernums[1] because it's guaranteed to be higher than usernums[0], diff --git a/citadel/modules/network/serv_netspool.c b/citadel/modules/network/serv_netspool.c index 3dfec6375..e5ca89a4d 100644 --- a/citadel/modules/network/serv_netspool.c +++ b/citadel/modules/network/serv_netspool.c @@ -168,7 +168,7 @@ void Netmap_AddMe(struct CtdlMessage *msg, const char *defl, long defllen) if (CM_IsEmpty(msg, eMessagePath)) { CM_SetField(msg, eMessagePath, defl, defllen); } - node_len = strlen(config.c_nodename); + node_len = configlen.c_nodename; if (node_len >= SIZ) node_len = SIZ - 1; memcpy(buf, config.c_nodename, node_len); diff --git a/citadel/modules/network/serv_network.c b/citadel/modules/network/serv_network.c index ef9dfc568..9fa82734e 100644 --- a/citadel/modules/network/serv_network.c +++ b/citadel/modules/network/serv_network.c @@ -391,7 +391,7 @@ void network_bounce(struct CtdlMessage *msg, char *reason) msg->cm_fields[eNodeName]); CM_SetField(msg, eAuthor, HKEY(BOUNCESOURCE)); - CM_SetField(msg, eNodeName, config.c_nodename, strlen(config.c_nodename)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); CM_SetField(msg, eMsgSubject, HKEY("Delivery Status Notification (Failure)")); Netmap_AddMe(msg, HKEY("unknown_user")); diff --git a/citadel/modules/rssclient/serv_rssclient.c b/citadel/modules/rssclient/serv_rssclient.c index f774fa3f5..0df7bacad 100644 --- a/citadel/modules/rssclient/serv_rssclient.c +++ b/citadel/modules/rssclient/serv_rssclient.c @@ -333,7 +333,7 @@ int rss_format_item(AsyncIO *IO, networker_save_message *SaveMsg) CM_SetField(&SaveMsg->Msg, eAuthor, HKEY("rss")); } - CM_SetField(&SaveMsg->Msg, eNodeName, NODENAME, strlen(NODENAME)); + CM_SetField(&SaveMsg->Msg, eNodeName, CFG_KEY(c_nodename)); if (SaveMsg->title != NULL) { long len; char *Sbj; diff --git a/citadel/modules/smtp/serv_smtp.c b/citadel/modules/smtp/serv_smtp.c index abdc2d1ad..1a5b6009c 100644 --- a/citadel/modules/smtp/serv_smtp.c +++ b/citadel/modules/smtp/serv_smtp.c @@ -859,8 +859,8 @@ void smtp_data(long offset, long flags) return; } - CM_SetField(msg, eNodeName, config.c_nodename, strlen(config.c_nodename)); - CM_SetField(msg, eHumanNode, config.c_humannode, strlen(config.c_humannode)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); + CM_SetField(msg, eHumanNode, CFG_KEY(c_humannode)); CM_SetField(msg, eOriginalRoom, HKEY(MAILROOM)); if (sSMTP->preferred_sender_name != NULL) CM_SetField(msg, eAuthor, SKEY(sSMTP->preferred_sender_name)); diff --git a/citadel/modules/smtp/serv_smtpqueue.c b/citadel/modules/smtp/serv_smtpqueue.c index b2196a887..9a618e092 100644 --- a/citadel/modules/smtp/serv_smtpqueue.c +++ b/citadel/modules/smtp/serv_smtpqueue.c @@ -702,7 +702,7 @@ void smtpq_do_bounce(OneQueItem *MyQItem, StrBuf *OMsgTxt, ParsedURL *Relay) CM_SetField(bmsg, eOriginalRoom, HKEY(MAILROOM)); CM_SetField(bmsg, eAuthor, HKEY("Citadel")); - CM_SetField(bmsg, eNodeName, config.c_nodename, strlen(config.c_nodename)); + CM_SetField(bmsg, eNodeName, CFG_KEY(c_nodename)); CM_SetField(bmsg, eMsgSubject, HKEY("Delivery Status Notification (Failure)")); CM_SetAsFieldSB(bmsg, eMesageText, &BounceMB); diff --git a/citadel/modules/smtp/smtp_util.c b/citadel/modules/smtp/smtp_util.c index 675001ea0..e4a4c2da5 100644 --- a/citadel/modules/smtp/smtp_util.c +++ b/citadel/modules/smtp/smtp_util.c @@ -163,7 +163,7 @@ void smtp_do_bounce(char *instr, StrBuf *OMsgTxt) bmsg->cm_format_type = FMT_RFC822; CM_SetField(bmsg, eAuthor, HKEY("Citadel")); CM_SetField(bmsg, eOriginalRoom, HKEY(MAILROOM)); - CM_SetField(bmsg, eNodeName, config.c_nodename, strlen(config.c_nodename)); + CM_SetField(bmsg, eNodeName, CFG_KEY(c_nodename)); CM_SetField(bmsg, eMsgSubject, HKEY("Delivery Status Notification (Failure)")); StrBufAppendBufPlain( BounceMB, diff --git a/citadel/modules/vcard/serv_vcard.c b/citadel/modules/vcard/serv_vcard.c index 2722b3bca..d143fc776 100644 --- a/citadel/modules/vcard/serv_vcard.c +++ b/citadel/modules/vcard/serv_vcard.c @@ -905,7 +905,7 @@ void vcard_purge(struct ctdluser *usbuf) { msg->cm_format_type = 0; CM_SetField(msg, eAuthor, usbuf->fullname, strlen(usbuf->fullname)); CM_SetField(msg, eOriginalRoom, HKEY(ADDRESS_BOOK_ROOM)); - CM_SetField(msg, eNodeName, NODENAME, strlen(NODENAME)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); CM_SetField(msg, eMesageText, HKEY("Purge this vCard\n")); len = snprintf(buf, sizeof buf, VCARD_EXT_FORMAT, diff --git a/citadel/modules/wiki/serv_wiki.c b/citadel/modules/wiki/serv_wiki.c index 36e010b37..d656b2457 100644 --- a/citadel/modules/wiki/serv_wiki.c +++ b/citadel/modules/wiki/serv_wiki.c @@ -642,7 +642,7 @@ void wiki_rev(char *pagename, char *rev, char *operation) CM_SetField(msg, eAuthor, CCC->user.fullname, strlen(CCC->user.fullname)); CM_SetField(msg, erFc822Addr, CCC->cs_inet_email, strlen(CCC->cs_inet_email)); CM_SetField(msg, eOriginalRoom, CCC->room.QRname, strlen(CCC->room.QRname)); - CM_SetField(msg, eNodeName, NODENAME, strlen(NODENAME)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); CM_SetField(msg, eExclusiveID, pagename, strlen(pagename)); msgnum = CtdlSubmitMsg(msg, NULL, "", 0); /* Replace the current revision */ } diff --git a/citadel/msgbase.c b/citadel/msgbase.c index 57eb0d213..776680b6d 100644 --- a/citadel/msgbase.c +++ b/citadel/msgbase.c @@ -2117,7 +2117,7 @@ int CtdlOutputPreLoadedMsg( strcpy(suser, ""); strcpy(luser, ""); strcpy(fuser, ""); - strcpy(snode, NODENAME); + memcpy(snode, CFG_KEY(c_nodename) + 1); if (mode == MT_RFC822) OutputRFC822MsgHeaders( TheMessage, @@ -2977,7 +2977,7 @@ void quickie_message(const char *from, if (fromaddr != NULL) CM_SetField(msg, erFc822Addr, fromaddr, strlen(fromaddr)); if (room != NULL) CM_SetField(msg, eOriginalRoom, room, strlen(room)); - CM_SetField(msg, eNodeName, NODENAME, strlen(NODENAME)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); if (to != NULL) { CM_SetField(msg, eRecipient, to, strlen(to)); recp = validate_recipients(to, NULL, 0); @@ -3437,8 +3437,8 @@ struct CtdlMessage *CtdlMakeMessageLen( CM_SetField(msg, eOriginalRoom, CCC->room.QRname, strlen(CCC->room.QRname)); } - CM_SetField(msg, eNodeName, NODENAME, strlen(NODENAME)); - CM_SetField(msg, eHumanNode, HUMANNODE, strlen(HUMANNODE)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); + CM_SetField(msg, eHumanNode, CFG_KEY(c_humannode)); if (rcplen > 0) { CM_SetField(msg, eRecipient, recipient, rcplen); @@ -3970,8 +3970,8 @@ void CtdlWriteObject(char *req_room, /* Room to stuff it in */ msg->cm_format_type = 4; CM_SetField(msg, eAuthor, CCC->user.fullname, strlen(CCC->user.fullname)); CM_SetField(msg, eOriginalRoom, req_room, strlen(req_room)); - CM_SetField(msg, eNodeName, config.c_nodename, strlen(config.c_nodename)); - CM_SetField(msg, eHumanNode, config.c_humannode, strlen(config.c_humannode)); + CM_SetField(msg, eNodeName, CFG_KEY(c_nodename)); + CM_SetField(msg, eHumanNode, CFG_KEY(c_humannode)); msg->cm_flags = flags; CM_SetAsFieldSB(msg, eMesageText, &encoded_message); diff --git a/citadel/user_ops.c b/citadel/user_ops.c index e55807dd3..c79e87abd 100644 --- a/citadel/user_ops.c +++ b/citadel/user_ops.c @@ -567,10 +567,12 @@ int CtdlLoginExistingUser(char *authname, const char *trythisname) /* If a "master user" is defined, handle its authentication if specified */ CC->is_master = 0; - if (strlen(config.c_master_user) > 0) if (strlen(config.c_master_pass) > 0) if (authname) { - if (!strcasecmp(authname, config.c_master_user)) { - CC->is_master = 1; - } + if ((configlen.c_master_user > 0) && + (configlen.c_master_pass > 0) && + (authname != NULL) && + (!strcasecmp(authname, config.c_master_user))) + { + CC->is_master = 1; } /* Continue attempting user validation... */ -- 2.30.2