X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=ircd%2Fircd_lexer.l;h=c149a63241ecca1cecfb77957db1664a25e7aed0;hb=refs%2Fheads%2Fupstream-ssl;hp=231c64b613cf628a90002f70c4e65730913c65b7;hpb=dcecf316a0813ae009af5aaa2ca938a53c1a3835;p=ircu2.10.12-pk.git diff --git a/ircd/ircd_lexer.l b/ircd/ircd_lexer.l index 231c64b..c149a63 100644 --- a/ircd/ircd_lexer.l +++ b/ircd/ircd_lexer.l @@ -26,6 +26,7 @@ #include #include #include "config.h" +#include "fileio.h" #include "ircd.h" #include "ircd_alloc.h" #include "ircd_string.h" @@ -103,6 +104,11 @@ static struct lexer_token { TOKEN(FAST), TOKEN(AUTOCONNECT), TOKEN(PROGRAM), + TOKEN(DNS), + TOKEN(SSL), + TOKEN(CERTFILE), + TOKEN(KEYFILE), + TOKEN(CAFILE), #undef TOKEN { "administrator", ADMIN }, { "apass_opmode", TPRIV_APASS_OPMODE }, @@ -184,22 +190,44 @@ find_token(char *token) return tok ? tok->value : 0; } -void +static FBFILE *lexer_input; + +#undef YY_INPUT +#define YY_INPUT(buf, res, size) res = (fbgets(buf, size, lexer_input) ? strlen(buf) : 0) + +int init_lexer(void) { - yyin = fopen(configfile, "r"); - if (yyin == NULL) + lexer_input = fbopen(configfile, "r"); + if (lexer_input == NULL) { #ifdef YY_FATAL_ERROR YY_FATAL_ERROR("Could not open the configuration file."); #else fprintf(stderr, "Could not open the configuration file."); #endif + return 0; } #ifdef YY_NEW_FILE YY_NEW_FILE; #endif lineno = 1; + return 1; +} + +void deinit_lexer(void) +{ + if (lexer_input != NULL) + { + fbclose(lexer_input); + lexer_input = NULL; + } +} + +int +yywrap(void) +{ + return 1; } %}