Mercurial > hg > freeDiameter
view extensions/acl_wl/aw_conf.l @ 1307:7a2ab0087788
Remerged proposed branch
author | Sebastien Decugis <sdecugis@freediameter.net> |
---|---|
date | Sun, 18 Sep 2016 20:36:51 +0800 |
parents | 1c6c8fa622ff |
children | 0dff6a604b0a |
line wrap: on
line source
/********************************************************************************************************* * Software License Agreement (BSD License) * * Author: Sebastien Decugis <sdecugis@freediameter.net> * * * * Copyright (c) 2013, WIDE Project and NICT * * All rights reserved. * * * * Redistribution and use of this software in source and binary forms, with or without modification, are * * permitted provided that the following conditions are met: * * * * * Redistributions of source code must retain the above * * copyright notice, this list of conditions and the * * following disclaimer. * * * * * Redistributions in binary form must reproduce the above * * copyright notice, this list of conditions and the * * following disclaimer in the documentation and/or other * * materials provided with the distribution. * * * * * Neither the name of the WIDE Project or NICT nor the * * names of its contributors may be used to endorse or * * promote products derived from this software without * * specific prior written permission of WIDE Project and * * NICT. * * * * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED * * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR * * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT * * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS * * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR * * TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *********************************************************************************************************/ /* Lex extension's configuration parser. * * The configuration file contains a default priority, and a list of peers with optional overwite priority. * -- see the app_test.conf.sample file for more detail. */ %{ #include "acl_wl.h" /* Include yacc tokens definitions */ #include "aw_conf.tab.h" /* Update the column information */ #define YY_USER_ACTION { \ yylloc->first_column = yylloc->last_column + 1; \ yylloc->last_column = yylloc->first_column + yyleng - 1; \ } /* Avoid warning with newer flex */ #define YY_NO_INPUT static int curflag = 0; %} %option bison-bridge bison-locations %option noyywrap %option nounput %% /* Update the line count, reset flag value */ \n { yylloc->first_line++; yylloc->last_line++; yylloc->last_column=0; curflag = 0; } /* Eat all spaces but not new lines */ ([[:space:]]{-}[\n])+ ; /* Eat all comments */ #.*$ ; /* Match the two allowed flags directly in LEX */ ALLOW_IPSEC { curflag |= PI_SEC_NONE; } ALLOW_OLD_TLS { curflag |= PI_SEC_TLS_OLD; } /* Any other string is considered a fqdn or partial fqdn with a star. The star can only be the first label. */ (\*|[[:alnum:]][[:alnum:]-]*)(\.[[:alnum:]][[:alnum:]-]*)+ { /* We matched a valid label, let's directly save it into the tree. The function will issue the appropriate warnings. */ CHECK_FCT_DO( aw_tree_add(yytext, curflag), return LEX_ERROR); yylval->string = yytext; return FQDN; } /* No match */ <*>[[:alnum:]]+ | /* This rule is only useful to print a complete token in error messages */ <*>. { TRACE_ERROR("Unrecognized text on line %d col %d: '%s'.", yylloc->first_line, yylloc->first_column, yytext); return LEX_ERROR; } %%