免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: converse
打印 上一主题 下一主题

lighttpd1.4.18代码分析 [复制链接]

论坛徽章:
0
1 [报告]
发表于 2008-09-09 17:06 |显示全部楼层
跟着学习了,期待接下来的分析。。。

论坛徽章:
0
2 [报告]
发表于 2008-09-16 10:48 |显示全部楼层
楼主快点出下面的啊,等了很久了
顺便问一下
#define SET(x) \
    ev->x = fdevent_select_##x;

这种是什么用法,为什么不是
#define SET(x) \
    ev->x = fdevent_select_x;
而是在中间多了两个#号呢?
谢谢

论坛徽章:
0
3 [报告]
发表于 2008-09-16 11:03 |显示全部楼层

回复 #50 converse 的帖子

好的,我去查查。
你的文章我结合代码看了5、6遍了,现在看的有点眉目了,期待精彩继续:)

论坛徽章:
0
4 [报告]
发表于 2008-09-19 11:22 |显示全部楼层
终于等到了,接着看,呵呵。。。

论坛徽章:
0
5 [报告]
发表于 2008-09-25 14:39 |显示全部楼层

回复 #62 converse 的帖子

看到这里是否要对http协议了解一下会好懂一些?如果要看的话是不是就看http的RFC就可以了?
之前稍微看过一些rfc文档,看的云里雾里的,都不知道里面在讲什么

[ 本帖最后由 boywonder 于 2008-9-25 14:43 编辑 ]

论坛徽章:
0
6 [报告]
发表于 2008-09-29 11:21 |显示全部楼层
lighttpd代码里的这些宏定义是在哪儿定义的?
代码跟踪了一下也没找到,在生成的Makefile里也没找到。
之前看thttpd的代码的时候在生成的Makefile里可以找的到这些宏定义,但在lighttpd里一直没找到。

论坛徽章:
0
7 [报告]
发表于 2008-09-29 20:17 |显示全部楼层

回复 #76 libin1983 的帖子

那像这样的

#ifdef HAVE_FORK
        /* network is up, let's deamonize ourself */
        if (srv->srvconf.dont_daemonize == 0) daemonize();
#endif

这个HAVE_FORK是在哪儿定义的?
我觉得是应该根据系统在生成Makefile的时候以-D先项传进来的,但我在Makefile里只看一个-DHAVE_CONFIG。其它的都没找到。

论坛徽章:
0
8 [报告]
发表于 2008-09-30 09:10 |显示全部楼层

回复 #78 converse 的帖子

谢谢,明白是怎么回事了。

原来是在configure的时候会在当前目录下生成一个config.h的文件,里面就有这种HAVE_##形式的宏定义,同时在Makefile里会用DEFS = -DHAVE_CONFIG_H把HAVE_CONFIG_H 传进去,在源文件里通过判断这个宏来#include "config.h",这样HAVE_##之类的宏就有定义了。

因为我跟踪代码的时候只在src目录下生成了cscope和ctags文件,没有包含上层目录,所以一直没跟到这些宏定义,走了一些弯路,呵呵。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP