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


ru.linux

 
 - RU.LINUX ---------------------------------------------------------------------
 From : Andrey Slusar                        2:467/126      12 May 2004  18:18:55
 To : Eugene B. Berdnikov
 Subject : Re: ASP9.2 - upgrade
 -------------------------------------------------------------------------------- 
 
 Wed, 12 May 2004 16:03:28 +0300, Eugene B. Berdnikov wrote to Vladimir Mosgalin:
 
  PI>>> Мoжет вoзникнуть пpoблема, если на небoльшoм oтpезке вpемени в эхе
  PI>>> oкажутся письма с oдинакoвыми MSGID, а этo oбязательнo случится,
  PI>>> если  мнoгие настpoят этoгo гада так же, как ты. Даже, навеpнoе, с
  VM>> 
  VM>> Так мой msgid для предыдущего письма
  VM>> MSGID_2=3A5030=2F1041.17_00000df8@fidonet.org
 
  EBB>  В демосовском пуле предыдущее письмо имеет id
  EBB> <3576@p17.f1041.n5030.z2.ftn>. И в этом постинге аналогичный, только
  EBB> номер@ другой.
 
  VM>> Так что все работает правильно.
 
  EBB>  Причина скорей всего в кривом транзитном гейте.
 
   2VM: Это проблема 4-го fidogate-а. Он неправильно делает fido-style
 msgid. Вот патч, который я когда-то думал послать автору:
 --8<---------------cut here---------------start------------->8---
 -+- fgate4.old/src/common/msgid.c  Sun Feb  8 02:49:21 2004
 +++ fgate4/src/common/msgid.c  Fri Feb 13 04:56:36 2004
 @@ -255,7 +255,8 @@
   * Convert RFC Message-ID/References to FIDO ^AMSGID/^AREPLY
   */
  char *s_msgid_rfc_to_fido(int *origid_flag, char *message_id,
 -        int part, int split, char *area)
 +        int part, int split, char *area,
 +        short int x_flags_m, int for_reply)
      /* origid_flag - Flag for ^AORIGID */
      /* message_id  - Original RFC-ID */
      /* part        - part number */
 @@ -391,10 +392,19 @@
    crc32 += part - 1;
  
      tmps = tmps_alloc(strlen(id)+1+/**Extra**/20);
 +    if(!x_flags_m)
 +    {
      msgid_fts9_quote(tmps->s, id, tmps->len);
      str_printf(tmps->s + strlen(tmps->s), tmps->len - strlen(tmps->s),
 -         " %08lx", crc32);
 -    
 +      " %08lx", crc32);
 +    }
 +    else
 +    {
 +    if(for_reply)
 +        str_printf(tmps->s, strlen(tmps->s)+strlen(id)+2, "%s ", id);
 +    str_printf(tmps->s + strlen(tmps->s), tmps->len - strlen(tmps->s),
 +      "%08lx", crc32);
 +    }
      xfree(savep);
      if(origid_flag)
    *origid_flag = TRUE;
 -+- fgate4.old/src/include/prototypes.h   Fri Feb 13 05:37:17 2004
 +++ fgate4/src/include/prototypes.h   Fri Feb 13 05:39:13 2004
 @@ -382,7 +382,7 @@
  /* msgid.c */
  char   *s_msgid_fido_to_rfc  (char *, int *);
  char   *s_msgid_default   (Message *);
 -char   *s_msgid_rfc_to_fido  (int *, char *, int, int, char *);
 +char   *s_msgid_rfc_to_fido  (int *, char *, int, int, char *, short int, int);
  char   *s_msgid_convert_origid   (char *, int);
  
  /* node.c */
 -+- fgate4.old/src/gate/rfc2ftn.c  Fri Feb 13 05:00:41 2004
 +++ fgate4/src/gate/rfc2ftn.c  Fri Feb 13 05:34:35 2004
 @@ -1378,30 +1378,29 @@
      /***** ^A kludges *******************************************************/
  
      /* Add kludges for MSGID / REPLY */
 -    if(!x_flags_m)        /* ! X-Flags: m */
 +    if((header = s_header_getcomplete("Message-ID")))
      {
 -  if((header = s_header_getcomplete("Message-ID")))
 +  if((id = s_msgid_rfc_to_fido(&flag, header,
 +          part, split, msg->area, x_flags_m, 0)))
    {
 -      if((id = s_msgid_rfc_to_fido(&flag, header,
 -           part, split, msg->area)))
 -      {
 -     fprintf(sf, "\001MSGID: %s\r\n", id);
 -      }
 -  }  
 +  if(!x_flags_m)          /* ! X-Flags: m */
 +      fprintf(sf, "\001MSGID: %s\r\n", id);
    else
 +      fprintf(sf, "\001MSGID: %s %s\r\n", znfp1(&msg->node_from), id);
 +  }
 +    }
 +    else
        print_local_msgid(sf, node_from);
    
    if((header = s_header_getcomplete("References")) ||
       (header = s_header_getcomplete("In-Reply-To")))
    {
 -      if((id = s_msgid_rfc_to_fido(&flag, header, 0, 0, msg->area)))
 +      if((id = s_msgid_rfc_to_fido(&flag, header, 0, 0, msg->area,
 +              x_flags_m, 1)))
        {
       fprintf(sf, "\001REPLY: %s\r\n", id);
        }
    }
 -    }
 -    else
 -  print_local_msgid(sf, node_from);
  
      if(!no_fsc_0035)
    if(!x_flags_n)
 --8<---------------cut here---------------end--------------->8---
   Дело в том, что 4-й f-gate при fido style msgid или Xflags:m(видимо у
 VM стоит Xflags:m) и 5-й оригинальный(до 5b7) при постинге
 более чем в одну группу(например, карбон) пользуется не совсем
 оптимальным алгоритмом генерации serialno, из-за чего случаются перлы
 вида 00000001, 000000005 и т.п. Этот патч заставляет оригинальный fgate
 при Xflags: m формировать serialno из Message-ID оригиальной мессаги,
 что намного понижает вероятность формирования одинаковых serialno.
 -- 
                                                   Всего хорошего.
                                                             Андрей.
  XMMS: 05-Vzgljad_s_Ekrana
 --- Gnus/5.110003 (No Gnus v0.3) XEmacs/21.4 (Security Through Obscurity)
  * Origin: Santinel at fido (2:467/126)
 
 

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

 Тема:    Автор:    Дата:  
 Re: ASP9.2 - upgrade   Andrey Slusar   12 May 2004 18:18:55 
 Re: ASP9.2 - upgrade   Vladimir Mosgalin   15 May 2004 19:22:52 
 Re: ASP9.2 - upgrade   Andrey Slusar   17 May 2004 15:55:29 
 Re: ASP9.2 - upgrade   Vladimir Mosgalin   20 May 2004 14:29:23 
 Re: ASP9.2 - upgrade   Andrey Slusar   22 May 2004 04:24:08 
Архивное /ru.linux/2749a984513a.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional