⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aclyacc.c

📁 netflow,抓包
💻 C
📖 第 1 页 / 共 2 页
字号:
#if defined(lint) || defined(__GNUC__)    goto yynewerror;#endifyynewerror:    yyerror("syntax error");#if defined(lint) || defined(__GNUC__)    goto yyerrlab;#endifyyerrlab:    ++yynerrs;yyinrecovery:    if (yyerrflag < 3)    {        yyerrflag = 3;        for (;;)        {            if ((yyn = yysindex[*yyssp]) && (yyn += YYERRCODE) >= 0 &&                    yyn <= YYTABLESIZE && yycheck[yyn] == YYERRCODE)            {#if YYDEBUG                if (yydebug)                    printf("%sdebug: state %d, error recovery shifting\ to state %d\n", YYPREFIX, *yyssp, yytable[yyn]);#endif                if (yyssp >= yysslim && yygrowstack())                {                    goto yyoverflow;                }                *++yyssp = yystate = yytable[yyn];                *++yyvsp = yylval;                goto yyloop;            }            else            {#if YYDEBUG                if (yydebug)                    printf("%sdebug: error recovery discarding state %d\n",                            YYPREFIX, *yyssp);#endif                if (yyssp <= yyss) goto yyabort;                --yyssp;                --yyvsp;            }        }    }    else    {        if (yychar == 0) goto yyabort;#if YYDEBUG        if (yydebug)        {            yys = 0;            if (yychar <= YYMAXTOKEN) yys = yyname[yychar];            if (!yys) yys = "illegal-symbol";            printf("%sdebug: state %d, error recovery discards token %d (%s)\n",                    YYPREFIX, yystate, yychar, yys);        }#endif        yychar = (-1);        goto yyloop;    }yyreduce:#if YYDEBUG    if (yydebug)        printf("%sdebug: state %d, reducing by rule %d (%s)\n",                YYPREFIX, yystate, yyn, yyrule[yyn]);#endif    yym = yylen[yyn];    yyval = yyvsp[1-yym];    switch (yyn)    {case 10:#line 54 "aclyacc.y"{		/* XXX add code to check NUM is in range 0..99 */		yyvsp[0].std_entry.flag |= yyvsp[-1].i;		x = acl_create(&acl_list, yyvsp[-2].c, ACL_TYPE_STD);		acl_add_line_std(acl_list, x, yyvsp[0].std_entry);	}break;case 11:#line 60 "aclyacc.y"{		/* XXX add code to check NUM is in range 100-199 */		yyvsp[0].ext_entry.flag |= yyvsp[-1].i;		x = acl_create(&acl_list, yyvsp[-2].c, ACL_TYPE_EXT);		acl_add_line_ext(acl_list, x, yyvsp[0].ext_entry);	}break;case 12:#line 66 "aclyacc.y"{		yyvsp[0].std_entry.flag |= yyvsp[-1].i;		x = acl_create(&acl_list, yyvsp[-2].c, ACL_TYPE_STD);		acl_add_line_std(acl_list, x, yyvsp[0].std_entry);	}break;case 13:#line 71 "aclyacc.y"{		yyvsp[0].ext_entry.flag |= yyvsp[-1].i;		x = acl_create(&acl_list, yyvsp[-2].c, ACL_TYPE_EXT);		acl_add_line_ext(acl_list, x, yyvsp[0].ext_entry);	}break;case 14:#line 79 "aclyacc.y"{		yyval.std_entry.src_addr = 0x0;		yyval.std_entry.src_mask = 0xFFFFFFFF;		yyval.std_entry.matches = 0;		yyval.std_entry.flag = 0;	}break;case 15:#line 85 "aclyacc.y"{ 		yyval.std_entry.src_addr = yyvsp[0].ip;		yyval.std_entry.src_mask = 0x0;		yyval.std_entry.matches = 0;		yyval.std_entry.flag = 0;	}break;case 16:#line 91 "aclyacc.y"{ 		yyval.std_entry.src_addr = yyvsp[-1].ip;		yyval.std_entry.src_mask = yyvsp[0].ip;		yyval.std_entry.matches = 0;		yyval.std_entry.flag = 0;	}break;case 17:#line 97 "aclyacc.y"{		yyval.std_entry.src_addr = yyvsp[0].ip;		yyval.std_entry.src_mask = 0x0;		yyval.std_entry.matches = 0;		yyval.std_entry.flag = 0;	}break;case 18:#line 105 "aclyacc.y"{		yyval.i = ACL_FLAG_PERMIT;	}break;case 19:#line 108 "aclyacc.y"{		yyval.i = 0;	}break;case 25:#line 121 "aclyacc.y"{		yyval.ext_entry.protocol = 0;		yyval.ext_entry.precedence = 0;		yyval.ext_entry.tos = 0;		yyval.ext_entry.type = 0;		yyval.ext_entry.type_code = 0;		yyval.ext_entry.message = 0;		yyval.ext_entry.src_op = 0;		yyval.ext_entry.dst_op = 0;		yyval.ext_entry.src_addr = yyvsp[-1].std_entry.src_addr;		yyval.ext_entry.src_mask = yyvsp[-1].std_entry.src_mask;		yyval.ext_entry.src_port = 0;		yyval.ext_entry.src_port2 = 0;		yyval.ext_entry.dst_addr = yyvsp[0].std_entry.src_addr;		yyval.ext_entry.dst_mask = yyvsp[0].std_entry.src_mask;		yyval.ext_entry.dst_port = 0;		yyval.ext_entry.dst_port2 = 0;		yyval.ext_entry.matches = 0;		yyval.ext_entry.flag = ACL_FLAG_IP_ALL;	}break;case 26:#line 141 "aclyacc.y"{		yyval.ext_entry.protocol = 0;		yyval.ext_entry.precedence = yyvsp[0].ext_entry.precedence;		yyval.ext_entry.tos = yyvsp[0].ext_entry.tos;		yyval.ext_entry.type = 0;		yyval.ext_entry.type_code = 0;		yyval.ext_entry.message = 0;		yyval.ext_entry.src_op = 0;		yyval.ext_entry.dst_op = 0;		yyval.ext_entry.src_addr = yyvsp[-2].std_entry.src_addr;		yyval.ext_entry.src_mask = yyvsp[-2].std_entry.src_mask;		yyval.ext_entry.src_port = 0;		yyval.ext_entry.src_port2 = 0;		yyval.ext_entry.dst_addr = yyvsp[-1].std_entry.src_addr;		yyval.ext_entry.dst_mask = yyvsp[-1].std_entry.src_mask;		yyval.ext_entry.dst_port = 0;		yyval.ext_entry.dst_port2 = 0;		yyval.ext_entry.matches = 0;		yyval.ext_entry.flag = ACL_FLAG_IP_ALL | yyvsp[-1].std_entry.flag;	}break;case 27:#line 163 "aclyacc.y"{		yyval.ext_entry.protocol = IPPROTO_ICMP;		yyval.ext_entry.precedence = 0;		yyval.ext_entry.tos = 0;		yyval.ext_entry.type = 0;		yyval.ext_entry.type_code = 0;		yyval.ext_entry.message = 0;		yyval.ext_entry.src_op = 0;		yyval.ext_entry.dst_op = 0;		yyval.ext_entry.src_addr = yyvsp[-1].std_entry.src_addr;		yyval.ext_entry.src_mask = yyvsp[-1].std_entry.src_mask;		yyval.ext_entry.src_port = 0;		yyval.ext_entry.src_port2 = 0;		yyval.ext_entry.dst_addr = yyvsp[0].std_entry.src_addr;		yyval.ext_entry.dst_mask = yyvsp[0].std_entry.src_mask;		yyval.ext_entry.dst_port = 0;		yyval.ext_entry.dst_port2 = 0;		yyval.ext_entry.matches = 0;		yyval.ext_entry.flag = 0;	}break;case 28:#line 183 "aclyacc.y"{}break;case 29:#line 184 "aclyacc.y"{}break;case 30:#line 185 "aclyacc.y"{}break;case 31:#line 188 "aclyacc.y"{		yyval.ext_entry.protocol = IPPROTO_IGMP;		yyval.ext_entry.precedence = 0;		yyval.ext_entry.tos = 0;		yyval.ext_entry.type = 0;		yyval.ext_entry.type_code = 0;		yyval.ext_entry.message = 0;		yyval.ext_entry.src_op = 0;		yyval.ext_entry.dst_op = 0;		yyval.ext_entry.src_addr = yyvsp[-1].std_entry.src_addr;		yyval.ext_entry.src_mask = yyvsp[-1].std_entry.src_mask;		yyval.ext_entry.src_port = 0;		yyval.ext_entry.src_port2 = 0;		yyval.ext_entry.dst_addr = yyvsp[0].std_entry.src_addr;		yyval.ext_entry.dst_mask = yyvsp[0].std_entry.src_mask;		yyval.ext_entry.dst_port = 0;		yyval.ext_entry.dst_port2 = 0;		yyval.ext_entry.matches = 0;		yyval.ext_entry.flag = 0;	}break;case 32:#line 208 "aclyacc.y"{}break;case 33:#line 209 "aclyacc.y"{}break;case 34:#line 210 "aclyacc.y"{}break;case 35:#line 213 "aclyacc.y"{		yyval.ext_entry.protocol = IPPROTO_TCP;		yyval.ext_entry.precedence = 0;		yyval.ext_entry.tos = 0;		yyval.ext_entry.type = 0;		yyval.ext_entry.type_code = 0;		yyval.ext_entry.message = 0;		yyval.ext_entry.src_op = 0;		yyval.ext_entry.dst_op = 0;		yyval.ext_entry.src_addr = yyvsp[-1].std_entry.src_addr;		yyval.ext_entry.src_mask = yyvsp[-1].std_entry.src_mask;		yyval.ext_entry.src_port = 0;		yyval.ext_entry.src_port2 = 0;		yyval.ext_entry.dst_addr = yyvsp[0].std_entry.src_addr;		yyval.ext_entry.dst_mask = yyvsp[0].std_entry.src_mask;		yyval.ext_entry.dst_port = 0;		yyval.ext_entry.dst_port2 = 0;		yyval.ext_entry.matches = 0;		yyval.ext_entry.flag = 0;	}break;case 36:#line 233 "aclyacc.y"{}break;case 37:#line 234 "aclyacc.y"{}break;case 38:#line 235 "aclyacc.y"{}break;case 39:#line 238 "aclyacc.y"{		yyval.ext_entry.protocol = IPPROTO_UDP;		yyval.ext_entry.precedence = 0;		yyval.ext_entry.tos = 0;		yyval.ext_entry.type = 0;		yyval.ext_entry.type_code = 0;		yyval.ext_entry.message = 0;		yyval.ext_entry.src_op = 0;		yyval.ext_entry.dst_op = 0;		yyval.ext_entry.src_addr = yyvsp[-1].std_entry.src_addr;		yyval.ext_entry.src_mask = yyvsp[-1].std_entry.src_mask;		yyval.ext_entry.src_port = 0;		yyval.ext_entry.src_port2 = 0;		yyval.ext_entry.dst_addr = yyvsp[0].std_entry.src_addr;		yyval.ext_entry.dst_mask = yyvsp[0].std_entry.src_mask;		yyval.ext_entry.dst_port = 0;		yyval.ext_entry.dst_port2 = 0;		yyval.ext_entry.matches = 0;		yyval.ext_entry.flag = 0;	}break;case 40:#line 258 "aclyacc.y"{}break;case 41:#line 259 "aclyacc.y"{}break;case 42:#line 260 "aclyacc.y"{}break;case 61:#line 292 "aclyacc.y"{}break;case 62:#line 293 "aclyacc.y"{}break;case 63:#line 294 "aclyacc.y"{}break;case 64:#line 295 "aclyacc.y"{}break;case 65:#line 296 "aclyacc.y"{}break;case 66:#line 297 "aclyacc.y"{}break;case 67:#line 298 "aclyacc.y"{}break;case 68:#line 301 "aclyacc.y"{}break;case 74:#line 315 "aclyacc.y"{		yyval.std_entry.src_addr = yyvsp[-1].ip;		yyval.std_entry.src_mask = yyvsp[0].ip;		yyval.std_entry.matches = 0;		yyval.std_entry.flag = 0;	}break;case 75:#line 321 "aclyacc.y"{		yyval.std_entry.src_addr = 0x0;		yyval.std_entry.src_mask = 0xFFFFFFFF;		yyval.std_entry.matches = 0;		yyval.std_entry.flag = 0;	}break;case 76:#line 327 "aclyacc.y"{		yyval.std_entry.src_addr = yyvsp[0].ip;		yyval.std_entry.src_mask = 0x0;		yyval.std_entry.matches = 0;		yyval.std_entry.flag = 0;	}break;#line 853 "y.tab.c"    }    yyssp -= yym;    yystate = *yyssp;    yyvsp -= yym;    yym = yylhs[yyn];    if (yystate == 0 && yym == 0)    {#if YYDEBUG        if (yydebug)            printf("%sdebug: after reduction, shifting from state 0 to\ state %d\n", YYPREFIX, YYFINAL);#endif        yystate = YYFINAL;        *++yyssp = YYFINAL;        *++yyvsp = yyval;        if (yychar < 0)        {            if ((yychar = yylex()) < 0) yychar = 0;#if YYDEBUG            if (yydebug)            {                yys = 0;                if (yychar <= YYMAXTOKEN) yys = yyname[yychar];                if (!yys) yys = "illegal-symbol";                printf("%sdebug: state %d, reading %d (%s)\n",                        YYPREFIX, YYFINAL, yychar, yys);            }#endif        }        if (yychar == 0) goto yyaccept;        goto yyloop;    }    if ((yyn = yygindex[yym]) && (yyn += yystate) >= 0 &&            yyn <= YYTABLESIZE && yycheck[yyn] == yystate)        yystate = yytable[yyn];    else        yystate = yydgoto[yym];#if YYDEBUG    if (yydebug)        printf("%sdebug: after reduction, shifting from state %d \to state %d\n", YYPREFIX, *yyssp, yystate);#endif    if (yyssp >= yysslim && yygrowstack())    {        goto yyoverflow;    }    *++yyssp = yystate;    *++yyvsp = yyval;    goto yyloop;yyoverflow:    yyerror("yacc stack overflow");yyabort:    return (1);yyaccept:    return (0);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -