Главная страница


ru.unix.bsd

 
 - RU.UNIX.BSD ------------------------------------------------------------------
 From : mitrohin a.s.                        2:5020/400     18 May 2003  09:41:30
 To : "mitrohin a.s."
 Subject : Re: passwd(5)
 -------------------------------------------------------------------------------- 
 
 mitrohin a.s. <swp@uni-altai.ru> wrote:
 
  mas> Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:
  EG>>> А почему sendmail отказывается доставлять почту (550 5.1.1 User unknown)
  EG>>> юзеру, login name которого начинается с заглавной буквы?
 
  EG>> MODIFY_MAILER_FLAGS(`LOCAL',`+u')dnl из sendmail FAQ на sendmail.cf
 
 и еще одну фичу заметил
 
 при попытке положить письмо локально, если User не найден в mbdb (обычно
 passwd), то он приводится к нижнему регистру - user - и делается повторный 
 lookup. если я поудаляю User, uSer, USER... то их почта будет валиться на 
 user - IMHO это плохо...
 
 src/recipient.c
 /*
 **  FINDUSER -- find the password entry for a user.
 **
 ** This looks a lot like getpwnam, except that it may want to
 ** do some fancier pattern matching in /etc/passwd.
 **
 ** This routine contains most of the time of many sendmail runs.
 ** It deserves to be optimized.
 **
 ** Parameters:
 **    name -- the name to match against.
 **    fuzzyp -- an outarg that is set to true if this entry
 **     was found using the fuzzy matching algorithm;
 **     set to false otherwise.
 **    user -- structure to fill in if user is found
 **
 ** Returns:
 **    On success, fill in *user, set *fuzzyp and return EX_OK.
 **    If the user was not found, return EX_NOUSER.
 **    On error, return EX_TEMPFAIL or EX_OSERR.
 **
 ** Side Effects:
 **    may modify name.
 */
 
 int
 finduser(name, fuzzyp, user)
   char *name;
   bool *fuzzyp;
   SM_MBDB_T *user;
 {
   ...
 
   *fuzzyp = false;
   ...
 
   /* look up this login name using fast path */
   status = sm_mbdb_lookup(name, user);
   if (status != EX_NOUSER)
   {
    if (tTd(29, 4))
       sm_dprintf("%s (non-fuzzy)\n", sm_strexit(status));
    return status;
   }
 
   /* try mapping it to lower case */
   tryagain = false;
   for (p = name; *p != '\0'; p++)
   {
    if (isascii(*p) && isupper(*p))
    {
       *p = tolower(*p);
       tryagain = true;
    }
   }
   if (tryagain && (status = sm_mbdb_lookup(name, user)) != EX_NOUSER)
   {
    if (tTd(29, 4))
       sm_dprintf("%s (lower case)\n", sm_strexit(status));
    *fuzzyp = true;
    return status;
   }
   ...
 }
 
 /swp
 --- ifmail v.2.15dev5
  * Origin: BSPU InterNetNews site (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: passwd(5)   mitrohin a.s.   17 May 2003 09:01:33 
 Re: passwd(5)   mitrohin a.s.   18 May 2003 09:41:30 
Архивное /ru.unix.bsd/7619f04f436e.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional