亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: setsockopt()參數(shù)問題 [打印本頁]

作者: 注冊好難哦    時(shí)間: 2010-05-18 17:46
標(biāo)題: setsockopt()參數(shù)問題
#define CONN_SO_BASE_CTL        (64+2048+64)
struct conn_auth_cmd
{
        int                 cmd;
        pid_t                pid;
        int                autologout;
        unsigned char        auth_data[CONN_AUTH_DATA_LEN];
};
struct conn_auth_cmd cmd;

ret = setsockopt(sock, IPPROTO_IP, CONN_SO_SET_AUTH_CMD, &cmd, sizeof(struct conn_auth_cmd));
各位高手能否解析一下setsockopt()調(diào)用中參數(shù) CONN_SO_SET_AUTH_CMD 的作用,查了很多資料也沒
查到optname中有這種自定義選項(xiàng)的用法。謝謝!
作者: 梅川內(nèi)依酷    時(shí)間: 2010-05-18 18:13
內(nèi)核你們改過了吧?
作者: 注冊好難哦    時(shí)間: 2010-05-18 19:21
內(nèi)核你們改過了吧?
梅川內(nèi)依酷 發(fā)表于 2010-05-18 18:13


這個(gè)我還真不太清楚,在別人那找的代碼讀,機(jī)器也不是自己的。
而且小弟我對內(nèi)核模塊的加載,修改內(nèi)核等這方面的內(nèi)容還沒開始了解。
那再問個(gè)弱弱的問題,倘若真如樓上所說的情況。我應(yīng)該怎樣去弄懂這個(gè)參數(shù)的意義。
作者: 0vk0    時(shí)間: 2010-05-18 19:38
man里面沒有解釋么
作者: 注冊好難哦    時(shí)間: 2010-05-18 20:33
man里面沒有解釋么
0vk0 發(fā)表于 2010-05-18 19:38

仿佛沒有哦
作者: 0vk0    時(shí)間: 2010-05-18 20:58
仿佛沒有哦
注冊好難哦 發(fā)表于 2010-05-18 20:33



    可惜我在CU下面找不到網(wǎng)卡驅(qū)動(dòng),上不了網(wǎng),不然MAN下幫你查了
作者: 梅川內(nèi)依酷    時(shí)間: 2010-05-19 09:28
回復(fù) 3# 注冊好難哦


    你我一下工程相關(guān)人員或者看工程文檔吧  如果可以的話
作者: 注冊好難哦    時(shí)間: 2010-05-19 13:56
回復(fù)  注冊好難哦


    你我一下工程相關(guān)人員或者看工程文檔吧  如果可以的話
梅川內(nèi)依酷 發(fā)表于 2010-05-19 09:28


沒有詳細(xì)的工程文檔,只有簡單的協(xié)議文檔,把它的大概流程搞懂了,有幾個(gè)地方的細(xì)節(jié)還在摸索之中
作者: 梅川內(nèi)依酷    時(shí)間: 2010-05-19 16:16
回復(fù) 8# 注冊好難哦


    你這個(gè)是什么協(xié)議的? 是自定義的嗎?
作者: 注冊好難哦    時(shí)間: 2010-05-19 19:21
int stop_auth(void)
{
        int sock;
        struct conn_auth_cmd cmd;
        int ret;

        sock = socket(PF_INET, SOCK_DGRAM, 0);
        if (sock < 0){
                fprintf(...);
                return -1;
        }

        cmd.cmd = 0;
        ret = setsockopt(sock, IPPROTO_IP, CONN_SO_SET_AUTH_CMD, &cmd, sizeof(struct conn_auth_cmd));
        if (ret != 0) {
               fprintf(...);
                close(sock);
                return -1;
        }

        close(sock);

        fprintf(...);

        return 0;
}
這個(gè)模塊應(yīng)該是獨(dú)立的,可能是想要開啟或禁止套接口什么功能
作者: 沒本    時(shí)間: 2010-05-19 19:43
一個(gè)叫drcom的內(nèi)核模塊定義了CONN_SO_SET_AUTH_CMD

  1. #ifndef _TCPTRACK_H_
  2. #define _TCPTRACK_H_

  3. #include <linux/if.h>

  4. #define CONN_SO_BASE_CTL        (64+2048+64)

  5. #define CONN_SO_SET_AUTH_CMD    CONN_SO_BASE_CTL
  6. #define CONN_SO_SET_PARAMS      (CONN_SO_BASE_CTL+1)
  7. #define CONN_SO_SET_MAX         CONN_SO_SET_PARAMS

  8. #define CONN_MODE_NONE          0
  9. #define CONN_MODE_AUTH          1

  10. #define CONN_AUTH_DATA_LEN      16

  11. struct e_address
  12. {
  13.         u_int32_t       addr;
  14.         u_int32_t       mask;
  15. };

  16. struct conn_param
  17. {
  18.         char                    devname[IFNAMSIZ];

  19.         int                     e_count;
  20.         struct e_address        es[0];
  21. };

  22. struct conn_auth_cmd
  23. {
  24.         int             cmd;
  25.         pid_t           pid;
  26.         int             autologout;
  27.         unsigned char   auth_data[CONN_AUTH_DATA_LEN];
  28. };

  29. #endif
