小编Sne*_*min的帖子

Netfilter字符串模块示例用法

任何人都可以指出一些使用xt_string模块和netfilter的例子或提供一个例子.我想要做的是编写netfilter模块,它将在skb-> data字段中丢弃包含某个字符串的数据包.

我最初尝试简单,strnstr(skb->data, "mystring", strlen("mystring"))但这似乎是不正确的方法来解决这个问题(它似乎没有工作,因为我没有看到任何数据包被丢弃).

提前致谢

c netfilter linux-kernel

4
推荐指数
1
解决办法
3037
查看次数

期望脚本,if 的两个分支都没有被执行

任何人都可以看看并建议为什么以下代码段不执行 if 语句的两个分支?脚本不会抛出任何错误。它只是到达期望线并等待它超时。arg1 只是命令行中的一个参数。

set arg1 [lindex $argv 0]
set strname "teststring"

expect {
       "prompt#" {
                        if { [string compare $arg1  $strname]  != 0 } {
                            send "strings different\r"
                        } else {
                            send "strings same\r"
                        }
                 }

       default          abort
}
Run Code Online (Sandbox Code Playgroud)

提前致谢。

编辑:

编辑以显示正确的结构。

tcl expect

3
推荐指数
1
解决办法
4711
查看次数

使用libxml2在xml文件中查找节点

我正在尝试编写一个函数,它将在xml文件中找到具有指定名称的节点.问题是该函数永远不会找到指定的节点.

xmlNodePtr findNodeByName(xmlNodePtr rootnode, const xmlChar * nodename)
{
    xmlNodePtr node = rootnode;
    if(node == NULL){
        log_err("Document is empty!");
        return NULL;
    }

    while(node != NULL){

        if(!xmlStrcmp(node->name, nodename)){
            return node; 
        }
        else if(node->children != NULL){
            node = node->children; 
            xmlNodePtr intNode =  findNodeByName(node, nodename); 
            if(intNode != NULL){
                return intNode;
            }
        }
        node = node->next;
    }
    return NULL;
}
Run Code Online (Sandbox Code Playgroud)

我可以在调试器中看到函数确实深入到子节点但仍然返回NULL.

提前致谢.

c libxml2 xml-parsing

3
推荐指数
1
解决办法
8300
查看次数

标签 统计

c ×2

expect ×1

libxml2 ×1

linux-kernel ×1

netfilter ×1

tcl ×1

xml-parsing ×1