diff -ur qpopper3.1.2-pw_fix1/common/genpath.c qpopper3.1.2-my/common/genpath.c --- qpopper3.1.2-pw_fix1/common/genpath.c Sat Sep 9 01:28:19 2000 +++ qpopper3.1.2-my/common/genpath.c Tue Dec 12 17:29:54 2000 @@ -100,116 +100,101 @@ * use the same algorithm. Only one method to a customer :-) */ -#if (HASH_SPOOL == 1) - int genpath ( char *pszUser, char *pszDrop, int iDropLen, GNPH_WHICH iWhich, void *fTrace, int bDebugging ) { - int seed = 0; - char dirchar[4]; - if ( !pszUser || *pszUser == '\0' ) { logit ( fTrace, POP_PRIORITY, HERE, "Bogus user passed to genpath" ); return -1; /*bogus login name*/ } + +#if (HASH_SPOOL == 1) /*Now, perform the hash*/ - switch ( strlen(pszUser) ) { - case 1: - seed = (pszUser[0]); - break; - case 2: - seed = (pszUser[0] + pszUser[1]); - break; - case 3: - seed = (pszUser[0] + pszUser[1] + pszUser[2]); - break; - case 4: - seed = (pszUser[0] + pszUser[1] + pszUser[2]+ pszUser[3]); - break; - default: - seed = (pszUser[0] + pszUser[1] + pszUser[2]+ - pszUser[3] + pszUser[4]); - break; - } - - dirchar[0] = '/'; - dirchar[1] = (char)((seed % 26) + 'a'); - dirchar[2] = '/'; - dirchar[3] = '\0'; - - if ( iWhich == GNPH_POP ) - strlcpy ( pszDrop, POP_DROP_DIR, iDropLen ); - else - strlcpy ( pszDrop, POP_MAILDIR, iDropLen ); - strlcat ( pszDrop, dirchar, iDropLen ); - - switch ( iWhich ) { - case GNPH_SPOOL: /* spool file */ - strlcat ( pszDrop, pszUser, iDropLen ); - break; - case GNPH_POP: /* .pop file */ - if ( (iDropLen - strlen(pszDrop)) < - (strlen(pszUser) + strlen(POP_DROP)) ) { - logit ( fTrace, POP_PRIORITY, HERE, - "Insufficient room to generate path to .pop file" - " for user %.100s", - pszUser ); - return -1; - } - Qsprintf ( pszDrop + strlen(pszDrop), POP_DROP, pszUser ); - break; - case GNPH_TMP: /* tmpxxxx */ - strlcat ( pszDrop, POP_TMPDROP, iDropLen ); - break; - case GNPH_XMT: /* xmitxxxx */ - strlcat ( pszDrop, POP_TMPXMIT, iDropLen ); - break; - case GNPH_OLDPOP: /* old .pop file (always in POP_MAILDIR) */ + { + int seed = 0; + char dirchar[4]; + + switch ( strlen(pszUser) ) { + case 1: + seed = (pszUser[0]); + break; + case 2: + seed = (pszUser[0] + pszUser[1]); + break; + case 3: + seed = (pszUser[0] + pszUser[1] + pszUser[2]); + break; + case 4: + seed = (pszUser[0] + pszUser[1] + pszUser[2]+ pszUser[3]); + break; + default: + seed = (pszUser[0] + pszUser[1] + pszUser[2]+ + pszUser[3] + pszUser[4]); + break; + } + + dirchar[0] = '/'; + dirchar[1] = (char)((seed % 26) + 'a'); + dirchar[2] = '/'; + dirchar[3] = '\0'; + + if ( iWhich == GNPH_POP ) + strlcpy ( pszDrop, POP_DROP_DIR, iDropLen ); + else strlcpy ( pszDrop, POP_MAILDIR, iDropLen ); - strlcat ( pszDrop, "/", iDropLen ); - if ( (iDropLen - strlen(pszDrop)) < - (strlen(pszUser) + strlen(POP_DROP)) ) { + strlcat ( pszDrop, dirchar, iDropLen ); + + switch ( iWhich ) { + case GNPH_SPOOL: /* spool file */ + strlcat ( pszDrop, pszUser, iDropLen ); + break; + case GNPH_POP: /* .pop file */ + if ( (iDropLen - strlen(pszDrop)) < + (strlen(pszUser) + strlen(POP_DROP)) ) { + logit ( fTrace, POP_PRIORITY, HERE, + "Insufficient room to generate path to .pop file" + " for user %.100s", + pszUser ); + return -1; + } + Qsprintf ( pszDrop + strlen(pszDrop), POP_DROP, pszUser ); + break; + case GNPH_TMP: /* tmpxxxx */ + strlcat ( pszDrop, POP_TMPDROP, iDropLen ); + break; + case GNPH_XMT: /* xmitxxxx */ + strlcat ( pszDrop, POP_TMPXMIT, iDropLen ); + break; + case GNPH_OLDPOP: /* old .pop file (always in POP_MAILDIR) */ + strlcpy ( pszDrop, POP_MAILDIR, iDropLen ); + strlcat ( pszDrop, "/", iDropLen ); + if ( (iDropLen - strlen(pszDrop)) < + (strlen(pszUser) + strlen(POP_DROP)) ) { + logit ( fTrace, POP_PRIORITY, HERE, + "Insufficient room to generate path to .pop file" + " for user %.100s", + pszUser ); + return -1; + } + Qsprintf ( pszDrop + strlen(pszDrop), POP_DROP, pszUser ); + break; + case GNPH_PATH: /* Just the path, M'am */ + pszDrop [ strlen(pszDrop) -1 ] = '\0'; + break; + default: logit ( fTrace, POP_PRIORITY, HERE, - "Insufficient room to generate path to .pop file" - " for user %.100s", - pszUser ); + "Bad iWhich passed to genpath: %d", + (int)iWhich ); return -1; - } - Qsprintf ( pszDrop + strlen(pszDrop), POP_DROP, pszUser ); - break; - case GNPH_PATH: /* Just the path, M'am */ - pszDrop [ strlen(pszDrop) -1 ] = '\0'; - break; - default: - logit ( fTrace, POP_PRIORITY, HERE, - "Bad iWhich passed to genpath: %d", - (int)iWhich ); - return -1; - break; + break; + } } - - if ( DEBUGGING && bDebugging ) { - logit ( fTrace, POP_DEBUG, HERE, - "genpath %s (%d) for user %s returning %s", - GNPH_DEBUG_NAME(iWhich), (int)iWhich, pszUser, pszDrop ); - } - - return 1; -} -#endif -#if (HASH_SPOOL == 2) +#elsif (HASH_SPOOL == 2) -int -genpath ( char *pszUser, char *pszDrop, int iDropLen, GNPH_WHICH iWhich, - void *fTrace, int bDebugging ) -{ - if ( !pszUser || *pszUser == '\0' ) - return -1; - /* Make sure there is enough room for path of longest item */ if ( (strlen(POP_MAILDIR) + strlen(pszUser) + 17) > iDropLen ) { @@ -266,91 +251,77 @@ break; } - if ( DEBUGGING && bDebugging ) { - logit ( fTrace, POP_DEBUG, HERE, - "genpath %s (%d) for user %s returning %s", - GNPH_DEBUG_NAME(iWhich), (int)iWhich, pszUser, pszDrop ); - } - - return 1; -} - -#endif -#if (HASH_SPOOL != 1 && HASH_SPOOL != 2) +#else /* HASH_SPOOL */ -int -genpath ( char *pszUser, char *pszDrop, int iDropLen, GNPH_WHICH iWhich, - void *fTrace, int bDebugging ) -{ - - -#ifdef HOMEDIRMAIL - struct passwd *pwp; - - pwp = getpwnam ( pszUser ); - if ( pwp == NULL ) { - logit ( fTrace, - POP_PRIORITY, - HERE, - "Unable to retrieve password entry for user %s", - pszUser); - return -1; - } - strlcpy ( pszDrop, pwp->pw_dir, iDropLen ); - strlcat ( pszDrop, "/", iDropLen ); - - switch ( iWhich ) { - case GNPH_SPOOL: /* spool file */ - strlcat ( pszDrop, HOMEDIRMAIL, iDropLen ); - break; - case GNPH_POP: /* .pop file */ - if ( strcmp ( POP_DROP_DIR, POP_MAILDIR ) != 0 ) { - strlcpy ( pszDrop, POP_DROP_DIR, iDropLen ); - strlcat ( pszDrop, "/", iDropLen ); - } - if ( (iDropLen - strlen(pszDrop)) < - (strlen(pszUser) + strlen(POP_DROP)) ) { - logit ( fTrace, POP_PRIORITY, HERE, - "Insufficient room to generate path to .pop file" - " for user %.100s", - pszUser ); - return -1; - } - Qsprintf ( pszDrop + strlen(pszDrop), POP_DROP, pszUser ); - break; - case GNPH_TMP: /* tmpxxxx */ - strlcat ( pszDrop, ".", iDropLen ); - strlcat ( pszDrop, POP_TMPDROP, iDropLen ); - break; - case GNPH_XMT: /* xmitxxxx */ - strlcat ( pszDrop, ".", iDropLen ); - strlcat ( pszDrop, POP_TMPXMIT, iDropLen ) ; - break; - case GNPH_OLDPOP: /* old .pop file (always in POP_MAILDIR) */ - strlcpy ( pszDrop, POP_MAILDIR, iDropLen ); - strlcat ( pszDrop, "/", iDropLen ); - if ( (iDropLen - strlen(pszDrop)) < - (strlen(pszUser) + strlen(POP_DROP)) ) { + #ifdef HOMEDIRMAIL + { + struct passwd *pwp; + pwp = getpwnam ( pszUser ); + if ( pwp == NULL ) { + logit ( fTrace, + POP_PRIORITY, + HERE, + "Unable to retrieve password entry for user %s", + pszUser); + return -1; + } + strlcpy ( pszDrop, pwp->pw_dir, iDropLen ); + strlcat ( pszDrop, "/", iDropLen ); + + switch ( iWhich ) { + case GNPH_SPOOL: /* spool file */ + strlcat ( pszDrop, HOMEDIRMAIL, iDropLen ); + break; + case GNPH_POP: /* .pop file */ + if ( strcmp ( POP_DROP_DIR, POP_MAILDIR ) != 0 ) { + strlcpy ( pszDrop, POP_DROP_DIR, iDropLen ); + strlcat ( pszDrop, "/", iDropLen ); + } + if ( (iDropLen - strlen(pszDrop)) < + (strlen(pszUser) + strlen(POP_DROP)) ) { + logit ( fTrace, POP_PRIORITY, HERE, + "Insufficient room to generate path to .pop file" + " for user %.100s", + pszUser ); + return -1; + } + Qsprintf ( pszDrop + strlen(pszDrop), POP_DROP, pszUser ); + break; + case GNPH_TMP: /* tmpxxxx */ + strlcat ( pszDrop, ".", iDropLen ); + strlcat ( pszDrop, POP_TMPDROP, iDropLen ); + break; + case GNPH_XMT: /* xmitxxxx */ + strlcat ( pszDrop, ".", iDropLen ); + strlcat ( pszDrop, POP_TMPXMIT, iDropLen ) ; + break; + case GNPH_OLDPOP: /* old .pop file (always in POP_MAILDIR) */ + strlcpy ( pszDrop, POP_MAILDIR, iDropLen ); + strlcat ( pszDrop, "/", iDropLen ); + if ( (iDropLen - strlen(pszDrop)) < + (strlen(pszUser) + strlen(POP_DROP)) ) { + logit ( fTrace, POP_PRIORITY, HERE, + "Insufficient room to generate path to .pop file" + " for user %.100s", + pszUser ); + return -1; + } + Qsprintf ( pszDrop + strlen(pszDrop), POP_DROP, pszUser ); + break; + case GNPH_PATH: /* Just the path, M'am */ + pszDrop [ strlen(pszDrop) -1 ] = '\0'; + break; + default: logit ( fTrace, POP_PRIORITY, HERE, - "Insufficient room to generate path to .pop file" - " for user %.100s", - pszUser ); + "Bad iWhich passed to genpath: %d", + (int)iWhich ); return -1; - } - Qsprintf ( pszDrop + strlen(pszDrop), POP_DROP, pszUser ); - break; - case GNPH_PATH: /* Just the path, M'am */ - pszDrop [ strlen(pszDrop) -1 ] = '\0'; - break; - default: - logit ( fTrace, POP_PRIORITY, HERE, - "Bad iWhich passed to genpath: %d", - (int)iWhich ); - return -1; - break; + break; + } } - -#else + + #else /* HOMEDIRMAIL */ + if ( iWhich == GNPH_POP ) strlcpy ( pszDrop, POP_DROP_DIR, iDropLen ); else @@ -392,7 +363,10 @@ break; } -#endif + #endif /* HOMEDIRMAIL */ + +#endif /* HASH_SPOOL */ + if ( DEBUGGING && bDebugging ) { logit ( fTrace, POP_DEBUG, HERE, @@ -402,11 +376,6 @@ return 1; } - -#endif /* HASH_SPOOL */ - - - #ifdef DEBUG const char *GNPH_DEBUG_NAME ( GNPH_WHICH iWhich ) diff -ur qpopper3.1.2-pw_fix1/popper/pop_apop.c qpopper3.1.2-my/popper/pop_apop.c --- qpopper3.1.2-pw_fix1/popper/pop_apop.c Tue Dec 12 16:39:15 2000 +++ qpopper3.1.2-my/popper/pop_apop.c Tue Dec 12 16:53:57 2000 @@ -79,7 +79,6 @@ #include #include -#include "genpath.h" #include "popper.h" #include "snprintf.h" diff -ur qpopper3.1.2-pw_fix1/popper/pop_auth.c qpopper3.1.2-my/popper/pop_auth.c --- qpopper3.1.2-pw_fix1/popper/pop_auth.c Tue Dec 12 16:39:15 2000 +++ qpopper3.1.2-my/popper/pop_auth.c Tue Dec 12 16:53:43 2000 @@ -63,7 +63,6 @@ #include #include -#include "genpath.h" #include "popper.h" /* Need the following stuff iff SCRAM is being compiled */ diff -ur qpopper3.1.2-pw_fix1/popper/pop_rpop.c qpopper3.1.2-my/popper/pop_rpop.c --- qpopper3.1.2-pw_fix1/popper/pop_rpop.c Tue Dec 12 16:39:15 2000 +++ qpopper3.1.2-my/popper/pop_rpop.c Tue Dec 12 16:53:40 2000 @@ -42,7 +42,6 @@ #include #include /* For IPPORT_RESERVED */ -#include "genpath.h" #include "popper.h" #include "snprintf.h"