Author: rcritten
Update of /cvs/dirsec/mod_nss In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv18945
Modified Files: Makefile.am Makefile.in configure configure.in mod_nss.c mod_nss.h nss_engine_pphrase.c nss_engine_vars.c nss_expr_eval.c nss_expr_parse.c nss_expr_parse.h nss_expr_parse.y nss_expr_scan.c Log Message: Changes to allow the mod_nss to work in Apache 2.2.0. Based on a patch from Oden Eriksson.
The conditional to determine which API to use is a bit weak at the moment but it works with Apache 2.0.54 and 2.2.0.
Index: Makefile.am =================================================================== RCS file: /cvs/dirsec/mod_nss/Makefile.am,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Makefile.am 3 Oct 2005 14:59:26 -0000 1.7 +++ Makefile.am 4 Jan 2006 22:07:57 -0000 1.8 @@ -7,11 +7,13 @@
## Define the source file for the module libmodnss_la_SOURCES = mod_nss.c nss_engine_config.c nss_engine_init.c nss_engine_io.c nss_engine_kernel.c nss_engine_log.c nss_engine_pphrase.c nss_engine_vars.c nss_expr.c nss_expr_eval.c nss_expr_parse.y nss_expr_scan.l nss_util.c nss_engine_rand.c +libmodnss_la_LDFLAGS = -module -avoid-version
## Set the includes and libraries needed INCLUDES = -I@apache_inc@ @nspr_inc@ @nss_inc@ @apr_inc@ LIBS = @nspr_lib@ @nss_lib@ -lssl3 -lsmime3 -lnss3 -lsoftokn3 -lplc4 -lplds4 -lnspr4 @SSL2_TRUE@AM_CFLAGS=-DWANT_SSL2 +EXTRA_CPPFLAGS=@extra_cppflags@
install-libLTLIBRARIES: libmodnss.la @APXS@ -i -a -n nss libmodnss.la @@ -65,7 +67,7 @@
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) + $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ $(AM_LDFLAGS) $(LDFLAGS) -o $@
Index: Makefile.in =================================================================== RCS file: /cvs/dirsec/mod_nss/Makefile.in,v retrieving revision 1.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- Makefile.in 3 Nov 2005 19:46:24 -0000 1.12 +++ Makefile.in 4 Jan 2006 22:07:57 -0000 1.13 @@ -94,6 +94,7 @@ apache_inc = @apache_inc@ apache_prefix = @apache_prefix@ apr_inc = @apr_inc@ +extra_cppflags = @extra_cppflags@ install_sh = @install_sh@ nspr_dir = @nspr_dir@ nspr_inc = @nspr_inc@ @@ -108,14 +109,16 @@ nss_pcache_SOURCES = nss_pcache.c
libmodnss_la_SOURCES = mod_nss.c nss_engine_config.c nss_engine_init.c nss_engine_io.c nss_engine_kernel.c nss_engine_log.c nss_engine_pphrase.c nss_engine_vars.c nss_expr.c nss_expr_eval.c nss_expr_parse.y nss_expr_scan.l nss_util.c nss_engine_rand.c +libmodnss_la_LDFLAGS = -module -avoid-version
INCLUDES = -I@apache_inc@ @nspr_inc@ @nss_inc@ @apr_inc@ LIBS = @nspr_lib@ @nss_lib@ -lssl3 -lsmime3 -lnss3 -lsoftokn3 -lplc4 -lplds4 -lnspr4 @SSL2_TRUE@AM_CFLAGS = -DWANT_SSL2 +EXTRA_CPPFLAGS = @extra_cppflags@
LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) \ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ - $(AM_CFLAGS) $(CFLAGS) + $(AM_CFLAGS) $(CFLAGS) $(EXTRA_CPPFLAGS)
LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ @@ -127,7 +130,6 @@ CONFIG_CLEAN_FILES = nss.conf gencert LTLIBRARIES = $(lib_LTLIBRARIES)
-libmodnss_la_LDFLAGS = libmodnss_la_LIBADD = am_libmodnss_la_OBJECTS = mod_nss.lo nss_engine_config.lo \ nss_engine_init.lo nss_engine_io.lo nss_engine_kernel.lo \
Index: configure =================================================================== RCS file: /cvs/dirsec/mod_nss/configure,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- configure 3 Nov 2005 19:46:24 -0000 1.9 +++ configure 4 Jan 2006 22:07:57 -0000 1.10 @@ -466,7 +466,7 @@ # include <unistd.h> #endif"
-ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S ECHO RANLIB ac_ct_RANLIB CPP EGREP LIBTOOL YACC LEX LEXLIB LEX_OUTPUT_ROOT SSL2_TRUE SSL2_FALSE APR_CONFIG APXS PKG_CONFIG apr_inc apache_inc apache_conf apache_prefix apache_bin nspr_inc nspr_lib nss_inc nss_lib nspr_dir nss_dir LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO AMTAR install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM AWK SET_MAKE CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE build build_cpu build_vendor build_os host host_cpu host_vendor host_os LN_S ECHO RANLIB ac_ct_RANLIB CPP EGREP LIBTOOL YACC LEX LEXLIB LEX_OUTPUT_ROOT SSL2_TRUE SSL2_FALSE APR_CONFIG APXS PKG_CONFIG apr_inc apache_inc apache_conf apache_prefix apache_bin nspr_inc nspr_lib nss_inc nss_lib nspr_dir nss_dir extra_cppflags LIBOBJS LTLIBOBJS' ac_subst_files=''
# Initialize some variables set by options. @@ -8452,7 +8452,7 @@ enableval="$enable_ssl2" ssl2=$enableval else - ssl2=yes + ssl2=no fi; if test $ssl2 = yes; then echo "$as_me:$LINENO: result: yes" >&5 @@ -8649,6 +8649,7 @@ apache_conf=`$APXS -q SYSCONFDIR` apache_prefix=`$APXS -q PREFIX` apache_bin=`$APXS -q SBINDIR` +extra_cppflags=`$APXS -q EXTRA_CPPFLAGS`
if ! test -f "$apache_inc/apr.h"; then if test -z "$apr_inc"; then @@ -8949,6 +8950,7 @@
+ # Write config.status and the Makefile ac_config_files="$ac_config_files Makefile nss.conf gencert" cat >confcache <<_ACEOF @@ -9679,6 +9681,7 @@ s,@nss_lib@,$nss_lib,;t t s,@nspr_dir@,$nspr_dir,;t t s,@nss_dir@,$nss_dir,;t t +s,@extra_cppflags@,$extra_cppflags,;t t s,@LIBOBJS@,$LIBOBJS,;t t s,@LTLIBOBJS@,$LTLIBOBJS,;t t CEOF
Index: configure.in =================================================================== RCS file: /cvs/dirsec/mod_nss/configure.in,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- configure.in 26 Sep 2005 19:38:52 -0000 1.6 +++ configure.in 4 Jan 2006 22:07:58 -0000 1.7 @@ -25,7 +25,7 @@ AC_MSG_CHECKING(for SSL2) AC_ARG_ENABLE(ssl2, [ --enable-ssl2 enable SSLv2 (default=no)], - ssl2=$enableval, ssl2=yes) + ssl2=$enableval, ssl2=no) if test $ssl2 = yes; then AC_MSG_RESULT(yes) else @@ -104,6 +104,7 @@ apache_conf=`$APXS -q SYSCONFDIR` apache_prefix=`$APXS -q PREFIX` apache_bin=`$APXS -q SBINDIR` +extra_cppflags=`$APXS -q EXTRA_CPPFLAGS`
if ! test -f "$apache_inc/apr.h"; then if test -z "$apr_inc"; then @@ -257,6 +258,7 @@ AC_SUBST(nss_lib) AC_SUBST(nspr_dir) AC_SUBST(nss_dir) +AC_SUBST(extra_cppflags)
# Write config.status and the Makefile AC_OUTPUT(Makefile nss.conf gencert)
Index: mod_nss.c =================================================================== RCS file: /cvs/dirsec/mod_nss/mod_nss.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- mod_nss.c 3 Oct 2005 14:59:26 -0000 1.9 +++ mod_nss.c 4 Jan 2006 22:07:58 -0000 1.10 @@ -362,7 +362,7 @@ return APR_SUCCESS; }
-static const char *nss_hook_http_method(const request_rec *r) +static const char *nss_hook_http_scheme(const request_rec *r) { SSLSrvConfigRec *sc = mySrvConfig(r->server);
@@ -394,7 +394,11 @@
ap_hook_pre_connection(nss_hook_pre_connection,NULL,NULL, APR_HOOK_MIDDLE); ap_hook_post_config (nss_init_Module, NULL,NULL, APR_HOOK_MIDDLE); - ap_hook_http_method (nss_hook_http_method, NULL,NULL, APR_HOOK_MIDDLE); +#ifndef AP_SERVER_MAJORVERSION_NUMBER + ap_hook_http_method (nss_hook_http_scheme, NULL,NULL, APR_HOOK_MIDDLE); +#else + ap_hook_http_scheme (nss_hook_http_scheme, NULL,NULL, APR_HOOK_MIDDLE); +#endif ap_hook_default_port (nss_hook_default_port, NULL,NULL, APR_HOOK_MIDDLE); ap_hook_pre_config (nss_hook_pre_config, NULL,NULL, APR_HOOK_MIDDLE); ap_hook_child_init (nss_init_Child, NULL,NULL, APR_HOOK_MIDDLE);
Index: mod_nss.h =================================================================== RCS file: /cvs/dirsec/mod_nss/mod_nss.h,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- mod_nss.h 3 Oct 2005 14:59:26 -0000 1.8 +++ mod_nss.h 4 Jan 2006 22:07:58 -0000 1.9 @@ -316,6 +316,15 @@ int fortezza_only; PRInt32 version; // protocol version valid for this cipher } cipher_properties; + +/* Compatibility between Apache 2.0.x and 2.2.x. The numeric version of + * the version first appeared in Apache 2.2.0 */ +#ifndef AP_SERVER_MAJORVERSION_NUMBER +typedef struct regex_t ap_regex_t; +#define AP_REG_EXTENDED REG_EXTENDED +#define AP_REG_NOSUB REG_NOSUB +#define AP_REG_ICASE REG_ICASE +#endif
enum sslversion { SSL2=1, SSL3=2, TLS=4};
Index: nss_engine_pphrase.c =================================================================== RCS file: /cvs/dirsec/mod_nss/nss_engine_pphrase.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- nss_engine_pphrase.c 4 Aug 2005 16:18:49 -0000 1.3 +++ nss_engine_pphrase.c 4 Jan 2006 22:07:58 -0000 1.4 @@ -125,7 +125,7 @@
snprintf(buf, 1024, "STOR\t%s\t%s", PK11_GetTokenName(slot), passwd); rv = apr_file_write_full(parg->mc->proc.in, buf, strlen(buf), NULL); - if (!APR_STATUS_IS_SUCCESS(rv)) { + if (rv != APR_SUCCESS) { ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL, "Unable to write to pin store for slot: %s APR err: %d", PK11_GetTokenName(slot), rv); nss_die(); @@ -139,9 +139,9 @@ memset(buf, 0, sizeof(buf)); rv = apr_file_read(parg->mc->proc.out, buf, &nBytes);
- if (APR_STATUS_IS_SUCCESS(rv)) + if (rv = APR_SUCCESS) res = atoi(buf); - if (!APR_STATUS_IS_SUCCESS(rv) || + if (rv != APR_SUCCESS || (res != PIN_SUCCESS && res != PIN_INCORRECTPW)) { ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL, "Unable to read from pin store for slot: %s APR err: %d", PK11_GetTokenName(slot), rv); @@ -245,7 +245,7 @@
snprintf(buf, 1024, "RETR\t%s", token_name); rv = apr_file_write_full(parg->mc->proc.in, buf, strlen(buf), NULL); - if (!APR_STATUS_IS_SUCCESS(rv)) { + if (rv != APR_SUCCESS) { ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL, "Unable to write to pin store for slot: %s APR err: %d", PK11_GetTokenName(slot), rv); nss_die(); @@ -256,7 +256,7 @@ */ memset(buf, 0, sizeof(buf)); rv = apr_file_read(parg->mc->proc.out, buf, &nBytes); - if (!APR_STATUS_IS_SUCCESS(rv)) { + if (rv != APR_SUCCESS) { ap_log_error(APLOG_MARK, APLOG_ERR, 0, NULL, "Unable to read from pin store for slot: %s APR err: %d", PK11_GetTokenName(slot), rv); nss_die();
Index: nss_engine_vars.c =================================================================== RCS file: /cvs/dirsec/mod_nss/nss_engine_vars.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- nss_engine_vars.c 31 May 2005 14:32:42 -0000 1.3 +++ nss_engine_vars.c 4 Jan 2006 22:07:58 -0000 1.4 @@ -100,7 +100,11 @@ else if (strcEQ(var, "REQUEST_METHOD")) result = (char *)(r->method); else if (strcEQ(var, "REQUEST_SCHEME")) +#ifndef AP_SERVER_MAJORVERSION_NUMBER result = (char *)ap_http_method(r); +#else + result = (char *)ap_http_scheme(r); +#endif else if (strcEQ(var, "REQUEST_URI")) result = r->uri; else if (strcEQ(var, "SCRIPT_FILENAME") ||
Index: nss_expr_eval.c =================================================================== RCS file: /cvs/dirsec/mod_nss/nss_expr_eval.c,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- nss_expr_eval.c 31 May 2005 14:32:42 -0000 1.2 +++ nss_expr_eval.c 4 Jan 2006 22:07:58 -0000 1.3 @@ -113,24 +113,24 @@ nss_expr *e1; nss_expr *e2; char *word; - regex_t *regex; + ap_regex_t *regex;
e1 = (nss_expr *)node->node_arg1; e2 = (nss_expr *)node->node_arg2; word = nss_expr_eval_word(r, e1); - regex = (regex_t *)(e2->node_arg1); + regex = (ap_regex_t *)(e2->node_arg1); return (ap_regexec(regex, word, 0, NULL, 0) == 0); } case op_NRE: { nss_expr *e1; nss_expr *e2; char *word; - regex_t *regex; + ap_regex_t *regex;
e1 = (nss_expr *)node->node_arg1; e2 = (nss_expr *)node->node_arg2; word = nss_expr_eval_word(r, e1); - regex = (regex_t *)(e2->node_arg1); + regex = (ap_regex_t *)(e2->node_arg1); return !(ap_regexec(regex, word, 0, NULL, 0) == 0); } default: {
View full diff with command: /usr/bin/cvs -f diff -kk -u -N -r 1.1 -r 1.2 nss_expr_parse.c Index: nss_expr_parse.c =================================================================== RCS file: /cvs/dirsec/mod_nss/nss_expr_parse.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- nss_expr_parse.c 31 May 2005 14:32:42 -0000 1.1 +++ nss_expr_parse.c 4 Jan 2006 22:07:58 -0000 1.2 @@ -1,479 +1,856 @@ +/* A Bison parser, made by GNU Bison 1.875c. */
-/* A Bison parser, made from nss_expr_parse.y - by GNU Bison version 1.28 */ +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc.
-#define YYBISON 1 /* Identify Bison output. */ + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Written by Richard Stallman by simplifying the original so called + ``semantic'' parser. */
-#define T_TRUE 257 -#define T_FALSE 258 -#define T_DIGIT 259 -#define T_ID 260 -#define T_STRING 261 -#define T_REGEX 262 -#define T_REGEX_I 263 -#define T_FUNC_FILE 264 -#define T_OP_EQ 265 -#define T_OP_NE 266 -#define T_OP_LT 267 -#define T_OP_LE 268 -#define T_OP_GT 269 -#define T_OP_GE 270 -#define T_OP_REG 271 -#define T_OP_NRE 272 -#define T_OP_IN 273 -#define T_OP_OR 274 -#define T_OP_AND 275 -#define T_OP_NOT 276 +/* All symbols defined below should begin with nss_expr_yy or YY, to avoid + infringing on user name space. This should be done even for local + variables, as they might otherwise be expanded by user macros. + There are some unavoidable exceptions within include files to + define necessary library symbols; they are noted "INFRINGES ON + USER NAME SPACE" below. */ + +/* Identify Bison output. */ +#define YYBISON 1 + +/* Skeleton name. */ +#define YYSKELETON_NAME "yacc.c" + +/* Pure parsers. */ +#define YYPURE 0 + +/* Using locations. */ +#define YYLSP_NEEDED 0 + + + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum nss_expr_yytokentype { + T_TRUE = 258, + T_FALSE = 259, + T_DIGIT = 260, + T_ID = 261, + T_STRING = 262, + T_REGEX = 263, + T_REGEX_I = 264, + T_FUNC_FILE = 265, + T_OP_EQ = 266, + T_OP_NE = 267, + T_OP_LT = 268, + T_OP_LE = 269, + T_OP_GT = 270, + T_OP_GE = 271, + T_OP_REG = 272, + T_OP_NRE = 273, + T_OP_IN = 274, + T_OP_OR = 275, + T_OP_AND = 276, + T_OP_NOT = 277 + }; +#endif +#define T_TRUE 258 +#define T_FALSE 259 +#define T_DIGIT 260 +#define T_ID 261 +#define T_STRING 262 +#define T_REGEX 263 +#define T_REGEX_I 264 +#define T_FUNC_FILE 265 +#define T_OP_EQ 266 +#define T_OP_NE 267 +#define T_OP_LT 268 +#define T_OP_LE 269 +#define T_OP_GT 270 +#define T_OP_GE 271 +#define T_OP_REG 272 +#define T_OP_NRE 273 +#define T_OP_IN 274 +#define T_OP_OR 275 +#define T_OP_AND 276 +#define T_OP_NOT 277
+ + + +/* Copy the first part of user declarations. */ #line 22 "nss_expr_parse.y"
#include "mod_nss.h"
+ +/* Enabling traces. */ +#ifndef YYDEBUG +# define YYDEBUG 0 +#endif + +/* Enabling verbose error messages. */ +#ifdef YYERROR_VERBOSE +# undef YYERROR_VERBOSE +# define YYERROR_VERBOSE 1 +#else +# define YYERROR_VERBOSE 0 +#endif + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) #line 26 "nss_expr_parse.y" -typedef union { +typedef union YYSTYPE { char *cpVal; nss_expr *exVal; } YYSTYPE; -#include <stdio.h> - -#ifndef __cplusplus -#ifndef __STDC__ -#define const -#endif +/* Line 191 of yacc.c. */ +#line 129 "y.tab.c" +# define nss_expr_yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 #endif
-#define YYFINAL 53 -#define YYFLAG -32768 -#define YYNTBASE 29 - -#define YYTRANSLATE(x) ((unsigned)(x) <= 276 ? nss_expr_yytranslate[x] : 36) - -static const char nss_expr_yytranslate[] = { 0, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 28, 2, 2, 23, - 24, 2, 2, 27, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 25, 2, 26, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, [...1792 lines suppressed...] + if (nss_expr_yychar == YYEOF) + for (;;) + { + YYPOPSTACK; + if (nss_expr_yyssp == nss_expr_yyss) + YYABORT; + YYDSYMPRINTF ("Error: popping", nss_expr_yystos[*nss_expr_yyssp], nss_expr_yyvsp, nss_expr_yylsp); + nss_expr_yydestruct (nss_expr_yystos[*nss_expr_yyssp], nss_expr_yyvsp); + } + } + else + { + YYDSYMPRINTF ("Error: discarding", nss_expr_yytoken, &nss_expr_yylval, &nss_expr_yylloc); + nss_expr_yydestruct (nss_expr_yytoken, &nss_expr_yylval); + nss_expr_yychar = YYEMPTY;
- nss_expr_yychar = YYEMPTY; + } }
- /* Else will try to reuse lookahead token - after shifting the error token. */ - - nss_expr_yyerrstatus = 3; /* Each real token shifted decrements this */ + /* Else will try to reuse lookahead token after shifting the error + token. */ + goto nss_expr_yyerrlab1;
- goto nss_expr_yyerrhandle;
-nss_expr_yyerrdefault: /* current state does not do anything special for the error token. */ +/*---------------------------------------------------. +| nss_expr_yyerrorlab -- error raised explicitly by YYERROR. | +`---------------------------------------------------*/ +nss_expr_yyerrorlab:
-#if 0 - /* This is wrong; only states that explicitly want error tokens - should shift them. */ - nss_expr_yyn = nss_expr_yydefact[nss_expr_yystate]; /* If its default is to accept any token, ok. Otherwise pop it.*/ - if (nss_expr_yyn) goto nss_expr_yydefault; +#ifdef __GNUC__ + /* Pacify GCC when the user code never invokes YYERROR and the label + nss_expr_yyerrorlab therefore never appears in user code. */ + if (0) + goto nss_expr_yyerrorlab; #endif
-nss_expr_yyerrpop: /* pop the current state because it cannot handle the error token */ - - if (nss_expr_yyssp == nss_expr_yyss) YYABORT; - nss_expr_yyvsp--; - nss_expr_yystate = *--nss_expr_yyssp; -#ifdef YYLSP_NEEDED - nss_expr_yylsp--; -#endif + nss_expr_yyvsp -= nss_expr_yylen; + nss_expr_yyssp -= nss_expr_yylen; + nss_expr_yystate = *nss_expr_yyssp; + goto nss_expr_yyerrlab1;
-#if YYDEBUG != 0 - if (nss_expr_yydebug) - { - short *ssp1 = nss_expr_yyss - 1; - fprintf (stderr, "Error: state stack now"); - while (ssp1 != nss_expr_yyssp) - fprintf (stderr, " %d", *++ssp1); - fprintf (stderr, "\n"); - } -#endif
-nss_expr_yyerrhandle: +/*-------------------------------------------------------------. +| nss_expr_yyerrlab1 -- common code for both syntax error and YYERROR. | +`-------------------------------------------------------------*/ +nss_expr_yyerrlab1: + nss_expr_yyerrstatus = 3; /* Each real token shifted decrements this. */
- nss_expr_yyn = nss_expr_yypact[nss_expr_yystate]; - if (nss_expr_yyn == YYFLAG) - goto nss_expr_yyerrdefault; + for (;;) + { + nss_expr_yyn = nss_expr_yypact[nss_expr_yystate]; + if (nss_expr_yyn != YYPACT_NINF) + { + nss_expr_yyn += YYTERROR; + if (0 <= nss_expr_yyn && nss_expr_yyn <= YYLAST && nss_expr_yycheck[nss_expr_yyn] == YYTERROR) + { + nss_expr_yyn = nss_expr_yytable[nss_expr_yyn]; + if (0 < nss_expr_yyn) + break; + } + }
- nss_expr_yyn += YYTERROR; - if (nss_expr_yyn < 0 || nss_expr_yyn > YYLAST || nss_expr_yycheck[nss_expr_yyn] != YYTERROR) - goto nss_expr_yyerrdefault; + /* Pop the current state because it cannot handle the error token. */ + if (nss_expr_yyssp == nss_expr_yyss) + YYABORT;
- nss_expr_yyn = nss_expr_yytable[nss_expr_yyn]; - if (nss_expr_yyn < 0) - { - if (nss_expr_yyn == YYFLAG) - goto nss_expr_yyerrpop; - nss_expr_yyn = -nss_expr_yyn; - goto nss_expr_yyreduce; + YYDSYMPRINTF ("Error: popping", nss_expr_yystos[*nss_expr_yyssp], nss_expr_yyvsp, nss_expr_yylsp); + nss_expr_yydestruct (nss_expr_yystos[nss_expr_yystate], nss_expr_yyvsp); + YYPOPSTACK; + nss_expr_yystate = *nss_expr_yyssp; + YY_STACK_PRINT (nss_expr_yyss, nss_expr_yyssp); } - else if (nss_expr_yyn == 0) - goto nss_expr_yyerrpop;
if (nss_expr_yyn == YYFINAL) YYACCEPT;
-#if YYDEBUG != 0 - if (nss_expr_yydebug) - fprintf(stderr, "Shifting error token, "); -#endif + YYDPRINTF ((stderr, "Shifting error token, "));
*++nss_expr_yyvsp = nss_expr_yylval; -#ifdef YYLSP_NEEDED - *++nss_expr_yylsp = nss_expr_yylloc; -#endif +
nss_expr_yystate = nss_expr_yyn; goto nss_expr_yynewstate;
- nss_expr_yyacceptlab: - /* YYACCEPT comes here. */ - if (nss_expr_yyfree_stacks) - { - free (nss_expr_yyss); - free (nss_expr_yyvs); -#ifdef YYLSP_NEEDED - free (nss_expr_yyls); -#endif - } - return 0;
- nss_expr_yyabortlab: - /* YYABORT comes here. */ - if (nss_expr_yyfree_stacks) - { - free (nss_expr_yyss); - free (nss_expr_yyvs); -#ifdef YYLSP_NEEDED - free (nss_expr_yyls); +/*-------------------------------------. +| nss_expr_yyacceptlab -- YYACCEPT comes here. | +`-------------------------------------*/ +nss_expr_yyacceptlab: + nss_expr_yyresult = 0; + goto nss_expr_yyreturn; + +/*-----------------------------------. +| nss_expr_yyabortlab -- YYABORT comes here. | +`-----------------------------------*/ +nss_expr_yyabortlab: + nss_expr_yyresult = 1; + goto nss_expr_yyreturn; + +#ifndef nss_expr_yyoverflow +/*----------------------------------------------. +| nss_expr_yyoverflowlab -- parser overflow comes here. | +`----------------------------------------------*/ +nss_expr_yyoverflowlab: + nss_expr_yyerror ("parser stack overflow"); + nss_expr_yyresult = 2; + /* Fall through. */ +#endif + +nss_expr_yyreturn: +#ifndef nss_expr_yyoverflow + if (nss_expr_yyss != nss_expr_yyssa) + YYSTACK_FREE (nss_expr_yyss); #endif - } - return 1; + return nss_expr_yyresult; } + + #line 128 "nss_expr_parse.y"
@@ -1077,3 +1437,4 @@ return 2; }
+
Index: nss_expr_parse.h =================================================================== RCS file: /cvs/dirsec/mod_nss/nss_expr_parse.h,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- nss_expr_parse.h 31 May 2005 14:32:42 -0000 1.1 +++ nss_expr_parse.h 4 Jan 2006 22:07:58 -0000 1.2 @@ -1,27 +1,94 @@ -typedef union { +/* A Bison parser, made by GNU Bison 1.875c. */ + +/* Skeleton parser for Yacc-like parsing with Bison, + Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003 Free Software Foundation, Inc. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2, or (at your option) + any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* As a special exception, when this file is copied by Bison into a + Bison output file, you may use that output file without restriction. + This special exception was added by the Free Software Foundation + in version 1.24 of Bison. */ + +/* Tokens. */ +#ifndef YYTOKENTYPE +# define YYTOKENTYPE + /* Put the tokens into the symbol table, so that GDB and other debuggers + know about them. */ + enum nss_expr_yytokentype { + T_TRUE = 258, + T_FALSE = 259, + T_DIGIT = 260, + T_ID = 261, + T_STRING = 262, + T_REGEX = 263, + T_REGEX_I = 264, + T_FUNC_FILE = 265, + T_OP_EQ = 266, + T_OP_NE = 267, + T_OP_LT = 268, + T_OP_LE = 269, + T_OP_GT = 270, + T_OP_GE = 271, + T_OP_REG = 272, + T_OP_NRE = 273, + T_OP_IN = 274, + T_OP_OR = 275, + T_OP_AND = 276, + T_OP_NOT = 277 + }; +#endif +#define T_TRUE 258 +#define T_FALSE 259 +#define T_DIGIT 260 +#define T_ID 261 +#define T_STRING 262 +#define T_REGEX 263 +#define T_REGEX_I 264 +#define T_FUNC_FILE 265 +#define T_OP_EQ 266 +#define T_OP_NE 267 +#define T_OP_LT 268 +#define T_OP_LE 269 +#define T_OP_GT 270 +#define T_OP_GE 271 +#define T_OP_REG 272 +#define T_OP_NRE 273 +#define T_OP_IN 274 +#define T_OP_OR 275 +#define T_OP_AND 276 +#define T_OP_NOT 277 + + + + +#if ! defined (YYSTYPE) && ! defined (YYSTYPE_IS_DECLARED) +#line 26 "nss_expr_parse.y" +typedef union YYSTYPE { char *cpVal; nss_expr *exVal; } YYSTYPE; -#define T_TRUE 257 -#define T_FALSE 258 -#define T_DIGIT 259 -#define T_ID 260 -#define T_STRING 261 -#define T_REGEX 262 -#define T_REGEX_I 263 -#define T_FUNC_FILE 264 -#define T_OP_EQ 265 -#define T_OP_NE 266 -#define T_OP_LT 267 -#define T_OP_LE 268 -#define T_OP_GT 269 -#define T_OP_GE 270 -#define T_OP_REG 271 -#define T_OP_NRE 272 -#define T_OP_IN 273 -#define T_OP_OR 274 -#define T_OP_AND 275 -#define T_OP_NOT 276 - +/* Line 1275 of yacc.c. */ +#line 86 "y.tab.h" +# define nss_expr_yystype YYSTYPE /* obsolescent; will be withdrawn */ +# define YYSTYPE_IS_DECLARED 1 +# define YYSTYPE_IS_TRIVIAL 1 +#endif
extern YYSTYPE nss_expr_yylval; + + +
Index: nss_expr_parse.y =================================================================== RCS file: /cvs/dirsec/mod_nss/nss_expr_parse.y,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- nss_expr_parse.y 31 May 2005 14:32:42 -0000 1.1 +++ nss_expr_parse.y 4 Jan 2006 22:07:58 -0000 1.2 @@ -100,18 +100,18 @@ ;
regex : T_REGEX { - regex_t *regex; + ap_regex_t *regex; if ((regex = ap_pregcomp(nss_expr_info.pool, $1, - REG_EXTENDED|REG_NOSUB)) == NULL) { + AP_REG_EXTENDED|AP_REG_NOSUB)) == NULL) { nss_expr_error = "Failed to compile regular expression"; YYERROR; } $$ = nss_expr_make(op_Regex, regex, NULL); } | T_REGEX_I { - regex_t *regex; + ap_regex_t *regex; if ((regex = ap_pregcomp(nss_expr_info.pool, $1, - REG_EXTENDED|REG_NOSUB|REG_ICASE)) == NULL) { + AP_REG_EXTENDED|AP_REG_NOSUB|AP_REG_ICASE)) == NULL) { nss_expr_error = "Failed to compile regular expression"; YYERROR; }
Index: nss_expr_scan.c =================================================================== RCS file: /cvs/dirsec/mod_nss/nss_expr_scan.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- nss_expr_scan.c 31 May 2005 14:32:42 -0000 1.1 +++ nss_expr_scan.c 4 Jan 2006 22:07:58 -0000 1.2 @@ -1432,6 +1432,7 @@ #endif /* ifndef YY_NO_UNPUT */
+#ifndef YY_NO_INPUT #ifdef __cplusplus static int yyinput() #else @@ -1503,7 +1504,7 @@
return c; } - +#endif /* YY_NO_INPUT */
#ifdef YY_USE_PROTOS void yyrestart( FILE *input_file )
389-commits@lists.fedoraproject.org