师兄说:
static ss5_listening_t *ss5_socks_add_listening(ss5_conf_t
*cf,
ss5_socks_conf_addr_t *addr)中:
ls->connection_handler = ss5_socks_init_connection;
所以上面的ls->connection_handler(c);实际运行的是ss5_socks_init_connection(c);
ssize_t n;
ss5_int_t rc;
ss5_connection_t
*c;
ss5_socks_request_t *r;
ss5_socks_connection_t *sc;
c = rev->data;
sc = c->data;
r = sc->request;
......................
rc = ss5_socks_parse_request_line(r, r->header_in);
ss5_int_t ss5_socks_parse_request_line(ss5_socks_request_t *r, ss5_buf_t *b)
中有:c = r->connection;rev = c->read_event;
.......
rev->handler = ss5_socks5_handler;
ss5_socks5_handler就会调用
ss5_socks5_process_handler(rev); //这里开始处理请求一直用的是rev
原文:http://www.cnblogs.com/mowangchuzhong/p/3687623.html