我试图开发使用libuci的OpenWrt的路由器的应用程序(ANSI C语言编写)。 我读过这个有用的帖子: 如何找出如果eth0的模式是静态或DHCP?
和我发展我的一块应用是能够读取网络数据使用UCI库(在这种情况下,我看如果启用PPP)。
char path[]="network.ppp.enabled";
struct uci_ptr ptr;
struct uci_context *c = uci_alloc_context();
if(!c) return;
if (strcmp(typeCmd, "GET") == 0){
if ((uci_lookup_ptr(c, &ptr, path, true) != UCI_OK) || (ptr.o==NULL || ptr.o->v.string==NULL)) {
uci_free_context(c);
return;
}
if(ptr.flags & UCI_LOOKUP_COMPLETE)
strcpy(buffer, ptr.o->v.string);
uci_free_context(c);
printf("\n\nUCI result data: %s\n\n", buffer);
}
现在我想尝试建立新的网络数据(所以我想能PPP - >设置PPP:1)我已经写:
}else if (strcmp(typeCmd, "SET") == 0){
if ((uci_lookup_ptr(c, &ptr, path, true) != UCI_OK) || (ptr.o==NULL || ptr.o->v.string==NULL)) {
uci_free_context(c);
return;
}
ptr.o->v.string = "1";
if ((uci_set(c, &ptr) != UCI_OK) || (ptr.o==NULL || ptr.o->v.string==NULL)) {
uci_free_context(c);
return;
}
if (uci_commit(c, struct uci_package **p, true) != UCI_OK){
uci_free_context(c);
return;
}
}
LibUci文档是不存在的,也仅仅是在文件uci.h一些信息,我不知道怎么填uci_ptr结构,所以我从uci_lookup_ptr找回它,我已经改变ptr.o-> v.string并推出uci_set新的参数,可以而是uci_commit我不知道结构uci_package ** p。
有人叫跟我分享一下有点文档或展示一些例子吗?
非常感谢