免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1680 | 回复: 0
打印 上一主题 下一主题

备忘: 添加无线模块到 net-snmp 时的两个细节 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-08-28 20:21 |只看该作者 |倒序浏览

                                很久前曾经在添加ieee80211模块到 ucd-snmp 时, 遇到过两个问题:
1. 一次设置会造成无线程序(madwifi或者hostapd)重启多次;
2. set时, 如果第一个值为"abcdefg", 第二个为"mm", 则第二次实际设置下去的不是"mm", 而是"mmcdefg".
费了很大的精力才解决了这两个问题; 结果最近在另外一个项目中添加同样的功能时又发现了这两个问题, 找以前的改动费了很大的力气也没找到, 结果又不得不用了好几天才找到了同样的解决方法. 郁闷之下, 终于想要记录下来备忘:
1.    原因:由于agent的回复不够及时, 导致nms在收不到答复时重新发送set请求, 以致于实际发送了5个set请求, 导致无线程序多次重启.
      解决办法: 将需要运行很久的程序放到后台运行. 典型的情况是system调用,此时关键就是如下接近末尾的"&"符号, 这样可以使得agent及时返回:
            system("/etc/init.d/wireless restart > /console 2>/dev/null &");
2. 将改字符串在适当的地方截断. 所谓"当断不断, 反受其乱". 具体改动类似如下, 在用到该字符串前先处理一下:
    var->val.string[var->val_len]='\0';
    config_set_str("wlan_ssid", p_elem->ifIndex, var->val.string);
希望以后再遇到相同情况时, 我不需要再浪费好几天时间在这上面. 阿门!        
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/46407/showart_369901.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP