Apache中的挂钩剖析(2)[4]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

     return ok; \
\
    pHook=(ns##_LINK_##name##_t *)_hooks.link_##name->elts; \
    for(n=0 ; n < _hooks.link_##name->nelts ; ++n) \
     { \
     rv=pHook[n].pFunc args_use; \
\
     if(rv != ok && rv != decline) \
         return rv; \
     } \
    return ok; \
    }
open_logs挂钩就是属于这种类型,其在config.c中的定义如下:
AP_IMPLEMENT_HOOK_RUN_ALL(int, open_logs,
                          (apr_pool_t *pconf, apr_pool_t *plog,
                           apr_pool_t *ptemp, server_rec *s),
                          (pconf, plog, ptemp, s), OK, DECLINED)
因此将它展开后的结果如下:
AP_DECLARE(int) ap_run_open_logs(apr_pool_t *pconf, apr_pool_t *plog,
                           apr_pool_t *ptemp, server_rec *s)
{
    ap_LINK_open_logs_t *pHook;
    int n;
    ret rv;
    if(!_hooks.link_open_logs)
          return ok;
    pHook=(ap_LINK_open_logs_t *)_hooks.link_open_logs->elts; \
    for(n=0 ; n < _hooks.link_open_logs->nelts ; ++n) \
     {
          rv=pHook[n].pFunc(pconf, plog, ptemp, s);
          if(rv != ok && rv != decline) \
              return rv;
     }

本文关键:Apache中的挂钩剖析(2)
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top