OpenSips阅读笔记

来源:互联网 发布:桌面课程表软件 编辑:程序博客网 时间:2024/05/22 10:59

最近阅读Opensips代码,偶有所想,就随便写写吧。


1. 关于宏:

以前自己也写过,但是没有写过宏内容展开,完全不包含相关变量名的。


#define IFISMETHOD(methodname,firstchar)                                  \if (  (*tmp==(firstchar) || *tmp==((firstchar) | 32)) &&                  \        strncasecmp( tmp+1, #methodname +1, methodname##_LEN-1)==0 &&     \        *(tmp+methodname##_LEN)==' ') {                                   \                fl->type=SIP_REQUEST;                                     \                fl->u.request.method.len=methodname##_LEN;                \                fl->u.request.method_value=METHOD_##methodname;           \                tmp=buffer+methodname##_LEN;                              \}


例如:

if (  ) 

{

}  else  IFISMETHOD ( INVITE, 'I' ) 


2. 疑问点:


Radius 实现函数中,有这样一些函数和变量,但是搜不到原始定义

rc_handle *rh;

rh = rc_read_config((char*)(cfg.rest))

rc_read_dictionary(rh, rc_conf_str(rh, "dictionary"))


rc_handle  可以理解为 Resource Control  只能先这样


原创粉丝点击