X-Git-Url: http://git.madism.org/?p=apps%2Fmadmutt.git;a=blobdiff_plain;f=lib-lua%2Fmadmutt.cpkg;h=d083405b8bbaacd2400ac636efec04da9303b9cf;hp=daa101fe53eaa161a1775f9c340ac1411265a778;hb=b6980caf7b13994c57957872876cdecc21e54a82;hpb=82f35ae0a006c52d0f6e3c5e09fdac5d16cddaf3 diff --git a/lib-lua/madmutt.cpkg b/lib-lua/madmutt.cpkg index daa101f..d083405 100644 --- a/lib-lua/madmutt.cpkg +++ b/lib-lua/madmutt.cpkg @@ -18,11 +18,14 @@ */ #include -#include +#include #include #include +#include +#include + #include "../mutt.h" @import "base.cpkg" @@ -44,6 +47,34 @@ static char *madmutt_init_homedir(void) return m_strdup(pw ? pw->pw_dir : (getenv("HOME") ?: "/")); } +static char *madmutt_init_shorthost(void) +{ + struct utsname utsname; + const char *p; + + /* some systems report the FQDN instead of just the hostname */ + uname(&utsname); + p = strchrnul(utsname.nodename, '.'); + return p_dupstr(utsname.nodename, p - utsname.nodename); +} + +static char *madmutt_init_hostname(void) +{ + char buffer[STRING]; + + if (getdnsdomainname(buffer, sizeof(buffer)) < 0) + return m_strdup("@"); + + if (*buffer != '@') { + int len = m_strlen(buffer) + m_strlen(MCore.shorthost) + 2; + char *res = p_new(char, len); + snprintf(res, len, "%s.%s", NONULL(MCore.shorthost), buffer); + return res; + } + + return m_strdup(NONULL(MCore.shorthost)); +} + #if defined(HAVE_QDBM) # define HCACHE_BACKEND "qdbm" #elif defined(HAVE_GDBM) @@ -106,12 +137,20 @@ static char *madmutt_init_homedir(void) */ path_t shell = madmutt_init_shell(); - /* TODO: document */ path_t username = madmutt_init_username(); - - /* TODO: document */ path_t homedir = madmutt_init_homedir(); + /* + ** .pp + ** Specifies the hostname to use after the ``\fT@\fP'' in local e-mail + ** addresses and during generation of \fTMessage-ID:\fP headers. + ** .pp + ** Please be sure to really know what you are doing when changing this variable + ** to configure a custom domain part of Message-IDs. + */ + string_t hostname = madmutt_init_hostname(); + string_t shorthost = madmutt_init_shorthost(); + /* ** .pp ** This variable allows you to specify where Madmutt will place its