您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ DetectFlowFree函数代码示例

51自学网 2021-06-01 20:27:23
  C++
这篇教程C++ DetectFlowFree函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中DetectFlowFree函数的典型用法代码示例。如果您正苦于以下问题:C++ DetectFlowFree函数的具体用法?C++ DetectFlowFree怎么用?C++ DetectFlowFree使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了DetectFlowFree函数的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: DetectFlowTestParseNocase01

/** * /test DetectFlowTestParseNocase01 is a test to make sure that we return "something" *  when given valid flow opt */int DetectFlowTestParseNocase01 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("ESTABLISHED");    if (fd != NULL) {        DetectFlowFree(fd);        result = 1;    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:15,


示例2: DetectFlowTestParse01

/** * /test DetectFlowTestParse01 is a test to make sure that we return "something" *  when given valid flow opt */int DetectFlowTestParse01 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("established");    if (fd != NULL) {        DetectFlowFree(fd);        result = 1;    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:15,


示例3: DetectFlowTestParse13

/** * /test DetectFlowTestParse13 is a test for an invalid option */int DetectFlowTestParse13 (void) {    int result = 1;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("invalidoptiontest");    if (fd != NULL) {        printf("expected: NULL got 0x%02X %" PRId32 ": ",fd->flags, fd->match_cnt);        result = 0;        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:15,


示例4: DetectFlowTestParse15

/** * /test DetectFlowTestParse15 is a test for an invalid combo of options established,stateless */int DetectFlowTestParse15 (void) {    int result = 1;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("established,stateless");    if (fd != NULL) {        printf("expected: NULL got 0x%02X %" PRId32 ": ",fd->flags, fd->match_cnt);        result = 0;        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:15,


示例5: DetectFlowTestParse21

/** * /test DetectFlowTestParse21 is a test for an invalid opt between to valid opts */int DetectFlowTestParse21 (void) {    int result = 1;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("from_server,a,no_stream");    if (fd != NULL) {        printf("expected: NULL got 0x%02X %" PRId32 ": ",fd->flags, fd->match_cnt);        result = 0;        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:15,


示例6: DetectFlowTestParse06

/** * /test DetectFlowTestParse06 is a test for setting the from_server flow opt */int DetectFlowTestParse06 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("from_server");    if (fd != NULL) {        if (fd->flags == FLOW_PKT_TOCLIENT && fd->match_cnt == 1) {            result = 1;        } else {            printf("expected 0x%02X cnt %" PRId32 " got 0x%02X cnt %" PRId32 ": ", FLOW_PKT_TOCLIENT, 1, fd->flags, fd->match_cnt);        }        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:18,


示例7: DetectFlowTestParseNocase03

/** * /test DetectFlowTestParseNocase03 is a test for setting the stateless flow opt */int DetectFlowTestParseNocase03 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("STATELESS");    if (fd != NULL) {        if (fd->flags == FLOW_PKT_STATELESS && fd->match_cnt == 1) {            result = 1;        } else {            printf("expected 0x%02X cnt %" PRId32 " got 0x%02X cnt %" PRId32 ": ", FLOW_PKT_STATELESS, 1, fd->flags, fd->match_cnt);        }        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:18,


示例8: DetectFlowTestParseNocase07

/** * /test DetectFlowTestParseNocase07 is a test for setting the from_client flow opt */int DetectFlowTestParseNocase07 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("FROM_CLIENT");    if (fd != NULL) {        if (fd->flags == FLOW_PKT_TOSERVER && fd->match_cnt == 1) {            result = 1;        } else {            printf("expected 0x%02X cnt %" PRId32 " got 0x%02X cnt %" PRId32 ": ", FLOW_PKT_TOSERVER, 1, fd->flags, fd->match_cnt);        }        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:18,


示例9: DetectFlowTestParseNocase08

/** * /test DetectFlowTestParseNocase08 is a test for setting the established,to_client flow opts */int DetectFlowTestParseNocase08 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("ESTABLISHED,TO_CLIENT");    if (fd != NULL) {        if (fd->flags & FLOW_PKT_ESTABLISHED && fd->flags & FLOW_PKT_TOCLIENT && fd->match_cnt == 2) {            result = 1;        } else {            printf("expected: 0x%02X cnt %" PRId32 " got 0x%02X cnt %" PRId32 ": ", FLOW_PKT_ESTABLISHED + FLOW_PKT_TOCLIENT, 2, fd->flags, fd->match_cnt);        }        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:18,


示例10: DetectFlowTestParseNocase11

/** * /test DetectFlowTestParseNocase11 is a test for setting the from_server,stateless flow opts with spaces all around */int DetectFlowTestParseNocase11 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse(" FROM_SERVER , STATELESS ");    if (fd != NULL) {        if (fd->flags & FLOW_PKT_STATELESS  && fd->flags & FLOW_PKT_TOCLIENT && fd->match_cnt == 2){            result = 1;        } else {            printf("expected: 0x%02X cnt %" PRId32 " got 0x%02X cnt %" PRId32 ": ", FLOW_PKT_STATELESS + FLOW_PKT_TOCLIENT, 2, fd->flags, fd->match_cnt);        }        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:18,


示例11: DetectFlowTestParse02

/** * /test DetectFlowTestParse02 is a test for setting the established flow opt */int DetectFlowTestParse02 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("established");    if (fd != NULL) {        if (fd->flags == FLOW_PKT_ESTABLISHED && fd->match_cnt == 1) {            result = 1;        } else {            printf("expected 0x%02X cnt %" PRId32 " got 0x%02X cnt %" PRId32 ": ", FLOW_PKT_ESTABLISHED, 1, fd->flags, fd->match_cnt);        }        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:18,


示例12: DetectFlowTestParseNocase18

/** * /test DetectFlowTestParseNocase18 is a test for setting the from_server,stateless,only_stream flow opts (order of state,dir reversed) */int DetectFlowTestParseNocase18 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("FROM_SERVER,ESTABLISHED,ONLY_STREAM");    if (fd != NULL) {        if (fd->flags & FLOW_PKT_ESTABLISHED && fd->flags & FLOW_PKT_TOCLIENT && fd->flags & FLOW_PKT_ONLYSTREAM && fd->match_cnt == 3) {            result = 1;        } else {            printf("expected 0x%02X cnt %" PRId32 " got 0x%02X cnt %" PRId32 ": ", FLOW_PKT_ESTABLISHED + FLOW_PKT_TOCLIENT + FLOW_PKT_ONLYSTREAM, 3,                    fd->flags, fd->match_cnt);        }        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:19,


示例13: DetectFlowTestParse18

/** * /test DetectFlowTestParse18 is a test for setting the from_server,stateless,only_stream flow opts (order of state,dir reversed) */int DetectFlowTestParse18 (void) {    int result = 0;    DetectFlowData *fd = NULL;    fd = DetectFlowParse("from_server,established,only_stream");    if (fd != NULL) {        if (fd->flags & FLOW_PKT_ESTABLISHED && fd->flags & FLOW_PKT_TOCLIENT && fd->flags & FLOW_PKT_ONLYSTREAM && fd->match_cnt == 3) {            result = 1;        } else {            printf("expected 0x%02X cnt %" PRId32 " got 0x%02X cnt %" PRId32 ": ", FLOW_PKT_ESTABLISHED + FLOW_PKT_TOCLIENT + FLOW_PKT_ONLYSTREAM, 3,                    fd->flags, fd->match_cnt);        }        DetectFlowFree(fd);    }    return result;}
开发者ID:gcordrey,项目名称:suricata,代码行数:19,


示例14: pcre_exec

//.........这里部分代码省略.........            res = pcre_get_substring((char *)flowstr, ov, MAX_SUBSTRINGS, 3, &str_ptr);            if (res < 0) {                SCLogError(SC_ERR_PCRE_GET_SUBSTRING, "pcre_get_substring failed");                goto error;            }            args[2] = (char *)str_ptr;        }    }    fd = SCMalloc(sizeof(DetectFlowData));    if (fd == NULL)        goto error;    fd->flags = 0;    fd->match_cnt = 0;    int i;    for (i = 0; i < (ret - 1); i++) {        if (args[i]) {            /* inspect our options and set the flags */            if (strcasecmp(args[i], "established") == 0) {                if (fd->flags & FLOW_PKT_ESTABLISHED) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "FLOW_PKT_ESTABLISHED flag is already set");                    goto error;                } else if (fd->flags & FLOW_PKT_STATELESS) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "FLOW_PKT_STATELESS already set");                    goto error;                }                fd->flags |= FLOW_PKT_ESTABLISHED;            } else if (strcasecmp(args[i], "stateless") == 0) {                if (fd->flags & FLOW_PKT_STATELESS) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "FLOW_PKT_STATELESS flag is already set");                    goto error;                } else if (fd->flags & FLOW_PKT_ESTABLISHED) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set FLOW_PKT_STATELESS, FLOW_PKT_ESTABLISHED already set");                    goto error;                }                fd->flags |= FLOW_PKT_STATELESS;            } else if (strcasecmp(args[i], "to_client") == 0 || strcasecmp(args[i], "from_server") == 0) {                if (fd->flags & FLOW_PKT_TOCLIENT) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set FLOW_PKT_TOCLIENT flag is already set");                    goto error;                } else if (fd->flags & FLOW_PKT_TOSERVER) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set to_client, FLOW_PKT_TOSERVER already set");                    goto error;                }                fd->flags |= FLOW_PKT_TOCLIENT;            } else if (strcasecmp(args[i], "to_server") == 0 || strcasecmp(args[i], "from_client") == 0){                if (fd->flags & FLOW_PKT_TOSERVER) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set FLOW_PKT_TOSERVER flag is already set");                    goto error;                } else if (fd->flags & FLOW_PKT_TOCLIENT) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set to_server, FLOW_PKT_TO_CLIENT flag already set");                    goto error;                }                fd->flags |= FLOW_PKT_TOSERVER;            } else if (strcasecmp(args[i], "only_stream") == 0) {                if (fd->flags & FLOW_PKT_ONLYSTREAM) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set only_stream flag is already set");                    goto error;                } else if (fd->flags & FLOW_PKT_NOSTREAM) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set only_stream flag, FLOW_PKT_NOSTREAM already set");                    goto error;                }                fd->flags |= FLOW_PKT_ONLYSTREAM;            } else if (strcasecmp(args[i], "no_stream") == 0) {                if (fd->flags & FLOW_PKT_NOSTREAM) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set no_stream flag is already set");                    goto error;                } else if (fd->flags & FLOW_PKT_ONLYSTREAM) {                    SCLogError(SC_ERR_FLAGS_MODIFIER, "cannot set no_stream flag, FLOW_PKT_ONLYSTREAM already set");                    goto error;                }                fd->flags |= FLOW_PKT_NOSTREAM;            } else {                SCLogError(SC_ERR_INVALID_VALUE, "invalid flow option /"%s/"", args[i]);                goto error;            }            fd->match_cnt++;            //printf("args[%" PRId32 "]: %s match_cnt: %" PRId32 " flags: 0x%02X/n", i, args[i], fd->match_cnt, fd->flags);        }    }    for (i = 0; i < (ret -1); i++){        if (args[i] != NULL)            SCFree(args[i]);    }    return fd;error:    /* ret can be higher than 3 */    for (i = 0; i < (ret - 1) && i < 3; i++){        if (args[i] != NULL)            SCFree(args[i]);    }    if (fd != NULL)        DetectFlowFree(fd);    return NULL;}
开发者ID:jerryma119,项目名称:suricata,代码行数:101,



注:本文中的DetectFlowFree函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ DetectFlowParse函数代码示例
C++ DetectEngineThreadCtxInit函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。