回文章列表
作者Colorcloud.bbs@bbs.wretch.cc (彩雲追月~) 看板: itoc
標題站台無法轉寄信件出去
時間無名小站 (2007/09/30 Sun 22:50:51)
小弟使用的版本是板大itoc維護的3.10-20070620,
記得剛架好站的時候,可以很順利的將站內信件轉寄出去,
也能夠收到站外BBS轉寄進來的信,後來不知道從什麼時候開始,
就無法將信件轉寄出去,只是當時忙著先處理其他問題,就暫時擱置這個現象,
現在其他方面都弄得差不多了,所以得處理不能轉寄信件文章的問題,
一路回顧過來,小弟對於轉信方面曾經做過的處理如下:

1.從一個沒有被DNS伺服器定義隨便亂命名的host name換成實際上有功能的
host name(twbbs.org),之前可以轉寄的紀錄都是那個亂命名的host name的時期,
換成twbbs之後好像就沒有成功過;

2.小弟做過「轉信對外站簽」的patch,但是每次make clean cygwin install
都會出錯,說「沒有定義NNTPwfp的功能還是函數之類的」,所以放棄改了回來;
(這個功能可以修正使它有作用嗎?)

3.我也有做了「rec_article.c 檢查重覆的轉信」的patch,但似乎在此之前
文章就無法轉寄了,所以應該和它無關;

4.忘了從什麼時候開始注意到,每次在make 的時候,都會出現下列警告的訊息,
不曉得和站台無法轉寄是否有關?還是說他代表另外的問題,只是小弟目前沒發覺
「bhttpd.c: In function 'getfromhost' :
bhttpd.c:3209: warning: return discards qualifiers from pointer target type」

5.後來也做了「轉寄時可以選擇是否要保留 ANSI 彩色控制碼」,直覺是做了這個
patch之後才無法轉寄的,也不曉得這個是不是就是造成4.這個訊息的原因,但是
想說這個可以選擇的功能不錯,想保留住,所以附上patch原始碼,請大大們過目
是否有哪個地方與小弟的這個版本不相容以致造成錯誤?可以更正嗎?

: struct.h

#define MQ_JUSTIFY      0x01    /* 身分認證信函 */
#define MQ_ATTACH       0x02    /* 有 attachment 的信函 */
+ #define MQ_NOANSI      0x04    /* strip 掉 ANSI 的信件 */

: xover.c:xo_forward()

  static char rcpt[64];
  char fpath[128], folder[80], *dir, *title, *userid;
  HDR *hdr, xhdr;
  int tag, locus, userno, cc, xmode;
  int method;           /* 轉寄到 0:站外 >0:自己 <0:其他站內使用者 */
+ int mq;

  ...
  ...

  else
  {
    if (not_addr(rcpt))
      return XO_FOOT;

    method = 0;
+   mq = (vans("是否保留 ANSI 彩色控制碼(Y/N)?[Y] ") == 'n') ? MQ_NOANSI : 0;
  }

  ...
  ...

      else                      /* 轉寄站外 */
      {
-       if ((cc = bsmtp(fpath, title, rcpt, 0)) < 0)
+       if ((cc = bsmtp(fpath, title, rcpt, mq)) < 0)
          break;
      }

: mail.c:bsmtp()

    if (fp = fopen(fpath, "r"))
    {
      char *ptr;
+     char tmp[512];

      str = buf;
      *str++ = '.';
-     while (fgets(str, sizeof(buf) - 3, fp))
+     while (fgets(tmp, sizeof(tmp), fp))
      {
+       if (method & MQ_NOANSI)
+       {
+         str_ansi(str, tmp, sizeof(buf) - 3);
+         strcat(str, "\r\n");
+       }
+       else
+       {
+         str_ncpy(str, tmp, sizeof(buf) - 3);
          if (ptr = strchr(str, '\n'))
          {
            *ptr++ = '\r';
            *ptr++ = '\n';
            *ptr = '\0';
          }
+       }
        fputs((*str == '.' ? buf : str), fw);
      }
      fclose(fp);
    }

-----
最後謝謝各位前輩的指導:)

--
夫兵者不祥之器物或惡之故有道者不處君子居則貴左用兵則貴右兵者不祥之器非君子
之器不得已而用之恬淡為上勝而不美而美之者是樂殺人夫樂殺人者則不可得志於天下
矣吉事尚左凶事尚右偏將軍居左上將軍居右言以喪禮處之殺人之眾以哀悲泣之戰勝以
喪禮處之道常無名樸雖小天下莫能臣侯王若能守之萬物將自賓天地相合以降甘露民莫
之令而自均始制有名名亦既有夫亦將知止219-69-99-102.idc.static.giga.net.tw
文章選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