免费注册 查看新帖 |

Chinaunix

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

[C] pppd 应该在哪一个地方添加一个无法拨号重置 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-11-09 16:10 |只看该作者 |倒序浏览
本帖最后由 p0w3r 于 2015-11-09 16:11 编辑

家里有一个树莓派, 长期插了一个USB 3G网卡用来防止内网设备出问题之后,还可以链接进去处理。

用的是 pppd + chat 进行拨号到3G ,但是USB 3G网卡有时候不知道什么情况,会无法拨号,chat的脚本执行不成功。

但是把树莓派重置了就又正常了 。

我是打算利用cpu 的看门狗, 开机之后就打开开门狗。

然后如果3G 拨号成功,就在pppd 的循环里面 自动喂狗 。

然后如果一直拨号不成功,那么程序就不能进入到 喂狗的循环 ,从而系统重置。

由于 我C语言 只会 很简单的皮毛 , 各种运算以及一些标准输入输出 ,指针这些还不懂 。


看了一天 pppd  2.4.7 的代码  , 只看 main.c 都头大,不知道去哪里下手啊.
  1. #main.c (539-558)

  2.         lcp_open(0);                /* Start protocol */
  3.         start_link(0);
  4.         while (phase != PHASE_DEAD) {
  5.             handle_events();
  6.             info("TEST0");
  7.             get_input();
  8.             if (kill_link)
  9.                 lcp_close(0, "User request");
  10.             if (asked_to_quit) {
  11.                 bundle_terminating = 1;
  12.                 if (phase == PHASE_MASTER)
  13.                     mp_bundle_terminated();
  14.             }
  15.             if (open_ccp_flag) {
  16.                 if (phase == PHASE_NETWORK || phase == PHASE_RUNNING) {
  17.                     ccp_fsm[0].flags = OPT_RESTART; /* clears OPT_SILENT */
  18.                     (*ccp_protent.open)(0);
  19.                 }
  20.             }
  21.         }
复制代码
而我现在自己看的代码 只跟踪到这里 ,  " info("TEST0"; "  是我自己添加的.


而我这段代码加了之后 , 观看日志,无论是否3G拨号是否成功都会执行这个. 然而这样并不能达到我想要效果啊.


有人可以帮个忙, 解答一下,应该在什么地方加喂狗呢? 以及是不是有办法可以判断拨号是不是成功了.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP