diff options
author | Eric S. Raymond <esr@thyrsus.com> | 1996-10-05 13:40:27 +0000 |
---|---|---|
committer | Eric S. Raymond <esr@thyrsus.com> | 1996-10-05 13:40:27 +0000 |
commit | 27d4af103f9d17e1dd4985f48ff5cc36cffaad60 (patch) | |
tree | 4dd983ca664da18f44e8f2d70d75e9e051b94254 /fetchmail.c | |
parent | 53196350c9190f84380a801b017f0f700bba7b73 (diff) | |
download | fetchmail-27d4af103f9d17e1dd4985f48ff5cc36cffaad60.tar.gz fetchmail-27d4af103f9d17e1dd4985f48ff5cc36cffaad60.tar.bz2 fetchmail-27d4af103f9d17e1dd4985f48ff5cc36cffaad60.zip |
Eliminate set_defaults so user variable will be available in main.
svn path=/trunk/; revision=224
Diffstat (limited to 'fetchmail.c')
-rw-r--r-- | fetchmail.c | 44 |
1 files changed, 36 insertions, 8 deletions
diff --git a/fetchmail.c b/fetchmail.c index ecf398e4..861544f6 100644 --- a/fetchmail.c +++ b/fetchmail.c @@ -83,12 +83,43 @@ char **argv; int mboxfd, st, sargc; struct hostrec cmd_opts, def_opts; int parsestatus, implicitmode; - char *servername, *user, *tmpdir, tmpbuf[BUFSIZ], *sargv[64]; + char *servername, *user, *home, *tmpdir, tmpbuf[BUFSIZ], *sargv[64]; FILE *tmpfp; pid_t pid; - if (setdefaults(&def_opts) != 0) - exit(PS_UNDEFINED); + memset(&def_opts, '\0', sizeof(struct hostrec)); + + if ((user = getenv("USER")) == (char *)NULL) + user = getenv("LOGNAME"); + + if ((user == (char *)NULL) || (home = getenv("HOME")) == (char *)NULL) + { + struct passwd *pw; + + if ((pw = getpwuid(getuid())) != NULL) + { + user = pw->pw_name; + home = pw->pw_dir; + } + else + { + fprintf(stderr,"I can't find your name and home directory!\n"); + exit(PS_UNDEFINED); + } + } + + def_opts.protocol = P_AUTO; + + strcpy(def_opts.remotename, user); + strcpy(def_opts.smtphost, "localhost"); + + rcfile = + (char *) xmalloc(strlen(home)+strlen(RCFILE_NAME)+2); + strcpy(rcfile, home); + strcat(rcfile, "/"); + strcat(rcfile, RCFILE_NAME); + + outlevel = O_NORMAL; if (argc > sizeof(sargv)) exit(PS_SYNTAX); @@ -153,11 +184,8 @@ char **argv; strcpy(tmpbuf, tmpdir); strcat(tmpbuf, "/fetchmail-"); gethostname(tmpbuf + strlen(tmpbuf), HOSTLEN+1); - if ((user = getenv("USER")) != (char *)NULL) - { - strcat(tmpbuf, "-"); - strcat(tmpbuf, user); - } + strcat(tmpbuf, "-"); + strcat(tmpbuf, user); /* perhaps we just want to check options? */ if (versioninfo) { |