Author: rcritten
Update of /cvs/dirsec/mod_revocator
In directory cvs01.phx2.fedoraproject.org:/tmp/cvs-serv29776
Modified Files:
Makefile.am configure.in aclocal.m4 Makefile.in configure
ChangeLog README client.cpp client.h crlmanager.cpp
crlmanager.h ldapget.cpp ltmain.sh mod_rev.c mod_rev.h
revocator.conf
Added Files:
crlhelper.cpp
Log Message:
* Change initialization model to work with NSS > 3.11.9 and mod_nss 1.0.8.
* Use external helper program to retrieve CRLs so every Apache child
won't all retrieve the same CRL from the source.
Overall the changes are:
- initialize the revocator in each child, rather than the first time the
module is loaded
- create a two-way pipe to crlhelper
- read/write requests over the pipe for URLs to crlhelper
- use a semaphore to control access to crlhelper
- crlhelper will cache files for 58 seconds so multiple children can use the
same download but overall control is still in CRLManager.
- still support 304, remote file not updated.
--- NEW FILE crlhelper.cpp ---
/* Copyright 2001-2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
*
http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <unistd.h>
#include <string.h>
#include <syslog.h>
#include <sys/types.h>
#include <sys/ipc.h>
#include <sys/sem.h>
#include <nss.h>
#include <nspr.h>
#include <secitem.h>
#include <prtypes.h>
#include <seccomon.h>
#include <pk11func.h>
#include <secmod.h>
#include "client.h"
#include "client_err.h"
union semun {
int val;
struct semid_ds *buf;
unsigned short *array;
struct seminfo *__buf;
};
const PRTime oneminute = 50000000;
/*
* Node - for maintaining link list of tokens with cached PINs
*/
typedef struct Node Node;
struct Node
{
Node *next;
char *url;
void *data;
int len;
int errnum;
PRTime fetchtime;
};
/*
* Node implementation
*/
static void freeNode(Node *node)
{
free(node->url);
free(node->data);
free(node);
}
static void freeList(Node *list)
{
Node *n1;
Node *n2;
n1 = list;
while (n1) {
n2 = n1;
n1 = n2->next;
freeNode(n2);
}
}
#ifdef DEBUG
static void printList(Node *list)
{
Node *n1;
int count = 0;
n1 = list;
fprintf(stderr, "Node list:\n");
while (n1) {
fprintf(stderr, "%lld: %s (%d)\n", n1->fetchtime, n1->url,
n1->len);
n1 = n1->next;
count++;
}
fprintf(stderr, "%d Nodes\n", count);
}
#endif
/* global variables */
Node *urlcache = NULL;
int main(int argc, char ** argv)
{
SECStatus rv;
PRInt32 numfds;
PRFileDesc *in;
PRFileDesc *out;
PRPollDesc pd;
PRIntervalTime timeout = PR_INTERVAL_NO_TIMEOUT;
int semid;
union semun semarg;
char buf[4096];
char url[4096];
PRTime lastfetchtime;
PRTime now;
PRInt32 nBytes;
int fdlimit = sysconf(_SC_OPEN_MAX);
int fd;
void *data = NULL;
PRInt32 len = 0;
PRInt32 errnum = -1;
/* Close all fds but stdin, stdout and stderr */
fd = 3;
while (fd < fdlimit)
close(fd++);
if (argc < 3 || argc > 4) {
fprintf(stderr, "Usage: crlhelper <semid> <directory>
<prefix>\n");
exit(1);
}
semid = strtol(argv[1], NULL, 10);
/* Initialize NSPR */
PR_Init(PR_USER_THREAD, PR_PRIORITY_NORMAL, 256);
/* Initialize NSS and open the certificate database read-only. */
rv = NSS_Initialize(argv[2], argc == 4 ? argv[3] : NULL, argc == 4 ? argv[3] : NULL,
"secmod.db", NSS_INIT_READONLY);
if (rv != SECSuccess) {
fprintf(stderr, "Unable to initialize NSS database: %d\n", rv);
exit(1);
}
in = PR_GetSpecialFD(PR_StandardInput);
out = PR_GetSpecialFD(PR_StandardOutput);
if (in == NULL || out == NULL) {
fprintf(stderr, "PR_GetInheritedFD failed\n");
exit(1);
}
pd.fd = in;
pd.in_flags = PR_POLL_READ | PR_POLL_EXCEPT;
while (1) {
char outbuf[32];
numfds = PR_Poll(&pd, 1, timeout);
if (numfds == -1) { /* PR_Poll failed */
break;
}
if (pd.out_flags & (PR_POLL_HUP | PR_POLL_ERR | PR_POLL_NVAL |
PR_POLL_EXCEPT)) {
break;
}
if (pd.out_flags & PR_POLL_READ) {
Node *node;
Node *prev;
PRBool expired;
memset(buf, 0, sizeof(buf));
nBytes = PR_Read(in, buf, sizeof(buf));
if (nBytes == 0) {
break;
}
if (nBytes == -1) {
syslog(LOG_ERR, "PR_Read failed: %d", PR_GetError());
goto done;
}
lastfetchtime=0;
if ((sscanf(buf, "%lld %s", &lastfetchtime, url)) != 2) {
syslog(LOG_ERR, "Invalid request: %s", buf);
goto done;
}
if (url[strlen(url)-1] == '\n') /* for interactive testing */
url[strlen(url)-1] = '\0';
#ifdef DEBUG
if (!(strcmp(url, "p"))) {
printList(urlcache);
continue;
}
#endif
/*
* TODO:
* - expire cache entries
*/
data = NULL;
errnum = -1;
len = 0;
prev = NULL;
expired = PR_FALSE;
for (node = urlcache; node != NULL; node = node->next) {
if (!strcmp(node->url, url)) {
PRTime now = PR_Now();
/* 60 seconds is the minimum amount of time we
* wait before re-fetching a CRL (crlmanager.cpp). So
* we'll set the difference here at 50 seconds to be
* on the safe side. We don't really want cache choices
* made here but we want to limit the number of
* requests.
*/
if (now - node->fetchtime < oneminute) {
data = node->data;
len = node->len;
errnum = node->errnum;
goto done;
} else {
expired = PR_TRUE;
break;
}
} else {
prev = node;
}
}
if (NULL == data) {
data = fetch_url(url, 30, lastfetchtime, &len, &errnum);
if (expired)
if (errnum == CL_NOUPDATE_AVAILABLE) {
node->fetchtime = PR_Now();
data = node->data;
len = node->len;
node->errnum = errnum;
goto done;
} else {
if (prev) {
prev->next = node->next;
} else {
urlcache = node->next;
}
freeNode(node);
}
if (data) {
node = (Node *)malloc(sizeof(Node));
if (!node) {
syslog(LOG_ERR, "failed to alloc node");
goto done;
}
node->url = strdup(url);
node->data = (void *)malloc(len);
if (!node->data) {
syslog(LOG_ERR, "failed to alloc %d bytes", len);
goto done;
}
node->len = len;
memcpy(node->data, data, len);
free_url(data);
data = node->data;
node->fetchtime = PR_Now();
node->errnum = errnum;
if (urlcache)
node->next = urlcache;
else
node->next = NULL;
urlcache = node;
}
}
/*
* The output protocol is:
* errnum
* space
* len
* space
* bytes
*/
done:
sprintf(outbuf, "%d %d ", errnum, len);
if ((PR_Write(out, outbuf, strlen(outbuf))) == -1) {
syslog(LOG_ERR, "PR_Write failed: %d", PR_GetError());
}
if ((PR_Write(out, data, len)) == -1) {
syslog(LOG_ERR, "PR_Write failed: %d", PR_GetError());
}
} /* end POLL */
} /* end while */
freeList(urlcache);
PR_Close(in);
NSS_Shutdown();
/* Remove the semaphore used for locking here. This is because this
* program only goes away when Apache shuts down so we don't have to
* worry about reloads.
*/
semctl(semid, 0, IPC_RMID, semarg);
return 0;
}
Index: Makefile.am
===================================================================
RCS file: /cvs/dirsec/mod_revocator/Makefile.am,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Makefile.am 17 Oct 2006 20:42:03 -0000 1.5
+++ Makefile.am 13 Apr 2010 14:11:09 -0000 1.6
@@ -17,7 +17,7 @@
# relink after the "main" link using the C++ compiler. On Solaris ar
# fails if the object isn't in the library, so be very careful about
# removing it.
-all-local: libnssckfw2.a relink ldapget
+all-local: libnssckfw2.a relink ldapget crlhelper
libnssckfw2.a:
cp @nss_lib_dir(a)/libnssckfw.a libnssckfw2.a
@@ -29,20 +29,32 @@
# The environment variable $CRUNTIME needs to be set to -library=Crun
# on Solaris systems.
relink: librevocation.la libnssckfw2.a
- rm -f .libs/librevocation.so.$(LIB_VERSION)
- $(CXX) $(SHARED_LINK) -Wl,-soname,librevocation.so.0 $(am_librevocation_la_OBJECTS)
$(LIBS) libnssckfw2.a -lnssb -o .libs/librevocation.so.$(LIB_VERSION) $(CRUNTIME)
+# rm -f .libs/librevocation.so.$(LIB_VERSION)
+# $(CXX) $(SHARED_LINK) -Wl,-soname,librevocation.so.0 $(am_librevocation_la_OBJECTS)
$(LIBS) libnssckfw2.a -lnssb -o .libs/librevocation.so.$(LIB_VERSION) $(CRUNTIME)
+ rm -f .libs/librevocation.so*
+ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(librevocation_la_LDFLAGS) $(LDFLAGS) -o librevocation.la \
+ -rpath $(libdir) $(librevocation_la_OBJECTS) $(librevocation_la_LIBADD) $(LIBS)
libnssckfw2.a -lnssb
+
+install-exec-local: all-local
+ install -m 755 ldapget $(bindir)
+ install -m 755 crlhelper $(bindir)
clean-local:
- -rm -f libnssckfw2.a ldapget
+ -rm -f libnssckfw2.a ldapget crlhelper
# Unit test program for fetching data from LDAP URLs. The average user won't
# need to compile or execute this but it is useful enough to keep around.
# This uses the local .libs directory to link against, assuming that the
# revocation library been installed globally yet.
ldaptest:
- $(CXX) ldaptest.cpp client.o ldap-client.o unescape.o -o ldaptest $(INCLUDES) $(LIBS) -L
.libs/ -lrevocation
+ $(CXX) $(CXXFLAGS) ldaptest.cpp client.o ldap-client.o unescape.o -o ldaptest
$(INCLUDES) $(LIBS) -L .libs/ -lrevocation
# This program is used to retrieve data from an LDAP URL and return the
# attribute data over stdout. It is used in conjunction with an exec:// URL
ldapget: ldapget.cpp relink
- $(CXX) ldapget.cpp client.o ldap-client.o unescape.o -o ldapget $(INCLUDES) $(LIBS)
libnssckfw2.a -L .libs/ -lrevocation
+ $(CXX) $(CXXFLAGS) ldapget.cpp client.o ldap-client.o http-client.o unescape.o -o
ldapget $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
+
+crlhelper: crlhelper.cpp relink
+ $(CXX) $(CXXFLAGS) crlhelper.cpp client.o ldap-client.o http-client.o unescape.o -o
crlhelper $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
Index: configure.in
===================================================================
RCS file: /cvs/dirsec/mod_revocator/configure.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- configure.in 17 Oct 2006 20:42:03 -0000 1.4
+++ configure.in 13 Apr 2010 14:11:10 -0000 1.5
@@ -24,11 +24,6 @@
# Check for typedefs, structures, and compiler characteristics.
AC_C_CONST
-# Find lex and yacc (or flex and bison)
-AC_PROG_YACC
-AC_PROG_LEX
-AC_DECL_YYTEXT
-
AC_CHECKING(for apr-config)
# check for --with-apr-config
AC_MSG_CHECKING(for --with-apr-config)
@@ -229,9 +224,14 @@
AC_PATH_PROG(PKG_CONFIG, pkg-config)
if test -n "$PKG_CONFIG"; then
if $PKG_CONFIG --exists nss; then
+ allow_libs=$PKG_CONFIG_ALLOW_SYSTEM_LIBS
+ PKG_CONFIG_ALLOW_SYSTEM_LIBS=1
+ export PKG_CONFIG_ALLOW_SYSTEM_LIBS
nss_inc=`$PKG_CONFIG --cflags-only-I nss`
nss_lib=`$PKG_CONFIG --libs-only-L nss`
- nss_lib_dir=$nss_lib
+ nss_lib_dir=`echo $nss_lib | sed 's/-L//' | sed s'/ //g'`
+ PKG_CONFIG_ALLOW_SYSTEM_LIBS=$allow_libs
+ export PKG_CONFIG_ALLOW_SYSTEM_LIBS
if test "$nss_lib" = " "; then
nss_lib=-L"/usr/lib"
nss_lib_dir="/usr/lib"
@@ -321,8 +321,8 @@
# Set the LDAP library we're using
if test "$openldap" != yes; then
extra_cppflags="$extra_cppflags -DMOZILLA_LDAP"
- ldapsdk_libs_ssl="-lssldap50"
- ldapsdk_libs="-lldap50 -lprldap50"
+ ldapsdk_libs_ssl="-lssldap60"
+ ldapsdk_libs="-lldap60 -lprldap60"
else
ldapsdk_libs_ssl=""
ldapsdk_libs="-lldap"
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.5 -r 1.6 aclocal.m4
Index: aclocal.m4
===================================================================
RCS file: /cvs/dirsec/mod_revocator/aclocal.m4,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- aclocal.m4 17 Oct 2006 20:42:03 -0000 1.5
+++ aclocal.m4 13 Apr 2010 14:11:10 -0000 1.6
@@ -1,7 +1,7 @@
-# aclocal.m4 generated automatically by aclocal 1.6.3 -*- Autoconf -*-
+# generated automatically by aclocal 1.10.1 -*- Autoconf -*-
-# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
+# 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -11,4389 +11,7426 @@
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
-# Do all the work for Automake. -*- Autoconf -*-
-
-# This macro actually does too much some checks are only needed if
-# your package does certain things. But this isn't really a big deal.
-
-# Copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+m4_ifndef([AC_AUTOCONF_VERSION],
+ [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl
+m4_if(AC_AUTOCONF_VERSION, [2.63],,
+[m4_warning([this file was generated for autoconf 2.63.
+You have another version of autoconf. It may work, but is not guaranteed to.
+If you have problems, you may need to regenerate the build system entirely.
+To do so, use the procedure documented by the package, typically `autoreconf'.])])
+
+# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
+
+# serial 51 AC_PROG_LIBTOOL
+
+
+# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
+# -----------------------------------------------------------
+# If this macro is not defined by Autoconf, define it here.
+m4_ifdef([AC_PROVIDE_IFELSE],
+ [],
+ [m4_define([AC_PROVIDE_IFELSE],
+ [m4_ifdef([AC_PROVIDE_$1],
+ [$2], [$3])])])
-# 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.
+# AC_PROG_LIBTOOL
+# ---------------
+AC_DEFUN([AC_PROG_LIBTOOL],
+[AC_REQUIRE([_AC_PROG_LIBTOOL])dnl
+dnl If AC_PROG_CXX has already been expanded, run AC_LIBTOOL_CXX
+dnl immediately, otherwise, hook it in at the end of AC_PROG_CXX.
+ AC_PROVIDE_IFELSE([AC_PROG_CXX],
+ [AC_LIBTOOL_CXX],
+ [define([AC_PROG_CXX], defn([AC_PROG_CXX])[AC_LIBTOOL_CXX
+ ])])
+dnl And a similar setup for Fortran 77 support
+ AC_PROVIDE_IFELSE([AC_PROG_F77],
+ [AC_LIBTOOL_F77],
+ [define([AC_PROG_F77], defn([AC_PROG_F77])[AC_LIBTOOL_F77
+])])
+
+dnl Quote A][M_PROG_GCJ so that aclocal doesn't bring it in needlessly.
+dnl If either AC_PROG_GCJ or A][M_PROG_GCJ have already been expanded, run
+dnl AC_LIBTOOL_GCJ immediately, otherwise, hook it in at the end of both.
+ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [AC_PROVIDE_IFELSE([LT_AC_PROG_GCJ],
+ [AC_LIBTOOL_GCJ],
+ [ifdef([AC_PROG_GCJ],
+ [define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([A][M_PROG_GCJ],
+ [define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[AC_LIBTOOL_GCJ])])
+ ifdef([LT_AC_PROG_GCJ],
+ [define([LT_AC_PROG_GCJ],
+ defn([LT_AC_PROG_GCJ])[AC_LIBTOOL_GCJ])])])])
+])])# AC_PROG_LIBTOOL
+
+
+# _AC_PROG_LIBTOOL
+# ----------------
+AC_DEFUN([_AC_PROG_LIBTOOL],
+[AC_REQUIRE([AC_LIBTOOL_SETUP])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_CXX])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_F77])dnl
+AC_BEFORE([$0],[AC_LIBTOOL_GCJ])dnl
-# 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.
+# This can be used to rebuild libtool when needed
+LIBTOOL_DEPS="$ac_aux_dir/ltmain.sh"
-# serial 8
+# Always use our own libtool.
+LIBTOOL='$(SHELL) $(top_builddir)/libtool'
+AC_SUBST(LIBTOOL)dnl
-# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
-# written in clear, in which case automake, when reading aclocal.m4,
-# will think it sees a *use*, and therefore will trigger all it's
-# C support machinery. Also note that it means that autoscan, seeing
-# CC etc. in the Makefile, will ask for an AC_PROG_CC use...
+# Prevent multiple expansion
+define([AC_PROG_LIBTOOL], [])
+])# _AC_PROG_LIBTOOL
-AC_PREREQ([2.52])
+# AC_LIBTOOL_SETUP
+# ----------------
+AC_DEFUN([AC_LIBTOOL_SETUP],
+[AC_PREREQ(2.50)dnl
+AC_REQUIRE([AC_ENABLE_SHARED])dnl
+AC_REQUIRE([AC_ENABLE_STATIC])dnl
+AC_REQUIRE([AC_ENABLE_FAST_INSTALL])dnl
+AC_REQUIRE([AC_CANONICAL_HOST])dnl
+AC_REQUIRE([AC_CANONICAL_BUILD])dnl
+AC_REQUIRE([AC_PROG_CC])dnl
+AC_REQUIRE([AC_PROG_LD])dnl
+AC_REQUIRE([AC_PROG_LD_RELOAD_FLAG])dnl
+AC_REQUIRE([AC_PROG_NM])dnl
-# Autoconf 2.50 wants to disallow AM_ names. We explicitly allow
-# the ones we care about.
-m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
+AC_REQUIRE([AC_PROG_LN_S])dnl
+AC_REQUIRE([AC_DEPLIBS_CHECK_METHOD])dnl
+# Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
+AC_REQUIRE([AC_OBJEXT])dnl
+AC_REQUIRE([AC_EXEEXT])dnl
+dnl
-# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
-# AM_INIT_AUTOMAKE([OPTIONS])
-# -----------------------------------------------
-# The call with PACKAGE and VERSION arguments is the old style
-# call (pre autoconf-2.50), which is being phased out. PACKAGE
-# and VERSION should now be passed to AC_INIT and removed from
-# the call to AM_INIT_AUTOMAKE.
-# We support both call styles for the transition. After
-# the next Automake release, Autoconf can make the AC_INIT
-# arguments mandatory, and then we can depend on a new Autoconf
-# release and drop the old call support.
-AC_DEFUN([AM_INIT_AUTOMAKE],
-[AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
- AC_REQUIRE([AC_PROG_INSTALL])dnl
-# test to see if srcdir already configured
-if test "`cd $srcdir && pwd`" != "`pwd`" &&
- test -f $srcdir/config.status; then
- AC_MSG_ERROR([source directory already configured; run "make distclean" there
first])
-fi
+AC_LIBTOOL_SYS_MAX_CMD_LEN
+AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE
+AC_LIBTOOL_OBJDIR
-# Define the identity of the package.
-dnl Distinguish between old-style and new-style calls.
-m4_ifval([$2],
-[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
- AC_SUBST([PACKAGE], [$1])dnl
- AC_SUBST([VERSION], [$2])],
-[_AM_SET_OPTIONS([$1])dnl
- AC_SUBST([PACKAGE], [AC_PACKAGE_TARNAME])dnl
- AC_SUBST([VERSION], [AC_PACKAGE_VERSION])])dnl
+AC_REQUIRE([_LT_AC_SYS_COMPILER])dnl
+_LT_AC_PROG_ECHO_BACKSLASH
-_AM_IF_OPTION([no-define],,
-[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
- AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
+case $host_os in
+aix3*)
+ # AIX sometimes has problems with the GCC collect2 program. For some
+ # reason, if we set the COLLECT_NAMES environment variable, the problems
+ # vanish in a puff of smoke.
+ if test "X${COLLECT_NAMES+set}" != Xset; then
+ COLLECT_NAMES=
+ export COLLECT_NAMES
+ fi
+ ;;
+esac
[...10895 lines suppressed...]
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
-# old names
-AC_DEFUN([AM_PROG_LIBTOOL], [AC_PROG_LIBTOOL])
-AC_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AC_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AC_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-AC_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-AC_DEFUN([AM_PROG_LD], [AC_PROG_LD])
-AC_DEFUN([AM_PROG_NM], [AC_PROG_NM])
+# _AM_SUBST_NOTMAKE(VARIABLE)
+# ---------------------------
+# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in.
+# This macro is traced by Automake.
+AC_DEFUN([_AM_SUBST_NOTMAKE])
-# This is just to silence aclocal about the macro not being used
-ifelse([AC_DISABLE_FAST_INSTALL])
+# Check how to create a tarball. -*- Autoconf -*-
-# NOTE: This macro has been submitted for inclusion into #
-# GNU Autoconf as AC_PROG_SED. When it is available in #
-# a released version of Autoconf we should remove this #
-# macro and use it instead. #
-# LT_AC_PROG_SED
-# --------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible. Prefer GNU sed if found.
-AC_DEFUN([LT_AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_executable_p="test -f"
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
+# Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+#
+# This file is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# serial 2
+
+# _AM_PROG_TAR(FORMAT)
+# --------------------
+# Check how to create a tarball in format FORMAT.
+# FORMAT should be one of `v7', `ustar', or `pax'.
+#
+# Substitute a variable $(am__tar) that is a command
+# writing to stdout a FORMAT-tarball containing the directory
+# $tardir.
+# tardir=directory && $(am__tar) > result.tar
+#
+# Substitute a variable $(am__untar) that extract such
+# a tarball read from stdin.
+# $(am__untar) < result.tar
+AC_DEFUN([_AM_PROG_TAR],
+[# Always define AMTAR for backward compatibility.
+AM_MISSING_PROG([AMTAR], [tar])
+m4_if([$1], [v7],
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf
-'],
+ [m4_case([$1], [ustar],, [pax],,
+ [m4_fatal([Unknown tar format])])
+AC_MSG_CHECKING([how to create a $1 tar archive])
+# Loop over all known methods to create a tar archive until one works.
+_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
+_am_tools=${am_cv_prog_tar_$1-$_am_tools}
+# Do not fold the above two line into one, because Tru64 sh and
+# Solaris sh will not grok spaces in the rhs of `-'.
+for _am_tool in $_am_tools
do
- IFS=$as_save_IFS
- test -z "$as_dir" && as_dir=.
- for ac_prog in sed gsed; do
- for ac_exec_ext in '' $ac_executable_extensions; do
- if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then
- _sed_list="$_sed_list $as_dir/$ac_prog$ac_exec_ext"
- fi
+ case $_am_tool in
+ gnutar)
+ for _am_tar in tar gnutar gtar;
+ do
+ AM_RUN_LOG([$_am_tar --version]) && break
done
- done
-done
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf -
"'"$$tardir"'
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf -
"'"$tardir"'
+ am__untar="$_am_tar -xf -"
+ ;;
+ plaintar)
+ # Must skip GNU tar: if it does not support --format= it doesn't create
+ # ustar tarball either.
+ (tar --version) >/dev/null 2>&1 && continue
+ am__tar='tar chf - "$$tardir"'
+ am__tar_='tar chf - "$tardir"'
+ am__untar='tar xf -'
+ ;;
+ pax)
+ am__tar='pax -L -x $1 -w "$$tardir"'
+ am__tar_='pax -L -x $1 -w "$tardir"'
+ am__untar='pax -r'
+ ;;
+ cpio)
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
+ am__untar='cpio -i -H $1 -d'
+ ;;
+ none)
+ am__tar=false
+ am__tar_=false
+ am__untar=false
+ ;;
+ esac
- # Create a temporary directory, and hook for its removal unless debugging.
-$debug ||
-{
- trap 'exit_status=$?; rm -rf $tmp && exit $exit_status' 0
- trap '{ (exit 1); exit 1; }' 1 2 13 15
-}
+ # If the value was cached, stop now. We just wanted to have am__tar
+ # and am__untar set.
+ test -n "${am_cv_prog_tar_$1}" && break
-# Create a (secure) tmp directory for tmp files.
-: ${TMPDIR=/tmp}
-{
- tmp=`(umask 077 && mktemp -d -q "$TMPDIR/sedXXXXXX") 2>/dev/null`
&&
- test -n "$tmp" && test -d "$tmp"
-} ||
-{
- tmp=$TMPDIR/sed$$-$RANDOM
- (umask 077 && mkdir $tmp)
-} ||
-{
- echo "$me: cannot create a temporary directory in $TMPDIR" >&2
- { (exit 1); exit 1; }
-}
- _max=0
- _count=0
- # Add /usr/xpg4/bin/sed as it is typically found on Solaris
- # along with /bin/sed that truncates output.
- for _sed in $_sed_list /usr/xpg4/bin/sed; do
- test ! -f ${_sed} && break
- cat /dev/null > "$tmp/sed.in"
- _count=0
- echo ${ECHO_N-$ac_n} "0123456789${ECHO_C-$ac_c}"
>"$tmp/sed.in"
- # Check for GNU sed and select it if it is found.
- if "${_sed}" --version 2>&1 < /dev/null | egrep '(GNU)'
> /dev/null; then
- lt_cv_path_SED=${_sed}
- break
- fi
- while true; do
- cat "$tmp/sed.in" "$tmp/sed.in" >"$tmp/sed.tmp"
- mv "$tmp/sed.tmp" "$tmp/sed.in"
- cp "$tmp/sed.in" "$tmp/sed.nl"
- echo >>"$tmp/sed.nl"
- ${_sed} -e 's/a$//' < "$tmp/sed.nl"
>"$tmp/sed.out" || break
- cmp -s "$tmp/sed.out" "$tmp/sed.nl" || break
- # 40000 chars as input seems more than enough
- test $_count -gt 10 && break
- _count=`expr $_count + 1`
- if test $_count -gt $_max; then
- _max=$_count
- lt_cv_path_SED=$_sed
- fi
- done
- done
- rm -rf "$tmp"
-])
-if test "X$SED" != "X"; then
- lt_cv_path_SED=$SED
-else
- SED=$lt_cv_path_SED
-fi
-AC_MSG_RESULT([$SED])
-])
+ # tar/untar a dummy directory, and stop if the command works
+ rm -rf conftest.dir
+ mkdir conftest.dir
+ echo GrepMe > conftest.dir/file
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
+ rm -rf conftest.dir
+ if test -s conftest.tar; then
+ AM_RUN_LOG([$am__untar <conftest.tar])
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
+ fi
+done
+rm -rf conftest.dir
+
+AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
+AC_MSG_RESULT([$am_cv_prog_tar_$1])])
+AC_SUBST([am__tar])
+AC_SUBST([am__untar])
+]) # _AM_PROG_TAR
Index: Makefile.in
===================================================================
RCS file: /cvs/dirsec/mod_revocator/Makefile.in,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- Makefile.in 17 Oct 2006 20:42:03 -0000 1.5
+++ Makefile.in 13 Apr 2010 14:11:10 -0000 1.6
@@ -1,8 +1,8 @@
-# Makefile.in generated by automake 1.6.3 from Makefile.am.
+# Makefile.in generated by automake 1.10.1 from Makefile.am.
# @configure_input@
-# Copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
@@ -13,225 +13,303 @@
# PARTICULAR PURPOSE.
@SET_MAKE@
-SHELL = @SHELL@
-srcdir = @srcdir@
-top_srcdir = @top_srcdir@
VPATH = @srcdir@
-prefix = @prefix@
-exec_prefix = @exec_prefix@
-
-bindir = @bindir@
-sbindir = @sbindir@
-libexecdir = @libexecdir@
-datadir = @datadir@
-sysconfdir = @sysconfdir@
-sharedstatedir = @sharedstatedir@
-localstatedir = @localstatedir@
-libdir = @libdir@
-infodir = @infodir@
-mandir = @mandir@
-includedir = @includedir@
-oldincludedir = /usr/include
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
-top_builddir = .
-
-ACLOCAL = @ACLOCAL@
-AUTOCONF = @AUTOCONF@
-AUTOMAKE = @AUTOMAKE@
-AUTOHEADER = @AUTOHEADER@
-
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
-INSTALL = @INSTALL@
-INSTALL_PROGRAM = @INSTALL_PROGRAM@
-INSTALL_DATA = @INSTALL_DATA@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
-INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_HEADER = $(INSTALL_DATA)
-transform = @program_transform_name@
+transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
-host_alias = @host_alias@
+build_triplet = @build@
host_triplet = @host@
-
-EXEEXT = @EXEEXT@
-OBJEXT = @OBJEXT@
-PATH_SEPARATOR = @PATH_SEPARATOR@
+subdir = .
+DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
+ $(srcdir)/Makefile.in $(top_srcdir)/configure AUTHORS COPYING \
+ ChangeLog INSTALL NEWS config.guess config.sub depcomp \
+ install-sh ltmain.sh missing mkinstalldirs
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/configure.in
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
+ configure.lineno config.status.lineno
+mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(libdir)"
+libLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(lib_LTLIBRARIES)
+libmodrev_la_LIBADD =
+am_libmodrev_la_OBJECTS = mod_rev.lo
+libmodrev_la_OBJECTS = $(am_libmodrev_la_OBJECTS)
+libmodrev_la_LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(libmodrev_la_LDFLAGS) $(LDFLAGS) -o $@
+librevocation_la_LIBADD =
+am_librevocation_la_OBJECTS = revocation.lo crlmanager.lo rinst.lo \
+ rslot.lo anchor.lo constants.lo rtoken.lo rsession.lo \
+ robject.lo rfind.lo http-client.lo ldap-client.lo \
+ exec-client.lo client.lo nsprstub.lo rev_core.lo revhelper.lo \
+ encode.lo unescape.lo
+librevocation_la_OBJECTS = $(am_librevocation_la_OBJECTS)
+librevocation_la_LINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(librevocation_la_LDFLAGS) $(LDFLAGS) -o $@
+DEFAULT_INCLUDES = -I.@am__isrc@
+depcomp = $(SHELL) $(top_srcdir)/depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+LTCXXCOMPILE = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
+ $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
+CXXLD = $(CXX)
+CXXLINK = $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
+ --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) $(AM_LDFLAGS) \
+ $(LDFLAGS) -o $@
+SOURCES = $(libmodrev_la_SOURCES) $(librevocation_la_SOURCES)
+DIST_SOURCES = $(libmodrev_la_SOURCES) $(librevocation_la_SOURCES)
+ETAGS = etags
+CTAGS = ctags
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+distdir = $(PACKAGE)-$(VERSION)
+top_distdir = $(distdir)
+am__remove_distdir = \
+ { test ! -d $(distdir) \
+ || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
+ && rm -fr $(distdir); }; }
+DIST_ARCHIVES = $(distdir).tar.gz
+GZIP_ENV = --best
+distuninstallcheck_listfiles = find . -type f -print
+distcleancheck_listfiles = find . -type f -print
+ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
APR_CONFIG = @APR_CONFIG@
APXS = @APXS@
-AS = @AS@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DEFS = -D__REVOCATION_IMPLEMENTATION__=1 @extra_cppflags@
DEPDIR = @DEPDIR@
-DLLTOOL = @DLLTOOL@
ECHO = @ECHO@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+F77 = @F77@
+FFLAGS = @FFLAGS@
+GREP = @GREP@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
-LEX = @LEX@
-LEXLIB = @LEXLIB@
-LEX_OUTPUT_ROOT = @LEX_OUTPUT_ROOT@
+LDFLAGS = @LDFLAGS@
+LIBOBJS = @LIBOBJS@
+LIBS = @ldapsdk_lib@ @nspr_lib@ @nss_lib@ @ldapsdk_libs_ssl@ -lssl3 -lsmime3 -lnss3
-lnssb @ldapsdk_libs@ -lplc4 -lplds4 -lnspr4 -lpthread -ldl
LIBTOOL = @LIBTOOL@
LN_S = @LN_S@
-OBJDUMP = @OBJDUMP@
+LTLIBOBJS = @LTLIBOBJS@
+MAKEINFO = @MAKEINFO@
+MKDIR_P = @MKDIR_P@
+OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
SHARED_LINK = @SHARED_LINK@
+SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
-YACC = @YACC@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_F77 = @ac_ct_F77@
am__include = @am__include@
+am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
apache_bin = @apache_bin@
apache_conf = @apache_conf@
apache_inc = @apache_inc@
apache_prefix = @apache_prefix@
apr_inc = @apr_inc@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
extra_cppflags = @extra_cppflags@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
install_sh = @install_sh@
ldapsdk_inc = @ldapsdk_inc@
ldapsdk_lib = @ldapsdk_lib@
ldapsdk_libs = @ldapsdk_libs@
ldapsdk_libs_ssl = @ldapsdk_libs_ssl@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
nspr_inc = @nspr_inc@
nspr_lib = @nspr_lib@
nss_inc = @nss_inc@
nss_lib = @nss_lib@
nss_lib_dir = @nss_lib_dir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
lib_LTLIBRARIES = librevocation.la libmodrev.la
-
librevocation_la_SOURCES = revocation.cpp crlmanager.cpp rinst.cpp rslot.cpp anchor.cpp
constants.c rtoken.cpp rsession.cpp robject.cpp rfind.cpp http-client.cpp ldap-client.cpp
exec-client.cpp client.cpp nsprstub.cpp rev_core.cpp revhelper.cpp encode.cpp unescape.cpp
-
librevocation_la_LDFLAGS = -version-info `grep -v '^\#'
$(srcdir)/libtool-version`
LIB_VERSION = `grep -v '^\#' $(srcdir)/libtool-version | sed 's/:/./g'`
-
libmodrev_la_SOURCES = mod_rev.c
-
libmodrev_la_LDFLAGS = -module -avoid-version
-
INCLUDES = -I@apache_inc@ @nspr_inc@ @nss_inc@ @apr_inc@ -Imozilla/security/nss/lib/base
@ldapsdk_inc@ -Imozilla/security/nss/lib/ckfw
-LIBS = @ldapsdk_lib@ @nspr_lib@ @nss_lib@ @ldapsdk_libs_ssl@ -lssl3 -lsmime3 -lnss3
-lnssb @ldapsdk_libs@ -lplc4 -lplds4 -lnspr4 -lpthread -ldl
-DEFS = -D__REVOCATION_IMPLEMENTATION__=1 @extra_cppflags@
-subdir = .
-ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
-mkinstalldirs = $(SHELL) $(top_srcdir)/mkinstalldirs
-CONFIG_CLEAN_FILES =
-LTLIBRARIES = $(lib_LTLIBRARIES)
-
-libmodrev_la_LIBADD =
-am_libmodrev_la_OBJECTS = mod_rev.lo
-libmodrev_la_OBJECTS = $(am_libmodrev_la_OBJECTS)
-librevocation_la_LIBADD =
-am_librevocation_la_OBJECTS = revocation.lo crlmanager.lo rinst.lo \
- rslot.lo anchor.lo constants.lo rtoken.lo rsession.lo \
- robject.lo rfind.lo http-client.lo ldap-client.lo \
- exec-client.lo client.lo nsprstub.lo rev_core.lo revhelper.lo \
- encode.lo unescape.lo
-librevocation_la_OBJECTS = $(am_librevocation_la_OBJECTS)
-DEFAULT_INCLUDES = -I. -I$(srcdir)
-CPPFLAGS = @CPPFLAGS@
-LDFLAGS = @LDFLAGS@
-depcomp = $(SHELL) $(top_srcdir)/depcomp
-am__depfiles_maybe = depfiles
-@AMDEP_TRUE@DEP_FILES = ./$(DEPDIR)/anchor.Plo ./$(DEPDIR)/client.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/constants.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/crlmanager.Plo ./$(DEPDIR)/encode.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/exec-client.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/http-client.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/ldap-client.Plo ./$(DEPDIR)/mod_rev.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/nsprstub.Plo ./$(DEPDIR)/rev_core.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/revhelper.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/revocation.Plo ./$(DEPDIR)/rfind.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/rinst.Plo ./$(DEPDIR)/robject.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/rsession.Plo ./$(DEPDIR)/rslot.Plo \
-@AMDEP_TRUE@ ./$(DEPDIR)/rtoken.Plo ./$(DEPDIR)/unescape.Plo
-COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
- $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-LTCOMPILE = $(LIBTOOL) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) \
- $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
-CCLD = $(CC)
-LINK = $(LIBTOOL) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CFLAGS = @CFLAGS@
-CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \
- $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS)
-LTCXXCOMPILE = $(LIBTOOL) --mode=compile $(CXX) $(DEFS) \
- $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
- $(AM_CXXFLAGS) $(CXXFLAGS)
-CXXLD = $(CXX)
-CXXLINK = $(LIBTOOL) --mode=link $(CXXLD) $(AM_CXXFLAGS) $(CXXFLAGS) \
- $(AM_LDFLAGS) $(LDFLAGS) -o $@
-CXXFLAGS = @CXXFLAGS@
-DIST_SOURCES = $(libmodrev_la_SOURCES) $(librevocation_la_SOURCES)
-DIST_COMMON = README AUTHORS COPYING ChangeLog INSTALL Makefile.am \
- Makefile.in NEWS aclocal.m4 config.guess config.sub configure \
- configure.in depcomp install-sh ltmain.sh missing mkinstalldirs
-SOURCES = $(libmodrev_la_SOURCES) $(librevocation_la_SOURCES)
-
all: all-am
.SUFFIXES:
.SUFFIXES: .c .cpp .lo .o .obj
-
-am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
- configure.lineno
-$(srcdir)/Makefile.in: Makefile.am $(top_srcdir)/configure.in $(ACLOCAL_M4)
+am--refresh:
+ @:
+$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ echo ' cd $(srcdir) && $(AUTOMAKE) --gnu '; \
+ cd $(srcdir) && $(AUTOMAKE) --gnu \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --gnu Makefile
-Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
- cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ echo ' $(SHELL) ./config.status'; \
+ $(SHELL) ./config.status;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $@
$(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \
+ esac;
-$(top_builddir)/config.status: $(srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
$(SHELL) ./config.status --recheck
-$(srcdir)/configure: $(srcdir)/configure.in $(ACLOCAL_M4) $(CONFIGURE_DEPENDENCIES)
- cd $(srcdir) && $(AUTOCONF)
-$(ACLOCAL_M4): configure.in
+$(top_srcdir)/configure: $(am__configure_deps)
+ cd $(srcdir) && $(AUTOCONF)
+$(ACLOCAL_M4): $(am__aclocal_m4_deps)
cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS)
-libLTLIBRARIES_INSTALL = $(INSTALL)
install-libLTLIBRARIES: $(lib_LTLIBRARIES)
@$(NORMAL_INSTALL)
- $(mkinstalldirs) $(DESTDIR)$(libdir)
+ test -z "$(libdir)" || $(MKDIR_P) "$(DESTDIR)$(libdir)"
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
if test -f $$p; then \
- f="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL)
$(INSTALL_STRIP_FLAG) $$p $(DESTDIR)$(libdir)/$$f"; \
- $(LIBTOOL) --mode=install $(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) $$p
$(DESTDIR)$(libdir)/$$f; \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install
$(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p'
'$(DESTDIR)$(libdir)/$$f'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install
$(libLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p"
"$(DESTDIR)$(libdir)/$$f"; \
else :; fi; \
done
uninstall-libLTLIBRARIES:
@$(NORMAL_UNINSTALL)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
- p="`echo $$p | sed -e 's|^.*/||'`"; \
- echo " $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p"; \
- $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$$p; \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f
'$(DESTDIR)$(libdir)/$$p'"; \
+ $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f
"$(DESTDIR)$(libdir)/$$p"; \
done
clean-libLTLIBRARIES:
-test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES)
@list='$(lib_LTLIBRARIES)'; for p in $$list; do \
dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
- test -z "$dir" && dir=.; \
+ test "$$dir" != "$$p" || dir=.; \
echo "rm -f \"$${dir}/so_locations\""; \
rm -f "$${dir}/so_locations"; \
done
libmodrev.la: $(libmodrev_la_OBJECTS) $(libmodrev_la_DEPENDENCIES)
- $(LINK) -rpath $(libdir) $(libmodrev_la_LDFLAGS) $(libmodrev_la_OBJECTS)
$(libmodrev_la_LIBADD) $(LIBS)
+ $(libmodrev_la_LINK) -rpath $(libdir) $(libmodrev_la_OBJECTS) $(libmodrev_la_LIBADD)
$(LIBS)
librevocation.la: $(librevocation_la_OBJECTS) $(librevocation_la_DEPENDENCIES)
- $(CXXLINK) -rpath $(libdir) $(librevocation_la_LDFLAGS) $(librevocation_la_OBJECTS)
$(librevocation_la_LIBADD) $(LIBS)
+ $(librevocation_la_LINK) -rpath $(libdir) $(librevocation_la_OBJECTS)
$(librevocation_la_LIBADD) $(LIBS)
mostlyclean-compile:
- -rm -f *.$(OBJEXT) core *.core
+ -rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@@ -257,46 +335,47 @@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/rtoken.Plo(a)am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/unescape.Plo(a)am__quote@
-distclean-depend:
- -rm -rf ./$(DEPDIR)
-
.c.o:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo'
@AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(COMPILE) -c `test -f '$<' || echo '$(srcdir)/'`$<
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp)
@AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo'
@AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(COMPILE) -c `cygpath -w $<`
+@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@
`$(CYGPATH_W) '$<'`
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp)
@AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo'
@AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(LTCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-CCDEPMODE = @CCDEPMODE@
+@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp)
@AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
.cpp.o:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo'
@AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(CXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp)
@AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $<
.cpp.obj:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Po' tmpdepfile='$(DEPDIR)/$*.TPo'
@AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(CXXCOMPILE) -c -o $@ `cygpath -w $<`
+@am__fastdepCXX_TRUE@ $(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@
`$(CYGPATH_W) '$<'`
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp)
@AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'`
.cpp.lo:
-@AMDEP_TRUE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
-@AMDEP_TRUE@ depfile='$(DEPDIR)/$*.Plo' tmpdepfile='$(DEPDIR)/$*.TPlo'
@AMDEPBACKSLASH@
-@AMDEP_TRUE@ $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@
- $(LTCXXCOMPILE) -c -o $@ `test -f '$<' || echo '$(srcdir)/'`$<
-CXXDEPMODE = @CXXDEPMODE@
+@am__fastdepCXX_TRUE@ $(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
+@am__fastdepCXX_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes
@AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp)
@AMDEPBACKSLASH@
+@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
@@ -306,21 +385,16 @@
distclean-libtool:
-rm -f libtool
-uninstall-info-am:
-
-ETAGS = etags
-ETAGSFLAGS =
-
-tags: TAGS
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
+ $(AWK) '{ files[$$0] = 1; nonemtpy = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
mkid -fID $$unique
+tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
@@ -330,10 +404,25 @@
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
- $(AWK) ' { files[$$0] = 1; } \
- END { for (i in files) print i; }'`; \
- test -z "$(ETAGS_ARGS)$$tags$$unique" \
- || $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
+ test -n "$$unique" || unique=$$empty_fix; \
+ $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
+ $$tags $$unique; \
+ fi
+ctags: CTAGS
+CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
+ $(TAGS_FILES) $(LISP)
+ tags=; \
+ list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
+ unique=`for i in $$list; do \
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
+ done | \
+ $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
+ END { if (nonempty) { for (i in files) print i; }; }'`; \
+ test -z "$(CTAGS_ARGS)$$tags$$unique" \
+ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
@@ -342,33 +431,26 @@
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
- -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH
-DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
-
-top_distdir = .
-distdir = $(PACKAGE)-$(VERSION)
-
-am__remove_distdir = \
- { test ! -d $(distdir) \
- || { find $(distdir) -type d ! -perm -200 -exec chmod u+w {} ';' \
- && rm -fr $(distdir); }; }
-
-GZIP_ENV = --best
-distcleancheck_listfiles = find . -type f -print
+ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
$(am__remove_distdir)
- mkdir $(distdir)
- @list='$(DISTFILES)'; for file in $$list; do \
+ test -d $(distdir) || mkdir $(distdir)
+ @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+ topsrcdirstrip=`echo "$(top_srcdir)" | sed
's/[].[^$$\\*]/\\\\&/g'`; \
+ list='$(DISTFILES)'; \
+ dist_files=`for file in $$list; do echo $$file; done | \
+ sed -e "s|^$$srcdirstrip/||;t" \
+ -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+ case $$dist_files in \
+ */*) $(MKDIR_P) `echo "$$dist_files" | \
+ sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+ sort -u` ;; \
+ esac; \
+ for file in $$dist_files; do \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
- dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
- if test "$$dir" != "$$file" && test "$$dir" !=
"."; then \
- dir="/$$dir"; \
- $(mkinstalldirs) "$(distdir)$$dir"; \
- else \
- dir=''; \
- fi; \
if test -d $$d/$$file; then \
+ dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
@@ -382,29 +464,63 @@
-find $(distdir) -type d ! -perm -777 -exec chmod a+rwx {} \; -o \
! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \
! -type d ! -perm -400 -exec chmod a+r {} \; -o \
- ! -type d ! -perm -444 -exec $(SHELL) $(install_sh) -c -m a+r {} {} \; \
+ ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \
|| chmod -R a+r $(distdir)
dist-gzip: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c
>$(distdir).tar.gz
+ $(am__remove_distdir)
+
+dist-bzip2: distdir
+ tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
+ $(am__remove_distdir)
+
+dist-lzma: distdir
+ tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
+ $(am__remove_distdir)
+
+dist-tarZ: distdir
+ tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
+ $(am__remove_distdir)
+
+dist-shar: distdir
+ shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
+ $(am__remove_distdir)
+
+dist-zip: distdir
+ -rm -f $(distdir).zip
+ zip -rq $(distdir).zip $(distdir)
$(am__remove_distdir)
dist dist-all: distdir
- $(AMTAR) chof - $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
+ tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c
>$(distdir).tar.gz
$(am__remove_distdir)
# This target untars the dist file and tries a VPATH configuration. Then
# it guarantees that the distribution is self-contained by making another
# tarfile.
distcheck: dist
- $(am__remove_distdir)
- GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(AMTAR) xf -
+ case '$(DIST_ARCHIVES)' in \
+ *.tar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).tar.gz | $(am__untar) ;;\
+ *.tar.bz2*) \
+ bunzip2 -c $(distdir).tar.bz2 | $(am__untar) ;;\
+ *.tar.lzma*) \
+ unlzma -c $(distdir).tar.lzma | $(am__untar) ;;\
+ *.tar.Z*) \
+ uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
+ *.shar.gz*) \
+ GZIP=$(GZIP_ENV) gunzip -c $(distdir).shar.gz | unshar ;;\
+ *.zip*) \
+ unzip $(distdir).zip ;;\
+ esac
chmod -R a-w $(distdir); chmod a+w $(distdir)
- mkdir $(distdir)/=build
- mkdir $(distdir)/=inst
+ mkdir $(distdir)/_build
+ mkdir $(distdir)/_inst
chmod a-w $(distdir)
- dc_install_base=`$(am__cd) $(distdir)/=inst && pwd` \
- && cd $(distdir)/=build \
- && ../configure --srcdir=.. --prefix=$$dc_install_base \
+ dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e
's,^[^:\\/]:[\\/],/,'` \
+ && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \
+ && cd $(distdir)/_build \
+ && ../configure --srcdir=.. --prefix="$$dc_install_base" \
$(DISTCHECK_CONFIGURE_FLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) \
&& $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -412,32 +528,49 @@
&& $(MAKE) $(AM_MAKEFLAGS) install \
&& $(MAKE) $(AM_MAKEFLAGS) installcheck \
&& $(MAKE) $(AM_MAKEFLAGS) uninstall \
- && (test `find $$dc_install_base -type f -print | wc -l` -le 1 \
- || { echo "ERROR: files left after uninstall:" ; \
- find $$dc_install_base -type f -print ; \
- exit 1; } >&2 ) \
- && $(MAKE) $(AM_MAKEFLAGS) dist-gzip \
- && rm -f $(distdir).tar.gz \
+ && $(MAKE) $(AM_MAKEFLAGS)
distuninstallcheck_dir="$$dc_install_base" \
+ distuninstallcheck \
+ && chmod -R a-w "$$dc_install_base" \
+ && ({ \
+ (cd ../.. && umask 077 && mkdir "$$dc_destdir") \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \
+ && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \
+ distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \
+ } || { rm -rf "$$dc_destdir"; exit 1; }) \
+ && rm -rf "$$dc_destdir" \
+ && $(MAKE) $(AM_MAKEFLAGS) dist \
+ && rm -rf $(DIST_ARCHIVES) \
&& $(MAKE) $(AM_MAKEFLAGS) distcleancheck
$(am__remove_distdir)
- @echo "$(distdir).tar.gz is ready for distribution" | \
- sed 'h;s/./=/g;p;x;p;x'
+ @(echo "$(distdir) archives ready for distribution: "; \
+ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
+ sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
+distuninstallcheck:
+ @cd $(distuninstallcheck_dir) \
+ && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
+ || { echo "ERROR: files left after uninstall:" ; \
+ if test -n "$(DESTDIR)"; then \
+ echo " (check DESTDIR support)"; \
+ fi ; \
+ $(distuninstallcheck_listfiles) ; \
+ exit 1; } >&2
distcleancheck: distclean
- if test '$(srcdir)' = . ; then \
+ @if test '$(srcdir)' = . ; then \
echo "ERROR: distcleancheck can only run from a VPATH build" ; \
exit 1 ; \
fi
- test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
- || { echo "ERROR: files left after distclean:" ; \
+ @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \
+ || { echo "ERROR: files left in build directory after distclean:" ; \
$(distcleancheck_listfiles) ; \
exit 1; } >&2
check-am: all-am
check: check-am
all-am: Makefile $(LTLIBRARIES) all-local
-
installdirs:
- $(mkinstalldirs) $(DESTDIR)$(libdir)
-
+ for dir in "$(DESTDIR)$(libdir)"; do \
+ test -z "$$dir" || $(MKDIR_P) "$$dir"; \
+ done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
@@ -449,7 +582,7 @@
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
- INSTALL_STRIP_FLAG=-s \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
@@ -457,7 +590,7 @@
clean-generic:
distclean-generic:
- -rm -f Makefile $(CONFIG_CLEAN_FILES)
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@@ -469,30 +602,44 @@
distclean: distclean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
-distclean-am: clean-am distclean-compile distclean-depend \
- distclean-generic distclean-libtool distclean-tags
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
+distclean-am: clean-am distclean-compile distclean-generic \
+ distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
+html: html-am
+
info: info-am
info-am:
install-data-am:
-install-exec-am: install-libLTLIBRARIES
+install-dvi: install-dvi-am
+
+install-exec-am: install-exec-local install-libLTLIBRARIES
+
+install-html: install-html-am
install-info: install-info-am
install-man:
+install-pdf: install-pdf-am
+
+install-ps: install-ps-am
+
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -f $(am__CONFIG_DISTCLEAN_FILES)
- -rm -rf autom4te.cache
+ -rm -rf $(top_srcdir)/autom4te.cache
+ -rm -rf ./$(DEPDIR)
+ -rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
@@ -500,27 +647,41 @@
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
-uninstall-am: uninstall-info-am uninstall-libLTLIBRARIES
+pdf: pdf-am
+
+pdf-am:
-.PHONY: GTAGS all all-am all-local check check-am clean clean-generic \
- clean-libLTLIBRARIES clean-libtool clean-local dist dist-all \
- dist-gzip distcheck distclean distclean-compile \
- distclean-depend distclean-generic distclean-libtool \
- distclean-tags distcleancheck distdir dvi dvi-am info info-am \
- install install-am install-data install-data-am install-exec \
- install-exec-am install-info install-info-am \
- install-libLTLIBRARIES install-man install-strip installcheck \
+ps: ps-am
+
+ps-am:
+
+uninstall-am: uninstall-libLTLIBRARIES
+
+.MAKE: install-am install-strip
+
+.PHONY: CTAGS GTAGS all all-am all-local am--refresh check check-am \
+ clean clean-generic clean-libLTLIBRARIES clean-libtool \
+ clean-local ctags dist dist-all dist-bzip2 dist-gzip dist-lzma \
+ dist-shar dist-tarZ dist-zip distcheck distclean \
+ distclean-compile distclean-generic distclean-libtool \
+ distclean-tags distcleancheck distdir distuninstallcheck dvi \
+ dvi-am html html-am info info-am install install-am \
+ install-data install-data-am install-dvi install-dvi-am \
+ install-exec install-exec-am install-exec-local install-html \
+ install-html-am install-info install-info-am \
+ install-libLTLIBRARIES install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
installcheck-am installdirs maintainer-clean \
maintainer-clean-generic mostlyclean mostlyclean-compile \
- mostlyclean-generic mostlyclean-libtool tags uninstall \
- uninstall-am uninstall-info-am uninstall-libLTLIBRARIES
+ mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+ tags uninstall uninstall-am uninstall-libLTLIBRARIES
# Remove nsprstub.o from libnssckfw.a so we can use our own stub, then
# relink after the "main" link using the C++ compiler. On Solaris ar
# fails if the object isn't in the library, so be very careful about
# removing it.
-all-local: libnssckfw2.a relink ldapget
+all-local: libnssckfw2.a relink ldapget crlhelper
libnssckfw2.a:
cp @nss_lib_dir(a)/libnssckfw.a libnssckfw2.a
@@ -532,23 +693,35 @@
# The environment variable $CRUNTIME needs to be set to -library=Crun
# on Solaris systems.
relink: librevocation.la libnssckfw2.a
- rm -f .libs/librevocation.so.$(LIB_VERSION)
- $(CXX) $(SHARED_LINK) -Wl,-soname,librevocation.so.0 $(am_librevocation_la_OBJECTS)
$(LIBS) libnssckfw2.a -lnssb -o .libs/librevocation.so.$(LIB_VERSION) $(CRUNTIME)
+# rm -f .libs/librevocation.so.$(LIB_VERSION)
+# $(CXX) $(SHARED_LINK) -Wl,-soname,librevocation.so.0 $(am_librevocation_la_OBJECTS)
$(LIBS) libnssckfw2.a -lnssb -o .libs/librevocation.so.$(LIB_VERSION) $(CRUNTIME)
+ rm -f .libs/librevocation.so*
+ $(LIBTOOL) --tag=CXX $(AM_LIBTOOLFLAGS) \
+ $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \
+ $(CXXFLAGS) $(librevocation_la_LDFLAGS) $(LDFLAGS) -o librevocation.la \
+ -rpath $(libdir) $(librevocation_la_OBJECTS) $(librevocation_la_LIBADD) $(LIBS)
libnssckfw2.a -lnssb
+
+install-exec-local: all-local
+ install -m 755 ldapget $(bindir)
+ install -m 755 crlhelper $(bindir)
clean-local:
- -rm -f libnssckfw2.a ldapget
+ -rm -f libnssckfw2.a ldapget crlhelper
# Unit test program for fetching data from LDAP URLs. The average user won't
# need to compile or execute this but it is useful enough to keep around.
# This uses the local .libs directory to link against, assuming that the
# revocation library been installed globally yet.
ldaptest:
- $(CXX) ldaptest.cpp client.o ldap-client.o unescape.o -o ldaptest $(INCLUDES) $(LIBS) -L
.libs/ -lrevocation
+ $(CXX) $(CXXFLAGS) ldaptest.cpp client.o ldap-client.o unescape.o -o ldaptest
$(INCLUDES) $(LIBS) -L .libs/ -lrevocation
# This program is used to retrieve data from an LDAP URL and return the
# attribute data over stdout. It is used in conjunction with an exec:// URL
ldapget: ldapget.cpp relink
- $(CXX) ldapget.cpp client.o ldap-client.o unescape.o -o ldapget $(INCLUDES) $(LIBS)
libnssckfw2.a -L .libs/ -lrevocation
+ $(CXX) $(CXXFLAGS) ldapget.cpp client.o ldap-client.o http-client.o unescape.o -o
ldapget $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
+
+crlhelper: crlhelper.cpp relink
+ $(CXX) $(CXXFLAGS) crlhelper.cpp client.o ldap-client.o http-client.o unescape.o -o
crlhelper $(INCLUDES) $(LIBS) libnssckfw2.a -L .libs/ -lrevocation
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.5 -r 1.6 configure
Index: configure
===================================================================
RCS file: /cvs/dirsec/mod_revocator/configure,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- configure 17 Oct 2006 20:42:03 -0000 1.5
+++ configure 13 Apr 2010 14:11:10 -0000 1.6
@@ -1,61 +1,145 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.57.
+# Generated by GNU Autoconf 2.63.
#
-# Copyright 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, 2002
-# Free Software Foundation, Inc.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
# This configure script is free software; the Free Software Foundation
# gives unlimited permission to copy, distribute and modify it.
## --------------------- ##
## M4sh Initialization. ##
## --------------------- ##
-# Be Bourne compatible
+# Be more Bourne compatible
+DUALCASE=1; export DUALCASE # for MKS sh
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null
2>&1; then
emulate sh
NULLCMD=:
- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
# is contrary to our usage. Disable this feature.
alias -g '${1+"$@"}'='"$@"'
-elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null
2>&1; then
- set -o posix
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in
+ *posix*) set -o posix ;;
+esac
+
+fi
+
+
+
+
+# PATH needs CR
+# Avoid depending upon Character Ranges.
+as_cr_letters='abcdefghijklmnopqrstuvwxyz'
+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
+as_cr_Letters=$as_cr_letters$as_cr_LETTERS
+as_cr_digits='0123456789'
+as_cr_alnum=$as_cr_Letters$as_cr_digits
+
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+ as_echo='printf %s\n'
+ as_echo_n='printf %s'
+else
+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n
$as_echo"; then
+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+ as_echo_n='/usr/ucb/echo -n'
+ else
+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+ as_echo_n_body='eval
+ arg=$1;
+ case $arg in
+ *"$as_nl"*)
+ expr "X$arg" : "X\\(.*\\)$as_nl";
+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+ esac;
+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+ '
+ export as_echo_n_body
+ as_echo_n='sh -c $as_echo_n_body as_echo'
+ fi
+ export as_echo_body
+ as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+ PATH_SEPARATOR=:
+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 &&
{
+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+ PATH_SEPARATOR=';'
+ }
fi
# Support unset when possible.
-if (FOO=FOO; unset FOO) >/dev/null 2>&1; then
+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
as_unset=unset
else
as_unset=false
fi
+# IFS
+# We need space, tab and new line, in precisely that order. Quoting is
+# there to prevent editors from complaining about space-tab.
+# (If _AS_PATH_WALK were called with IFS unset, it would disable word
+# splitting by setting IFS to empty value.)
+IFS=" "" $as_nl"
+
+# Find who we are. Look in the path if we contain no directory separator.
+case $0 in
+ *[\\/]* ) as_myself=$0 ;;
+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+ IFS=$as_save_IFS
+ test -z "$as_dir" && as_dir=.
+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
+done
+IFS=$as_save_IFS
+
+ ;;
+esac
+# We did not find ourselves, most probably we were run as `sh COMMAND'
+# in which case we are not to be found in the path.
+if test "x$as_myself" = x; then
+ as_myself=$0
+fi
+if test ! -f "$as_myself"; then
+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file
name" >&2
+ { (exit 1); exit 1; }
+fi
+
# Work around bugs in pre-3.0 UWIN ksh.
-$as_unset ENV MAIL MAILPATH
+for as_var in ENV MAIL MAILPATH
+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+done
PS1='$ '
PS2='> '
PS4='+ '
# NLS nuisances.
-for as_var in \
- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
- LC_TELEPHONE LC_TIME
-do
- if (set +x; test -n "`(eval $as_var=C; export $as_var) 2>&1`"); then
- eval $as_var=C; export $as_var
- else
- $as_unset $as_var
- fi
-done
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
# Required to use basename.
-if expr a : '\(a\)' >/dev/null 2>&1; then
+if expr a : '\(a\)' >/dev/null 2>&1 &&
+ test "X`expr 00001 : '.*\(...\)'`" = X001; then
as_expr=expr
else
as_expr=false
fi
-if (basename /) >/dev/null 2>&1 && test "X`basename /
2>&1`" = "X/"; then
+if (basename -- /) >/dev/null 2>&1 && test "X`basename -- /
2>&1`" = "X/"; then
as_basename=basename
else
as_basename=false
@@ -63,194 +147,430 @@
# Name of the executable.
-as_me=`$as_basename "$0" ||
+as_me=`$as_basename -- "$0" ||
$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
X"$0" : 'X\(//\)$' \| \
- X"$0" : 'X\(/\)$' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X/"$0" |
- sed '/^.*\/\([^/][^/]*\)\/*$/{ s//\1/; q; }
- /^X\/\(\/\/\)$/{ s//\1/; q; }
- /^X\/\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X/"$0" |
+ sed '/^.*\/\([^/][^/]*\)\/*$/{
+ s//\1/
+ q
+ }
+ /^X\/\(\/\/\)$/{
+ s//\1/
+ q
[...26741 lines suppressed...]
- X"$mf" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$mf" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
+ X"$mf" : 'X\(//\)[^/]' \| \
+ X"$mf" : 'X\(//\)$' \| \
+ X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$mf" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
else
continue
fi
- grep '^DEP_FILES *= *[^ #]' < "$mf" > /dev/null || continue
- # Extract the definition of DEP_FILES from the Makefile without
- # running `make'.
- DEPDIR=`sed -n -e '/^DEPDIR = / s///p' < "$mf"`
+ # Extract the definition of DEPDIR, am__include, and am__quote
+ # from the Makefile without running `make'.
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
test -z "$DEPDIR" && continue
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
+ test -z "am__include" && continue
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
# When using ansi2knr, U may be empty or an underscore; expand it
- U=`sed -n -e '/^U = / s///p' < "$mf"`
- test -d "$dirpart/$DEPDIR" || mkdir "$dirpart/$DEPDIR"
- # We invoke sed twice because it is the simplest approach to
- # changing $(DEPDIR) to its actual value in the expansion.
- for file in `sed -n -e '
- /^DEP_FILES = .*\\\\$/ {
- s/^DEP_FILES = //
- :loop
- s/\\\\$//
- p
- n
- /\\\\$/ b loop
- p
- }
- /^DEP_FILES = / s/^DEP_FILES = //p' < "$mf" | \
+ U=`sed -n 's/^U = //p' < "$mf"`
+ # Find all dependency output files, they are included files with
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
+ # simplest approach to changing $(DEPDIR) to its actual value in the
+ # expansion.
+ for file in `sed -n "
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p'
<"$mf" | \
sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e
's/\$U/'"$U"'/g'`; do
# Make sure the directory exists.
test -f "$dirpart/$file" && continue
- fdir=`(dirname "$file") 2>/dev/null ||
+ fdir=`$as_dirname -- "$file" ||
$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$file" : 'X\(//\)[^/]' \| \
- X"$file" : 'X\(//\)$' \| \
- X"$file" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$file" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
- { if $as_mkdir_p; then
- mkdir -p $dirpart/$fdir
- else
- as_dir=$dirpart/$fdir
+ X"$file" : 'X\(//\)[^/]' \| \
+ X"$file" : 'X\(//\)$' \| \
+ X"$file" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$file" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ { as_dir=$dirpart/$fdir
+ case $as_dir in #(
+ -*) as_dir=./$as_dir;;
+ esac
+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; }
|| {
as_dirs=
- while test ! -d "$as_dir"; do
- as_dirs="$as_dir $as_dirs"
- as_dir=`(dirname "$as_dir") 2>/dev/null ||
+ while :; do
+ case $as_dir in #(
+ *\'*) as_qdir=`$as_echo "$as_dir" | sed
"s/'/'\\\\\\\\''/g"`;; #'(
+ *) as_qdir=$as_dir;;
+ esac
+ as_dirs="'$as_qdir' $as_dirs"
+ as_dir=`$as_dirname -- "$as_dir" ||
$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
- X"$as_dir" : 'X\(//\)[^/]' \| \
- X"$as_dir" : 'X\(//\)$' \| \
- X"$as_dir" : 'X\(/\)' \| \
- . : '\(.\)' 2>/dev/null ||
-echo X"$as_dir" |
- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; }
- /^X\(\/\/\)[^/].*/{ s//\1/; q; }
- /^X\(\/\/\)$/{ s//\1/; q; }
- /^X\(\/\).*/{ s//\1/; q; }
- s/.*/./; q'`
+ X"$as_dir" : 'X\(//\)[^/]' \| \
+ X"$as_dir" : 'X\(//\)$' \| \
+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_dir" |
+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)[^/].*/{
+ s//\1/
+ q
+ }
+ /^X\(\/\/\)$/{
+ s//\1/
+ q
+ }
+ /^X\(\/\).*/{
+ s//\1/
+ q
+ }
+ s/.*/./; q'`
+ test -d "$as_dir" && break
done
- test ! -n "$as_dirs" || mkdir $as_dirs
- fi || { { echo "$as_me:$LINENO: error: cannot create directory
$dirpart/$fdir" >&5
-echo "$as_me: error: cannot create directory $dirpart/$fdir" >&2;}
+ test -z "$as_dirs" || eval "mkdir $as_dirs"
+ } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot
create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
{ (exit 1); exit 1; }; }; }
-
# echo "creating $dirpart/$file"
echo '# dummy' > "$dirpart/$file"
done
done
;;
+
esac
-done
-_ACEOF
+done # for ac_tag
-cat >>$CONFIG_STATUS <<\_ACEOF
{ (exit 0); exit 0; }
_ACEOF
chmod +x $CONFIG_STATUS
ac_clean_files=$ac_clean_files_save
+test $ac_write_fail = 0 ||
+ { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS"
>&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+ { (exit 1); exit 1; }; }
+
# configure is writing to config.log, and then calls config.status.
# config.status does its own redirection, appending to config.log.
@@ -10632,4 +21945,8 @@
# would make configure fail if this is the last instruction.
$ac_cs_success || { (exit 1); exit 1; }
fi
+if test -n "$ac_unrecognized_opts" && test
"$enable_option_checking" != no; then
+ { $as_echo "$as_me:$LINENO: WARNING: unrecognized options:
$ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts"
>&2;}
+fi
Index: ChangeLog
===================================================================
RCS file: /cvs/dirsec/mod_revocator/ChangeLog,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- ChangeLog 5 Jun 2007 14:38:58 -0000 1.2
+++ ChangeLog 13 Apr 2010 14:11:11 -0000 1.3
@@ -1,3 +1,9 @@
+Mon Apr 12 2010 Rob Crittenden <rcritten(a)redhat.com>
+ * Change initialization model to work with NSS > 3.11.9 and mod_nss 1.0.8.
+ * Use external helper program to retrieve CRLs so every Apache child
+ won't all retrieve the same CRL from the source.
+ * tagged mod_revocator 1.0.3
+
Tue Jun 6 2007 Rob Crittenden <rcritten(a)redhat.com>
* Include If-Modified-Since header on HTTP/S requests so we don't try
to retrieve and install a CRL that hasn't changed.
Index: README
===================================================================
RCS file: /cvs/dirsec/mod_revocator/README,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- README 12 Oct 2006 14:52:15 -0000 1.3
+++ README 13 Apr 2010 14:11:11 -0000 1.4
@@ -65,8 +65,14 @@
lacks libnssb.a so it is not possible to build against that. FC5 also
doesn't ship the Mozilla LDAP SDK.
+ IMPORTANT: This is not at all well-tested against mozldap. Chances are
+ very good that it no longer works.
+
CONFIGURATION
+ CRLHelper (/path/to/crlhelper). The full path to the crlhelper program
+ which does the actual downloading of remote CRLs.
+
CRLEngine (on/off). This turns on/off CRL revocation. This actives the
automatic CRL retrieval for this server.
@@ -152,6 +158,7 @@
CRLFile
http://somehost.example.com/MasterCRL.crl;60;60
CRLAgeCheck off
CRLUpdateCritical off
+ CRLHelper /usr/bin/crlhelper
DEVELOPERS
Index: client.cpp
===================================================================
RCS file: /cvs/dirsec/mod_revocator/client.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- client.cpp 5 Jun 2007 14:38:58 -0000 1.3
+++ client.cpp 13 Apr 2010 14:11:11 -0000 1.4
@@ -21,6 +21,7 @@
*
*/
+#include <unistd.h>
#include <string.h>
#include "client.h"
@@ -65,6 +66,108 @@
{ 27, "HTTP 304 Not Modified returned. The CRL hasn't changed since the last
retrieval." }
};
+/*
+ * Wrapper function for fetch_url().
+ *
+ * This communicates across a pipe to retrieve a CRL from the crlhelper
+ * program and handles creating the status entry based on the returned
+ * errnum.
+ */
+PR_IMPLEMENT(void *)get_crl(int infd, int outfd, const char * url, int timeout, PRTime
lastfetchtime, int * len, RevStatus& status)
+{
+ int errnum = -1;
+ int nbytes;
+ PRInt32 elements = 0;
+ char **values=NULL;
+ PRBool header_done=PR_FALSE;
+ char *data = NULL;
+ int totalread = 0;
+ int sz = 4096;
+ char buffer[4096];
+ int toread = 0;
+
+ if (!url) {
+ status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[errnum].errorString);
+ }
+
+ if (!status.hasFailed()) {
+ data = (char *)malloc(4096);
+ *len = 0;
+
+ /* Place the request to our crlhelper via the pipe */
+ PR_snprintf(buffer, sizeof(buffer), "%lld %s", lastfetchtime, (char
*)url);
+ nbytes = write(outfd, buffer, strlen(buffer));
+ if (nbytes == -1) {
+ status.setError(REV_ERROR_INVALID_URL_TYPE,
client_errors[CL_HTTP_WRITE_FAILED].errorString);
+ goto done;
+ }
+
+ /* There are two conditions here:
+ * 1. We haven't read the header yet with the errnum & len
+ * 2. We haven't slurped in the rest of the data.
+ *
+ * The idea here is to read the header to figure out much data
+ * to expect, then read it all in.
+ */
+ while (PR_FALSE == header_done || toread > 0) {
+ int i;
+
+ nbytes=read(infd, buffer, 4096);
+
+ if (nbytes > 0) {
+ totalread += nbytes;
+ if (totalread >= sz) {
+ // We need a bigger buffer
+ char * olddata = data;
+ data = (char *) realloc(olddata, totalread+4096);
+ if (!data) {
+ if (olddata) {
+ free(olddata);
+ }
+ errnum = CL_OUT_OF_MEMORY;
+ goto done;
+ }
+ sz += 4096;
+ }
+ memcpy((char *)data+totalread-nbytes, buffer, nbytes);
+ }
+ if (*len == 0)
+ Rev_ParseString((const char *)data, ' ', &elements,
&values);
+ if (PR_FALSE == header_done && elements > 2) {
+ int data_read, header_len;
+ errnum = strtol(values[0], NULL, 10);
+ *len = strtol(values[1], NULL, 10);
+ header_len = (strlen(values[0]) + strlen(values[1]) + 2);
+ data_read = totalread - header_len;
+ toread = *len - data_read;
+ totalread = totalread - header_len;
+ header_done = PR_TRUE;
+ if (data_read > 0) {
+ memmove(data, (char *)data + header_len, data_read);
+ data[data_read+1] = '\0';
+ } else {
+ totalread = 0;
+ }
+ } else if (PR_TRUE == header_done) {
+ toread = *len - totalread;
+ }
+ Rev_FreeParsedStrings(elements, values);
+ elements = 0;
+ }
+
+ data[*len] = '\0';
+ }
+done:
+
+ if (errnum == CL_NOUPDATE_AVAILABLE) {
+ status.setError(REV_ERROR_NOUPDATE_AVAILABLE,
client_errors[errnum].errorString);
+ } else if (errnum != -1) {
+ status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[errnum].errorString);
+ }
+
+ return data;
+}
+
/* Given a URL, determine the type and fetch the appropriate contents and
* return them.
*
@@ -77,31 +180,22 @@
*
* See the ldap-client.cpp and http-client.cpp for specific URL syntax.
*/
-PR_IMPLEMENT(void *)fetch_url(const char * url, int timeout, PRTime lastfetchtime, int *
len, RevStatus& status)
+PR_IMPLEMENT(void *)fetch_url(const char * url, int timeout, PRTime lastfetchtime, int *
len, int * errnum)
{
- int errnum = -1;
void * data = NULL;
- if (!url) {
- status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[errnum].errorString);
- }
+ *errnum = -1;
- if (!status.hasFailed()) {
+ if (url) {
if (!PL_strncasecmp(url, "ldap", 4))
- data = ldap_client(url, timeout, len, &errnum);
+ data = ldap_client(url, timeout, len, errnum);
else if (!PL_strncasecmp(url, "http", 4))
- data = http_client(url, timeout, lastfetchtime, len, &errnum);
+ data = http_client(url, timeout, lastfetchtime, len, errnum);
else if (!PL_strncasecmp(url, "exec", 4))
- data = exec_client(url, timeout, len, &errnum);
+ data = exec_client(url, timeout, len, errnum);
else
errnum = CL_URL_UNKNOWN;
}
-
- if (errnum == CL_NOUPDATE_AVAILABLE) {
- status.setError(REV_ERROR_NOUPDATE_AVAILABLE,
client_errors[errnum].errorString);
- } else if (errnum != -1) {
- status.setError(REV_ERROR_INVALID_URL_TYPE, client_errors[errnum].errorString);
- }
return data;
}
Index: client.h
===================================================================
RCS file: /cvs/dirsec/mod_revocator/client.h,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- client.h 5 Jun 2007 14:38:58 -0000 1.3
+++ client.h 13 Apr 2010 14:11:11 -0000 1.4
@@ -24,9 +24,12 @@
#define _CLIENT_H_
#include <nspr.h>
+#define __REVOCATION_IMPLEMENTATION__ 1
#include "revocation.h"
-PR_EXTERN(void *)fetch_url(const char * url, int timeout, PRTime lastfetchtime, int *
len, RevStatus& status);
+PR_IMPLEMENT(void *)get_crl(int infd, int outfd, const char * url, int timeout, PRTime
lastfetchtime, int * len, RevStatus& status);
+
+PR_EXTERN(void *)fetch_url(const char * url, int timeout, PRTime lastfetchtime, int *
len, int * errnum);
PR_EXTERN(void)free_url(void* urldata);
Index: crlmanager.cpp
===================================================================
RCS file: /cvs/dirsec/mod_revocator/crlmanager.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- crlmanager.cpp 5 Jun 2007 14:38:58 -0000 1.3
+++ crlmanager.cpp 13 Apr 2010 14:11:11 -0000 1.4
@@ -39,6 +39,10 @@
#include "certdb.h"
#include "revprivate.h"
#include "secder.h"
+#include <unistd.h>
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
#include <pk11func.h>
@@ -55,7 +59,21 @@
RevStatus mystatus;
PRInt32 len = 0 ;
output = NULL;
- void* data = fetch_url(inurl, timeout, lastfetchtime, &len, mystatus);
+ struct sembuf sb;
+
+ /* lock the pipe */
+ sb.sem_num = 0;
+ sb.sem_op = -1;
+ sb.sem_flg = SEM_UNDO;
+ if (semop(crlm->semid, &sb, 1) == -1) {
+ perror("semop reserve resource");
+ }
+ void* data = get_crl(crlm->infd, crlm->outfd, inurl, timeout, lastfetchtime,
&len, mystatus);
+ /* unlock the pipe */
+ sb.sem_op = 1;
+ if (semop(crlm->semid, &sb, 1) == -1) {
+ perror("semop free resource id");
+ }
/* We have a special case. If we have an HTTP request and the server
* response was 304 Not Modified we want to go ahead and continue as
@@ -427,7 +445,7 @@
{
reportError(mystatus);
}
- if (derCrl->len == 0) { /* This is ok, see DownloadCRL */
+ if (derCrl && derCrl->len == 0) { /* This is ok, see DownloadCRL */
lastfetchtime = now;
SECITEM_FreeItem(derCrl, PR_TRUE);
derCrl = NULL;
@@ -600,8 +618,13 @@
// parse the initialization string and initialize CRLInstances
char** crlstrings=NULL;
PRInt32 configuredcrls = 0;
+ // the last 3 values are special. They are:
+ // -2: semaphore id used for locking
+ // -1: pipe fd to read from
+ // 0: pipe fd to read from
PRBool status = Rev_ParseString(initstr, ' ', &configuredcrls,
&crlstrings);
+ configuredcrls-=3;
if (PR_FALSE == status || (!configuredcrls) )
{
current_status.setDetailedError(
@@ -610,6 +633,9 @@
initstr);
return;
}
+ semid = strtol(crlstrings[configuredcrls], NULL, 10);
+ infd = strtol(crlstrings[configuredcrls+1], NULL, 10);
+ outfd = strtol(crlstrings[configuredcrls+2], NULL, 10);
// you've got CRLs
PRInt32 counter;
@@ -677,7 +703,7 @@
Rev_FreeParsedStrings(attrcount, crlattrs);
}
- Rev_FreeParsedStrings(configuredcrls, crlstrings);
+ Rev_FreeParsedStrings(configuredcrls+3, crlstrings);
if (fatalerror)
{
freeAllCRLs();
Index: crlmanager.h
===================================================================
RCS file: /cvs/dirsec/mod_revocator/crlmanager.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- crlmanager.h 4 Aug 2006 18:53:09 -0000 1.2
+++ crlmanager.h 13 Apr 2010 14:11:11 -0000 1.3
@@ -105,6 +105,9 @@
PRInt32 getNumCrls() const;
void stop();
CRLInstance* getCrl(const PRInt32 index);
+ int semid;
+ int infd;
+ int outfd;
private:
PRBool addCRL(CRLInstance* newcrl);
Index: ldapget.cpp
===================================================================
RCS file: /cvs/dirsec/mod_revocator/ldapget.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- ldapget.cpp 12 Oct 2006 14:52:15 -0000 1.3
+++ ldapget.cpp 13 Apr 2010 14:11:11 -0000 1.4
@@ -44,7 +44,8 @@
char *datap, *p;
const char *url;
- if (argc < 1 || argc > 4) {
+ if (argc < 2 || argc > 4) {
+ printf("Usage: %s <NSS database> url\n", argv[0]);
return 1;
}
View full diff with command:
/usr/bin/cvs -f diff -kk -u -N -r 1.1.1.1 -r 1.2 ltmain.sh
Index: ltmain.sh
===================================================================
RCS file: /cvs/dirsec/mod_revocator/ltmain.sh,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- ltmain.sh 3 Aug 2006 19:39:33 -0000 1.1.1.1
+++ ltmain.sh 13 Apr 2010 14:11:11 -0000 1.2
@@ -1,8 +1,8 @@
# ltmain.sh - Provide generalized library-building support services.
# NOTE: Changing this file will not affect anything until you rerun configure.
#
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001
-# Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
+# 2007 Free Software Foundation, Inc.
# Originally by Gordon Matzigkeit <gord(a)gnu.ai.mit.edu>, 1996
#
# This program is free software; you can redistribute it and/or modify
@@ -17,13 +17,49 @@
#
# 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.
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
#
# As a special exception to the GNU General Public License, if you
# distribute this file as part of a program that contains a
# configuration script generated by Autoconf, you may include it under
# the same distribution terms that you use for the rest of that program.
+basename="s,^.*/,,g"
+
+# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
+# is ksh but when the shell is invoked as "sh" and the current value of
+# the _XPG environment variable is not equal to 1 (one), the special
+# positional parameter $0, within a function call, is the name of the
+# function.
+progpath="$0"
+
+# The name of this program:
+progname=`echo "$progpath" | $SED $basename`
+modename="$progname"
+
+# Global variables:
+EXIT_SUCCESS=0
+EXIT_FAILURE=1
+
+PROGRAM=ltmain.sh
+PACKAGE=libtool
+VERSION=1.5.24
+TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)"
+
+# Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null
2>&1; then
+ emulate sh
+ NULLCMD=:
+ # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
+ # is contrary to our usage. Disable this feature.
+ alias -g '${1+"$@"}'='"$@"'
+ setopt NO_GLOB_SUBST
+else
+ case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
+fi
+BIN_SH=xpg4; export BIN_SH # for Tru64
+DUALCASE=1; export DUALCASE # for MKS sh
+
# Check that we have a working $echo.
if test "X$1" = X--no-reexec; then
# Discard the --no-reexec flag, and continue.
@@ -36,7 +72,7 @@
:
else
# Restart under the correct shell, and then maybe $echo will work.
- exec $SHELL "$0" --no-reexec ${1+"$@"}
+ exec $SHELL "$progpath" --no-reexec ${1+"$@"}
fi
if test "X$1" = X--fallback-echo; then
@@ -45,19 +81,9 @@
cat <<EOF
$*
EOF
- exit 0
+ exit $EXIT_SUCCESS
fi
-# The name of this program.
-progname=`$echo "$0" | sed 's%^.*/%%'`
-modename="$progname"
-
-# Constants.
-PROGRAM=ltmain.sh
-PACKAGE=libtool
-VERSION=1.4
-TIMESTAMP=" (1.920 2001/04/24 23:26:18)"
-
default_mode=
help="Try \`$progname --help' for more information."
magic="%%%MAGIC variable%%%"
@@ -67,27 +93,44 @@
# Sed substitution that helps us do robust quoting. It backslashifies
# metacharacters that are still active within double-quoted strings.
-Xsed='sed -e 1s/^X//'
+Xsed="${SED}"' -e 1s/^X//'
sed_quote_subst='s/\([\\`\\"$\\\\]\)/\\\1/g'
-SP2NL='tr \040 \012'
-NL2SP='tr \015\012 \040\040'
+# test EBCDIC or ASCII
+case `echo X|tr X '\101'` in
+ A) # ASCII based system
+ # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
+ SP2NL='tr \040 \012'
+ NL2SP='tr \015\012 \040\040'
+ ;;
+ *) # EBCDIC based system
+ SP2NL='tr \100 \n'
+ NL2SP='tr \r\n \100\100'
+ ;;
+esac
# NLS nuisances.
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
# We save the old values to restore during execute mode.
-if test "${LC_ALL+set}" = set; then
- save_LC_ALL="$LC_ALL"; LC_ALL=C; export LC_ALL
-fi
-if test "${LANG+set}" = set; then
- save_LANG="$LANG"; LANG=C; export LANG
-fi
+for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+do
+ eval "if test \"\${$lt_var+set}\" = set; then
+ save_$lt_var=\$$lt_var
+ $lt_var=C
+ export $lt_var
+ fi"
+done
+
+# Make sure IFS has a sensible default
+lt_nl='
+'
+IFS=" $lt_nl"
if test "$build_libtool_libs" != yes && test
"$build_old_libs" != yes; then
- echo "$modename: not configured to build any kind of library" 1>&2
- echo "Fatal configuration error. See the $PACKAGE docs for more
information." 1>&2
- exit 1
+ $echo "$modename: not configured to build any kind of library" 1>&2
+ $echo "Fatal configuration error. See the $PACKAGE docs for more
information." 1>&2
+ exit $EXIT_FAILURE
fi
# Global variables.
@@ -99,11 +142,286 @@
show="$echo"
show_help=
execute_dlfiles=
+duplicate_deps=no
+preserve_args=
lo2o="s/\\.lo\$/.${objext}/"
o2lo="s/\\.${objext}\$/.lo/"
+extracted_archives=
+extracted_serial=0
+
+#####################################
+# Shell function definitions:
+# This seems to be the best place for them
+
+# func_mktempdir [string]
+# Make a temporary directory that won't clash with other running
+# libtool processes, and avoids race conditions if possible. If
+# given, STRING is the basename for that directory.
+func_mktempdir ()
+{
+ my_template="${TMPDIR-/tmp}/${1-$progname}"
+
+ if test "$run" = ":"; then
+ # Return a directory name, but don't create it in dry-run mode
+ my_tmpdir="${my_template}-$$"
+ else
+
+ # If mktemp works, use that first and foremost
+ my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
+
+ if test ! -d "$my_tmpdir"; then
+ # Failing that, at least try and use $RANDOM to avoid a race
+ my_tmpdir="${my_template}-${RANDOM-0}$$"
+
+ save_mktempdir_umask=`umask`
+ umask 0077
+ $mkdir "$my_tmpdir"
+ umask $save_mktempdir_umask
+ fi
+
+ # If we're not in dry-run mode, bomb out on failure
+ test -d "$my_tmpdir" || {
[...5739 lines suppressed...]
- if test $? != 0 && test "$rmforce" != yes; then
+ if test "$?" -ne 0 && test "$rmforce" != yes; then
exit_status=1
fi
done
IFS="$save_ifs"
fi
# FIXME: should reinstall the best remaining shared library.
- fi
+ ;;
+ esac
fi
;;
*.lo)
- if test "$build_old_libs" = yes; then
- oldobj=`$echo "X$name" | $Xsed -e "$lo2o"`
- rmfiles="$rmfiles $dir/$oldobj"
+ # Possibly a libtool object, so verify it.
+ if (${SED} -e '2q' $file | grep "^# Generated by .*$PACKAGE")
>/dev/null 2>&1; then
+
+ # Read the .lo file
+ . $dir/$name
+
+ # Add PIC object to the list of files to remove.
+ if test -n "$pic_object" \
+ && test "$pic_object" != none; then
+ rmfiles="$rmfiles $dir/$pic_object"
+ fi
+
+ # Add non-PIC object to the list of files to remove.
+ if test -n "$non_pic_object" \
+ && test "$non_pic_object" != none; then
+ rmfiles="$rmfiles $dir/$non_pic_object"
+ fi
fi
;;
*)
- # Do a test to see if this is a libtool program.
- if test $mode = clean &&
- (sed -e '4q' $file | egrep "^# Generated by .*$PACKAGE")
>/dev/null 2>&1; then
- relink_command=
- . $dir/$file
+ if test "$mode" = clean ; then
+ noexename=$name
+ case $file in
+ *.exe)
+ file=`$echo $file|${SED} 's,.exe$,,'`
+ noexename=`$echo $name|${SED} 's,.exe$,,'`
+ # $file with .exe has already been added to rmfiles,
+ # add $file without .exe
+ rmfiles="$rmfiles $file"
+ ;;
+ esac
+ # Do a test to see if this is a libtool program.
+ if (${SED} -e '4q' $file | grep "^# Generated by .*$PACKAGE")
>/dev/null 2>&1; then
+ relink_command=
+ . $dir/$noexename
- rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
- if test "$fast_install" = yes && test -n
"$relink_command"; then
- rmfiles="$rmfiles $objdir/lt-$name"
+ # note $name still contains .exe if it was in $file originally
+ # as does the version of $file that was added into $rmfiles
+ rmfiles="$rmfiles $objdir/$name $objdir/${name}S.${objext}"
+ if test "$fast_install" = yes && test -n
"$relink_command"; then
+ rmfiles="$rmfiles $objdir/lt-$name"
+ fi
+ if test "X$noexename" != "X$name" ; then
+ rmfiles="$rmfiles $objdir/lt-${noexename}.c"
+ fi
fi
fi
;;
@@ -4725,6 +6674,7 @@
$show "$rm $rmfiles"
$run $rm $rmfiles || exit_status=1
done
+ objdir="$origobjdir"
# Try to remove the ${objdir}s in the directories where we deleted files
for dir in $rmdirs; do
@@ -4740,15 +6690,22 @@
"")
$echo "$modename: you must specify a MODE" 1>&2
$echo "$generic_help" 1>&2
- exit 1
+ exit $EXIT_FAILURE
;;
esac
- $echo "$modename: invalid operation mode \`$mode'" 1>&2
- $echo "$generic_help" 1>&2
- exit 1
+ if test -z "$exec_cmd"; then
+ $echo "$modename: invalid operation mode \`$mode'" 1>&2
+ $echo "$generic_help" 1>&2
+ exit $EXIT_FAILURE
+ fi
fi # test -z "$show_help"
+if test -n "$exec_cmd"; then
+ eval exec $exec_cmd
+ exit $EXIT_FAILURE
+fi
+
# We need to display help for each of the modes.
case $mode in
"") $echo \
@@ -4765,6 +6722,7 @@
--mode=MODE use operation mode MODE [default=inferred from MODE-ARGS]
--quiet same as \`--silent'
--silent don't print informational messages
+ --tag=TAG use configuration variables from tag TAG
--version print version information
MODE must be one of the following:
@@ -4778,8 +6736,10 @@
uninstall remove libraries from an installed directory
MODE-ARGS vary depending on the MODE. Try \`$modename --help --mode=MODE' for
-a more detailed description of MODE."
- exit 0
+a more detailed description of MODE.
+
+Report bugs to <bug-libtool(a)gnu.org>."
+ exit $EXIT_SUCCESS
;;
clean)
@@ -4880,9 +6840,9 @@
-dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols
-export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-export-symbols SYMFILE
- try to export only the symbols listed in SYMFILE
+ try to export only the symbols listed in SYMFILE
-export-symbols-regex REGEX
- try to export only the symbols matching REGEX
+ try to export only the symbols matching REGEX
-LLIBDIR search LIBDIR for required installed libraries
-lNAME OUTPUT-FILE requires the installed library libNAME
-module build a library that can dlopened
@@ -4890,12 +6850,17 @@
-no-install link a not-installable executable
-no-undefined declare that a library does not refer to external symbols
-o OUTPUT-FILE create OUTPUT-FILE from the specified objects
+ -objectlist FILE Use a list of object files found in FILE to specify objects
+ -precious-files-regex REGEX
+ don't remove output files matching REGEX
-release RELEASE specify package release information
-rpath LIBDIR the created library will eventually be installed in LIBDIR
-R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries
- -static do not do any dynamic linking of libtool libraries
+ -static do not do any dynamic linking of uninstalled libtool libraries
+ -static-libtool-libs
+ do not do any dynamic linking of libtool libraries
-version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
+ specify library version info [each variable defaults to 0]
All other options (arguments beginning with \`-') are ignored.
@@ -4931,14 +6896,33 @@
*)
$echo "$modename: invalid operation mode \`$mode'" 1>&2
$echo "$help" 1>&2
- exit 1
+ exit $EXIT_FAILURE
;;
esac
-echo
+$echo
$echo "Try \`$modename --help' for more information about other modes."
-exit 0
+exit $?
+
+# The TAGs below are defined such that we never get into a situation
+# in which we disable both kinds of libraries. Given conflicting
+# choices, we go for a static library, that is the most portable,
+# since we can't tell whether shared libraries were disabled because
+# the user asked for that or because the platform doesn't support
+# them. This is particularly important on AIX, because we don't
+# support having both static and shared libraries enabled at the same
+# time on that platform, so we default to a shared-only configuration.
+# If a disable-shared tag is given, we'll fallback to a static-only
+# configuration. But we'll never go from static-only to shared-only.
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
+disable_libs=shared
+# ### END LIBTOOL TAG CONFIG: disable-shared
+
+# ### BEGIN LIBTOOL TAG CONFIG: disable-static
+disable_libs=static
+# ### END LIBTOOL TAG CONFIG: disable-static
# Local Variables:
# mode:shell-script
Index: mod_rev.c
===================================================================
RCS file: /cvs/dirsec/mod_revocator/mod_rev.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- mod_rev.c 5 Jun 2007 14:38:58 -0000 1.4
+++ mod_rev.c 13 Apr 2010 14:11:11 -0000 1.5
@@ -1,5 +1,5 @@
/** BEGIN COPYRIGHT BLOCK
- * Copyright (c) 2006 Red Hat, Inc. All rights reserved.
+ * Copyright (c) 2006-2010 Red Hat, Inc. All rights reserved.
*
* This copyrighted material is made available to anyone wishing to use,
* modify, copy, or redistribute it subject to the terms and conditions of
@@ -17,6 +17,24 @@
* END COPYRIGHT BLOCK **/
/*
* mod_rev.c: Do automatic CRL retrieval and import.
+ *
+ * The basic idea is:
+ * - On the Apache first-run (which normally just validates the config) fire
+ * off the CRLHelper. Apache child process communicate to it over a two-way
+ * pipe. This is used to do actual CRL retrieval.
+ * - Access is controlled to this via a semaphore. The semaphore is actually
+ * deleted in the CRLHelper program, otherwise we'd have troubles keeping
+ * it around between Apache reloads and closing it properly.
+ * - The CRLFile parameter is parsed and it and the two pipe file descriptors
+ * are passed to a PKCS#11 module that handles the NSS side of things.
+ * - When the PKCS#11 module determines it needs a new CRL it locks the
+ * semaphore, sends the request over the pipe and receives the response.
+ * - The semaphore is then unlocked so the next child process can make a
+ * request.
+ * - The CRLHelper caches responses for 58 seconds. The Apache children
+ * will generally make update requests at the same time and this will
+ * let us avoid frequent remote retrievals and still allow for quick
+ * CRL expiration (and it makes testing easier).
*
* Rob Crittenden
*
@@ -24,6 +42,9 @@
#include <sys/types.h>
#include <unistd.h>
+#include <sys/types.h>
+#include <sys/ipc.h>
+#include <sys/sem.h>
#include "ap_config.h"
#include "http_core.h"
#include "http_config.h"
@@ -39,7 +60,13 @@
apr_status_t rev_module_kill(void *data)
{
- ShutdownRevocation(data); /* FIXME, should do something with return value */
+ server_rec *s = (server_rec *)data;
+ rev_config * sc = (rev_config *)ap_get_module_config(s->module_config,
&rev_module);
+
+ /* The semaphore is removed in the helper program. This is because that
+ * program survives Apache reloads so the semaphore will as well.
+ */
+ ShutdownRevocation(sc->crlengine); /* FIXME, should do something with return value
*/
return APR_SUCCESS;
}
@@ -62,6 +89,10 @@
sc->crlagecheck = FALSE;
sc->crlcritical = FALSE;
sc->crlfile = NULL;
+ sc->crlhelper = NULL;
+ sc->database = NULL;
+ sc->dbprefix = NULL;
+ sc->user = NULL;
/* So we can save data between server restarts */
apr_pool_userdata_set(sc, REV_MOD_CONFIG_KEY,
@@ -286,17 +317,16 @@
static apr_dso_handle_t *dlh = NULL;
#define CONFIGLEN 4096
+
static int
-InitRevocation(apr_pool_t *p, apr_pool_t *plog,
- apr_pool_t *ptemp, server_rec *s)
+init_Module(apr_pool_t *p, apr_pool_t *plog,
+ apr_pool_t *ptemp, server_rec *s)
{
- apr_status_t status;
- char * configstring = NULL;
rev_config * sc = (rev_config *)ap_get_module_config(s->module_config,
&rev_module);
- void* agecheck = (void *)sc->crlagecheck;
- void* critical = (void *)sc->crlcritical;
- Rev_SetFailureCallbackEntryPoint setfcb = NULL;
- Rev_SetDownloadCallbackEntryPoint setncb = NULL;
+ struct semid_ds status;
+ uid_t user_id;
+
+ user_id = ap_uname2id(sc->user);
/* We need the pid of the Apache server so we can kill it if things
* go wrong.
@@ -305,6 +335,101 @@
sc->nInitCount++;
+ /* The first pass through this function will create the semaphore that
+ * will be used to lock the pipe. The user is still root at that point
+ * so for any later calls the semaphore ops will fail with permission
+ * errors. So switch the user to the Apache user.
+ */
+ if (sc->semid) {
+ semctl(sc->semid, 0, IPC_STAT, &status);
+ status.sem_perm.uid = user_id;
+ semctl(sc->semid,0,IPC_SET,&status);
+ }
+
+ if (sc->nInitCount == 1) {
+ const char * child_argv[5];
+ apr_status_t rv;
+ struct sembuf sb;
+ char sembuf[32];
+
+ if (sc->crlhelper == NULL) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "CRLHelper is not set. It is required.");
+ nss_die();
+ }
+
+ sc->semid = semget(IPC_PRIVATE, 1, IPC_CREAT | IPC_EXCL | 0600);
+ if (sc->semid == -1) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "Unable to obtain semaphore.");
+ nss_die();
+ }
+
+ /* Initialize the semaphore */
+ sb.sem_num = 0;
+ sb.sem_op = 1;
+ sb.sem_flg = 0;
+ if ((semop(sc->semid, &sb, 1)) == -1) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "Unable to initialize semaphore.");
+ nss_die();
+ }
+
+ PR_snprintf(sembuf, 32, "%d", sc->semid);
+ child_argv[0] = sc->crlhelper;
+ child_argv[1] = sembuf;
+ child_argv[2] = sc->database;
+ child_argv[3] = sc->dbprefix;
+ child_argv[4] = NULL;
+
+ rv = apr_procattr_create(&sc->procattr, s->process->pool);
+
+ if (rv != APR_SUCCESS) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "apr_procattr_create() failed APR err: %d.", rv);
+ nss_die();
+ }
+
+ apr_procattr_io_set(sc->procattr, APR_PARENT_BLOCK, APR_PARENT_BLOCK,
+ APR_FULL_NONBLOCK);
+ apr_procattr_error_check_set(sc->procattr, 1);
+
+ /* the process inherits our environment, which should allow the
+ * dynamic loader to find NSPR and NSS.
+ */
+ apr_procattr_cmdtype_set(sc->procattr, APR_PROGRAM_ENV);
+
+ /* We've now spawned our helper process, the actual communication
+ * with it occurs in the crlmanager.
+ */
+ rv = apr_proc_create(&sc->proc, child_argv[0], child_argv, NULL,
sc->procattr, s->process->pool);
+ if (rv != APR_SUCCESS) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ "apr_proc_create failed to launch %s APR err: %d.",
child_argv[0], rv);
+ nss_die();
+ }
+ /* Set a 30-second read/write timeout */
+ apr_file_pipe_timeout_set(sc->proc.in, apr_time_from_sec(30));
+ apr_file_pipe_timeout_set(sc->proc.out, apr_time_from_sec(30));
+ }
+
+ apr_pool_cleanup_register(p, s, rev_module_kill, apr_pool_cleanup_null);
+
+ return APR_SUCCESS;
+}
+
+static int
+InitRevocation(apr_pool_t *p, server_rec *base_server)
+{
+ apr_status_t status;
+ char * configstring = NULL;
+ rev_config * sc = (rev_config *)ap_get_module_config(base_server->module_config,
&rev_module);
+ void* agecheck = (void *)sc->crlagecheck;
+ void* critical = (void *)sc->crlcritical;
+ Rev_SetFailureCallbackEntryPoint setfcb = NULL;
+ Rev_SetDownloadCallbackEntryPoint setncb = NULL;
+ int infd, outfd;
+
/* Do nothing until Apache is ready to run */
if (sc->nInitCount < 2) return APR_SUCCESS;
@@ -319,7 +444,7 @@
char errstr[256];
apr_dso_error(dlh, errstr, 256);
- ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, base_server,
"Unable to load revocation subsystem library %s: %s.",
revocation_library, errstr);
return APR_EGENERAL;
@@ -340,20 +465,28 @@
/* set callback functions for logging */
setfcb(&NESRevocationFailureNotification, critical);
- setncb(&NESRevocationDownloadNotification, agecheck, s);
+ setncb(&NESRevocationDownloadNotification, agecheck, base_server);
if (sc->crlfile == NULL) {
- ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, base_server,
"Remote CRLs not specified. [Hint: set CRLFile]");
return APR_EGENERAL;
}
+ if (sc->database == NULL) {
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, base_server,
+ "NSS Certificate database not set [Hint: set
NSSCertificateDatabase]");
+ return APR_EGENERAL;
+ }
+
/* load PKCS#11 module */
/* first build full configuration string */
configstring = (char *)malloc(CONFIGLEN);
- PR_snprintf(configstring, CONFIGLEN, "library=%s name=revocation
parameters=\"%s\"", revocation_library, sc->crlfile ? sc->crlfile :
"");
+ apr_os_file_get(&outfd, sc->proc.in);
+ apr_os_file_get(&infd, sc->proc.out);
+ PR_snprintf(configstring, CONFIGLEN, "library=%s name=revocation
parameters=\"%s %ld %d %d\"", revocation_library, sc->crlfile ?
sc->crlfile : "", sc->semid, infd, outfd);
mod = SECMOD_LoadUserModule(configstring, NULL, PR_FALSE);
if (!mod || !mod->loaded)
@@ -365,17 +498,15 @@
}
free(configstring);
apr_dso_unload(dlh);
- ap_log_error(APLOG_MARK, APLOG_ERR, 0, s,
+ ap_log_error(APLOG_MARK, APLOG_ERR, 0, base_server,
"Unable to load secmod module: %d", PR_GetError());
return APR_EGENERAL;
}
free(configstring);
revocatorInitialized = PR_TRUE;
- ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, s,
- "Revocation subsystem initialized");
+ ap_log_error(APLOG_MARK, APLOG_NOTICE, 0, base_server,
+ "Revocation subsystem initialized %d", sc->nInitCount);
}
-
- apr_pool_cleanup_register(p, (void *)sc->crlengine, rev_module_kill,
apr_pool_cleanup_null);
return APR_SUCCESS;
}
@@ -408,11 +539,41 @@
}
}
-static const char *set_crlfile(cmd_parms *cmd, void *dummy, const char *arg)
+static const char *set_user(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ server_rec *s = cmd->server;
+ rev_config *cf = ap_get_module_config(s->module_config, &rev_module);
+
+ cf->user = arg;
+
+ return NULL;
+}
+
+static const char *set_dbprefix(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ server_rec *s = cmd->server;
+ rev_config *cf = ap_get_module_config(s->module_config, &rev_module);
+
+ cf->dbprefix = arg;
+
+ return NULL;
+}
+
+static const char *set_database(cmd_parms *cmd, void *dummy, const char *arg)
{
server_rec *s = cmd->server;
rev_config *cf = ap_get_module_config(s->module_config, &rev_module);
+ cf->database = arg;
+
+ return NULL;
+}
+
+static const char *set_crlfile(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ server_rec *s = cmd->server;
+ rev_config *cf = (rev_config *)ap_get_module_config(s->module_config,
&rev_module);
+
cf->crlfile = arg;
return NULL;
@@ -448,22 +609,46 @@
return NULL;
}
+static const char *set_crlhelper(cmd_parms *cmd, void *dummy, const char *arg)
+{
+ server_rec *s = cmd->server;
+ rev_config *cf = (rev_config *)ap_get_module_config(s->module_config,
&rev_module);
+
+ if (access(arg, R_OK|X_OK) != -1) {
+ cf->crlhelper = arg;
+ } else {
+ return ("CRLHelper does not exist or is not executable");
+ }
+
+ return NULL;
+}
+
static void register_hooks(apr_pool_t *p)
{
static const char * const aszPre[] = { "mod_nss.c", NULL };
- ap_hook_post_config(InitRevocation, aszPre, NULL, APR_HOOK_MIDDLE);
+ ap_hook_post_config(init_Module, aszPre, NULL, APR_HOOK_MIDDLE);
+ ap_hook_child_init(InitRevocation, aszPre, NULL, APR_HOOK_MIDDLE);
}
static const command_rec mod_rev_cmds[] =
{
AP_INIT_TAKE1("CRLFile", set_crlfile, NULL, RSRC_CONF,
"Specify the URL provided by your CA for downloading updated
CRLs."),
+ AP_INIT_TAKE1("CRLHelper", set_crlhelper, NULL, RSRC_CONF,
+ "Path to program that handles retrieving CRLs "
+ "(`/path/to/file`)"),
AP_INIT_FLAG("CRLEngine", set_crlengine, NULL, RSRC_CONF,
"Enable or Disable CRL Revocation checking."),
AP_INIT_FLAG("CRLAgeCheck", set_crlagecheck, NULL, RSRC_CONF,
"Shut down server if CRLs are too old."),
AP_INIT_FLAG("CRLUpdateCritical", set_crlcritical, NULL, RSRC_CONF,
"Shut down server if CRL updates fail."),
+ AP_INIT_TAKE1("NSSCertificateDatabase", set_database, NULL, RSRC_CONF,
+ "SSL Server Certificate database. Comes from nss.conf."),
+ AP_INIT_TAKE1("NSSDBPrefix", set_dbprefix, NULL, RSRC_CONF,
+ "NSS database prefix. Comes from nss.conf."),
+ AP_INIT_TAKE1("User", set_user, NULL, RSRC_CONF,
+ "Apache user. Comes from httpd.conf."),
{ NULL }
};
Index: mod_rev.h
===================================================================
RCS file: /cvs/dirsec/mod_revocator/mod_rev.h,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- mod_rev.h 4 Aug 2006 18:53:09 -0000 1.2
+++ mod_rev.h 13 Apr 2010 14:11:11 -0000 1.3
@@ -56,6 +56,13 @@
BOOL crlagecheck;
BOOL crlcritical;
const char *crlfile;
+ const char *crlhelper;
+ const char *database;
+ const char *dbprefix;
+ const char *user;
+ apr_proc_t proc;
+ apr_procattr_t *procattr;
+ int semid;
} rev_config;
#define REV_MOD_CONFIG_KEY "rev_module"
Index: revocator.conf
===================================================================
RCS file: /cvs/dirsec/mod_revocator/revocator.conf,v
retrieving revision 1.1.1.1
retrieving revision 1.2
diff -u -r1.1.1.1 -r1.2
--- revocator.conf 3 Aug 2006 19:39:33 -0000 1.1.1.1
+++ revocator.conf 13 Apr 2010 14:11:12 -0000 1.2
@@ -13,6 +13,10 @@
# Shut the server down if a CRL cannot be retrieved
CRLUpdateCritical off
+# CRL Helper:
+# This helper program does the actual CRL retrieval
+CRLHelper /usr/bin/crlhelper
+
# CRL URLs:
# A space delimited list of URLs to retrieve and install.
# protocol://urldata;update_interval;max_age