回精華區
作者itoc (League), 信區: plan
標題[功能] 開啟 bbs 的反查 (dns_ident)
時間2004/01/10 Sat 13:58:12 Updated: 2004/01/10
  這其實是原本有的功能,只是被我拿掉了
  如果想加回來的話,就這樣改
  (註: 如果使用者開啟防火牆的話,那麼他在登入時將會變得很慢)

: global.h

+ VAR char rusername[40];         /* real name */
VAR char fromhost[48];          /* from FQDN */

: bbsd.c:main()

    tn_addr = sin.sin_addr.s_addr;
-   dns_name((char *) &sin.sin_addr, fromhost);
+   dns_ident(0, &sin, fromhost, rusername);

    telnet_init();
    term_init();
    tn_main();

> ───────────────────────────────────── <

  多了一個廣域變數 rusername,在 log 的時候可以拿出來用,例如:

: bbsd.c:tn_login()

- sprintf(buf, "%s ip:%08x (%d)", fromhost, tn_addr, currpid);
+ sprintf(buf, "%s@%s ip:%08x (%d)", rusername, fromhost, tn_addr, currpid);

: post.c:log_anonymous()

- sprintf(buf, "%s %-13s(%s)\n%-13s %s %s\n",
-   Now(), cuser.userid, fromhost, currboard, fname, ve_title);
+ sprintf(buf, "%s %-13s(%s@%s)\n%-13s %s %s\n",
+   Now(), cuser.userid, rusername, fromhost, currboard, fname, ve_title);

: bbsd.c:login_user()
: 改成這樣以後,acl 的格式就多了
: rusername@fromhost

        if (cuser.ufo & UFO_ACL)
        {
          usr_fpath(fpath, cuser.userid, FN_ACL);
+         str_lower(rusername, rusername);
          str_lower(fromhost, fromhost);            /* lkchu.981201: 換小寫 */
-         if (!acl_has(fpath, "", fromhost))
+         if (!acl_has(fpath, rusername, fromhost))
          {  /* Thor.980728: 注意 acl檔, 和 rusername, fromhost 要全部小寫 */
            logattempt('-', content);
            login_abort("\n您的上站地點不太對勁,請核對 [上站地點設定檔]");
          }
        }

--
□ 本文章由 itocitoc.Dorm11.NCTU.edu.tw 發表
精華選讀←離開[主題上]主題下(k)上篇(j)下篇S/a搜尋 G串列 TAB精華 ↑↓捲 Pg/Space翻