復(fù)制代碼

  1. static int conn_set_sockopt(struct sock *sk, int optname, void *optval, unsigned int optlen)
  2. {
  3.         switch (optname) {
  4.         case CONN_SO_SET_PARAMS: /* set addresses of no need to auth */
  5.                 return conn_set_params(sk, optname, optval, optlen);

  6.         case CONN_SO_SET_AUTH_CMD: /* set auth data, and start auth */
  7.                 return conn_set_auth_cmd(sk, optname, optval, optlen);

  8.         default:
  9.                 return -ENOPROTOOPT;
  10.         }

  11.         return -ENOPROTOOPT;
  12. }
復(fù)制代碼


  1. static int conn_set_auth_cmd(struct sock *sk, int optname, void *optval, unsigned int optlen)
  2. {
  3.         struct conn_auth_cmd cmd;
  4.         int hash_todo = 0;

  5.         if (optlen < sizeof(struct conn_auth_cmd))
  6.                 return -EINVAL;

  7.         if (copy_from_user(&cmd, optval, sizeof(struct conn_auth_cmd)))
  8.                 return -EFAULT;

  9.         printk("<1> cmd=%d\n", cmd.cmd);
  10.         printk("<1> pid=%d\n", cmd.pid);
  11.         printk("<1> autologout=%d\n", cmd.autologout);
  12.         printk("<1> auth_data=\n");
  13.         for (n=0; n< 16;n++)
  14.                 printk("<1> 0x%02x\n",(unsigned char)cmd.auth_data[n]);

  15.         rtnl_lock();

  16.         write_lock_bh(&mode_lock);

  17.         if (track_mode == CONN_MODE_NONE && cmd.cmd == CONN_MODE_AUTH) {
  18.                 track_mode = cmd.cmd;
  19.                 conn_pid = cmd.pid;
  20.                 conn_autologout = cmd.autologout;
  21.                 memcpy(conn_auth_data, cmd.auth_data, CONN_AUTH_DATA_LEN);
  22.                 hash_todo = 1; /* conn_hooks_init() */
  23.         } else if (track_mode == CONN_MODE_AUTH && cmd.cmd == CONN_MODE_NONE) {
  24.                 track_mode = cmd.cmd;
  25.                 conn_pid = 0;
  26.                 conn_autologout = 0;
  27.                 memset(conn_auth_data, 0, CONN_AUTH_DATA_LEN);
  28.                 hash_todo = 2; /* conn_hooks_cleanup */
  29.         } else {
  30.                 DEBUGP("Same Auth Cmd\n");
  31.         }

  32.         write_unlock_bh(&mode_lock);

  33.         if (hash_todo == 1) {
  34.                 init_keepalive_timer();
  35.                 conn_hooks_init();
  36.                 printk(KERN_INFO "Drcom-Kernel: Authentication Started.\n");
  37.         } else if (hash_todo == 2) {
  38.                 del_keepalive_timer();
  39.                 conn_hooks_cleanup();
  40.                 conn_hash_cleanup();
  41.                 printk(KERN_INFO "Drcom-Kernel: Authentication Stopped.\n");
  42.         }

  43.         rtnl_unlock();

  44.         return 0;
  45. }
復(fù)制代碼

作者: 注冊好難哦    時(shí)間: 2010-05-19 20:43
在網(wǎng)上查了一下,好像是一個(gè)不太常用的功能可以作為模塊加載,然后減小內(nèi)存的開銷。沒太理解。
樓上大哥可否詳細(xì)闡述一下程序加載內(nèi)核模塊的作用。




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2