+ endpwent();
+
+ /* compute user's home directory */
+ home = getenv("HOME_ETC");
+ if (!home && !(home = getenv("HOME")))
+ home = xstrdup(pwp->pw_dir);
+
+ /* compute fetchmail's home directory */
+ if (!(fmhome = getenv("FETCHMAILHOME")))
+ fmhome = home;
+
+#define RCFILE_NAME "fetchmailrc"
+ /*
+ * The (fmhome==home) leaves an extra character for a . at the
+ * beginning of the rc file's name, iff fetchmail is using $HOME
+ * for its files. We don't want to do that if fetchmail has its
+ * own home ($FETCHMAILHOME), however.
+ */
+ rcfile = (char *)xmalloc(strlen(fmhome)+sizeof(RCFILE_NAME)+(fmhome==home)+2);
+ /* avoid //.fetchmailrc */
+ if (strcmp(fmhome, "/") != 0)
+ strcpy(rcfile, fmhome);
+ else
+ *rcfile = '\0';
+
+ if (rcfile[strlen(rcfile) - 1] != '/')
+ strcat(rcfile, "/");
+ if (fmhome==home)
+ strcat(rcfile, ".");
+ strcat(rcfile, RCFILE_NAME);
+}
+
+char *host_fqdn(int required)
+{
+ char tmpbuf[HOSTLEN+1];
+ char *result;
+