zoukankan      html  css  js  c++  java
  • C语言中字符串数组的遍历和比较

    /* The list of known types of default packet. */
    static char  *_default_packet_types[] = {
        "ddos client quota",       "ddos server quota",
        "blocked ports",           "blocked sites",
        "ip scan",                 "port scan",
        "ip source route",         "icmp flooding",
        "ike flooding",            "ipsec flooding",
        "ip spoofing sites",       "syn flooding",
        "udp flooding",            "tcp syn checking failed",
        NULL
    };

    // 自己写的函数,用packetTable中的->_msg, 和上面的_default_packet_types里的元素进行比较,如果相等则跳出,否则继续循环

    boolean pr_get_default_packet_flag_from_msg(PacketFilterMessageTable *packetTable, char **packetType)
    {
        char         *p_msg = NULL;
        wgpr_boolean  flag = FALSE;
        char        **type_ptr = NULL;
       
        /* Sanity check */
        if (!packetTable) {
            return flag;
        }

        if (packetTable->_tag_id != FWDENY_TAG ||
            packetTable->_msg == NULL          ||
            packetTable->_msg[0] == '') {
            return flag;
        }

        p_msg = packetTable->_msg;

        for (type_ptr = _default_packet_types; *type_ptr != NULL; type_ptr++) {
            if (!strncasecmp(p_msg, *type_ptr, sizeof(*type_ptr) - 1)) {
                flag = TRUE;
                break;
            }
        }
        *packetType = flag == TRUE ? DEFAULTPACKET : DENIEDPACKET;
        return flag;
    }

    //调用上述函数的代码片段

                        if(pr_get_default_packet_flag_from_msg(pk_t, &packetType)){
                            is_dflt_packet = TRUE;
                        }

  • 相关阅读:
    不可变类
    单例类
    二叉树的三种遍历
    先序创建二叉树
    【笔记】 mysql与php的连接以及非select的例子
    今日思考之 20200730:非阻塞(NIO)到底带来了什么改变?
    jdk源码学习之: Object#equals() 和 Object#hashCode()
    异想天开 之 快递行业与高并发、高吞吐
    分享系列 之 BIO NIO AIO
    挖坑:epoll 函数如何能准确知道哪些 FD 是活跃的呢?
  • 原文地址:https://www.cnblogs.com/kungfupanda/p/4341212.html
Copyright © 2011-2022 走看看