LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 610|回复: 1

求助,求助高手解释一段代码

[复制链接]
发表于 2005-3-7 16:24:22 | 显示全部楼层 |阅读模式
void dsr_options_fragment(struct sk_buff * skb)
{
unsigned char * optptr = skb->nh.raw;//
struct ip_options * opt = &(IPCB(skb)->opt
int l = opt->optlen;
int optlen;

while (l > 0)
switch (*optptr) {
case IPOPT_END:
return;
case IPOPT_NOOP:
l--;
optptr++;
continue;
}
optlen = optptr[1];
if (optlen<2 || optlen>l)
return;
if (!IPOPT_COPIED(*optptr))
memset(optptr, IPOPT_NOOP, optlen);
l -= optlen;
optptr += optlen;
}
opt->ts = 0;
opt->rr = 0;
opt->rr_needaddr = 0;
opt->ts_needaddr = 0;
opt->ts_needtime = 0;
return;
}

哪位高手,帮忙解释一下上面的函数什么意思做什么用,函数运行结果是什么,
发表于 2005-3-7 17:03:59 | 显示全部楼层
如果你是在分析什么程序的代码,我想你的思路有点问题。函数是“干什么的”,应该看函数的名字、使用场合、函数前面的注释(没有注释当然比较惨了)。如果对“怎么干的”有兴趣再去看函数的实现。人家把程序分成一个个的函数是为了更易读,而不是为了给你找麻烦。如果你从读函数实现来分析函数是干什么的,那几乎是把人家分开的模块又揉到一块去看了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表