*/
#include <lib-lib/lib-lib.h>
-#include <lib-lua/lib-lua.h>
+#include <sys/utsname.h>
#include <sys/types.h>
#include <pwd.h>
+#include <lib-lua/lib-lua.h>
+#include <lib-sys/unix.h>
+
#include "../mutt.h"
@import "base.cpkg"
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_os(void)
+{
+ struct utsname un;
+ return m_strdup(uname(&un) < 0 ? "Unix" : un.sysname);
+}
+
+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)
*/
path_t shell = madmutt_init_shell();
- /* TODO: document */
- path_t username = madmutt_init_username();
+ /*
+ ** .pp
+ ** This specifies the operating system name for the \fTUser-Agent:\fP header field. If
+ ** this is \fIunset\fP, it will be set to the operating system name that \fTuname(2)\fP
+ ** returns. If \fTuname(2)\fP fails, ``UNIX'' will be used.
+ ** .pp
+ ** It may, for example, look as: ``\fTMadmutt 1.5.9i (Linux)\fP''.
+ */
+ string_t operating_system = madmutt_init_os();
- /* TODO: document */
+ path_t username = madmutt_init_username();
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