Blame src/conf_lex.l

Packit Service 5e8d2a
SC	[\\'"netbgr\ @#]
Packit Service 5e8d2a
C	[a-zA-Z0-9öäüßåÖÄÜÅ_\\=$%£@&/!\^\~;:.,\?\{\}\(\)\[\]\<\>\-\+\*\|\'\`]
Packit Service 5e8d2a
Packit Service 5e8d2a
E	[\ ]*"="[\ ]*
Packit Service 5e8d2a
Packit Service 5e8d2a
L	[a-zA-ZöäüßåÖÄÜÅ0-9_%]
Packit Service 5e8d2a
D	[0-9]
Packit Service 5e8d2a
Packit Service 5e8d2a
PC	\\[^\n]
Packit Service 5e8d2a
Packit Service 5e8d2a
EX      [" "\t]*
Packit Service 5e8d2a
Packit Service 5e8d2a
%{
Packit Service 5e8d2a
Packit Service 5e8d2a
#define YYDEBUG 1
Packit Service 5e8d2a
Packit Service 5e8d2a
/*
Packit Service 5e8d2a
 * Copyright (C) 1999-2002,2004-2006,2010-2013,2015,2016 Rami Lehti, Pablo
Packit Service 5e8d2a
 * Virolainen, Richard van den Berg, Hannes von Haugwitz
Packit Service 5e8d2a
 * $Header$
Packit Service 5e8d2a
 * This program is free software; you can redistribute it and/or
Packit Service 5e8d2a
 * modify it under the terms of the GNU General Public License as
Packit Service 5e8d2a
 * published by the Free Software Foundation; either version 2 of the
Packit Service 5e8d2a
 * License, or (at your option) any later version.
Packit Service 5e8d2a
 *
Packit Service 5e8d2a
 * This program is distributed in the hope that it will be useful, but
Packit Service 5e8d2a
 * WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 5e8d2a
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Packit Service 5e8d2a
 * General Public License for more details.
Packit Service 5e8d2a
 *
Packit Service 5e8d2a
 * You should have received a copy of the GNU General Public License
Packit Service 5e8d2a
 * along with this program; if not, write to the Free Software
Packit Service 5e8d2a
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
Packit Service 5e8d2a
 */
Packit Service 5e8d2a
Packit Service 5e8d2a
#include "aide.h"
Packit Service 5e8d2a
#include <string.h>
Packit Service 5e8d2a
#include "gen_list.h"
Packit Service 5e8d2a
#include "conf_yacc.h"
Packit Service 5e8d2a
#include "list.h"
Packit Service 5e8d2a
#include "symboltable.h"
Packit Service 5e8d2a
#include "commandconf.h"
Packit Service 5e8d2a
Packit Service 5e8d2a
void includehandler(void) ;
Packit Service 5e8d2a
void conf_put_token(const char*);
Packit Service 5e8d2a
Packit Service 5e8d2a
int firstnotempty(char* s);
Packit Service 5e8d2a
Packit Service 5e8d2a
typedef struct conf_buffer_type {
Packit Service 5e8d2a
  char* buff;
Packit Service 5e8d2a
  char* pos;
Packit Service 5e8d2a
} conf_buffer_type;
Packit Service 5e8d2a
Packit Service 5e8d2a
list* l_symt=NULL;
Packit Service 5e8d2a
list* conf_buffer=NULL;
Packit Service 5e8d2a
int condition=0;
Packit Service 5e8d2a
int varbol=0;
Packit Service 5e8d2a
Packit Service 5e8d2a
long conf_lineno=1;
Packit Service 5e8d2a
int newlinelastinconfig=0;
Packit Service 5e8d2a
Packit Service 5e8d2a
#define MAX_INCLUDE_DEPTH 10
Packit Service 5e8d2a
YY_BUFFER_STATE include_stack[MAX_INCLUDE_DEPTH];
Packit Service 5e8d2a
int include_stack_ptr = 0;
Packit Service 5e8d2a
Packit Service 5e8d2a
#define YY_INPUT(buf,result,max_size) \
Packit Service 5e8d2a
        if( ((result=conf_input_wrapper(buf,max_size,yyin)) == 0) \
Packit Service 5e8d2a
            && ferror(yyin) ) \
Packit Service 5e8d2a
          YY_FATAL_ERROR( "input in flex scanner failed" );
Packit Service 5e8d2a
Packit Service 5e8d2a
int var_in_conflval=0;
Packit Service 5e8d2a
Packit Service 5e8d2a
%}
Packit Service 5e8d2a
Packit Service 5e8d2a
%Start A EXPR DEFSTMT DEFSTMT2 IFDEFSTMT INCLUDE EXPREQUHUNT VARSUB CONFVALHUNT IFHOSTSTMT E2FSATTRS
Packit Service 5e8d2a
Packit Service 5e8d2a
%%
Packit Service 5e8d2a
Packit Service 5e8d2a
"#"[^\n]* {
Packit Service 5e8d2a
 }
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
^[^\n]*"\@\@\{"({L}+)"}"[^\n]* {
Packit Service 5e8d2a
  
Packit Service 5e8d2a
  putbackvariable(conftext);
Packit Service 5e8d2a
Packit Service 5e8d2a
  error(230,"%li:Variable substitution\n",conf_lineno+1);
Packit Service 5e8d2a
  
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"=/"({C}|{PC})* {
Packit Service 5e8d2a
  conflval.s=strdup(conftext+1+firstnotempty(conftext));
Packit Service 5e8d2a
  BEGIN(EXPR);
Packit Service 5e8d2a
  return (TEQURXRULE);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"/"({C}|{PC})* {
Packit Service 5e8d2a
  conflval.s=strdup(conftext+firstnotempty(conftext));
Packit Service 5e8d2a
  error(230,"%li:Selrule\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN(EXPR);
Packit Service 5e8d2a
  return (TSELRXRULE );
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"!/"({C}|{PC})* {  
Packit Service 5e8d2a
  conflval.s=strdup(conftext+1+firstnotempty(conftext));
Packit Service 5e8d2a
  error(230,"%li:Negrule\n",conf_lineno);
Packit Service 5e8d2a
  return (TNEGRXRULE );
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*({L})+ {
Packit Service 5e8d2a
  conflval.s=strdup(conftext+firstnotempty(conftext));
Packit Service 5e8d2a
  error(230,"%li:Equrule\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN(EXPREQUHUNT);
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<EXPREQUHUNT>[\ \t]*"="[\ \t]* {
Packit Service 5e8d2a
  BEGIN(EXPR);
Packit Service 5e8d2a
  return('=');
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<EXPR>, {
Packit Service 5e8d2a
  return (',');
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<EXPR>[\ \t]*({L}|{D}|">")+ {
Packit Service 5e8d2a
  conflval.s=strdup(conftext+firstnotempty(conftext));
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<EXPR>[\ \t]*\n {
Packit Service 5e8d2a
  conf_lineno++;
Packit Service 5e8d2a
  return (TNEWLINE);
Packit Service c89282
//  BEGIN 0;
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<EXPR>\+ {
Packit Service 5e8d2a
  return ('+');
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<EXPR>\- {
Packit Service 5e8d2a
  return ('-');
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<DEFSTMT>({L})+ {
Packit Service 5e8d2a
  error(230," %s",conftext);
Packit Service 5e8d2a
  conflval.s=strdup(conftext);
Packit Service 5e8d2a
  BEGIN (DEFSTMT2);
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<DEFSTMT2>({C})+ {
Packit Service 5e8d2a
  error(230," %s",conftext);
Packit Service 5e8d2a
  conflval.s=strdup(conftext);
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<DEFSTMT2>[\ \t]*"\n" { 
Packit Service 5e8d2a
  error(230,"\n");
Packit Service 5e8d2a
  conf_lineno++;
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TNEWLINE);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@define" {
Packit Service 5e8d2a
  error(230,"%li:@@define",conf_lineno);
Packit Service 5e8d2a
  BEGIN DEFSTMT;
Packit Service 5e8d2a
  return (TDEFINE);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@undef" {
Packit Service 5e8d2a
  error(230,"%li:@@undef",conf_lineno);
Packit Service 5e8d2a
  BEGIN IFDEFSTMT;
Packit Service 5e8d2a
  return (TUNDEF);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@ifndef" {
Packit Service 5e8d2a
  error(230,"%li:@@ifndef",conf_lineno);
Packit Service 5e8d2a
  BEGIN IFDEFSTMT;
Packit Service 5e8d2a
  return (TIFNDEF);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@ifdef" {
Packit Service 5e8d2a
  error(230,"%li:@@ifdef",conf_lineno);
Packit Service 5e8d2a
  BEGIN IFDEFSTMT;
Packit Service 5e8d2a
  return (TIFDEF);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@else" {
Packit Service 5e8d2a
  error(230,"%li:@@else\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TELSE);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@endif" {
Packit Service 5e8d2a
  error(230,"%li:@@endif\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TENDIF);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^"\@\@begin_db" {
Packit Service 5e8d2a
  error(230,"%li:@@begin_db",conf_lineno);
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TBEGIN_DB);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<IFDEFSTMT>({L})+ {
Packit Service 5e8d2a
  error(230," %s\n",conftext);
Packit Service 5e8d2a
  conflval.s=strdup(conftext);
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@ifhost" {
Packit Service 5e8d2a
  error(230,"%li:@@ifhost",conf_lineno);
Packit Service 5e8d2a
  BEGIN IFHOSTSTMT;
Packit Service 5e8d2a
  return (TIFHOST);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@ifnhost" {
Packit Service 5e8d2a
  error(230,"%li:@@ifnhost",conf_lineno);
Packit Service 5e8d2a
  BEGIN IFHOSTSTMT;
Packit Service 5e8d2a
  return (TIFNHOST);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<IFHOSTSTMT>({L}|"-")+ {
Packit Service 5e8d2a
  error(230," %s\n",conftext);
Packit Service 5e8d2a
  conflval.s=strdup(conftext);
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@db_spec" {
Packit Service 5e8d2a
  conf_put_token("\n@@db_spec");
Packit Service 5e8d2a
  error(230,"%li:@@db_spec",conf_lineno);
Packit Service 5e8d2a
  return (TDBSPEC);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@begin_config" {
Packit Service 5e8d2a
  error(230,"%li:@@begin_config",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TBEGIN_CONFIG);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@end_config" {
Packit Service 5e8d2a
  return (TEND_CONFIG);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"\@\@include" {
Packit Service 5e8d2a
  BEGIN INCLUDE;
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<INCLUDE>[^ \t\n]+ {
Packit Service 5e8d2a
  includehandler();
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  error(230,"%li:@@include\n",conf_lineno);
Packit Service 5e8d2a
  return (TNEWLINE);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<<EOF>> {
Packit Service 5e8d2a
        if (yy_hold_char=='\n'){
Packit Service 5e8d2a
            newlinelastinconfig=1;
Packit Service 5e8d2a
        }else {
Packit Service 5e8d2a
            newlinelastinconfig=0;
Packit Service 5e8d2a
        }
Packit Service 5e8d2a
        if ( --include_stack_ptr < 0 )
Packit Service 5e8d2a
            {
Packit Service 5e8d2a
            yyterminate();
Packit Service 5e8d2a
            }
Packit Service 5e8d2a
Packit Service 5e8d2a
        else
Packit Service 5e8d2a
            {
Packit Service 5e8d2a
Packit Service 5e8d2a
            if (confin != stdin ) {
Packit Service 5e8d2a
              fclose(confin);
Packit Service 5e8d2a
              }
Packit Service 5e8d2a
Packit Service 5e8d2a
            conf_delete_buffer( YY_CURRENT_BUFFER );
Packit Service 5e8d2a
            conf_switch_to_buffer(
Packit Service 5e8d2a
                 include_stack[include_stack_ptr] );
Packit Service 5e8d2a
            }
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
[\t\ ]+ {}
Packit Service 5e8d2a
Packit Service 5e8d2a
"\n" { 
Packit Service 5e8d2a
  conf_lineno++;
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TNEWLINE);
Packit Service 5e8d2a
 }
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"database"{E} {
Packit Service 5e8d2a
  error(230,"%li:database =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TDATABASE);
Packit Service 5e8d2a
} 
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"database_out"{E}  {
Packit Service 5e8d2a
  error(230,"%li:database_out =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TDATABASE_OUT);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"database_new"{E}  {
Packit Service 5e8d2a
  error(230,"%li:database_new =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TDATABASE_NEW);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"database_attrs"{E} {
Packit Service 5e8d2a
  error(230,"%li:database_attrs =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN EXPR;
Packit Service 5e8d2a
  return (TDATABASE_ATTRS);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"warn_dead_symlinks"{E} {
Packit Service 5e8d2a
  error(230,"%li:warn_dead_symlinks =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TWARNDEADSYMLINKS);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"grouped"{E} {
Packit Service 5e8d2a
  error(230,"%li:grouped =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TGROUPED);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"summarize_changes"{E} {
Packit Service 5e8d2a
  error(230,"%li:summarize_changes =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TSUMMARIZECHANGES);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"acl_no_symlink_follow"{E} {
Packit Service 5e8d2a
  error(230,"%li:acl_no_symlink_follow =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TACLNOSYMLINKFOLLOW);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"verbose"{E} {
Packit Service 5e8d2a
  error(230,"%li:verbose =\n",conf_lineno);
Packit Service 5e8d2a
  return (TVERBOSE);  
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"database_add_metadata"{E} {
Packit Service 5e8d2a
  error(230,"%li:database_add_metadata =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TDATABASEADDMETADATA);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"report_url"{E} {
Packit Service 5e8d2a
  error(230,"%li:report_url =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TREPORT_URL);  
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"report_detailed_init"{E} {
Packit Service 5e8d2a
  error(230,"%li:report_detailed_init =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TREPORTDETAILEDINIT);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"report_base16"{E} {
Packit Service 5e8d2a
  error(230,"%li:report_base16 =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TREPORTBASE16);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"report_quiet"{E} {
Packit Service 5e8d2a
  error(230,"%li:report_quiet =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TREPORTQUIET);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"report_ignore_e2fsattrs"{E} {
Packit Service 5e8d2a
  error(230,"%li:report_ignore_e2fsattrs =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN E2FSATTRS;
Packit Service 5e8d2a
  return (TREPORTIGNOREE2FSATTRS);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<E2FSATTRS>([A-Za-z]+|"0") {
Packit Service 5e8d2a
  conflval.s=strdup(conftext);
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"gzip_dbout"{E} {
Packit Service 5e8d2a
  error(230,"%li:gzip_dbout =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TGZIPDBOUT);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\t\ ]*"root_prefix"{E}  {
Packit Service 5e8d2a
  error(230,"%li:root_prefix =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TROOT_PREFIX);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 57cbf7
^[\t\ ]*"syslog_format"{E} {
Packit Service 57cbf7
  error(230,"%li:syslog_format =\n",conf_lineno);
Packit Service 57cbf7
  BEGIN CONFVALHUNT;
Packit Service 57cbf7
  return (SYSLOG_FORMAT);
Packit Service 57cbf7
}
Packit Service 57cbf7
Packit Service 5e8d2a
^[\t\ ]*"recstop"{E} {
Packit Service 5e8d2a
  error(230,"%li:recstop =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TRECSTOP);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
^[\ \t]*"config_version"{E} {
Packit Service 5e8d2a
  error(230,"%li:config_version =\n",conf_lineno);
Packit Service 5e8d2a
  BEGIN CONFVALHUNT;
Packit Service 5e8d2a
  return (TCONFIG_VERSION);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<CONFVALHUNT>("yes"|"true") {
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TTRUE);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<CONFVALHUNT>("no"|"false") {
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TFALSE);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
<CONFVALHUNT>({C})+ {
Packit Service 5e8d2a
  conflval.s=strdup(conftext);
Packit Service 5e8d2a
  BEGIN 0;
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
({L})+ {
Packit Service 5e8d2a
  conflval.s=strdup(conftext);
Packit Service 5e8d2a
  return (TSTRING);
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
[^\n] { return(conftext[0]); }
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
%%
Packit Service 5e8d2a
Packit Service 5e8d2a
int confwrap(void){
Packit Service 5e8d2a
  return 1;
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
void conf_put_token(const char* s){
Packit Service 5e8d2a
Packit Service 5e8d2a
  int i=0;
Packit Service 5e8d2a
Packit Service 5e8d2a
  for(i=strlen(s)-1;i>=0;i--){
Packit Service 5e8d2a
       unput(s[i]);
Packit Service 5e8d2a
       if(s[i]=='\n'){
Packit Service 5e8d2a
          conf_lineno--;
Packit Service 5e8d2a
       }
Packit Service 5e8d2a
  }
Packit Service 5e8d2a
  
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
int firstnotempty(char* s){
Packit Service 5e8d2a
  
Packit Service 5e8d2a
  int i=0;
Packit Service 5e8d2a
Packit Service 5e8d2a
  if (s==NULL) {
Packit Service 5e8d2a
    return i;
Packit Service 5e8d2a
  }
Packit Service 5e8d2a
Packit Service 5e8d2a
Packit Service 5e8d2a
  while( s[i]==' ' || s[i]=='\t') {
Packit Service 5e8d2a
    i++;
Packit Service 5e8d2a
  }
Packit Service 5e8d2a
Packit Service 5e8d2a
  return i;
Packit Service 5e8d2a
Packit Service 5e8d2a
}
Packit Service 5e8d2a
Packit Service 5e8d2a
const char* aide_key_4=CONFHMACKEY_04;
Packit Service 5e8d2a
const char* db_key_4=DBHMACKEY_04;
Packit Service 5e8d2a
Packit Service 5e8d2a
void includehandler(void) { 
Packit Service 5e8d2a
  /* got the include file name */
Packit Service 5e8d2a
  if ( include_stack_ptr >= MAX_INCLUDE_DEPTH )
Packit Service 5e8d2a
    {
Packit Service 5e8d2a
      error( 0, "Config includes nested too deeply\n" );
Packit Service 5e8d2a
      exit( 1 );
Packit Service 5e8d2a
    }
Packit Service 5e8d2a
Packit Service 5e8d2a
  if (strcmp(conftext,"-")==0) {
Packit Service 5e8d2a
      confin = stdin;
Packit Service 5e8d2a
    } else {
Packit Service 5e8d2a
      confin = fopen( conftext, "r" );
Packit Service 5e8d2a
    }
Packit Service 5e8d2a
  if ( ! confin ) {
Packit Service 5e8d2a
    error(0,"Cannot open config file %s\n",conftext);
Packit Service 5e8d2a
    exit(IO_ERROR);
Packit Service 5e8d2a
  } else {
Packit Service 5e8d2a
    include_stack[include_stack_ptr++] = YY_CURRENT_BUFFER;
Packit Service 5e8d2a
    conf_switch_to_buffer(conf_create_buffer( confin, YY_BUF_SIZE ) );
Packit Service 5e8d2a
  }
Packit Service 5e8d2a
  
Packit Service 5e8d2a
}
Packit Service 5e8d2a