From 6aa4739a8d5b706adf4f8e41948d303f3d714491 Mon Sep 17 00:00:00 2001 From: Jeremy Penner Date: Sun, 14 Jun 2020 19:35:18 -0400 Subject: [PATCH] Initial commit --- README.md | 51 + default.nix | 117 + merge.sh | 7 + module.nix | 36 + php-5.2.17-fpm.patch | 33857 ++++++++++++++++++++++ php-5.2.17.tar.bz2 | Bin 0 -> 9092312 bytes php52-backports-security-20130717.patch | 7756 +++++ suhosin-0.9.31.tgz | Bin 0 -> 119746 bytes suhosin-patch-5.2.16-0.9.7.patch | 2640 ++ 9 files changed, 44464 insertions(+) create mode 100644 README.md create mode 100644 default.nix create mode 100755 merge.sh create mode 100644 module.nix create mode 100644 php-5.2.17-fpm.patch create mode 100644 php-5.2.17.tar.bz2 create mode 100644 php52-backports-security-20130717.patch create mode 100644 suhosin-0.9.31.tgz create mode 100644 suhosin-patch-5.2.16-0.9.7.patch diff --git a/README.md b/README.md new file mode 100644 index 0000000..7124caf --- /dev/null +++ b/README.md @@ -0,0 +1,51 @@ +# PHP 5.2.17 for NixOS + +I host a community site that is based on Drupal 5, which can't be upgraded without throwing the whole thing in the bin and starting from scratch. +Maybe someday I will do that, but in the meantime, people use it, and I have promised those people that I am not going to delete their stuff. + +# Usage + +I'm probably doing this wrong! I'm very new to NixOS. Bug reports or pull requests to make things more standard welcome. I think eventually I'll want this to +be a "flake"? I haven't read up on those yet. + +Right now I have this sitting in a directory called `php52` beside my nixops server definition. I use it like this: + +```nix +{ config, pkgs, lib, ...}: +let + php52 = import ./php52/default.nix { inherit pkgs; }; +in +{ + require = [ ./php52/module.nix ]; + + services.php52-fpm.enable = true; + services.nginx.enable = true; + services.nginx.virtualHosts = { + "old-php-site.com" = php52.vhost { + root = "/var/www/old-php-site"; + }; + "old-drupal-site.com" = php52.vhostDrupal { + root = "/var/www/old-drupal-site"; + }; + }; +} +``` + +`module.nix` defines an option to enable a systemd service that starts php-fpm on startup, before nginx starts. The `vhost` and `vhostDrupal` functions +take care of setting up secure default rules and connecting .php files to php-fpm. (`vhostDrupal` adds the rewrite rule that makes `/foo` internally map +to `/index.php?q=foo`.) + +## Implementation notes + +* I include source for all patches and modules directly because unsupported stuff that is a decade past end of life has a tendency to disappear from stable URLs. +* php52-backports-security-20130717.patch is required to build with modern libxml. It came from https://code.google.com/archive/p/php52-backports/downloads. +* I apply both the suhosin _patch_ and the suhosin _extension_, which are apparently totally separate things. The suhosin _extension_ is required for bcrypt + to work. I hacked my Drupal 5 installation to depend on bcrypt (I don't remember what it was doing for password hashing exactly but it wasn't good). So I + bundle it. +* I have no idea what I would need to do to patch PHP 5.2 so that you could actually used multiple extensions derived seperately in the nix store, so it's all + included in one giant derivation that does two builds. I also modify php.ini in place, so you really can't mess with it. +* PHP 5.2 also makes hard assumptions a few places in the `configure` script that a library's headers and its binaries share a parent directory, which under + `nixpkgs` is not true. I work around it by creating trivial derivations that merge the headers and binaries together for `libjpeg` and `libpng`. This is + dumb, but it works. +* PHP 5.2 appears to bundle its own version of `libgd`, and depend on some of its internal functions that have disappeared in more modern incarnations - + I gave up trying to tell it to use nixpkgs' version. diff --git a/default.nix b/default.nix new file mode 100644 index 0000000..bfe12da --- /dev/null +++ b/default.nix @@ -0,0 +1,117 @@ +{ pkgs ? import {}, lib ? import , ... }: +with pkgs; let + mergedLib = lib: name: + derivation { + inherit name coreutils; + system = builtins.currentSystem; + builder = "${bash}/bin/bash"; + args = [ ./merge.sh "${lib.out}/*" "${lib.dev}/*" ]; + }; + m_libjpeg = mergedLib libjpeg "m_libjpeg"; + m_libpng = mergedLib libpng "m_libpng"; + php52 = stdenv.mkDerivation { + name = "php52"; + src = ./php-5.2.17.tar.bz2; + patches = [ ./php52-backports-security-20130717.patch ./php-5.2.17-fpm.patch ./suhosin-patch-5.2.16-0.9.7.patch ]; + configureFlags = [ + "--enable-fastcgi" + "--with-zlib=${zlib.dev}" + "--with-bz2=${bzip2.dev}" + "--enable-calendar" + "--with-curl=${curl.dev}" + "--enable-exif" + "--with-gd" + "--with-mcrypt=${libmcrypt}" + "--with-mysql=${mysql57}" + "--enable-zip" + "--with-pear" + "--enable-force-cgi-redirect" + "--enable-debug" + "--enable-mbstring" + "--enable-fastcgi" + "--with-fpm-log=/var/log/php52-fpm/php-fpm.log" + "--with-fpm-pid=/run/php52-fpm/php-fpm.pid" + "--enable-fpm" + "--with-libxml-dir=${libxml2.dev}" + "--with-jpeg-dir=${m_libjpeg}" + "--with-png-dir=${m_libpng}" + ]; + postInstall = '' + cp ./php.ini-recommended "$out/lib/php.ini" + tar xf ${./suhosin-0.9.31.tgz} + cd suhosin-0.9.31 + PATH="$out/bin:$PATH" phpize + PATH="$out/bin:$PATH" ./configure --enable-suhosin + make install + cd .. + sed -i 's:^extension_dir = .*:extension_dir = "'$("$out/bin/php-config" --extension-dir)'":' "$out/lib/php.ini" + echo "extension=suhosin.so" >> "$out/lib/php.ini" + ''; + buildInputs = [ zlib bzip2 curlFull libmcrypt mysql57 libxml2 lzma m_libjpeg m_libpng autoconf automake ]; + }; +in + php52 // rec { + vhost = cfg: lib.recursiveUpdate { + extraConfig = '' + client_max_body_size 200m; + index index.php index.html index.htm; + '' + cfg.extraConfig or ""; + locations = { + "/favicon.ico" = { + extraConfig = '' + log_not_found off; + access_log off; + ''; + }; + "/robots.txt" = { + extraConfig = '' + allow all; + log_not_found off; + access_log off; + ''; + }; + "~ \\..*/.*\\.php$" = { return = "403"; }; + "~ ^/sites/.*/private/" = { return = "403"; }; + + # Block access to "hidden" files and directories whose names begin with a + # period. This includes directories used by version control systems such + # as Subversion or Git to store control files. + "~ (^|/)\\." = { return = "403"; }; + "~ \\.php$" = { + extraConfig = '' + client_max_body_size 200m; + + fastcgi_split_path_info ^(.+\.php)(/.+)$; + if (!-f $document_root$fastcgi_script_name) { + return 404; + } + + fastcgi_pass 127.0.0.1:9000; + fastcgi_index index.php; + include ${pkgs.nginx}/conf/fastcgi.conf; + fastcgi_param HTTP_PROXY ""; + ''; + }; + "~ /\.ht" = { + extraConfig = '' + # deny access to .htaccess files, if Apache's document root + # concurs with nginx's one + deny all; + ''; + }; + }; + } (builtins.removeAttrs cfg [ "extraConfig" ]); + vhostDrupal = cfg: vhost (lib.recursiveUpdate cfg { + locations = { + "/" = { tryFiles = "$uri @rewrite"; }; + "@rewrite" = { + extraConfig = '' + # For Drupal 6 and bwlow: + # Some modules enforce no slash (/) at the end of the URL + # Else this rewrite block wouldn't be needed (GlobalRedirect) + rewrite ^/(.*)$ /index.php?q=$1; + ''; + }; + }; + }); + } \ No newline at end of file diff --git a/merge.sh b/merge.sh new file mode 100755 index 0000000..b438e9c --- /dev/null +++ b/merge.sh @@ -0,0 +1,7 @@ +export PATH=${coreutils}/bin +mkdir $out +for src in "$@" +do + chmod -R +w $out + cp -R $src $out +done diff --git a/module.nix b/module.nix new file mode 100644 index 0000000..818c434 --- /dev/null +++ b/module.nix @@ -0,0 +1,36 @@ +{ config, lib, pkgs, ...}@args: +with lib; +let + cfg = config.services.php52-fpm; + php52 = import ./default.nix args; +in { + options.services.php52-fpm = { + enable = mkOption { + type = types.bool; + default = false; + description = '' + If enabled, NixOS will start a PHP 5.2 FastCGI daemon in the background. + ''; + }; + }; + + config = { + systemd.services.php52-fpm = mkIf cfg.enable { + wantedBy = [ "multi-user.target" ]; + before = [ "nginx.service" ]; + environment = { + PHP_FCGI_CHILDREN = "4"; + PHP_FCGI_MAX_REQUESTS = "5000"; + }; + serviceConfig = { + Type = "forking"; + PIDFile = "/run/php52-fpm/php-fpm.pid"; + ExecStart = "${php52}/bin/php-cgi -x"; + User = "nginx"; + Group = "nginx"; + RuntimeDirectory = "php52-fpm"; + LogsDirectory = "php52-fpm"; + }; + }; + }; +} \ No newline at end of file diff --git a/php-5.2.17-fpm.patch b/php-5.2.17-fpm.patch new file mode 100644 index 0000000..affc39f --- /dev/null +++ b/php-5.2.17-fpm.patch @@ -0,0 +1,33857 @@ +diff --git a/configure b/configure +index 2d88ed7..c490abf 100755 +--- a/configure ++++ b/configure +@@ -773,6 +773,17 @@ ac_help="$ac_help + --disable-path-info-check CGI: If this is disabled, paths such as + /info.php/test?a=b will fail to work" + ac_help="$ac_help ++ --enable-fpm FastCGI: If this is enabled, the fastcgi support ++ will include experimental process manager code" ++ac_help="$ac_help ++ --with-fpm-conf=PATH Set the path for php-fpm configuration file [PREFIX/etc/php-fpm.conf]" ++ac_help="$ac_help ++ --with-fpm-log=PATH Set the path for php-fpm log file [PREFIX/logs/php-fpm.log]" ++ac_help="$ac_help ++ --with-fpm-pid=PATH Set the path for php-fpm pid file [PREFIX/logs/php-fpm.pid]" ++ac_help="$ac_help ++ --with-xml-config=PATH FPM: use xml-config in PATH to find libxml" ++ac_help="$ac_help + + General settings: + " +@@ -12153,11 +12164,30 @@ ext_output=$PHP_PATH_INFO_CHECK + + + ++php_enable_fpm=no ++ ++ ++# Check whether --enable-fpm or --disable-fpm was given. ++if test "${enable_fpm+set}" = set; then ++ enableval="$enable_fpm" ++ PHP_FPM=$enableval ++else ++ ++ PHP_FPM=no ++ ++ if test "$PHP_ENABLE_ALL" && test "no" = "yes"; then ++ PHP_FPM=$PHP_ENABLE_ALL ++ fi ++ ++fi ++ ++ ++ext_output=$PHP_FPM + + + if test "$PHP_SAPI" = "default"; then + echo $ac_n "checking whether to build CGI binary""... $ac_c" 1>&6 +-echo "configure:12161: checking whether to build CGI binary" >&5 ++echo "configure:12435: checking whether to build CGI binary" >&5 + if test "$PHP_CGI" != "no"; then + echo "$ac_t""yes" 1>&6 + +@@ -12194,8 +12224,25 @@ EOF + + echo "$ac_t""$PHP_FASTCGI" 1>&6 + ++ if test "$PHP_FASTCGI" = "yes"; then ++ echo $ac_n "checking whether to enable FastCGI Process Manager""... $ac_c" 1>&6 ++echo "configure:12474: checking whether to enable FastCGI Process Manager" >&5 ++ if test "$PHP_FPM" = "yes"; then ++ PHP_FASTCGI_PM=1 ++ else ++ PHP_FASTCGI_PM=0 ++ fi ++ echo "$ac_t""$PHP_FPM" 1>&6 ++ else ++ PHP_FASTCGI_PM=0 ++ fi ++ cat >> confdefs.h <&6 +-echo "configure:12199: checking whether to force Apache CGI redirect" >&5 ++echo "configure:12490: checking whether to force Apache CGI redirect" >&5 + if test "$PHP_FORCE_CGI_REDIRECT" = "yes"; then + CGI_REDIRECT=1 + else +@@ -12410,10 +12457,10 @@ EOF + BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + ;; + *darwin*) +- BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_SAPI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" ++ BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_SAPI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(SAPI_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + ;; + *) +- BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" ++ BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(SAPI_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + ;; + esac + +@@ -12476,6 +12523,875 @@ fi + + fi + ++if test "$PHP_FASTCGI" = "yes" -a "$PHP_FPM" = "yes"; then ++ ++ echo "$ac_t""" 1>&6 ++ echo "$ac_t""${T_MD}Running FastCGI Process Manager checks${T_ME}" 1>&6 ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++FPM_VERSION="0.5.14" ++ ++ ++php_with_fpm_conf=\$prefix/etc/php-fpm.conf ++ ++echo $ac_n "checking for php-fpm config file path""... $ac_c" 1>&6 ++echo "configure:12798: checking for php-fpm config file path" >&5 ++# Check whether --with-fpm-conf or --without-fpm-conf was given. ++if test "${with_fpm_conf+set}" = set; then ++ withval="$with_fpm_conf" ++ PHP_FPM_CONF=$withval ++else ++ ++ PHP_FPM_CONF=\$prefix/etc/php-fpm.conf ++ ++ if test "$PHP_ENABLE_ALL" && test "no" = "yes"; then ++ PHP_FPM_CONF=$PHP_ENABLE_ALL ++ fi ++ ++fi ++ ++ ++ext_output=$PHP_FPM_CONF ++echo "$ac_t""$ext_output" 1>&6 ++ ++ ++ ++ ++ ++php_with_fpm_log=\$prefix/logs/php-fpm.log ++ ++echo $ac_n "checking for php-fpm log file path""... $ac_c" 1>&6 ++echo "configure:12824: checking for php-fpm log file path" >&5 ++# Check whether --with-fpm-log or --without-fpm-log was given. ++if test "${with_fpm_log+set}" = set; then ++ withval="$with_fpm_log" ++ PHP_FPM_LOG=$withval ++else ++ ++ PHP_FPM_LOG=\$prefix/logs/php-fpm.log ++ ++ if test "$PHP_ENABLE_ALL" && test "no" = "yes"; then ++ PHP_FPM_LOG=$PHP_ENABLE_ALL ++ fi ++ ++fi ++ ++ ++ext_output=$PHP_FPM_LOG ++echo "$ac_t""$ext_output" 1>&6 ++ ++ ++ ++ ++ ++php_with_fpm_pid=\$prefix/logs/php-fpm.pid ++ ++echo $ac_n "checking for php-fpm pid file path""... $ac_c" 1>&6 ++echo "configure:12850: checking for php-fpm pid file path" >&5 ++# Check whether --with-fpm-pid or --without-fpm-pid was given. ++if test "${with_fpm_pid+set}" = set; then ++ withval="$with_fpm_pid" ++ PHP_FPM_PID=$withval ++else ++ ++ PHP_FPM_PID=\$prefix/logs/php-fpm.pid ++ ++ if test "$PHP_ENABLE_ALL" && test "no" = "yes"; then ++ PHP_FPM_PID=$PHP_ENABLE_ALL ++ fi ++ ++fi ++ ++ ++ext_output=$PHP_FPM_PID ++echo "$ac_t""$ext_output" 1>&6 ++ ++ ++ ++ ++FPM_SOURCES="fpm.c \ ++ fpm_conf.c \ ++ fpm_signals.c \ ++ fpm_children.c \ ++ fpm_worker_pool.c \ ++ fpm_unix.c \ ++ fpm_cleanup.c \ ++ fpm_sockets.c \ ++ fpm_stdio.c \ ++ fpm_env.c \ ++ fpm_events.c \ ++ fpm_php.c \ ++ fpm_php_trace.c \ ++ fpm_process_ctl.c \ ++ fpm_request.c \ ++ fpm_clock.c \ ++ fpm_shm.c \ ++ fpm_shm_slots.c \ ++ xml_config.c \ ++ zlog.c" ++ ++ ++ echo "$ac_t""checking for XML configuration" 1>&6 ++ ++ # Check whether --with-xml-config or --without-xml-config was given. ++if test "${with_xml_config+set}" = set; then ++ withval="$with_xml_config" ++ XMLCONFIG="$withval" ++else ++ for ac_prog in xml2-config xml-config ++do ++# Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++echo $ac_n "checking for $ac_word""... $ac_c" 1>&6 ++echo "configure:12906: checking for $ac_word" >&5 ++if eval "test \"`echo '$''{'ac_cv_path_XMLCONFIG'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ case "$XMLCONFIG" in ++ /*) ++ ac_cv_path_XMLCONFIG="$XMLCONFIG" # Let the user override the test with a path. ++ ;; ++ ?:/*) ++ ac_cv_path_XMLCONFIG="$XMLCONFIG" # Let the user override the test with a dos path. ++ ;; ++ *) ++ IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS=":" ++ ac_dummy="$PATH" ++ for ac_dir in $ac_dummy; do ++ test -z "$ac_dir" && ac_dir=. ++ if test -f $ac_dir/$ac_word; then ++ ac_cv_path_XMLCONFIG="$ac_dir/$ac_word" ++ break ++ fi ++ done ++ IFS="$ac_save_ifs" ++ ;; ++esac ++fi ++XMLCONFIG="$ac_cv_path_XMLCONFIG" ++if test -n "$XMLCONFIG"; then ++ echo "$ac_t""$XMLCONFIG" 1>&6 ++else ++ echo "$ac_t""no" 1>&6 ++fi ++ ++test -n "$XMLCONFIG" && break ++done ++test -n "$XMLCONFIG" || XMLCONFIG="""" ++ ++ ++fi ++ ++ ++ if test "x$XMLCONFIG" = "x"; then ++ { echo "configure: error: XML configuration could not be found" 1>&2; exit 1; } ++ else ++ echo $ac_n "checking for libxml library""... $ac_c" 1>&6 ++echo "configure:12950: checking for libxml library" >&5 ++ ++ if test ! -x "$XMLCONFIG"; then ++ { echo "configure: error: $XMLCONFIG cannot be executed" 1>&2; exit 1; } ++ fi ++ ++ LIBXML_LIBS="`$XMLCONFIG --libs`" ++ LIBXML_CFLAGS="`$XMLCONFIG --cflags`" ++ LIBXML_VERSION="`$XMLCONFIG --version`" ++ ++ echo "$ac_t""yes, $LIBXML_VERSION" 1>&6 ++ ++ ++ SAVED_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $LIBXML_CFLAGS" ++ SAVED_LIBS="$LIBS" ++ LIBS="$LIBS $LIBXML_LIBS" ++ ++ echo $ac_n "checking for xmlParseFile""... $ac_c" 1>&6 ++echo "configure:12969: checking for xmlParseFile" >&5 ++if eval "test \"`echo '$''{'ac_cv_func_xmlParseFile'+set}'`\" = set"; then ++ echo $ac_n "(cached) $ac_c" 1>&6 ++else ++ cat > conftest.$ac_ext < ++/* Override any gcc2 internal prototype to avoid an error. */ ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char xmlParseFile(); ++ ++int main() { ++ ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_xmlParseFile) || defined (__stub___xmlParseFile) ++choke me ++#else ++xmlParseFile(); ++#endif ++ ++; return 0; } ++EOF ++if { (eval echo configure:12997: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ eval "ac_cv_func_xmlParseFile=yes" ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ eval "ac_cv_func_xmlParseFile=no" ++fi ++rm -f conftest* ++fi ++ ++if eval "test \"`echo '$ac_cv_func_'xmlParseFile`\" = yes"; then ++ echo "$ac_t""yes" 1>&6 ++ : ++else ++ echo "$ac_t""no" 1>&6 ++{ echo "configure: error: Failed to link with libxml" 1>&2; exit 1; } ++fi ++ ++ ++ CFLAGS="$SAVED_CFLAGS" ++ LIBS="$SAVED_LIBS" ++ ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_LIBXML 1 ++EOF ++ ++ fi ++ ++ ++ echo $ac_n "checking for prctl""... $ac_c" 1>&6 ++echo "configure:13030: checking for prctl" >&5 ++ ++ cat > conftest.$ac_ext < ++int main() { ++prctl(0, 0, 0, 0, 0); ++; return 0; } ++EOF ++if { (eval echo configure:13040: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ++ cat >> confdefs.h <<\EOF ++#define HAVE_PRCTL 1 ++EOF ++ ++ echo "$ac_t""yes" 1>&6 ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ++ echo "$ac_t""no" 1>&6 ++ ++fi ++rm -f conftest* ++ ++ ++ have_clock_gettime=no ++ ++ echo $ac_n "checking for clock_gettime""... $ac_c" 1>&6 ++echo "configure:13063: checking for clock_gettime" >&5 ++ ++ cat > conftest.$ac_ext < ++int main() { ++struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); ++; return 0; } ++EOF ++if { (eval echo configure:13073: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ ++ have_clock_gettime=yes ++ echo "$ac_t""yes" 1>&6 ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ++ echo "$ac_t""no" 1>&6 ++ ++fi ++rm -f conftest* ++ ++ if test "$have_clock_gettime" = "no"; then ++ echo $ac_n "checking for clock_gettime in -lrt""... $ac_c" 1>&6 ++echo "configure:13091: checking for clock_gettime in -lrt" >&5 ++ ++ SAVED_LIBS="$LIBS" ++ LIBS="$LIBS -lrt" ++ ++ cat > conftest.$ac_ext < ++int main() { ++struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts); ++; return 0; } ++EOF ++if { (eval echo configure:13104: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext}; then ++ rm -rf conftest* ++ ++ have_clock_gettime=yes ++ echo "$ac_t""yes" 1>&6 ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ++ LIBS="$SAVED_LIBS" ++ echo "$ac_t""no" 1>&6 ++ ++fi ++rm -f conftest* ++ fi ++ ++ if test "$have_clock_gettime" = "yes"; then ++ cat >> confdefs.h <<\EOF ++#define HAVE_CLOCK_GETTIME 1 ++EOF ++ ++ fi ++ ++ have_clock_get_time=no ++ ++ if test "$have_clock_gettime" = "no"; then ++ echo $ac_n "checking for clock_get_time""... $ac_c" 1>&6 ++echo "configure:13133: checking for clock_get_time" >&5 ++ ++ if test "$cross_compiling" = yes; then ++ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } ++else ++ cat > conftest.$ac_ext < ++ #include ++ #include ++ ++ int main() ++ { ++ kern_return_t ret; clock_serv_t aClock; mach_timespec_t aTime; ++ ret = host_get_clock_service(mach_host_self(), REALTIME_CLOCK, &aClock); ++ ++ if (ret != KERN_SUCCESS) { ++ return 1; ++ } ++ ++ ret = clock_get_time(aClock, &aTime); ++ if (ret != KERN_SUCCESS) { ++ return 2; ++ } ++ ++ return 0; ++ } ++ ++EOF ++if { (eval echo configure:13163: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++then ++ ++ have_clock_get_time=yes ++ echo "$ac_t""yes" 1>&6 ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ ++ echo "$ac_t""no" 1>&6 ++ ++fi ++rm -fr conftest* ++fi ++ ++ fi ++ ++ if test "$have_clock_get_time" = "yes"; then ++ cat >> confdefs.h <<\EOF ++#define HAVE_CLOCK_GET_TIME 1 ++EOF ++ ++ fi ++ ++ ++ have_ptrace=no ++ have_broken_ptrace=no ++ ++ echo $ac_n "checking for ptrace""... $ac_c" 1>&6 ++echo "configure:13194: checking for ptrace" >&5 ++ ++ cat > conftest.$ac_ext < ++ #include ++int main() { ++ptrace(0, 0, (void *) 0, 0); ++; return 0; } ++EOF ++if { (eval echo configure:13206: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ++ have_ptrace=yes ++ echo "$ac_t""yes" 1>&6 ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ++ echo "$ac_t""no" 1>&6 ++ ++fi ++rm -f conftest* ++ ++ if test "$have_ptrace" = "yes"; then ++ echo $ac_n "checking whether ptrace works""... $ac_c" 1>&6 ++echo "configure:13224: checking whether ptrace works" >&5 ++ ++ if test "$cross_compiling" = yes; then ++ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } ++else ++ cat > conftest.$ac_ext < ++ #include ++ #include ++ #include ++ #include ++ #include ++ ++ #if !defined(PTRACE_ATTACH) && defined(PT_ATTACH) ++ #define PTRACE_ATTACH PT_ATTACH ++ #endif ++ ++ #if !defined(PTRACE_DETACH) && defined(PT_DETACH) ++ #define PTRACE_DETACH PT_DETACH ++ #endif ++ ++ #if !defined(PTRACE_PEEKDATA) && defined(PT_READ_D) ++ #define PTRACE_PEEKDATA PT_READ_D ++ #endif ++ ++ int main() ++ { ++ long v1 = (unsigned int) -1; /* copy will fail if sizeof(long) == 8 and we've got "int ptrace()" */ ++ long v2; ++ pid_t child; ++ int status; ++ ++ if ( (child = fork()) ) { /* parent */ ++ int ret = 0; ++ ++ if (0 > ptrace(PTRACE_ATTACH, child, 0, 0)) { ++ return 1; ++ } ++ ++ waitpid(child, &status, 0); ++ ++ #ifdef PT_IO ++ struct ptrace_io_desc ptio = { ++ .piod_op = PIOD_READ_D, ++ .piod_offs = &v1, ++ .piod_addr = &v2, ++ .piod_len = sizeof(v1) ++ }; ++ ++ if (0 > ptrace(PT_IO, child, (void *) &ptio, 0)) { ++ ret = 1; ++ } ++ #else ++ errno = 0; ++ ++ v2 = ptrace(PTRACE_PEEKDATA, child, (void *) &v1, 0); ++ ++ if (errno) { ++ ret = 1; ++ } ++ #endif ++ ptrace(PTRACE_DETACH, child, (void *) 1, 0); ++ ++ kill(child, SIGKILL); ++ ++ return ret ? ret : (v1 != v2); ++ } ++ else { /* child */ ++ sleep(10); ++ return 0; ++ } ++ } ++ ++EOF ++if { (eval echo configure:13301: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++then ++ ++ echo "$ac_t""yes" 1>&6 ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ ++ have_ptrace=no ++ have_broken_ptrace=yes ++ echo "$ac_t""no" 1>&6 ++ ++fi ++rm -fr conftest* ++fi ++ ++ fi ++ ++ if test "$have_ptrace" = "yes"; then ++ cat >> confdefs.h <<\EOF ++#define HAVE_PTRACE 1 ++EOF ++ ++ fi ++ ++ have_mach_vm_read=no ++ ++ if test "$have_broken_ptrace" = "yes"; then ++ echo $ac_n "checking for mach_vm_read""... $ac_c" 1>&6 ++echo "configure:13332: checking for mach_vm_read" >&5 ++ ++ cat > conftest.$ac_ext < ++ #include ++ ++int main() { ++ ++ mach_vm_read((vm_map_t)0, (mach_vm_address_t)0, (mach_vm_size_t)0, (vm_offset_t *)0, (mach_msg_type_number_t*)0); ++ ++; return 0; } ++EOF ++if { (eval echo configure:13346: \"$ac_compile\") 1>&5; (eval $ac_compile) 2>&5; }; then ++ rm -rf conftest* ++ ++ have_mach_vm_read=yes ++ echo "$ac_t""yes" 1>&6 ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -rf conftest* ++ ++ echo "$ac_t""no" 1>&6 ++ ++fi ++rm -f conftest* ++ fi ++ ++ if test "$have_mach_vm_read" = "yes"; then ++ cat >> confdefs.h <<\EOF ++#define HAVE_MACH_VM_READ 1 ++EOF ++ ++ fi ++ ++ proc_mem_file="" ++ ++ if test -r /proc/$$/mem ; then ++ proc_mem_file="mem" ++ else ++ if test -r /proc/$$/as ; then ++ proc_mem_file="as" ++ fi ++ fi ++ ++ if test -n "$proc_mem_file" ; then ++ echo $ac_n "checking for proc mem file""... $ac_c" 1>&6 ++echo "configure:13382: checking for proc mem file" >&5 ++ ++ if test "$cross_compiling" = yes; then ++ { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } ++else ++ cat > conftest.$ac_ext < ++ #include ++ #include ++ #include ++ #include ++ #include ++ int main() ++ { ++ long v1 = (unsigned int) -1, v2 = 0; ++ char buf[128]; ++ int fd; ++ sprintf(buf, "/proc/%d/$proc_mem_file", getpid()); ++ fd = open(buf, O_RDONLY); ++ if (0 > fd) { ++ return 1; ++ } ++ if (sizeof(long) != pread(fd, &v2, sizeof(long), (uintptr_t) &v1)) { ++ close(fd); ++ return 1; ++ } ++ close(fd); ++ return v1 != v2; ++ } ++ ++EOF ++if { (eval echo configure:13418: \"$ac_link\") 1>&5; (eval $ac_link) 2>&5; } && test -s conftest${ac_exeext} && (./conftest; exit) 2>/dev/null ++then ++ ++ echo "$ac_t""$proc_mem_file" 1>&6 ++ ++else ++ echo "configure: failed program was:" >&5 ++ cat conftest.$ac_ext >&5 ++ rm -fr conftest* ++ ++ proc_mem_file="" ++ echo "$ac_t""no" 1>&6 ++ ++fi ++rm -fr conftest* ++fi ++ ++ fi ++ ++ if test -n "$proc_mem_file"; then ++ cat >> confdefs.h <> Makefile.fragments ++ ++ ++ ++ ++ case sapi/cgi/fpm in ++ "") ac_srcdir="$abs_srcdir/"; unset ac_bdir; ac_inc="-I. -I$abs_srcdir" ;; ++ /*) ac_srcdir=`echo "sapi/cgi/fpm"|cut -c 2-`"/"; ac_bdir=$ac_srcdir; ac_inc="-I$ac_bdir -I$abs_srcdir/$ac_bdir" ;; ++ *) ac_srcdir="$abs_srcdir/sapi/cgi/fpm/"; ac_bdir="sapi/cgi/fpm/"; ac_inc="-I$ac_bdir -I$ac_srcdir" ;; ++ esac ++ ++ ++ ++ b_c_pre=$php_c_pre ++ b_cxx_pre=$php_cxx_pre ++ b_c_meta=$php_c_meta ++ b_cxx_meta=$php_cxx_meta ++ b_c_post=$php_c_post ++ b_cxx_post=$php_cxx_post ++ b_lo=$php_lo ++ ++ ++ old_IFS=$IFS ++ for ac_src in $FPM_SOURCES; do ++ ++ IFS=. ++ set $ac_src ++ ac_obj=$1 ++ IFS=$old_IFS ++ ++ PHP_SAPI_OBJS="$PHP_SAPI_OBJS $ac_bdir$ac_obj.lo" ++ ++ case $ac_src in ++ *.c) ac_comp="$b_c_pre $FPM_CFLAGS $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;; ++ *.s) ac_comp="$b_c_pre $FPM_CFLAGS $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;; ++ *.S) ac_comp="$b_c_pre $FPM_CFLAGS $ac_inc $b_c_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_c_post" ;; ++ *.cpp|*.cc|*.cxx) ac_comp="$b_cxx_pre $FPM_CFLAGS $ac_inc $b_cxx_meta -c $ac_srcdir$ac_src -o $ac_bdir$ac_obj.$b_lo $b_cxx_post" ;; ++ esac ++ ++ cat >>Makefile.objects<&6 ++ echo "$ac_t""${T_MD}Configuring libevent${T_ME}" 1>&6 ++ ++ ++test -d "$abs_builddir/libevent" || mkdir -p $abs_builddir/libevent ++ ++ ++chmod +x "$abs_srcdir/libevent/configure" \ ++ "$abs_srcdir/libevent/depcomp" \ ++ "$abs_srcdir/libevent/install-sh" \ ++ "$abs_srcdir/libevent/missing" ++ ++libevent_configure="cd $abs_builddir/libevent ; CFLAGS=\"$CFLAGS $GCC_CFLAGS\" $abs_srcdir/libevent/configure --disable-shared" ++ ++(eval $libevent_configure) ++ ++if test ! -f "$abs_builddir/libevent/Makefile" ; then ++ echo "Failed to configure libevent" >&2 ++ exit 1 ++fi ++ ++ ++LIBEVENT_LIBS="$LIBEVENT_LIBS `echo "@LIBS@" | $abs_builddir/libevent/config.status --file=-:-`" ++ ++SAPI_EXTRA_LIBS="$LIBEVENT_LIBS $LIBXML_LIBS $JUDY_LIBS" ++ ++ ++if test "$prefix" = "NONE" ; then ++ fpm_prefix=/usr/local ++else ++ fpm_prefix="$prefix" ++fi ++ ++if test "$PHP_FPM_CONF" = "\$prefix/etc/php-fpm.conf" ; then ++ php_fpm_conf_path="$fpm_prefix/etc/php-fpm.conf" ++else ++ php_fpm_conf_path="$PHP_FPM_CONF" ++fi ++ ++if test "$PHP_FPM_LOG" = "\$prefix/logs/php-fpm.log" ; then ++ php_fpm_log_path="$fpm_prefix/logs/php-fpm.log" ++else ++ php_fpm_log_path="$PHP_FPM_LOG" ++fi ++ ++if test "$PHP_FPM_PID" = "\$prefix/logs/php-fpm.pid" ; then ++ php_fpm_pid_path="$fpm_prefix/logs/php-fpm.pid" ++else ++ php_fpm_pid_path="$PHP_FPM_PID" ++fi ++ ++ ++if grep nobody /etc/group >/dev/null 2>&1; then ++ php_fpm_group=nobody ++else ++ if grep nogroup /etc/group >/dev/null 2>&1; then ++ php_fpm_group=nogroup ++ else ++ php_fpm_group=nobody ++ fi ++fi ++ ++ ++ ++ PHP_VAR_SUBST="$PHP_VAR_SUBST php_fpm_conf_path" ++ ++ ++ ++ ++ ++ PHP_VAR_SUBST="$PHP_VAR_SUBST php_fpm_log_path" ++ ++ ++ ++ ++ ++ PHP_VAR_SUBST="$PHP_VAR_SUBST php_fpm_pid_path" ++ ++ ++ ++ ++ ++ PHP_VAR_SUBST="$PHP_VAR_SUBST php_fpm_group" ++ ++ ++ ++ ++ ++ PHP_VAR_SUBST="$PHP_VAR_SUBST FPM_VERSION" ++ ++ ++ ++ ++ ++ PHP_OUTPUT_FILES="$PHP_OUTPUT_FILES sapi/cgi/fpm/fpm_autoconf.h" ++ ++ ++ PHP_OUTPUT_FILES="$PHP_OUTPUT_FILES sapi/cgi/fpm/php-fpm.conf:sapi/cgi/fpm/conf/php-fpm.conf.in" ++ ++ ++ PHP_OUTPUT_FILES="$PHP_OUTPUT_FILES sapi/cgi/fpm/php-fpm:sapi/cgi/fpm/init.d/php-fpm.in" ++ ++ ++fi ++ + + + +@@ -17779,6 +18695,7 @@ fi + for ac_func in alphasort \ + asctime_r \ + chroot \ ++clearenv \ + ctime_r \ + cuserid \ + crypt \ +@@ -108404,6 +109321,18 @@ fi + + + ++ PHP_VAR_SUBST="$PHP_VAR_SUBST SAPI_EXTRA_LIBS" ++ ++ ++ ++ ++ ++ PHP_VAR_SUBST="$PHP_VAR_SUBST SAPI_EXTRA_DEPS" ++ ++ ++ ++ ++ + PHP_VAR_SUBST="$PHP_VAR_SUBST ZEND_EXTRA_LIBS" + + +@@ -116677,7 +117606,7 @@ case $PHP_SAPI in + install_targets="$PHP_INSTALL_CLI_TARGET $install_targets" + ;; + *) +- install_targets="install-sapi $PHP_INSTALL_CLI_TARGET $install_targets" ++ install_targets="install-sapi $install_fpm $PHP_INSTALL_CLI_TARGET $install_targets" + ;; + esac + +@@ -117381,6 +118310,12 @@ s%@LEX_OUTPUT_ROOT@%$LEX_OUTPUT_ROOT%g + s%@RE2C@%$RE2C%g + s%@SHLIB_SUFFIX_NAME@%$SHLIB_SUFFIX_NAME%g + s%@SHLIB_DL_SUFFIX_NAME@%$SHLIB_DL_SUFFIX_NAME%g ++s%@XMLCONFIG@%$XMLCONFIG%g ++s%@php_fpm_conf_path@%$php_fpm_conf_path%g ++s%@php_fpm_log_path@%$php_fpm_log_path%g ++s%@php_fpm_pid_path@%$php_fpm_pid_path%g ++s%@php_fpm_group@%$php_fpm_group%g ++s%@FPM_VERSION@%$FPM_VERSION%g + s%@PROG_SENDMAIL@%$PROG_SENDMAIL%g + s%@LIBOBJS@%$LIBOBJS%g + s%@ALLOCA@%$ALLOCA%g +@@ -117430,6 +118365,8 @@ s%@EXTENSION_DIR@%$EXTENSION_DIR%g + s%@EXTRA_LDFLAGS@%$EXTRA_LDFLAGS%g + s%@EXTRA_LDFLAGS_PROGRAM@%$EXTRA_LDFLAGS_PROGRAM%g + s%@EXTRA_LIBS@%$EXTRA_LIBS%g ++s%@SAPI_EXTRA_LIBS@%$SAPI_EXTRA_LIBS%g ++s%@SAPI_EXTRA_DEPS@%$SAPI_EXTRA_DEPS%g + s%@ZEND_EXTRA_LIBS@%$ZEND_EXTRA_LIBS%g + s%@INCLUDES@%$INCLUDES%g + s%@EXTRA_INCLUDES@%$EXTRA_INCLUDES%g +diff --git a/configure.in b/configure.in +index e181ac9..4424930 100644 +--- a/configure.in ++++ b/configure.in +@@ -295,6 +295,12 @@ if test "$enable_maintainer_zts" = "yes"; then + PTHREADS_FLAGS + fi + ++if test "$PHP_FASTCGI" = "yes" -a "$PHP_FPM" = "yes"; then ++ PHP_CONFIGURE_PART(Running FastCGI Process Manager checks) ++ sinclude(sapi/cgi/fpm/acinclude.m4) ++ sinclude(sapi/cgi/fpm/config.m4) ++fi ++ + divert(3) + + dnl ## In diversion 3 we check for compile-time options to the PHP +@@ -511,6 +517,7 @@ AC_CHECK_FUNCS( + alphasort \ + asctime_r \ + chroot \ ++clearenv \ + ctime_r \ + cuserid \ + crypt \ +@@ -1253,6 +1260,8 @@ PHP_SUBST_OLD(EXTENSION_DIR) + PHP_SUBST_OLD(EXTRA_LDFLAGS) + PHP_SUBST_OLD(EXTRA_LDFLAGS_PROGRAM) + PHP_SUBST_OLD(EXTRA_LIBS) ++PHP_SUBST_OLD(SAPI_EXTRA_LIBS) ++PHP_SUBST_OLD(SAPI_EXTRA_DEPS) + PHP_SUBST_OLD(ZEND_EXTRA_LIBS) + PHP_SUBST_OLD(INCLUDES) + PHP_SUBST_OLD(EXTRA_INCLUDES) +@@ -1364,7 +1373,7 @@ case $PHP_SAPI in + install_targets="$PHP_INSTALL_CLI_TARGET $install_targets" + ;; + *) +- install_targets="install-sapi $PHP_INSTALL_CLI_TARGET $install_targets" ++ install_targets="install-sapi $install_fpm $PHP_INSTALL_CLI_TARGET $install_targets" + ;; + esac + +diff --git a/libevent/ChangeLog b/libevent/ChangeLog +new file mode 100644 +index 0000000..c592139 +--- /dev/null ++++ b/libevent/ChangeLog +@@ -0,0 +1,154 @@ ++Changes in 1.4.8-stable: ++ o Match the query in DNS replies to the query in the request; from Vsevolod Stakhov. ++ o Fix a merge problem in which name_from_addr returned pointers to the stack; found by Jiang Hong. ++ o Do not remove Accept-Encoding header ++ ++Changes in 1.4.7-stable: ++ o Fix a bug where headers arriving in multiple packets were not parsed; fix from Jiang Hong; test by me. ++ ++Changes in 1.4.6-stable: ++ o evutil.h now includes directly ++ o switch all uses of [v]snprintf over to evutil ++ o Correct handling of trailing headers in chunked replies; from Scott Lamb. ++ o Support multi-line HTTP headers; based on a patch from Moshe Litvin ++ o Reject negative Content-Length headers; anonymous bug report ++ o Detect CLOCK_MONOTONIC at runtime for evdns; anonymous bug report ++ o Fix a bug where deleting signals with the kqueue backend would cause subsequent adds to fail ++ o Support multiple events listening on the same signal; make signals regular events that go on the same event queue; problem report by Alexander Drozdov. ++ o Deal with evbuffer_read() returning -1 on EINTR|EAGAIN; from Adam Langley. ++ o Fix a bug in which the DNS server would incorrectly set the type of a cname reply to a. ++ o Fix a bug where setting the timeout on a bufferevent would take not effect if the event was already pending. ++ o Fix a memory leak when using signals for some event bases; reported by Alexander Drozdov. ++ o Add libevent.vcproj file to distribution to help with Windows build. ++ o Fix a problem with epoll() and reinit; problem report by Alexander Drozdov. ++ o Fix off-by-one errors in devpoll; from Ian Bell ++ o Make event_add not change any state if it fails; reported by Ian Bell. ++ o Do not warn on accept when errno is either EAGAIN or EINTR ++ ++Changes in 1.4.5-stable: ++ o Fix connection keep-alive behavior for HTTP/1.0 ++ o Fix use of freed memory in event_reinit; pointed out by Peter Postma ++ o Constify struct timeval * where possible; pointed out by Forest Wilkinson ++ o allow min_heap_erase to be called on removed members; from liusifan. ++ o Rename INPUT and OUTPUT to EVRPC_INPUT and EVRPC_OUTPUT. Retain INPUT/OUTPUT aliases on on-win32 platforms for backwards compatibility. ++ o Do not use SO_REUSEADDR when connecting ++ o Fix Windows build ++ o Fix a bug in event_rpcgen when generated fixed-sized entries ++ ++Changes in 1.4.4-stable: ++ o Correct the documentation on buffer printf functions. ++ o Don't warn on unimplemented epoll_create(): this isn't a problem, just a reason to fall back to poll or select. ++ o Correctly handle timeouts larger than 35 minutes on Linux with epoll.c. This is probably a kernel defect, but we'll have to support old kernels anyway even if it gets fixed. ++ o Fix a potential stack corruption bug in tagging on 64-bit CPUs. ++ o expose bufferevent_setwatermark via header files and fix high watermark on read ++ o fix a bug in bufferevent read water marks and add a test for them ++ o introduce bufferevent_setcb and bufferevent_setfd to allow better manipulation of bufferevents ++ o use libevent's internal timercmp on all platforms, to avoid bugs on old platforms where timercmp(a,b,<=) is buggy. ++ o reduce system calls for getting current time by caching it. ++ o fix evhttp_bind_socket() so that multiple sockets can be bound by the same http server. ++ o Build test directory correctly with CPPFLAGS set. ++ o Fix build under Visual C++ 2005. ++ o Expose evhttp_accept_socket() API. ++ o Merge windows gettimeofday() replacement into a new evutil_gettimeofday() function. ++ o Fix autoconf script behavior on IRIX. ++ o Make sure winsock2.h include always comes before windows.h include. ++ ++ ++Changes in 1.4.3-stable: ++ o include Content-Length in reply for HTTP/1.0 requests with keep-alive ++ o Patch from Tani Hosokawa: make some functions in http.c threadsafe. ++ o Do not free the kqop file descriptor in other processes, also allow it to be 0; from Andrei Nigmatulin ++ o make event_rpcgen.py generate code include event-config.h; reported by Sam Banks. ++ o make event methods static so that they are not exported; from Andrei Nigmatulin ++ o make RPC replies use application/octet-stream as mime type ++ o do not delete uninitialized timeout event in evdns ++ ++Changes in 1.4.2-rc: ++ o remove pending timeouts on event_base_free() ++ o also check EAGAIN for Solaris' event ports; from W.C.A. Wijngaards ++ o devpoll and evport need reinit; tested by W.C.A Wijngaards ++ o event_base_get_method; from Springande Ulv ++ o Send CRLF after each chunk in HTTP output, for compliance with RFC2626. Patch from "propanbutan". Fixes bug 1894184. ++ o Add a int64_t parsing function, with unit tests, so we can apply Scott Lamb's fix to allow large HTTP values. ++ o Use a 64-bit field to hold HTTP content-lengths. Patch from Scott Lamb. ++ o Allow regression code to build even without Python installed ++ o remove NDEBUG ifdefs from evdns.c ++ o update documentation of event_loop and event_base_loop; from Tani Hosokawa. ++ o detect integer types properly on platforms without stdint.h ++ o Remove "AM_MAINTAINER_MODE" declaration in configure.in: now makefiles and configure should get re-generated automatically when Makefile.am or configure.in chanes. ++ o do not insert event into list when evsel->add fails ++ ++Changes in 1.4.1-beta: ++ o free minheap on event_base_free(); from Christopher Layne ++ o debug cleanups in signal.c; from Christopher Layne ++ o provide event_base_new() that does not set the current_base global ++ o bufferevent_write now uses a const source argument; report from Charles Kerr ++ o better documentation for event_base_loopexit; from Scott Lamb. ++ o Make kqueue have the same behavior as other backends when a signal is caught between event_add() and event_loop(). Previously, it would catch and ignore such signals. ++ o Make kqueue restore signal handlers correctly when event_del() is called. ++ o provide event_reinit() to reintialize an event_base after fork ++ o small improvements to evhttp documentation ++ o always generate Date and Content-Length headers for HTTP/1.1 replies ++ o set the correct event base for HTTP close events ++ o New function, event_{base_}loopbreak. Like event_loopexit, it makes an event loop stop executing and return. Unlike event_loopexit, it keeps subsequent pending events from getting executed. Patch from Scott Lamb ++ o Removed obsoleted recalc code ++ o pull setters/getters out of RPC structures into a base class to which we just need to store a pointer; this reduces the memory footprint of these structures. ++ o fix a bug with event_rpcgen for integers ++ o move EV_PERSIST handling out of the event backends ++ o support for 32-bit tag numbers in rpc structures; this is wire compatible, but changes the API slightly. ++ o prefix {encode,decode}_tag functions with evtag to avoid collisions ++ o Correctly handle DNS replies with no answers set (Fixes bug 1846282) ++ o The configure script now takes an --enable-gcc-warnigns option that turns on many optional gcc warnings. (Nick has been building with these for a while, but they might be useful to other developers.) ++ o When building with GCC, use the "format" attribute to verify type correctness of calls to printf-like functions. ++ o removed linger from http server socket; reported by Ilya Martynov ++ o allow \r or \n individually to separate HTTP headers instead of the standard "\r\n"; from Charles Kerr. ++ o demote most http warnings to debug messages ++ o Fix Solaris compilation; from Magne Mahre ++ o Add a "Date" header to HTTP responses, as required by HTTP 1.1. ++ o Support specifying the local address of an evhttp_connection using set_local_address ++ o Fix a memory leak in which failed HTTP connections would not free the request object ++ o Make adding of array members in event_rpcgen more efficient, but doubling memory allocation ++ o Fix a memory leak in the DNS server ++ o Fix compilation when DNS_USE_OPENSSL_FOR_ID is enabled ++ o Fix buffer size and string generation in evdns_resolve_reverse_ipv6(). ++ o Respond to nonstandard DNS queries with "NOTIMPL" rather than by ignoring them. ++ o In DNS responses, the CD flag should be preserved, not the TC flag. ++ o Fix http.c to compile properly with USE_DEBUG; from Christopher Layne ++ o Handle NULL timeouts correctly on Solaris; from Trond Norbye ++ o Recalculate pending events properly when reallocating event array on Solaris; from Trond Norbye ++ o Add Doxygen documentation to header files; from Mark Heily ++ o Add a evdns_set_transaction_id_fn() function to override the default ++ transaction ID generation code. ++ o Add an evutil module (with header evutil.h) to implement our standard cross-platform hacks, on the theory that somebody else would like to use them too. ++ o Fix signals implementation on windows. ++ o Fix http module on windows to close sockets properly. ++ o Make autogen.sh script run correctly on systems where /bin/sh isn't bash. (Patch from Trond Norbye, rewritten by Hagne Mahre and then Hannah Schroeter.) ++ o Skip calling gettime() in timeout_process if we are not in fact waiting for any events. (Patch from Trond Norbye) ++ o Make test subdirectory compile under mingw. ++ o Fix win32 buffer.c behavior so that it is correct for sockets (which do not like ReadFile and WriteFile). ++ o Make the test.sh script run unit tests for the evpoll method. ++ o Make the entire evdns.h header enclosed in "extern C" as appropriate. ++ o Fix implementation of strsep on platforms that lack it ++ o Fix implementation of getaddrinfo on platforms that lack it; mainly, this will make Windows http.c work better. Original patch by Lubomir Marinov. ++ o Fix evport implementation: port_disassociate called on unassociated events resulting in bogus errors; more efficient memory management; from Trond Norbye and Prakash Sangappa ++ o support for hooks on rpc input and output; can be used to implement rpc independent processing such as compression or authentication. ++ o use a min heap instead of a red-black tree for timeouts; as a result finding the min is a O(1) operation now; from Maxim Yegorushkin ++ o associate an event base with an rpc pool ++ o added two additional libraries: libevent_core and libevent_extra in addition to the regular libevent. libevent_core contains only the event core whereas libevent_extra contains dns, http and rpc support ++ o Begin using libtool's library versioning support correctly. If we don't mess up, this will more or less guarantee binaries linked against old versions of libevent continue working when we make changes to libevent that do not break backward compatibility. ++ o Fix evhttp.h compilation when TAILQ_ENTRY is not defined. ++ o Small code cleanups in epoll_dispatch(). ++ o Increase the maximum number of addresses read from a packet in evdns to 32. ++ o Remove support for the rtsig method: it hasn't compiled for a while, and nobody seems to miss it very much. Let us know if there's a good reason to put it back in. ++ o Rename the "class" field in evdns_server_request to dns_question_class, so that it won't break compilation under C++. Use a macro so that old code won't break. Mark the macro as deprecated. ++ o Fix DNS unit tests so that having a DNS server with broken IPv6 support is no longer cause for aborting the unit tests. ++ o Make event_base_free() succeed even if there are pending non-internal events on a base. This may still leak memory and fds, but at least it no longer crashes. ++ o Post-process the config.h file into a new, installed event-config.h file that we can install, and whose macros will be safe to include in header files. ++ o Remove the long-deprecated acconfig.h file. ++ o Do not require #include before #include . ++ o Add new evutil_timer* functions to wrap (or replace) the regular timeval manipulation functions. ++ o Fix many build issues when using the Microsoft C compiler. ++ o Remove a bash-ism in autogen.sh ++ o When calling event_del on a signal, restore the signal handler's previous value rather than setting it to SIG_DFL. Patch from Christopher Layne. ++ o Make the logic for active events work better with internal events; patch from Christopher Layne. ++ o We do not need to specially remove a timeout before calling event_del; patch from Christopher Layne. +diff --git a/libevent/Makefile.am b/libevent/Makefile.am +new file mode 100644 +index 0000000..5ccfd2c +--- /dev/null ++++ b/libevent/Makefile.am +@@ -0,0 +1,62 @@ ++ ++ ++# This is the point release for libevent. It shouldn't include any ++# a/b/c/d/e notations. ++RELEASE = 1.4 ++ ++# This is the version info for the libevent binary API. It has three ++# numbers: ++# Current -- the number of the binary API that we're implementing ++# Revision -- which iteration of the implementation of the binary ++# API are we supplying? ++# Age -- How many previous binary API versions do we also ++# support? ++# ++# If we release a new version that does not change the binary API, ++# increment Revision. ++# ++# If we release a new version that changes the binary API, but does ++# not break programs compiled against the old binary API, increment ++# Current and Age. Set Revision to 0, since this is the first ++# implementation of the new API. ++# ++# Otherwise, we're changing the binary API and breaking bakward ++# compatibility with old binaries. Increment Current. Set Age to 0, ++# since we're backward compatible with no previous APIs. Set Revision ++# to 0 too. ++ ++# History: ++# Libevent 1.4.1 was 2:0:0 ++# Libevent 1.4.2 should be 3:0:0 ++# Libevent 1.4.5 is 3:0:1 (we forgot to increment in the past) ++VERSION_INFO = 3:2:1 ++ ++noinst_LIBRARIES = libevent.a ++ ++ ++ ++BUILT_SOURCES = event-config.h ++ ++event-config.h: config.h ++ echo '/* event-config.h' > $@ ++ echo ' * Generated by autoconf; post-processed by libevent.' >> $@ ++ echo ' * Do not edit this file.' >> $@ ++ echo ' * Do not rely on macros in this file existing in later versions.'>> $@ ++ echo ' */' >> $@ ++ echo '#ifndef _EVENT_CONFIG_H_' >> $@ ++ echo '#define _EVENT_CONFIG_H_' >> $@ ++ ++ sed -e 's/#define /#define _EVENT_/' \ ++ -e 's/#undef /#undef _EVENT_/' \ ++ -e 's/#ifndef /#ifndef _EVENT_/' < config.h >> $@ ++ echo "#endif" >> $@ ++ ++CORE_SRC = event.c log.c evutil.c http.c buffer.c evbuffer.c strlcpy.c $(SYS_SRC) ++ ++libevent_a_SOURCES = $(CORE_SRC) $(EXTRA_SRC) ++libevent_a_DEPENDENCIES = $(LIBOBJS) ++libevent_a_LIBADD = $(LIBOBJS) ++ ++include_HEADERS = event.h evutil.h event-config.h ++ ++INCLUDES = -I$(srcdir)/compat $(SYS_INCLUDES) +diff --git a/libevent/Makefile.in b/libevent/Makefile.in +new file mode 100644 +index 0000000..0600dcc +--- /dev/null ++++ b/libevent/Makefile.in +@@ -0,0 +1,618 @@ ++# Makefile.in generated by automake 1.9.5 from Makefile.am. ++# @configure_input@ ++ ++# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, ++# 2003, 2004, 2005 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. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++@SET_MAKE@ ++ ++ ++SOURCES = $(libevent_a_SOURCES) ++ ++srcdir = @srcdir@ ++top_srcdir = @top_srcdir@ ++VPATH = @srcdir@ ++pkgdatadir = $(datadir)/@PACKAGE@ ++pkglibdir = $(libdir)/@PACKAGE@ ++pkgincludedir = $(includedir)/@PACKAGE@ ++top_builddir = . ++am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd ++INSTALL = @INSTALL@ ++install_sh_DATA = $(install_sh) -c -m 644 ++install_sh_PROGRAM = $(install_sh) -c ++install_sh_SCRIPT = $(install_sh) -c ++INSTALL_HEADER = $(INSTALL_DATA) ++transform = $(program_transform_name) ++NORMAL_INSTALL = : ++PRE_INSTALL = : ++POST_INSTALL = : ++NORMAL_UNINSTALL = : ++PRE_UNINSTALL = : ++POST_UNINSTALL = : ++subdir = . ++DIST_COMMON = README $(am__configure_deps) $(include_HEADERS) \ ++ $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ ++ $(srcdir)/config.h.in $(top_srcdir)/configure ChangeLog \ ++ depcomp devpoll.c epoll.c epoll_sub.c evport.c install-sh \ ++ kqueue.c missing poll.c select.c signal.c ++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 configure.status.lineno ++mkinstalldirs = $(install_sh) -d ++CONFIG_HEADER = config.h ++CONFIG_CLEAN_FILES = ++LIBRARIES = $(noinst_LIBRARIES) ++AR = ar ++ARFLAGS = cru ++libevent_a_AR = $(AR) $(ARFLAGS) ++am__DEPENDENCIES_1 = @LIBOBJS@ ++am__objects_1 = event.$(OBJEXT) log.$(OBJEXT) evutil.$(OBJEXT) \ ++ http.$(OBJEXT) buffer.$(OBJEXT) evbuffer.$(OBJEXT) \ ++ strlcpy.$(OBJEXT) ++am_libevent_a_OBJECTS = $(am__objects_1) ++libevent_a_OBJECTS = $(am_libevent_a_OBJECTS) ++DEFAULT_INCLUDES = -I. -I$(srcdir) -I. ++depcomp = $(SHELL) $(top_srcdir)/depcomp ++am__depfiles_maybe = depfiles ++COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ ++ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) ++CCLD = $(CC) ++LINK = $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ ++SOURCES = $(libevent_a_SOURCES) ++DIST_SOURCES = $(libevent_a_SOURCES) ++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)$(includedir)" ++includeHEADERS_INSTALL = $(INSTALL_HEADER) ++HEADERS = $(include_HEADERS) ++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@ ++AMDEP_FALSE = @AMDEP_FALSE@ ++AMDEP_TRUE = @AMDEP_TRUE@ ++AMTAR = @AMTAR@ ++AUTOCONF = @AUTOCONF@ ++AUTOHEADER = @AUTOHEADER@ ++AUTOMAKE = @AUTOMAKE@ ++AWK = @AWK@ ++BUILD_WIN32_FALSE = @BUILD_WIN32_FALSE@ ++BUILD_WIN32_TRUE = @BUILD_WIN32_TRUE@ ++CC = @CC@ ++CCDEPMODE = @CCDEPMODE@ ++CFLAGS = @CFLAGS@ ++CPP = @CPP@ ++CPPFLAGS = @CPPFLAGS@ ++CYGPATH_W = @CYGPATH_W@ ++DEFS = @DEFS@ ++DEPDIR = @DEPDIR@ ++ECHO_C = @ECHO_C@ ++ECHO_N = @ECHO_N@ ++ECHO_T = @ECHO_T@ ++EGREP = @EGREP@ ++EXEEXT = @EXEEXT@ ++INSTALL_DATA = @INSTALL_DATA@ ++INSTALL_PROGRAM = @INSTALL_PROGRAM@ ++INSTALL_SCRIPT = @INSTALL_SCRIPT@ ++INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ ++LDFLAGS = @LDFLAGS@ ++LIBOBJS = @LIBOBJS@ ++LIBS = @LIBS@ ++LN_S = @LN_S@ ++LTLIBOBJS = @LTLIBOBJS@ ++MAKEINFO = @MAKEINFO@ ++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@ ++RANLIB = @RANLIB@ ++SET_MAKE = @SET_MAKE@ ++SHELL = @SHELL@ ++STRIP = @STRIP@ ++VERSION = @VERSION@ ++ac_ct_CC = @ac_ct_CC@ ++ac_ct_RANLIB = @ac_ct_RANLIB@ ++ac_ct_STRIP = @ac_ct_STRIP@ ++am__fastdepCC_FALSE = @am__fastdepCC_FALSE@ ++am__fastdepCC_TRUE = @am__fastdepCC_TRUE@ ++am__include = @am__include@ ++am__leading_dot = @am__leading_dot@ ++am__quote = @am__quote@ ++am__tar = @am__tar@ ++am__untar = @am__untar@ ++bindir = @bindir@ ++build_alias = @build_alias@ ++datadir = @datadir@ ++exec_prefix = @exec_prefix@ ++host_alias = @host_alias@ ++includedir = @includedir@ ++infodir = @infodir@ ++install_sh = @install_sh@ ++libdir = @libdir@ ++libexecdir = @libexecdir@ ++localstatedir = @localstatedir@ ++mandir = @mandir@ ++mkdir_p = @mkdir_p@ ++oldincludedir = @oldincludedir@ ++prefix = @prefix@ ++program_transform_name = @program_transform_name@ ++sbindir = @sbindir@ ++sharedstatedir = @sharedstatedir@ ++sysconfdir = @sysconfdir@ ++target_alias = @target_alias@ ++ ++# This is the point release for libevent. It shouldn't include any ++# a/b/c/d/e notations. ++RELEASE = 1.4 ++ ++# This is the version info for the libevent binary API. It has three ++# numbers: ++# Current -- the number of the binary API that we're implementing ++# Revision -- which iteration of the implementation of the binary ++# API are we supplying? ++# Age -- How many previous binary API versions do we also ++# support? ++# ++# If we release a new version that does not change the binary API, ++# increment Revision. ++# ++# If we release a new version that changes the binary API, but does ++# not break programs compiled against the old binary API, increment ++# Current and Age. Set Revision to 0, since this is the first ++# implementation of the new API. ++# ++# Otherwise, we're changing the binary API and breaking bakward ++# compatibility with old binaries. Increment Current. Set Age to 0, ++# since we're backward compatible with no previous APIs. Set Revision ++# to 0 too. ++ ++# History: ++# Libevent 1.4.1 was 2:0:0 ++# Libevent 1.4.2 should be 3:0:0 ++# Libevent 1.4.5 is 3:0:1 (we forgot to increment in the past) ++VERSION_INFO = 3:2:1 ++noinst_LIBRARIES = libevent.a ++BUILT_SOURCES = event-config.h ++CORE_SRC = event.c log.c evutil.c http.c buffer.c evbuffer.c strlcpy.c $(SYS_SRC) ++libevent_a_SOURCES = $(CORE_SRC) $(EXTRA_SRC) ++libevent_a_DEPENDENCIES = $(LIBOBJS) ++libevent_a_LIBADD = $(LIBOBJS) ++include_HEADERS = event.h evutil.h event-config.h ++INCLUDES = -I$(srcdir)/compat $(SYS_INCLUDES) ++all: $(BUILT_SOURCES) config.h ++ $(MAKE) $(AM_MAKEFLAGS) all-am ++ ++.SUFFIXES: ++.SUFFIXES: .c .o .obj ++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) --foreign '; \ ++ cd $(srcdir) && $(AUTOMAKE) --foreign \ ++ && exit 0; \ ++ exit 1;; \ ++ esac; \ ++ done; \ ++ echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ ++ cd $(top_srcdir) && \ ++ $(AUTOMAKE) --foreign Makefile ++.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: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) ++ $(SHELL) ./config.status --recheck ++ ++$(top_srcdir)/configure: $(am__configure_deps) ++ cd $(srcdir) && $(AUTOCONF) ++$(ACLOCAL_M4): $(am__aclocal_m4_deps) ++ cd $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) ++ ++config.h: stamp-h1 ++ @if test ! -f $@; then \ ++ rm -f stamp-h1; \ ++ $(MAKE) stamp-h1; \ ++ else :; fi ++ ++stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status ++ @rm -f stamp-h1 ++ cd $(top_builddir) && $(SHELL) ./config.status config.h ++$(srcdir)/config.h.in: $(am__configure_deps) ++ cd $(top_srcdir) && $(AUTOHEADER) ++ rm -f stamp-h1 ++ touch $@ ++ ++distclean-hdr: ++ -rm -f config.h stamp-h1 ++ ++clean-noinstLIBRARIES: ++ -test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES) ++libevent.a: $(libevent_a_OBJECTS) $(libevent_a_DEPENDENCIES) ++ -rm -f libevent.a ++ $(libevent_a_AR) libevent.a $(libevent_a_OBJECTS) $(libevent_a_LIBADD) ++ $(RANLIB) libevent.a ++ ++mostlyclean-compile: ++ -rm -f *.$(OBJEXT) ++ ++distclean-compile: ++ -rm -f *.tab.c ++ ++@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/devpoll.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/epoll.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/epoll_sub.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/evport.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/kqueue.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/poll.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/select.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@$(DEPDIR)/signal.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/buffer.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evbuffer.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/event.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/evutil.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/http.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/log.Po@am__quote@ ++@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/strlcpy.Po@am__quote@ ++ ++.c.o: ++@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi ++@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: ++@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \ ++@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi ++@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) '$<'` ++uninstall-info-am: ++install-includeHEADERS: $(include_HEADERS) ++ @$(NORMAL_INSTALL) ++ test -z "$(includedir)" || $(mkdir_p) "$(DESTDIR)$(includedir)" ++ @list='$(include_HEADERS)'; for p in $$list; do \ ++ if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ ++ f=$(am__strip_dir) \ ++ echo " $(includeHEADERS_INSTALL) '$$d$$p' '$(DESTDIR)$(includedir)/$$f'"; \ ++ $(includeHEADERS_INSTALL) "$$d$$p" "$(DESTDIR)$(includedir)/$$f"; \ ++ done ++ ++uninstall-includeHEADERS: ++ @$(NORMAL_UNINSTALL) ++ @list='$(include_HEADERS)'; for p in $$list; do \ ++ f=$(am__strip_dir) \ ++ echo " rm -f '$(DESTDIR)$(includedir)/$$f'"; \ ++ rm -f "$(DESTDIR)$(includedir)/$$f"; \ ++ done ++ ++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; }'`; \ ++ mkid -fID $$unique ++tags: TAGS ++ ++TAGS: $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) config.h.in $(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; }'`; \ ++ 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) config.h.in $(TAGS_DEPENDENCIES) \ ++ $(TAGS_FILES) $(LISP) ++ tags=; \ ++ here=`pwd`; \ ++ list='$(SOURCES) $(HEADERS) config.h.in $(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; }'`; \ ++ test -z "$(CTAGS_ARGS)$$tags$$unique" \ ++ || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ ++ $$tags $$unique ++ ++GTAGS: ++ here=`$(am__cd) $(top_builddir) && pwd` \ ++ && cd $(top_srcdir) \ ++ && gtags -i $(GTAGS_ARGS) $$here ++ ++distclean-tags: ++ -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags ++ ++distdir: $(DISTFILES) ++ $(am__remove_distdir) ++ mkdir $(distdir) ++ @srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \ ++ topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \ ++ list='$(DISTFILES)'; for file in $$list; do \ ++ case $$file in \ ++ $(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \ ++ $(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \ ++ esac; \ ++ 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"; \ ++ $(mkdir_p) "$(distdir)$$dir"; \ ++ else \ ++ dir=''; \ ++ fi; \ ++ if test -d $$d/$$file; then \ ++ if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ ++ cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \ ++ fi; \ ++ cp -pR $$d/$$file $(distdir)$$dir || exit 1; \ ++ else \ ++ test -f $(distdir)/$$file \ ++ || cp -p $$d/$$file $(distdir)/$$file \ ++ || exit 1; \ ++ fi; \ ++ done ++ -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 {} {} \; \ ++ || chmod -R a+r $(distdir) ++dist-gzip: distdir ++ 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-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 ++ 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 ++ 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.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 ++ chmod a-w $(distdir) ++ 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 \ ++ && $(MAKE) $(AM_MAKEFLAGS) check \ ++ && $(MAKE) $(AM_MAKEFLAGS) install \ ++ && $(MAKE) $(AM_MAKEFLAGS) installcheck \ ++ && $(MAKE) $(AM_MAKEFLAGS) uninstall \ ++ && $(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) archives ready for distribution: "; \ ++ list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ ++ sed -e '1{h;s/./=/g;p;x;}' -e '$${p;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 \ ++ echo "ERROR: distcleancheck can only run from a VPATH build" ; \ ++ exit 1 ; \ ++ fi ++ @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: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) check-am ++all-am: Makefile $(LIBRARIES) $(HEADERS) config.h ++installdirs: ++ for dir in "$(DESTDIR)$(includedir)"; do \ ++ test -z "$$dir" || $(mkdir_p) "$$dir"; \ ++ done ++install: $(BUILT_SOURCES) ++ $(MAKE) $(AM_MAKEFLAGS) install-am ++install-exec: install-exec-am ++install-data: install-data-am ++uninstall: uninstall-am ++ ++install-am: all-am ++ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am ++ ++installcheck: installcheck-am ++install-strip: ++ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ ++ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ ++ `test -z '$(STRIP)' || \ ++ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install ++mostlyclean-generic: ++ ++clean-generic: ++ ++distclean-generic: ++ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) ++ ++maintainer-clean-generic: ++ @echo "This command is intended for maintainers to use" ++ @echo "it deletes files that may require special tools to rebuild." ++ -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) ++clean: clean-am ++ ++clean-am: clean-generic clean-noinstLIBRARIES mostlyclean-am ++ ++distclean: distclean-am ++ -rm -f $(am__CONFIG_DISTCLEAN_FILES) ++ -rm -rf $(DEPDIR) ./$(DEPDIR) ++ -rm -f Makefile ++distclean-am: clean-am distclean-compile distclean-generic \ ++ distclean-hdr distclean-tags ++ ++dvi: dvi-am ++ ++dvi-am: ++ ++html: html-am ++ ++info: info-am ++ ++info-am: ++ ++install-data-am: install-includeHEADERS ++ ++install-exec-am: ++ ++install-info: install-info-am ++ ++install-man: ++ ++installcheck-am: ++ ++maintainer-clean: maintainer-clean-am ++ -rm -f $(am__CONFIG_DISTCLEAN_FILES) ++ -rm -rf $(top_srcdir)/autom4te.cache ++ -rm -rf $(DEPDIR) ./$(DEPDIR) ++ -rm -f Makefile ++maintainer-clean-am: distclean-am maintainer-clean-generic ++ ++mostlyclean: mostlyclean-am ++ ++mostlyclean-am: mostlyclean-compile mostlyclean-generic ++ ++pdf: pdf-am ++ ++pdf-am: ++ ++ps: ps-am ++ ++ps-am: ++ ++uninstall-am: uninstall-includeHEADERS uninstall-info-am ++ ++.PHONY: CTAGS GTAGS all all-am am--refresh check check-am clean \ ++ clean-generic clean-noinstLIBRARIES ctags dist dist-all \ ++ dist-bzip2 dist-gzip dist-shar dist-tarZ dist-zip distcheck \ ++ distclean distclean-compile distclean-generic distclean-hdr \ ++ distclean-tags distcleancheck distdir distuninstallcheck dvi \ ++ dvi-am html html-am info info-am install install-am \ ++ install-data install-data-am install-exec install-exec-am \ ++ install-includeHEADERS install-info install-info-am \ ++ install-man install-strip installcheck installcheck-am \ ++ installdirs maintainer-clean maintainer-clean-generic \ ++ mostlyclean mostlyclean-compile mostlyclean-generic pdf pdf-am \ ++ ps ps-am tags uninstall uninstall-am uninstall-includeHEADERS \ ++ uninstall-info-am ++ ++ ++event-config.h: config.h ++ echo '/* event-config.h' > $@ ++ echo ' * Generated by autoconf; post-processed by libevent.' >> $@ ++ echo ' * Do not edit this file.' >> $@ ++ echo ' * Do not rely on macros in this file existing in later versions.'>> $@ ++ echo ' */' >> $@ ++ echo '#ifndef _EVENT_CONFIG_H_' >> $@ ++ echo '#define _EVENT_CONFIG_H_' >> $@ ++ ++ sed -e 's/#define /#define _EVENT_/' \ ++ -e 's/#undef /#undef _EVENT_/' \ ++ -e 's/#ifndef /#ifndef _EVENT_/' < config.h >> $@ ++ echo "#endif" >> $@ ++# 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: +diff --git a/libevent/README b/libevent/README +new file mode 100644 +index 0000000..b065039 +--- /dev/null ++++ b/libevent/README +@@ -0,0 +1,57 @@ ++To build libevent, type ++ ++$ ./configure && make ++ ++ (If you got libevent from the subversion repository, you will ++ first need to run the included "autogen.sh" script in order to ++ generate the configure script.) ++ ++Install as root via ++ ++# make install ++ ++You can run the regression tests by ++ ++$ make verify ++ ++Before, reporting any problems, please run the regression tests. ++ ++To enable the low-level tracing build the library as: ++ ++CFLAGS=-DUSE_DEBUG ./configure [...] ++ ++Acknowledgements: ++----------------- ++ ++The following people have helped with suggestions, ideas, code or ++fixing bugs: ++ ++ Alejo ++ Weston Andros Adamson ++ William Ahern ++ Stas Bekman ++ Andrew Danforth ++ Mike Davis ++ Shie Erlich ++ Alexander von Gernler ++ Artur Grabowski ++ Aaron Hopkins ++ Claudio Jeker ++ Scott Lamb ++ Adam Langley ++ Philip Lewis ++ David Libenzi ++ Nick Mathewson ++ Andrey Matveev ++ Richard Nyberg ++ Jon Oberheide ++ Phil Oleson ++ Dave Pacheco ++ Tassilo von Parseval ++ Pierre Phaneuf ++ Jon Poland ++ Bert JW Regeer ++ Dug Song ++ Taral ++ ++If I have forgotten your name, please contact me. +diff --git a/libevent/aclocal.m4 b/libevent/aclocal.m4 +new file mode 100644 +index 0000000..74de4a1 +--- /dev/null ++++ b/libevent/aclocal.m4 +@@ -0,0 +1,862 @@ ++# generated automatically by aclocal 1.9.5 -*- Autoconf -*- ++ ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 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. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY, to the extent permitted by law; without ++# even the implied warranty of MERCHANTABILITY or FITNESS FOR A ++# PARTICULAR PURPOSE. ++ ++# Copyright (C) 2002, 2003, 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. ++ ++# AM_AUTOMAKE_VERSION(VERSION) ++# ---------------------------- ++# Automake X.Y traces this macro to ensure aclocal.m4 has been ++# generated from the m4 files accompanying Automake X.Y. ++AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"]) ++ ++# AM_SET_CURRENT_AUTOMAKE_VERSION ++# ------------------------------- ++# Call AM_AUTOMAKE_VERSION so it can be traced. ++# This function is AC_REQUIREd by AC_INIT_AUTOMAKE. ++AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], ++ [AM_AUTOMAKE_VERSION([1.9.5])]) ++ ++# AM_AUX_DIR_EXPAND -*- Autoconf -*- ++ ++# Copyright (C) 2001, 2003, 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. ++ ++# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets ++# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to ++# `$srcdir', `$srcdir/..', or `$srcdir/../..'. ++# ++# Of course, Automake must honor this variable whenever it calls a ++# tool from the auxiliary directory. The problem is that $srcdir (and ++# therefore $ac_aux_dir as well) can be either absolute or relative, ++# depending on how configure is run. This is pretty annoying, since ++# it makes $ac_aux_dir quite unusable in subdirectories: in the top ++# source directory, any form will work fine, but in subdirectories a ++# relative path needs to be adjusted first. ++# ++# $ac_aux_dir/missing ++# fails when called from a subdirectory if $ac_aux_dir is relative ++# $top_srcdir/$ac_aux_dir/missing ++# fails if $ac_aux_dir is absolute, ++# fails when called from a subdirectory in a VPATH build with ++# a relative $ac_aux_dir ++# ++# The reason of the latter failure is that $top_srcdir and $ac_aux_dir ++# are both prefixed by $srcdir. In an in-source build this is usually ++# harmless because $srcdir is `.', but things will broke when you ++# start a VPATH build or use an absolute $srcdir. ++# ++# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, ++# iff we strip the leading $srcdir from $ac_aux_dir. That would be: ++# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` ++# and then we would define $MISSING as ++# MISSING="\${SHELL} $am_aux_dir/missing" ++# This will work as long as MISSING is not called from configure, because ++# unfortunately $(top_srcdir) has no meaning in configure. ++# However there are other variables, like CC, which are often used in ++# configure, and could therefore not use this "fixed" $ac_aux_dir. ++# ++# Another solution, used here, is to always expand $ac_aux_dir to an ++# absolute PATH. The drawback is that using absolute paths prevent a ++# configured tree to be moved without reconfiguration. ++ ++AC_DEFUN([AM_AUX_DIR_EXPAND], ++[dnl Rely on autoconf to set up CDPATH properly. ++AC_PREREQ([2.50])dnl ++# expand $ac_aux_dir to an absolute path ++am_aux_dir=`cd $ac_aux_dir && pwd` ++]) ++ ++# AM_CONDITIONAL -*- Autoconf -*- ++ ++# Copyright (C) 1997, 2000, 2001, 2003, 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 7 ++ ++# AM_CONDITIONAL(NAME, SHELL-CONDITION) ++# ------------------------------------- ++# Define a conditional. ++AC_DEFUN([AM_CONDITIONAL], ++[AC_PREREQ(2.52)dnl ++ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], ++ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl ++AC_SUBST([$1_TRUE]) ++AC_SUBST([$1_FALSE]) ++if $2; then ++ $1_TRUE= ++ $1_FALSE='#' ++else ++ $1_TRUE='#' ++ $1_FALSE= ++fi ++AC_CONFIG_COMMANDS_PRE( ++[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then ++ AC_MSG_ERROR([[conditional "$1" was never defined. ++Usually this means the macro was only invoked conditionally.]]) ++fi])]) ++ ++ ++# Copyright (C) 1999, 2000, 2001, 2002, 2003, 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 8 ++ ++# 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... ++ ++ ++# _AM_DEPENDENCIES(NAME) ++# ---------------------- ++# See how the compiler implements dependency checking. ++# NAME is "CC", "CXX", "GCJ", or "OBJC". ++# We try a few techniques and use that to set a single cache variable. ++# ++# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was ++# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular ++# dependency, and given that the user is not expected to run this macro, ++# just rely on AC_PROG_CC. ++AC_DEFUN([_AM_DEPENDENCIES], ++[AC_REQUIRE([AM_SET_DEPDIR])dnl ++AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl ++AC_REQUIRE([AM_MAKE_INCLUDE])dnl ++AC_REQUIRE([AM_DEP_TRACK])dnl ++ ++ifelse([$1], CC, [depcc="$CC" am_compiler_list=], ++ [$1], CXX, [depcc="$CXX" am_compiler_list=], ++ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], ++ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], ++ [depcc="$$1" am_compiler_list=]) ++ ++AC_CACHE_CHECK([dependency style of $depcc], ++ [am_cv_$1_dependencies_compiler_type], ++[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then ++ # We make a subdir and do the tests there. Otherwise we can end up ++ # making bogus files that we don't know about and never remove. For ++ # instance it was reported that on HP-UX the gcc test will end up ++ # making a dummy file named `D' -- because `-MD' means `put the output ++ # in D'. ++ mkdir conftest.dir ++ # Copy depcomp to subdir because otherwise we won't find it if we're ++ # using a relative directory. ++ cp "$am_depcomp" conftest.dir ++ cd conftest.dir ++ # We will build objects and dependencies in a subdirectory because ++ # it helps to detect inapplicable dependency modes. For instance ++ # both Tru64's cc and ICC support -MD to output dependencies as a ++ # side effect of compilation, but ICC will put the dependencies in ++ # the current directory while Tru64 will put them in the object ++ # directory. ++ mkdir sub ++ ++ am_cv_$1_dependencies_compiler_type=none ++ if test "$am_compiler_list" = ""; then ++ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` ++ fi ++ for depmode in $am_compiler_list; do ++ # Setup a source with many dependencies, because some compilers ++ # like to wrap large dependency lists on column 80 (with \), and ++ # we should not choose a depcomp mode which is confused by this. ++ # ++ # We need to recreate these files for each test, as the compiler may ++ # overwrite some of them when testing with obscure command lines. ++ # This happens at least with the AIX C compiler. ++ : > sub/conftest.c ++ for i in 1 2 3 4 5 6; do ++ echo '#include "conftst'$i'.h"' >> sub/conftest.c ++ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with ++ # Solaris 8's {/usr,}/bin/sh. ++ touch sub/conftst$i.h ++ done ++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf ++ ++ case $depmode in ++ nosideeffect) ++ # after this tag, mechanisms are not by side-effect, so they'll ++ # only be used when explicitly requested ++ if test "x$enable_dependency_tracking" = xyes; then ++ continue ++ else ++ break ++ fi ++ ;; ++ none) break ;; ++ esac ++ # We check with `-c' and `-o' for the sake of the "dashmstdout" ++ # mode. It turns out that the SunPro C++ compiler does not properly ++ # handle `-M -o', and we need to detect this. ++ if depmode=$depmode \ ++ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ ++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ ++ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ ++ >/dev/null 2>conftest.err && ++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && ++ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then ++ # icc doesn't choke on unknown options, it will just issue warnings ++ # or remarks (even with -Werror). So we grep stderr for any message ++ # that says an option was ignored or not supported. ++ # When given -MP, icc 7.0 and 7.1 complain thusly: ++ # icc: Command line warning: ignoring option '-M'; no argument required ++ # The diagnosis changed in icc 8.0: ++ # icc: Command line remark: option '-MP' not supported ++ if (grep 'ignoring option' conftest.err || ++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else ++ am_cv_$1_dependencies_compiler_type=$depmode ++ break ++ fi ++ fi ++ done ++ ++ cd .. ++ rm -rf conftest.dir ++else ++ am_cv_$1_dependencies_compiler_type=none ++fi ++]) ++AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) ++AM_CONDITIONAL([am__fastdep$1], [ ++ test "x$enable_dependency_tracking" != xno \ ++ && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) ++]) ++ ++ ++# AM_SET_DEPDIR ++# ------------- ++# Choose a directory name for dependency files. ++# This macro is AC_REQUIREd in _AM_DEPENDENCIES ++AC_DEFUN([AM_SET_DEPDIR], ++[AC_REQUIRE([AM_SET_LEADING_DOT])dnl ++AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl ++]) ++ ++ ++# AM_DEP_TRACK ++# ------------ ++AC_DEFUN([AM_DEP_TRACK], ++[AC_ARG_ENABLE(dependency-tracking, ++[ --disable-dependency-tracking speeds up one-time build ++ --enable-dependency-tracking do not reject slow dependency extractors]) ++if test "x$enable_dependency_tracking" != xno; then ++ am_depcomp="$ac_aux_dir/depcomp" ++ AMDEPBACKSLASH='\' ++fi ++AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) ++AC_SUBST([AMDEPBACKSLASH]) ++]) ++ ++# Generate code to set up dependency tracking. -*- Autoconf -*- ++ ++# Copyright (C) 1999, 2000, 2001, 2002, 2003, 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 3 ++ ++# _AM_OUTPUT_DEPENDENCY_COMMANDS ++# ------------------------------ ++AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], ++[for mf in $CONFIG_FILES; do ++ # Strip MF so we end up with the name of the file. ++ mf=`echo "$mf" | sed -e 's/:.*$//'` ++ # Check whether this is an Automake generated Makefile or not. ++ # We used to match only the files named `Makefile.in', but ++ # some people rename them; so instead we look at the file content. ++ # Grep'ing the first line is not enough: some people post-process ++ # each Makefile.in and add a new line on top of each file to say so. ++ # So let's grep whole file. ++ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then ++ dirpart=`AS_DIRNAME("$mf")` ++ else ++ continue ++ fi ++ # 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 '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=`AS_DIRNAME(["$file"])` ++ AS_MKDIR_P([$dirpart/$fdir]) ++ # echo "creating $dirpart/$file" ++ echo '# dummy' > "$dirpart/$file" ++ done ++done ++])# _AM_OUTPUT_DEPENDENCY_COMMANDS ++ ++ ++# AM_OUTPUT_DEPENDENCY_COMMANDS ++# ----------------------------- ++# This macro should only be invoked once -- use via AC_REQUIRE. ++# ++# This code is only required when automatic dependency tracking ++# is enabled. FIXME. This creates each `.P' file that we will ++# need in order to bootstrap the dependency handling code. ++AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], ++[AC_CONFIG_COMMANDS([depfiles], ++ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], ++ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) ++]) ++ ++# Copyright (C) 1996, 1997, 2000, 2001, 2003, 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 8 ++ ++# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. ++AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) ++ ++# Do all the work for Automake. -*- Autoconf -*- ++ ++# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 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 12 ++ ++# 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. ++ ++# 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_PREREQ([2.58])dnl ++dnl Autoconf wants to disallow AM_ names. We explicitly allow ++dnl the ones we care about. ++m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl ++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 ++ ++# test whether we have cygpath ++if test -z "$CYGPATH_W"; then ++ if (cygpath --version) >/dev/null 2>/dev/null; then ++ CYGPATH_W='cygpath -w' ++ else ++ CYGPATH_W=echo ++ fi ++fi ++AC_SUBST([CYGPATH_W]) ++ ++# 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 ++ ++_AM_IF_OPTION([no-define],, ++[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) ++ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl ++ ++# Some tools Automake needs. ++AC_REQUIRE([AM_SANITY_CHECK])dnl ++AC_REQUIRE([AC_ARG_PROGRAM])dnl ++AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) ++AM_MISSING_PROG(AUTOCONF, autoconf) ++AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) ++AM_MISSING_PROG(AUTOHEADER, autoheader) ++AM_MISSING_PROG(MAKEINFO, makeinfo) ++AM_PROG_INSTALL_SH ++AM_PROG_INSTALL_STRIP ++AC_REQUIRE([AM_PROG_MKDIR_P])dnl ++# We need awk for the "check" target. The system "awk" is bad on ++# some platforms. ++AC_REQUIRE([AC_PROG_AWK])dnl ++AC_REQUIRE([AC_PROG_MAKE_SET])dnl ++AC_REQUIRE([AM_SET_LEADING_DOT])dnl ++_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], ++ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], ++ [_AM_PROG_TAR([v7])])]) ++_AM_IF_OPTION([no-dependencies],, ++[AC_PROVIDE_IFELSE([AC_PROG_CC], ++ [_AM_DEPENDENCIES(CC)], ++ [define([AC_PROG_CC], ++ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl ++AC_PROVIDE_IFELSE([AC_PROG_CXX], ++ [_AM_DEPENDENCIES(CXX)], ++ [define([AC_PROG_CXX], ++ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl ++]) ++]) ++ ++ ++# When config.status generates a header, we must update the stamp-h file. ++# This file resides in the same directory as the config header ++# that is generated. The stamp files are numbered to have different names. ++ ++# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the ++# loop where config.status creates the headers, so we can generate ++# our stamp files there. ++AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], ++[# Compute $1's index in $config_headers. ++_am_stamp_count=1 ++for _am_header in $config_headers :; do ++ case $_am_header in ++ $1 | $1:* ) ++ break ;; ++ * ) ++ _am_stamp_count=`expr $_am_stamp_count + 1` ;; ++ esac ++done ++echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count]) ++ ++# Copyright (C) 2001, 2003, 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. ++ ++# AM_PROG_INSTALL_SH ++# ------------------ ++# Define $install_sh. ++AC_DEFUN([AM_PROG_INSTALL_SH], ++[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl ++install_sh=${install_sh-"$am_aux_dir/install-sh"} ++AC_SUBST(install_sh)]) ++ ++# Copyright (C) 2003, 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 ++ ++# Check whether the underlying file-system supports filenames ++# with a leading dot. For instance MS-DOS doesn't. ++AC_DEFUN([AM_SET_LEADING_DOT], ++[rm -rf .tst 2>/dev/null ++mkdir .tst 2>/dev/null ++if test -d .tst; then ++ am__leading_dot=. ++else ++ am__leading_dot=_ ++fi ++rmdir .tst 2>/dev/null ++AC_SUBST([am__leading_dot])]) ++ ++# Check to see how 'make' treats includes. -*- Autoconf -*- ++ ++# Copyright (C) 2001, 2002, 2003, 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 3 ++ ++# AM_MAKE_INCLUDE() ++# ----------------- ++# Check to see how make treats includes. ++AC_DEFUN([AM_MAKE_INCLUDE], ++[am_make=${MAKE-make} ++cat > confinc << 'END' ++am__doit: ++ @echo done ++.PHONY: am__doit ++END ++# If we don't find an include directive, just comment out the code. ++AC_MSG_CHECKING([for style of include used by $am_make]) ++am__include="#" ++am__quote= ++_am_result=none ++# First try GNU make style include. ++echo "include confinc" > confmf ++# We grep out `Entering directory' and `Leaving directory' ++# messages which can occur if `w' ends up in MAKEFLAGS. ++# In particular we don't look at `^make:' because GNU make might ++# be invoked under some other name (usually "gmake"), in which ++# case it prints its new name instead of `make'. ++if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then ++ am__include=include ++ am__quote= ++ _am_result=GNU ++fi ++# Now try BSD make style include. ++if test "$am__include" = "#"; then ++ echo '.include "confinc"' > confmf ++ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then ++ am__include=.include ++ am__quote="\"" ++ _am_result=BSD ++ fi ++fi ++AC_SUBST([am__include]) ++AC_SUBST([am__quote]) ++AC_MSG_RESULT([$_am_result]) ++rm -f confinc confmf ++]) ++ ++# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- ++ ++# Copyright (C) 1997, 1999, 2000, 2001, 2003, 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 4 ++ ++# AM_MISSING_PROG(NAME, PROGRAM) ++# ------------------------------ ++AC_DEFUN([AM_MISSING_PROG], ++[AC_REQUIRE([AM_MISSING_HAS_RUN]) ++$1=${$1-"${am_missing_run}$2"} ++AC_SUBST($1)]) ++ ++ ++# AM_MISSING_HAS_RUN ++# ------------------ ++# Define MISSING if not defined so far and test if it supports --run. ++# If it does, set am_missing_run to use it, otherwise, to nothing. ++AC_DEFUN([AM_MISSING_HAS_RUN], ++[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl ++test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" ++# Use eval to expand $SHELL ++if eval "$MISSING --run true"; then ++ am_missing_run="$MISSING --run " ++else ++ am_missing_run= ++ AC_MSG_WARN([`missing' script is too old or missing]) ++fi ++]) ++ ++# Copyright (C) 2003, 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. ++ ++# AM_PROG_MKDIR_P ++# --------------- ++# Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise. ++# ++# Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories ++# created by `make install' are always world readable, even if the ++# installer happens to have an overly restrictive umask (e.g. 077). ++# This was a mistake. There are at least two reasons why we must not ++# use `-m 0755': ++# - it causes special bits like SGID to be ignored, ++# - it may be too restrictive (some setups expect 775 directories). ++# ++# Do not use -m 0755 and let people choose whatever they expect by ++# setting umask. ++# ++# We cannot accept any implementation of `mkdir' that recognizes `-p'. ++# Some implementations (such as Solaris 8's) are not thread-safe: if a ++# parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c' ++# concurrently, both version can detect that a/ is missing, but only ++# one can create it and the other will error out. Consequently we ++# restrict ourselves to GNU make (using the --version option ensures ++# this.) ++AC_DEFUN([AM_PROG_MKDIR_P], ++[if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then ++ # We used to keeping the `.' as first argument, in order to ++ # allow $(mkdir_p) to be used without argument. As in ++ # $(mkdir_p) $(somedir) ++ # where $(somedir) is conditionally defined. However this is wrong ++ # for two reasons: ++ # 1. if the package is installed by a user who cannot write `.' ++ # make install will fail, ++ # 2. the above comment should most certainly read ++ # $(mkdir_p) $(DESTDIR)$(somedir) ++ # so it does not work when $(somedir) is undefined and ++ # $(DESTDIR) is not. ++ # To support the latter case, we have to write ++ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), ++ # so the `.' trick is pointless. ++ mkdir_p='mkdir -p --' ++else ++ # On NextStep and OpenStep, the `mkdir' command does not ++ # recognize any option. It will interpret all options as ++ # directories to create, and then abort because `.' already ++ # exists. ++ for d in ./-p ./--version; ++ do ++ test -d $d && rmdir $d ++ done ++ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. ++ if test -f "$ac_aux_dir/mkinstalldirs"; then ++ mkdir_p='$(mkinstalldirs)' ++ else ++ mkdir_p='$(install_sh) -d' ++ fi ++fi ++AC_SUBST([mkdir_p])]) ++ ++# Helper functions for option handling. -*- Autoconf -*- ++ ++# Copyright (C) 2001, 2002, 2003, 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 3 ++ ++# _AM_MANGLE_OPTION(NAME) ++# ----------------------- ++AC_DEFUN([_AM_MANGLE_OPTION], ++[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) ++ ++# _AM_SET_OPTION(NAME) ++# ------------------------------ ++# Set option NAME. Presently that only means defining a flag for this option. ++AC_DEFUN([_AM_SET_OPTION], ++[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) ++ ++# _AM_SET_OPTIONS(OPTIONS) ++# ---------------------------------- ++# OPTIONS is a space-separated list of Automake options. ++AC_DEFUN([_AM_SET_OPTIONS], ++[AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) ++ ++# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) ++# ------------------------------------------- ++# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. ++AC_DEFUN([_AM_IF_OPTION], ++[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) ++ ++# Check to make sure that the build environment is sane. -*- Autoconf -*- ++ ++# Copyright (C) 1996, 1997, 2000, 2001, 2003, 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 4 ++ ++# AM_SANITY_CHECK ++# --------------- ++AC_DEFUN([AM_SANITY_CHECK], ++[AC_MSG_CHECKING([whether build environment is sane]) ++# Just in case ++sleep 1 ++echo timestamp > conftest.file ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` ++ if test "$[*]" = "X"; then ++ # -L didn't work. ++ set X `ls -t $srcdir/configure conftest.file` ++ fi ++ rm -f conftest.file ++ if test "$[*]" != "X $srcdir/configure conftest.file" \ ++ && test "$[*]" != "X conftest.file $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken ++alias in your environment]) ++ fi ++ ++ test "$[2]" = conftest.file ++ ) ++then ++ # Ok. ++ : ++else ++ AC_MSG_ERROR([newly created file is older than distributed files! ++Check your system clock]) ++fi ++AC_MSG_RESULT(yes)]) ++ ++# Copyright (C) 2001, 2003, 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. ++ ++# AM_PROG_INSTALL_STRIP ++# --------------------- ++# One issue with vendor `install' (even GNU) is that you can't ++# specify the program used to strip binaries. This is especially ++# annoying in cross-compiling environments, where the build's strip ++# is unlikely to handle the host's binaries. ++# Fortunately install-sh will honor a STRIPPROG variable, so we ++# always use install-sh in `make install-strip', and initialize ++# STRIPPROG with the value of the STRIP variable (set by the user). ++AC_DEFUN([AM_PROG_INSTALL_STRIP], ++[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl ++# Installed binaries are usually stripped using `strip' when the user ++# run `make install-strip'. However `strip' might not be the right ++# tool to use in cross-compilation environments, therefore Automake ++# will honor the `STRIP' environment variable to overrule this program. ++dnl Don't test for $cross_compiling = yes, because it might be `maybe'. ++if test "$cross_compiling" != no; then ++ AC_CHECK_TOOL([STRIP], [strip], :) ++fi ++INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" ++AC_SUBST([INSTALL_STRIP_PROGRAM])]) ++ ++# Check how to create a tarball. -*- Autoconf -*- ++ ++# 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 ++ case $_am_tool in ++ gnutar) ++ for _am_tar in tar gnutar gtar; ++ do ++ AM_RUN_LOG([$_am_tar --version]) && break ++ 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 ++ ++ # 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 ++ ++ # 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 /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 ++ +diff --git a/libevent/autogen.sh b/libevent/autogen.sh +new file mode 100644 +index 0000000..218dbf4 +--- /dev/null ++++ b/libevent/autogen.sh +@@ -0,0 +1,8 @@ ++#!/bin/sh ++ ++aclocal && \ ++ autoheader && \ ++ autoconf && \ ++ automake --foreign --force-missing --add-missing --copy ++ ++rm -rf autom4te.cache +diff --git a/libevent/buffer.c b/libevent/buffer.c +new file mode 100644 +index 0000000..e66080f +--- /dev/null ++++ b/libevent/buffer.c +@@ -0,0 +1,451 @@ ++/* ++ * Copyright (c) 2002, 2003 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#ifdef WIN32 ++#include ++#include ++#endif ++ ++#ifdef HAVE_VASPRINTF ++/* If we have vasprintf, we need to define this before we include stdio.h. */ ++#define _GNU_SOURCE ++#endif ++ ++#include ++ ++#ifdef HAVE_SYS_TIME_H ++#include ++#endif ++ ++#ifdef HAVE_SYS_IOCTL_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#ifdef HAVE_STDARG_H ++#include ++#endif ++#ifdef HAVE_UNISTD_H ++#include ++#endif ++ ++#include "event.h" ++#include "config.h" ++#include "evutil.h" ++ ++struct evbuffer * ++evbuffer_new(void) ++{ ++ struct evbuffer *buffer; ++ ++ buffer = calloc(1, sizeof(struct evbuffer)); ++ ++ return (buffer); ++} ++ ++void ++evbuffer_free(struct evbuffer *buffer) ++{ ++ if (buffer->orig_buffer != NULL) ++ free(buffer->orig_buffer); ++ free(buffer); ++} ++ ++/* ++ * This is a destructive add. The data from one buffer moves into ++ * the other buffer. ++ */ ++ ++#define SWAP(x,y) do { \ ++ (x)->buffer = (y)->buffer; \ ++ (x)->orig_buffer = (y)->orig_buffer; \ ++ (x)->misalign = (y)->misalign; \ ++ (x)->totallen = (y)->totallen; \ ++ (x)->off = (y)->off; \ ++} while (0) ++ ++int ++evbuffer_add_buffer(struct evbuffer *outbuf, struct evbuffer *inbuf) ++{ ++ int res; ++ ++ /* Short cut for better performance */ ++ if (outbuf->off == 0) { ++ struct evbuffer tmp; ++ size_t oldoff = inbuf->off; ++ ++ /* Swap them directly */ ++ SWAP(&tmp, outbuf); ++ SWAP(outbuf, inbuf); ++ SWAP(inbuf, &tmp); ++ ++ /* ++ * Optimization comes with a price; we need to notify the ++ * buffer if necessary of the changes. oldoff is the amount ++ * of data that we transfered from inbuf to outbuf ++ */ ++ if (inbuf->off != oldoff && inbuf->cb != NULL) ++ (*inbuf->cb)(inbuf, oldoff, inbuf->off, inbuf->cbarg); ++ if (oldoff && outbuf->cb != NULL) ++ (*outbuf->cb)(outbuf, 0, oldoff, outbuf->cbarg); ++ ++ return (0); ++ } ++ ++ res = evbuffer_add(outbuf, inbuf->buffer, inbuf->off); ++ if (res == 0) { ++ /* We drain the input buffer on success */ ++ evbuffer_drain(inbuf, inbuf->off); ++ } ++ ++ return (res); ++} ++ ++int ++evbuffer_add_vprintf(struct evbuffer *buf, const char *fmt, va_list ap) ++{ ++ char *buffer; ++ size_t space; ++ size_t oldoff = buf->off; ++ int sz; ++ va_list aq; ++ ++ /* make sure that at least some space is available */ ++ evbuffer_expand(buf, 64); ++ for (;;) { ++ size_t used = buf->misalign + buf->off; ++ buffer = (char *)buf->buffer + buf->off; ++ assert(buf->totallen >= used); ++ space = buf->totallen - used; ++ ++#ifndef va_copy ++#define va_copy(dst, src) memcpy(&(dst), &(src), sizeof(va_list)) ++#endif ++ va_copy(aq, ap); ++ ++ sz = evutil_vsnprintf(buffer, space, fmt, aq); ++ ++ va_end(aq); ++ ++ if (sz < 0) ++ return (-1); ++ if (sz < space) { ++ buf->off += sz; ++ if (buf->cb != NULL) ++ (*buf->cb)(buf, oldoff, buf->off, buf->cbarg); ++ return (sz); ++ } ++ if (evbuffer_expand(buf, sz + 1) == -1) ++ return (-1); ++ ++ } ++ /* NOTREACHED */ ++} ++ ++int ++evbuffer_add_printf(struct evbuffer *buf, const char *fmt, ...) ++{ ++ int res = -1; ++ va_list ap; ++ ++ va_start(ap, fmt); ++ res = evbuffer_add_vprintf(buf, fmt, ap); ++ va_end(ap); ++ ++ return (res); ++} ++ ++/* Reads data from an event buffer and drains the bytes read */ ++ ++int ++evbuffer_remove(struct evbuffer *buf, void *data, size_t datlen) ++{ ++ size_t nread = datlen; ++ if (nread >= buf->off) ++ nread = buf->off; ++ ++ memcpy(data, buf->buffer, nread); ++ evbuffer_drain(buf, nread); ++ ++ return (nread); ++} ++ ++/* ++ * Reads a line terminated by either '\r\n', '\n\r' or '\r' or '\n'. ++ * The returned buffer needs to be freed by the called. ++ */ ++ ++char * ++evbuffer_readline(struct evbuffer *buffer) ++{ ++ u_char *data = EVBUFFER_DATA(buffer); ++ size_t len = EVBUFFER_LENGTH(buffer); ++ char *line; ++ unsigned int i; ++ ++ for (i = 0; i < len; i++) { ++ if (data[i] == '\r' || data[i] == '\n') ++ break; ++ } ++ ++ if (i == len) ++ return (NULL); ++ ++ if ((line = malloc(i + 1)) == NULL) { ++ fprintf(stderr, "%s: out of memory\n", __func__); ++ evbuffer_drain(buffer, i); ++ return (NULL); ++ } ++ ++ memcpy(line, data, i); ++ line[i] = '\0'; ++ ++ /* ++ * Some protocols terminate a line with '\r\n', so check for ++ * that, too. ++ */ ++ if ( i < len - 1 ) { ++ char fch = data[i], sch = data[i+1]; ++ ++ /* Drain one more character if needed */ ++ if ( (sch == '\r' || sch == '\n') && sch != fch ) ++ i += 1; ++ } ++ ++ evbuffer_drain(buffer, i + 1); ++ ++ return (line); ++} ++ ++/* Adds data to an event buffer */ ++ ++static void ++evbuffer_align(struct evbuffer *buf) ++{ ++ memmove(buf->orig_buffer, buf->buffer, buf->off); ++ buf->buffer = buf->orig_buffer; ++ buf->misalign = 0; ++} ++ ++/* Expands the available space in the event buffer to at least datlen */ ++ ++int ++evbuffer_expand(struct evbuffer *buf, size_t datlen) ++{ ++ size_t need = buf->misalign + buf->off + datlen; ++ ++ /* If we can fit all the data, then we don't have to do anything */ ++ if (buf->totallen >= need) ++ return (0); ++ ++ /* ++ * If the misalignment fulfills our data needs, we just force an ++ * alignment to happen. Afterwards, we have enough space. ++ */ ++ if (buf->misalign >= datlen) { ++ evbuffer_align(buf); ++ } else { ++ void *newbuf; ++ size_t length = buf->totallen; ++ ++ if (length < 256) ++ length = 256; ++ while (length < need) ++ length <<= 1; ++ ++ if (buf->orig_buffer != buf->buffer) ++ evbuffer_align(buf); ++ if ((newbuf = realloc(buf->buffer, length)) == NULL) ++ return (-1); ++ ++ buf->orig_buffer = buf->buffer = newbuf; ++ buf->totallen = length; ++ } ++ ++ return (0); ++} ++ ++int ++evbuffer_add(struct evbuffer *buf, const void *data, size_t datlen) ++{ ++ size_t need = buf->misalign + buf->off + datlen; ++ size_t oldoff = buf->off; ++ ++ if (buf->totallen < need) { ++ if (evbuffer_expand(buf, datlen) == -1) ++ return (-1); ++ } ++ ++ memcpy(buf->buffer + buf->off, data, datlen); ++ buf->off += datlen; ++ ++ if (datlen && buf->cb != NULL) ++ (*buf->cb)(buf, oldoff, buf->off, buf->cbarg); ++ ++ return (0); ++} ++ ++void ++evbuffer_drain(struct evbuffer *buf, size_t len) ++{ ++ size_t oldoff = buf->off; ++ ++ if (len >= buf->off) { ++ buf->off = 0; ++ buf->buffer = buf->orig_buffer; ++ buf->misalign = 0; ++ goto done; ++ } ++ ++ buf->buffer += len; ++ buf->misalign += len; ++ ++ buf->off -= len; ++ ++ done: ++ /* Tell someone about changes in this buffer */ ++ if (buf->off != oldoff && buf->cb != NULL) ++ (*buf->cb)(buf, oldoff, buf->off, buf->cbarg); ++ ++} ++ ++/* ++ * Reads data from a file descriptor into a buffer. ++ */ ++ ++#define EVBUFFER_MAX_READ 4096 ++ ++int ++evbuffer_read(struct evbuffer *buf, int fd, int howmuch) ++{ ++ u_char *p; ++ size_t oldoff = buf->off; ++ int n = EVBUFFER_MAX_READ; ++ ++#if defined(FIONREAD) ++#ifdef WIN32 ++ long lng = n; ++ if (ioctlsocket(fd, FIONREAD, &lng) == -1 || (n=lng) == 0) { ++#else ++ if (ioctl(fd, FIONREAD, &n) == -1 || n == 0) { ++#endif ++ n = EVBUFFER_MAX_READ; ++ } else if (n > EVBUFFER_MAX_READ && n > howmuch) { ++ /* ++ * It's possible that a lot of data is available for ++ * reading. We do not want to exhaust resources ++ * before the reader has a chance to do something ++ * about it. If the reader does not tell us how much ++ * data we should read, we artifically limit it. ++ */ ++ if (n > buf->totallen << 2) ++ n = buf->totallen << 2; ++ if (n < EVBUFFER_MAX_READ) ++ n = EVBUFFER_MAX_READ; ++ } ++#endif ++ if (howmuch < 0 || howmuch > n) ++ howmuch = n; ++ ++ /* If we don't have FIONREAD, we might waste some space here */ ++ if (evbuffer_expand(buf, howmuch) == -1) ++ return (-1); ++ ++ /* We can append new data at this point */ ++ p = buf->buffer + buf->off; ++ ++#ifndef WIN32 ++ n = read(fd, p, howmuch); ++#else ++ n = recv(fd, p, howmuch, 0); ++#endif ++ if (n == -1) ++ return (-1); ++ if (n == 0) ++ return (0); ++ ++ buf->off += n; ++ ++ /* Tell someone about changes in this buffer */ ++ if (buf->off != oldoff && buf->cb != NULL) ++ (*buf->cb)(buf, oldoff, buf->off, buf->cbarg); ++ ++ return (n); ++} ++ ++int ++evbuffer_write(struct evbuffer *buffer, int fd) ++{ ++ int n; ++ ++#ifndef WIN32 ++ n = write(fd, buffer->buffer, buffer->off); ++#else ++ n = send(fd, buffer->buffer, buffer->off, 0); ++#endif ++ if (n == -1) ++ return (-1); ++ if (n == 0) ++ return (0); ++ evbuffer_drain(buffer, n); ++ ++ return (n); ++} ++ ++u_char * ++evbuffer_find(struct evbuffer *buffer, const u_char *what, size_t len) ++{ ++ u_char *search = buffer->buffer, *end = search + buffer->off; ++ u_char *p; ++ ++ while (search < end && ++ (p = memchr(search, *what, end - search)) != NULL) { ++ if (p + len > end) ++ break; ++ if (memcmp(p, what, len) == 0) ++ return (p); ++ search = p + 1; ++ } ++ ++ return (NULL); ++} ++ ++void evbuffer_setcb(struct evbuffer *buffer, ++ void (*cb)(struct evbuffer *, size_t, size_t, void *), ++ void *cbarg) ++{ ++ buffer->cb = cb; ++ buffer->cbarg = cbarg; ++} +diff --git a/libevent/compat/sys/_time.h b/libevent/compat/sys/_time.h +new file mode 100644 +index 0000000..8cabb0d +--- /dev/null ++++ b/libevent/compat/sys/_time.h +@@ -0,0 +1,163 @@ ++/* $OpenBSD: time.h,v 1.11 2000/10/10 13:36:48 itojun Exp $ */ ++/* $NetBSD: time.h,v 1.18 1996/04/23 10:29:33 mycroft Exp $ */ ++ ++/* ++ * Copyright (c) 1982, 1986, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)time.h 8.2 (Berkeley) 7/10/94 ++ */ ++ ++#ifndef _SYS_TIME_H_ ++#define _SYS_TIME_H_ ++ ++#include ++ ++/* ++ * Structure returned by gettimeofday(2) system call, ++ * and used in other calls. ++ */ ++struct timeval { ++ long tv_sec; /* seconds */ ++ long tv_usec; /* and microseconds */ ++}; ++ ++/* ++ * Structure defined by POSIX.1b to be like a timeval. ++ */ ++struct timespec { ++ time_t tv_sec; /* seconds */ ++ long tv_nsec; /* and nanoseconds */ ++}; ++ ++#define TIMEVAL_TO_TIMESPEC(tv, ts) { \ ++ (ts)->tv_sec = (tv)->tv_sec; \ ++ (ts)->tv_nsec = (tv)->tv_usec * 1000; \ ++} ++#define TIMESPEC_TO_TIMEVAL(tv, ts) { \ ++ (tv)->tv_sec = (ts)->tv_sec; \ ++ (tv)->tv_usec = (ts)->tv_nsec / 1000; \ ++} ++ ++struct timezone { ++ int tz_minuteswest; /* minutes west of Greenwich */ ++ int tz_dsttime; /* type of dst correction */ ++}; ++#define DST_NONE 0 /* not on dst */ ++#define DST_USA 1 /* USA style dst */ ++#define DST_AUST 2 /* Australian style dst */ ++#define DST_WET 3 /* Western European dst */ ++#define DST_MET 4 /* Middle European dst */ ++#define DST_EET 5 /* Eastern European dst */ ++#define DST_CAN 6 /* Canada */ ++ ++/* Operations on timevals. */ ++#define timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 ++#define timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) ++#define timercmp(tvp, uvp, cmp) \ ++ (((tvp)->tv_sec == (uvp)->tv_sec) ? \ ++ ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ ++ ((tvp)->tv_sec cmp (uvp)->tv_sec)) ++#define timeradd(tvp, uvp, vvp) \ ++ do { \ ++ (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ ++ (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ ++ if ((vvp)->tv_usec >= 1000000) { \ ++ (vvp)->tv_sec++; \ ++ (vvp)->tv_usec -= 1000000; \ ++ } \ ++ } while (0) ++#define timersub(tvp, uvp, vvp) \ ++ do { \ ++ (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ ++ (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ ++ if ((vvp)->tv_usec < 0) { \ ++ (vvp)->tv_sec--; \ ++ (vvp)->tv_usec += 1000000; \ ++ } \ ++ } while (0) ++ ++/* Operations on timespecs. */ ++#define timespecclear(tsp) (tsp)->tv_sec = (tsp)->tv_nsec = 0 ++#define timespecisset(tsp) ((tsp)->tv_sec || (tsp)->tv_nsec) ++#define timespeccmp(tsp, usp, cmp) \ ++ (((tsp)->tv_sec == (usp)->tv_sec) ? \ ++ ((tsp)->tv_nsec cmp (usp)->tv_nsec) : \ ++ ((tsp)->tv_sec cmp (usp)->tv_sec)) ++#define timespecadd(tsp, usp, vsp) \ ++ do { \ ++ (vsp)->tv_sec = (tsp)->tv_sec + (usp)->tv_sec; \ ++ (vsp)->tv_nsec = (tsp)->tv_nsec + (usp)->tv_nsec; \ ++ if ((vsp)->tv_nsec >= 1000000000L) { \ ++ (vsp)->tv_sec++; \ ++ (vsp)->tv_nsec -= 1000000000L; \ ++ } \ ++ } while (0) ++#define timespecsub(tsp, usp, vsp) \ ++ do { \ ++ (vsp)->tv_sec = (tsp)->tv_sec - (usp)->tv_sec; \ ++ (vsp)->tv_nsec = (tsp)->tv_nsec - (usp)->tv_nsec; \ ++ if ((vsp)->tv_nsec < 0) { \ ++ (vsp)->tv_sec--; \ ++ (vsp)->tv_nsec += 1000000000L; \ ++ } \ ++ } while (0) ++ ++/* ++ * Names of the interval timers, and structure ++ * defining a timer setting. ++ */ ++#define ITIMER_REAL 0 ++#define ITIMER_VIRTUAL 1 ++#define ITIMER_PROF 2 ++ ++struct itimerval { ++ struct timeval it_interval; /* timer interval */ ++ struct timeval it_value; /* current value */ ++}; ++ ++/* ++ * Getkerninfo clock information structure ++ */ ++struct clockinfo { ++ int hz; /* clock frequency */ ++ int tick; /* micro-seconds per hz tick */ ++ int tickadj; /* clock skew rate for adjtime() */ ++ int stathz; /* statistics clock frequency */ ++ int profhz; /* profiling clock frequency */ ++}; ++ ++#define CLOCK_REALTIME 0 ++#define CLOCK_VIRTUAL 1 ++#define CLOCK_PROF 2 ++ ++#define TIMER_RELTIME 0x0 /* relative timer */ ++#define TIMER_ABSTIME 0x1 /* absolute timer */ ++ ++/* --- stuff got cut here - niels --- */ ++ ++#endif /* !_SYS_TIME_H_ */ +diff --git a/libevent/compat/sys/queue.h b/libevent/compat/sys/queue.h +new file mode 100644 +index 0000000..c0956dd +--- /dev/null ++++ b/libevent/compat/sys/queue.h +@@ -0,0 +1,488 @@ ++/* $OpenBSD: queue.h,v 1.16 2000/09/07 19:47:59 art Exp $ */ ++/* $NetBSD: queue.h,v 1.11 1996/05/16 05:17:14 mycroft Exp $ */ ++ ++/* ++ * Copyright (c) 1991, 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ * ++ * @(#)queue.h 8.5 (Berkeley) 8/20/94 ++ */ ++ ++#ifndef _SYS_QUEUE_H_ ++#define _SYS_QUEUE_H_ ++ ++/* ++ * This file defines five types of data structures: singly-linked lists, ++ * lists, simple queues, tail queues, and circular queues. ++ * ++ * ++ * A singly-linked list is headed by a single forward pointer. The elements ++ * are singly linked for minimum space and pointer manipulation overhead at ++ * the expense of O(n) removal for arbitrary elements. New elements can be ++ * added to the list after an existing element or at the head of the list. ++ * Elements being removed from the head of the list should use the explicit ++ * macro for this purpose for optimum efficiency. A singly-linked list may ++ * only be traversed in the forward direction. Singly-linked lists are ideal ++ * for applications with large datasets and few or no removals or for ++ * implementing a LIFO queue. ++ * ++ * A list is headed by a single forward pointer (or an array of forward ++ * pointers for a hash table header). The elements are doubly linked ++ * so that an arbitrary element can be removed without a need to ++ * traverse the list. New elements can be added to the list before ++ * or after an existing element or at the head of the list. A list ++ * may only be traversed in the forward direction. ++ * ++ * A simple queue is headed by a pair of pointers, one the head of the ++ * list and the other to the tail of the list. The elements are singly ++ * linked to save space, so elements can only be removed from the ++ * head of the list. New elements can be added to the list before or after ++ * an existing element, at the head of the list, or at the end of the ++ * list. A simple queue may only be traversed in the forward direction. ++ * ++ * A tail queue is headed by a pair of pointers, one to the head of the ++ * list and the other to the tail of the list. The elements are doubly ++ * linked so that an arbitrary element can be removed without a need to ++ * traverse the list. New elements can be added to the list before or ++ * after an existing element, at the head of the list, or at the end of ++ * the list. A tail queue may be traversed in either direction. ++ * ++ * A circle queue is headed by a pair of pointers, one to the head of the ++ * list and the other to the tail of the list. The elements are doubly ++ * linked so that an arbitrary element can be removed without a need to ++ * traverse the list. New elements can be added to the list before or after ++ * an existing element, at the head of the list, or at the end of the list. ++ * A circle queue may be traversed in either direction, but has a more ++ * complex end of list detection. ++ * ++ * For details on the use of these macros, see the queue(3) manual page. ++ */ ++ ++/* ++ * Singly-linked List definitions. ++ */ ++#define SLIST_HEAD(name, type) \ ++struct name { \ ++ struct type *slh_first; /* first element */ \ ++} ++ ++#define SLIST_HEAD_INITIALIZER(head) \ ++ { NULL } ++ ++#ifndef WIN32 ++#define SLIST_ENTRY(type) \ ++struct { \ ++ struct type *sle_next; /* next element */ \ ++} ++#endif ++ ++/* ++ * Singly-linked List access methods. ++ */ ++#define SLIST_FIRST(head) ((head)->slh_first) ++#define SLIST_END(head) NULL ++#define SLIST_EMPTY(head) (SLIST_FIRST(head) == SLIST_END(head)) ++#define SLIST_NEXT(elm, field) ((elm)->field.sle_next) ++ ++#define SLIST_FOREACH(var, head, field) \ ++ for((var) = SLIST_FIRST(head); \ ++ (var) != SLIST_END(head); \ ++ (var) = SLIST_NEXT(var, field)) ++ ++/* ++ * Singly-linked List functions. ++ */ ++#define SLIST_INIT(head) { \ ++ SLIST_FIRST(head) = SLIST_END(head); \ ++} ++ ++#define SLIST_INSERT_AFTER(slistelm, elm, field) do { \ ++ (elm)->field.sle_next = (slistelm)->field.sle_next; \ ++ (slistelm)->field.sle_next = (elm); \ ++} while (0) ++ ++#define SLIST_INSERT_HEAD(head, elm, field) do { \ ++ (elm)->field.sle_next = (head)->slh_first; \ ++ (head)->slh_first = (elm); \ ++} while (0) ++ ++#define SLIST_REMOVE_HEAD(head, field) do { \ ++ (head)->slh_first = (head)->slh_first->field.sle_next; \ ++} while (0) ++ ++/* ++ * List definitions. ++ */ ++#define LIST_HEAD(name, type) \ ++struct name { \ ++ struct type *lh_first; /* first element */ \ ++} ++ ++#define LIST_HEAD_INITIALIZER(head) \ ++ { NULL } ++ ++#define LIST_ENTRY(type) \ ++struct { \ ++ struct type *le_next; /* next element */ \ ++ struct type **le_prev; /* address of previous next element */ \ ++} ++ ++/* ++ * List access methods ++ */ ++#define LIST_FIRST(head) ((head)->lh_first) ++#define LIST_END(head) NULL ++#define LIST_EMPTY(head) (LIST_FIRST(head) == LIST_END(head)) ++#define LIST_NEXT(elm, field) ((elm)->field.le_next) ++ ++#define LIST_FOREACH(var, head, field) \ ++ for((var) = LIST_FIRST(head); \ ++ (var)!= LIST_END(head); \ ++ (var) = LIST_NEXT(var, field)) ++ ++/* ++ * List functions. ++ */ ++#define LIST_INIT(head) do { \ ++ LIST_FIRST(head) = LIST_END(head); \ ++} while (0) ++ ++#define LIST_INSERT_AFTER(listelm, elm, field) do { \ ++ if (((elm)->field.le_next = (listelm)->field.le_next) != NULL) \ ++ (listelm)->field.le_next->field.le_prev = \ ++ &(elm)->field.le_next; \ ++ (listelm)->field.le_next = (elm); \ ++ (elm)->field.le_prev = &(listelm)->field.le_next; \ ++} while (0) ++ ++#define LIST_INSERT_BEFORE(listelm, elm, field) do { \ ++ (elm)->field.le_prev = (listelm)->field.le_prev; \ ++ (elm)->field.le_next = (listelm); \ ++ *(listelm)->field.le_prev = (elm); \ ++ (listelm)->field.le_prev = &(elm)->field.le_next; \ ++} while (0) ++ ++#define LIST_INSERT_HEAD(head, elm, field) do { \ ++ if (((elm)->field.le_next = (head)->lh_first) != NULL) \ ++ (head)->lh_first->field.le_prev = &(elm)->field.le_next;\ ++ (head)->lh_first = (elm); \ ++ (elm)->field.le_prev = &(head)->lh_first; \ ++} while (0) ++ ++#define LIST_REMOVE(elm, field) do { \ ++ if ((elm)->field.le_next != NULL) \ ++ (elm)->field.le_next->field.le_prev = \ ++ (elm)->field.le_prev; \ ++ *(elm)->field.le_prev = (elm)->field.le_next; \ ++} while (0) ++ ++#define LIST_REPLACE(elm, elm2, field) do { \ ++ if (((elm2)->field.le_next = (elm)->field.le_next) != NULL) \ ++ (elm2)->field.le_next->field.le_prev = \ ++ &(elm2)->field.le_next; \ ++ (elm2)->field.le_prev = (elm)->field.le_prev; \ ++ *(elm2)->field.le_prev = (elm2); \ ++} while (0) ++ ++/* ++ * Simple queue definitions. ++ */ ++#define SIMPLEQ_HEAD(name, type) \ ++struct name { \ ++ struct type *sqh_first; /* first element */ \ ++ struct type **sqh_last; /* addr of last next element */ \ ++} ++ ++#define SIMPLEQ_HEAD_INITIALIZER(head) \ ++ { NULL, &(head).sqh_first } ++ ++#define SIMPLEQ_ENTRY(type) \ ++struct { \ ++ struct type *sqe_next; /* next element */ \ ++} ++ ++/* ++ * Simple queue access methods. ++ */ ++#define SIMPLEQ_FIRST(head) ((head)->sqh_first) ++#define SIMPLEQ_END(head) NULL ++#define SIMPLEQ_EMPTY(head) (SIMPLEQ_FIRST(head) == SIMPLEQ_END(head)) ++#define SIMPLEQ_NEXT(elm, field) ((elm)->field.sqe_next) ++ ++#define SIMPLEQ_FOREACH(var, head, field) \ ++ for((var) = SIMPLEQ_FIRST(head); \ ++ (var) != SIMPLEQ_END(head); \ ++ (var) = SIMPLEQ_NEXT(var, field)) ++ ++/* ++ * Simple queue functions. ++ */ ++#define SIMPLEQ_INIT(head) do { \ ++ (head)->sqh_first = NULL; \ ++ (head)->sqh_last = &(head)->sqh_first; \ ++} while (0) ++ ++#define SIMPLEQ_INSERT_HEAD(head, elm, field) do { \ ++ if (((elm)->field.sqe_next = (head)->sqh_first) == NULL) \ ++ (head)->sqh_last = &(elm)->field.sqe_next; \ ++ (head)->sqh_first = (elm); \ ++} while (0) ++ ++#define SIMPLEQ_INSERT_TAIL(head, elm, field) do { \ ++ (elm)->field.sqe_next = NULL; \ ++ *(head)->sqh_last = (elm); \ ++ (head)->sqh_last = &(elm)->field.sqe_next; \ ++} while (0) ++ ++#define SIMPLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ ++ if (((elm)->field.sqe_next = (listelm)->field.sqe_next) == NULL)\ ++ (head)->sqh_last = &(elm)->field.sqe_next; \ ++ (listelm)->field.sqe_next = (elm); \ ++} while (0) ++ ++#define SIMPLEQ_REMOVE_HEAD(head, elm, field) do { \ ++ if (((head)->sqh_first = (elm)->field.sqe_next) == NULL) \ ++ (head)->sqh_last = &(head)->sqh_first; \ ++} while (0) ++ ++/* ++ * Tail queue definitions. ++ */ ++#define TAILQ_HEAD(name, type) \ ++struct name { \ ++ struct type *tqh_first; /* first element */ \ ++ struct type **tqh_last; /* addr of last next element */ \ ++} ++ ++#define TAILQ_HEAD_INITIALIZER(head) \ ++ { NULL, &(head).tqh_first } ++ ++#define TAILQ_ENTRY(type) \ ++struct { \ ++ struct type *tqe_next; /* next element */ \ ++ struct type **tqe_prev; /* address of previous next element */ \ ++} ++ ++/* ++ * tail queue access methods ++ */ ++#define TAILQ_FIRST(head) ((head)->tqh_first) ++#define TAILQ_END(head) NULL ++#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) ++#define TAILQ_LAST(head, headname) \ ++ (*(((struct headname *)((head)->tqh_last))->tqh_last)) ++/* XXX */ ++#define TAILQ_PREV(elm, headname, field) \ ++ (*(((struct headname *)((elm)->field.tqe_prev))->tqh_last)) ++#define TAILQ_EMPTY(head) \ ++ (TAILQ_FIRST(head) == TAILQ_END(head)) ++ ++#define TAILQ_FOREACH(var, head, field) \ ++ for((var) = TAILQ_FIRST(head); \ ++ (var) != TAILQ_END(head); \ ++ (var) = TAILQ_NEXT(var, field)) ++ ++#define TAILQ_FOREACH_REVERSE(var, head, field, headname) \ ++ for((var) = TAILQ_LAST(head, headname); \ ++ (var) != TAILQ_END(head); \ ++ (var) = TAILQ_PREV(var, headname, field)) ++ ++/* ++ * Tail queue functions. ++ */ ++#define TAILQ_INIT(head) do { \ ++ (head)->tqh_first = NULL; \ ++ (head)->tqh_last = &(head)->tqh_first; \ ++} while (0) ++ ++#define TAILQ_INSERT_HEAD(head, elm, field) do { \ ++ if (((elm)->field.tqe_next = (head)->tqh_first) != NULL) \ ++ (head)->tqh_first->field.tqe_prev = \ ++ &(elm)->field.tqe_next; \ ++ else \ ++ (head)->tqh_last = &(elm)->field.tqe_next; \ ++ (head)->tqh_first = (elm); \ ++ (elm)->field.tqe_prev = &(head)->tqh_first; \ ++} while (0) ++ ++#define TAILQ_INSERT_TAIL(head, elm, field) do { \ ++ (elm)->field.tqe_next = NULL; \ ++ (elm)->field.tqe_prev = (head)->tqh_last; \ ++ *(head)->tqh_last = (elm); \ ++ (head)->tqh_last = &(elm)->field.tqe_next; \ ++} while (0) ++ ++#define TAILQ_INSERT_AFTER(head, listelm, elm, field) do { \ ++ if (((elm)->field.tqe_next = (listelm)->field.tqe_next) != NULL)\ ++ (elm)->field.tqe_next->field.tqe_prev = \ ++ &(elm)->field.tqe_next; \ ++ else \ ++ (head)->tqh_last = &(elm)->field.tqe_next; \ ++ (listelm)->field.tqe_next = (elm); \ ++ (elm)->field.tqe_prev = &(listelm)->field.tqe_next; \ ++} while (0) ++ ++#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ ++ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ ++ (elm)->field.tqe_next = (listelm); \ ++ *(listelm)->field.tqe_prev = (elm); \ ++ (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ ++} while (0) ++ ++#define TAILQ_REMOVE(head, elm, field) do { \ ++ if (((elm)->field.tqe_next) != NULL) \ ++ (elm)->field.tqe_next->field.tqe_prev = \ ++ (elm)->field.tqe_prev; \ ++ else \ ++ (head)->tqh_last = (elm)->field.tqe_prev; \ ++ *(elm)->field.tqe_prev = (elm)->field.tqe_next; \ ++} while (0) ++ ++#define TAILQ_REPLACE(head, elm, elm2, field) do { \ ++ if (((elm2)->field.tqe_next = (elm)->field.tqe_next) != NULL) \ ++ (elm2)->field.tqe_next->field.tqe_prev = \ ++ &(elm2)->field.tqe_next; \ ++ else \ ++ (head)->tqh_last = &(elm2)->field.tqe_next; \ ++ (elm2)->field.tqe_prev = (elm)->field.tqe_prev; \ ++ *(elm2)->field.tqe_prev = (elm2); \ ++} while (0) ++ ++/* ++ * Circular queue definitions. ++ */ ++#define CIRCLEQ_HEAD(name, type) \ ++struct name { \ ++ struct type *cqh_first; /* first element */ \ ++ struct type *cqh_last; /* last element */ \ ++} ++ ++#define CIRCLEQ_HEAD_INITIALIZER(head) \ ++ { CIRCLEQ_END(&head), CIRCLEQ_END(&head) } ++ ++#define CIRCLEQ_ENTRY(type) \ ++struct { \ ++ struct type *cqe_next; /* next element */ \ ++ struct type *cqe_prev; /* previous element */ \ ++} ++ ++/* ++ * Circular queue access methods ++ */ ++#define CIRCLEQ_FIRST(head) ((head)->cqh_first) ++#define CIRCLEQ_LAST(head) ((head)->cqh_last) ++#define CIRCLEQ_END(head) ((void *)(head)) ++#define CIRCLEQ_NEXT(elm, field) ((elm)->field.cqe_next) ++#define CIRCLEQ_PREV(elm, field) ((elm)->field.cqe_prev) ++#define CIRCLEQ_EMPTY(head) \ ++ (CIRCLEQ_FIRST(head) == CIRCLEQ_END(head)) ++ ++#define CIRCLEQ_FOREACH(var, head, field) \ ++ for((var) = CIRCLEQ_FIRST(head); \ ++ (var) != CIRCLEQ_END(head); \ ++ (var) = CIRCLEQ_NEXT(var, field)) ++ ++#define CIRCLEQ_FOREACH_REVERSE(var, head, field) \ ++ for((var) = CIRCLEQ_LAST(head); \ ++ (var) != CIRCLEQ_END(head); \ ++ (var) = CIRCLEQ_PREV(var, field)) ++ ++/* ++ * Circular queue functions. ++ */ ++#define CIRCLEQ_INIT(head) do { \ ++ (head)->cqh_first = CIRCLEQ_END(head); \ ++ (head)->cqh_last = CIRCLEQ_END(head); \ ++} while (0) ++ ++#define CIRCLEQ_INSERT_AFTER(head, listelm, elm, field) do { \ ++ (elm)->field.cqe_next = (listelm)->field.cqe_next; \ ++ (elm)->field.cqe_prev = (listelm); \ ++ if ((listelm)->field.cqe_next == CIRCLEQ_END(head)) \ ++ (head)->cqh_last = (elm); \ ++ else \ ++ (listelm)->field.cqe_next->field.cqe_prev = (elm); \ ++ (listelm)->field.cqe_next = (elm); \ ++} while (0) ++ ++#define CIRCLEQ_INSERT_BEFORE(head, listelm, elm, field) do { \ ++ (elm)->field.cqe_next = (listelm); \ ++ (elm)->field.cqe_prev = (listelm)->field.cqe_prev; \ ++ if ((listelm)->field.cqe_prev == CIRCLEQ_END(head)) \ ++ (head)->cqh_first = (elm); \ ++ else \ ++ (listelm)->field.cqe_prev->field.cqe_next = (elm); \ ++ (listelm)->field.cqe_prev = (elm); \ ++} while (0) ++ ++#define CIRCLEQ_INSERT_HEAD(head, elm, field) do { \ ++ (elm)->field.cqe_next = (head)->cqh_first; \ ++ (elm)->field.cqe_prev = CIRCLEQ_END(head); \ ++ if ((head)->cqh_last == CIRCLEQ_END(head)) \ ++ (head)->cqh_last = (elm); \ ++ else \ ++ (head)->cqh_first->field.cqe_prev = (elm); \ ++ (head)->cqh_first = (elm); \ ++} while (0) ++ ++#define CIRCLEQ_INSERT_TAIL(head, elm, field) do { \ ++ (elm)->field.cqe_next = CIRCLEQ_END(head); \ ++ (elm)->field.cqe_prev = (head)->cqh_last; \ ++ if ((head)->cqh_first == CIRCLEQ_END(head)) \ ++ (head)->cqh_first = (elm); \ ++ else \ ++ (head)->cqh_last->field.cqe_next = (elm); \ ++ (head)->cqh_last = (elm); \ ++} while (0) ++ ++#define CIRCLEQ_REMOVE(head, elm, field) do { \ ++ if ((elm)->field.cqe_next == CIRCLEQ_END(head)) \ ++ (head)->cqh_last = (elm)->field.cqe_prev; \ ++ else \ ++ (elm)->field.cqe_next->field.cqe_prev = \ ++ (elm)->field.cqe_prev; \ ++ if ((elm)->field.cqe_prev == CIRCLEQ_END(head)) \ ++ (head)->cqh_first = (elm)->field.cqe_next; \ ++ else \ ++ (elm)->field.cqe_prev->field.cqe_next = \ ++ (elm)->field.cqe_next; \ ++} while (0) ++ ++#define CIRCLEQ_REPLACE(head, elm, elm2, field) do { \ ++ if (((elm2)->field.cqe_next = (elm)->field.cqe_next) == \ ++ CIRCLEQ_END(head)) \ ++ (head).cqh_last = (elm2); \ ++ else \ ++ (elm2)->field.cqe_next->field.cqe_prev = (elm2); \ ++ if (((elm2)->field.cqe_prev = (elm)->field.cqe_prev) == \ ++ CIRCLEQ_END(head)) \ ++ (head).cqh_first = (elm2); \ ++ else \ ++ (elm2)->field.cqe_prev->field.cqe_next = (elm2); \ ++} while (0) ++ ++#endif /* !_SYS_QUEUE_H_ */ +diff --git a/libevent/config.h.in b/libevent/config.h.in +new file mode 100644 +index 0000000..d151f87 +--- /dev/null ++++ b/libevent/config.h.in +@@ -0,0 +1,250 @@ ++/* config.h.in. Generated from configure.in by autoheader. */ ++ ++/* Define if clock_gettime is available in libc */ ++#undef DNS_USE_CPU_CLOCK_FOR_ID ++ ++/* Define is no secure id variant is available */ ++#undef DNS_USE_GETTIMEOFDAY_FOR_ID ++ ++/* Define to 1 if you have the `clock_gettime' function. */ ++#undef HAVE_CLOCK_GETTIME ++ ++/* Define if /dev/poll is available */ ++#undef HAVE_DEVPOLL ++ ++/* Define if your system supports the epoll system calls */ ++#undef HAVE_EPOLL ++ ++/* Define to 1 if you have the `epoll_ctl' function. */ ++#undef HAVE_EPOLL_CTL ++ ++/* Define if your system supports event ports */ ++#undef HAVE_EVENT_PORTS ++ ++/* Define to 1 if you have the `fcntl' function. */ ++#undef HAVE_FCNTL ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_FCNTL_H ++ ++/* Define to 1 if you have the `getaddrinfo' function. */ ++#undef HAVE_GETADDRINFO ++ ++/* Define to 1 if you have the `getnameinfo' function. */ ++#undef HAVE_GETNAMEINFO ++ ++/* Define to 1 if you have the `gettimeofday' function. */ ++#undef HAVE_GETTIMEOFDAY ++ ++/* Define to 1 if you have the `inet_ntop' function. */ ++#undef HAVE_INET_NTOP ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_INTTYPES_H ++ ++/* Define to 1 if you have the `kqueue' function. */ ++#undef HAVE_KQUEUE ++ ++/* Define to 1 if you have the `nsl' library (-lnsl). */ ++#undef HAVE_LIBNSL ++ ++/* Define to 1 if you have the `resolv' library (-lresolv). */ ++#undef HAVE_LIBRESOLV ++ ++/* Define to 1 if you have the `rt' library (-lrt). */ ++#undef HAVE_LIBRT ++ ++/* Define to 1 if you have the `socket' library (-lsocket). */ ++#undef HAVE_LIBSOCKET ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_MEMORY_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_NETINET_IN6_H ++ ++/* Define to 1 if you have the `poll' function. */ ++#undef HAVE_POLL ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_POLL_H ++ ++/* Define to 1 if you have the `port_create' function. */ ++#undef HAVE_PORT_CREATE ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_PORT_H ++ ++/* Define to 1 if you have the `select' function. */ ++#undef HAVE_SELECT ++ ++/* Define if F_SETFD is defined in */ ++#undef HAVE_SETFD ++ ++/* Define to 1 if you have the `sigaction' function. */ ++#undef HAVE_SIGACTION ++ ++/* Define to 1 if you have the `signal' function. */ ++#undef HAVE_SIGNAL ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SIGNAL_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_STDARG_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_STDINT_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_STDLIB_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_STRINGS_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_STRING_H ++ ++/* Define to 1 if you have the `strlcpy' function. */ ++#undef HAVE_STRLCPY ++ ++/* Define to 1 if you have the `strsep' function. */ ++#undef HAVE_STRSEP ++ ++/* Define to 1 if you have the `strtok_r' function. */ ++#undef HAVE_STRTOK_R ++ ++/* Define to 1 if you have the `strtoll' function. */ ++#undef HAVE_STRTOLL ++ ++/* Define to 1 if the system has the type `struct in6_addr'. */ ++#undef HAVE_STRUCT_IN6_ADDR ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_DEVPOLL_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_EPOLL_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_EVENT_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_IOCTL_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_PARAM_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_QUEUE_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_SELECT_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_SOCKET_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_STAT_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_TIME_H ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_SYS_TYPES_H ++ ++/* Define if TAILQ_FOREACH is defined in */ ++#undef HAVE_TAILQFOREACH ++ ++/* Define if timeradd is defined in */ ++#undef HAVE_TIMERADD ++ ++/* Define if timerclear is defined in */ ++#undef HAVE_TIMERCLEAR ++ ++/* Define if timercmp is defined in */ ++#undef HAVE_TIMERCMP ++ ++/* Define if timerisset is defined in */ ++#undef HAVE_TIMERISSET ++ ++/* Define to 1 if the system has the type `uint16_t'. */ ++#undef HAVE_UINT16_T ++ ++/* Define to 1 if the system has the type `uint32_t'. */ ++#undef HAVE_UINT32_T ++ ++/* Define to 1 if the system has the type `uint64_t'. */ ++#undef HAVE_UINT64_T ++ ++/* Define to 1 if the system has the type `uint8_t'. */ ++#undef HAVE_UINT8_T ++ ++/* Define to 1 if you have the header file. */ ++#undef HAVE_UNISTD_H ++ ++/* Define to 1 if you have the `vasprintf' function. */ ++#undef HAVE_VASPRINTF ++ ++/* Define if kqueue works correctly with pipes */ ++#undef HAVE_WORKING_KQUEUE ++ ++/* Name of package */ ++#undef PACKAGE ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#undef PACKAGE_BUGREPORT ++ ++/* Define to the full name of this package. */ ++#undef PACKAGE_NAME ++ ++/* Define to the full name and version of this package. */ ++#undef PACKAGE_STRING ++ ++/* Define to the one symbol short name of this package. */ ++#undef PACKAGE_TARNAME ++ ++/* Define to the version of this package. */ ++#undef PACKAGE_VERSION ++ ++/* The size of a `int', as computed by sizeof. */ ++#undef SIZEOF_INT ++ ++/* The size of a `long', as computed by sizeof. */ ++#undef SIZEOF_LONG ++ ++/* The size of a `long long', as computed by sizeof. */ ++#undef SIZEOF_LONG_LONG ++ ++/* The size of a `short', as computed by sizeof. */ ++#undef SIZEOF_SHORT ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#undef STDC_HEADERS ++ ++/* Define to 1 if you can safely include both and . */ ++#undef TIME_WITH_SYS_TIME ++ ++/* Version number of package */ ++#undef VERSION ++ ++/* Define to appropriate substitue if compiler doesnt have __func__ */ ++#undef __func__ ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++#undef const ++ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef __cplusplus ++#undef inline ++#endif ++ ++/* Define to `int' if does not define. */ ++#undef pid_t ++ ++/* Define to `unsigned' if does not define. */ ++#undef size_t ++ ++/* Define to unsigned int if you dont have it */ ++#undef socklen_t +diff --git a/libevent/configure b/libevent/configure +new file mode 100644 +index 0000000..0a74aec +--- /dev/null ++++ b/libevent/configure +@@ -0,0 +1,9730 @@ ++#! /bin/sh ++# Guess values for system-dependent variables and create Makefiles. ++# Generated by GNU Autoconf 2.59. ++# ++# Copyright (C) 2003 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 ++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+"$@"}'='"$@"' ++elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then ++ set -o posix ++fi ++DUALCASE=1; export DUALCASE # for MKS sh ++ ++# Support unset when possible. ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ as_unset=unset ++else ++ as_unset=false ++fi ++ ++ ++# Work around bugs in pre-3.0 UWIN ksh. ++$as_unset ENV MAIL MAILPATH ++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 -z "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ eval $as_var=C; export $as_var ++ else ++ $as_unset $as_var ++ fi ++done ++ ++# Required to use basename. ++if expr a : '\(a\)' >/dev/null 2>&1; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then ++ as_basename=basename ++else ++ as_basename=false ++fi ++ ++ ++# Name of the executable. ++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'` ++ ++ ++# PATH needs CR, and LINENO needs CR and PATH. ++# 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 ++ ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ echo "#! /bin/sh" >conf$$.sh ++ echo "exit 0" >>conf$$.sh ++ chmod +x conf$$.sh ++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ++ PATH_SEPARATOR=';' ++ else ++ PATH_SEPARATOR=: ++ fi ++ rm -f conf$$.sh ++fi ++ ++ ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x$as_lineno_3" = "x$as_lineno_2" || { ++ # Find who we are. Look in the path if we contain no path at all ++ # relative or not. ++ 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 ++ ++ ;; ++ 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 ++ { echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2 ++ { (exit 1); exit 1; }; } ++ fi ++ case $CONFIG_SHELL in ++ '') ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for as_base in sh bash ksh sh5; do ++ case $as_dir in ++ /*) ++ if ("$as_dir/$as_base" -c ' ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then ++ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } ++ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } ++ CONFIG_SHELL=$as_dir/$as_base ++ export CONFIG_SHELL ++ exec "$CONFIG_SHELL" "$0" ${1+"$@"} ++ fi;; ++ esac ++ done ++done ++;; ++ esac ++ ++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO ++ # uniformly replaced by the line number. The first 'sed' inserts a ++ # line-number line before each line; the second 'sed' does the real ++ # work. The second script uses 'N' to pair each line-number line ++ # with the numbered line, and appends trailing '-' during ++ # substitution so that $LINENO is not a special case at line end. ++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the ++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) ++ sed '=' <$as_myself | ++ sed ' ++ N ++ s,$,-, ++ : loop ++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, ++ t loop ++ s,-$,, ++ s,^['$as_cr_digits']*\n,, ++ ' >$as_me.lineno && ++ chmod +x $as_me.lineno || ++ { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 ++ { (exit 1); exit 1; }; } ++ ++ # Don't try to exec as it changes $[0], causing all sort of problems ++ # (the dirname of $[0] is not the place where we might find the ++ # original and so on. Autoconf is especially sensible to this). ++ . ./$as_me.lineno ++ # Exit status is that of the last command. ++ exit ++} ++ ++ ++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in ++ *c*,-n*) ECHO_N= ECHO_C=' ++' ECHO_T=' ' ;; ++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; ++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;; ++esac ++ ++if expr a : '\(a\)' >/dev/null 2>&1; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++rm -f conf$$ conf$$.exe conf$$.file ++echo >conf$$.file ++if ln -s conf$$.file conf$$ 2>/dev/null; then ++ # We could just check for DJGPP; but this test a) works b) is more generic ++ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). ++ if test -f conf$$.exe; then ++ # Don't use ln at all; we don't have any links ++ as_ln_s='cp -p' ++ else ++ as_ln_s='ln -s' ++ fi ++elif ln conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s=ln ++else ++ as_ln_s='cp -p' ++fi ++rm -f conf$$ conf$$.exe conf$$.file ++ ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p=: ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++as_executable_p="test -f" ++ ++# Sed expression to map a string onto a valid CPP name. ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ ++ ++# IFS ++# We need space, tab and new line, in precisely that order. ++as_nl=' ++' ++IFS=" $as_nl" ++ ++# CDPATH. ++$as_unset CDPATH ++ ++ ++# Name of the host. ++# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, ++# so uname gets run too. ++ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` ++ ++exec 6>&1 ++ ++# ++# Initializations. ++# ++ac_default_prefix=/usr/local ++ac_config_libobj_dir=. ++cross_compiling=no ++subdirs= ++MFLAGS= ++MAKEFLAGS= ++SHELL=${CONFIG_SHELL-/bin/sh} ++ ++# Maximum number of lines to put in a shell here document. ++# This variable seems obsolete. It should probably be removed, and ++# only ac_max_sed_lines should be used. ++: ${ac_max_here_lines=38} ++ ++# Identity of this package. ++PACKAGE_NAME= ++PACKAGE_TARNAME= ++PACKAGE_VERSION= ++PACKAGE_STRING= ++PACKAGE_BUGREPORT= ++ ++ac_unique_file="event.c" ++# Factoring default headers for most tests. ++ac_includes_default="\ ++#include ++#if HAVE_SYS_TYPES_H ++# include ++#endif ++#if HAVE_SYS_STAT_H ++# include ++#endif ++#if STDC_HEADERS ++# include ++# include ++#else ++# if HAVE_STDLIB_H ++# include ++# endif ++#endif ++#if HAVE_STRING_H ++# if !STDC_HEADERS && HAVE_MEMORY_H ++# include ++# endif ++# include ++#endif ++#if HAVE_STRINGS_H ++# include ++#endif ++#if HAVE_INTTYPES_H ++# include ++#else ++# if HAVE_STDINT_H ++# include ++# endif ++#endif ++#if HAVE_UNISTD_H ++# include ++#endif" ++ ++ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CC CFLAGS LDFLAGS CPPFLAGS ac_ct_CC EXEEXT OBJEXT DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE LN_S CPP EGREP RANLIB ac_ct_RANLIB BUILD_WIN32_TRUE BUILD_WIN32_FALSE LIBOBJS LTLIBOBJS' ++ac_subst_files='' ++ ++# Initialize some variables set by options. ++ac_init_help= ++ac_init_version=false ++# The variables have the same names as the options, with ++# dashes changed to underlines. ++cache_file=/dev/null ++exec_prefix=NONE ++no_create= ++no_recursion= ++prefix=NONE ++program_prefix=NONE ++program_suffix=NONE ++program_transform_name=s,x,x, ++silent= ++site= ++srcdir= ++verbose= ++x_includes=NONE ++x_libraries=NONE ++ ++# Installation directory options. ++# These are left unexpanded so users can "make install exec_prefix=/foo" ++# and all the variables that are supposed to be based on exec_prefix ++# by default will actually change. ++# Use braces instead of parens because sh, perl, etc. also accept them. ++bindir='${exec_prefix}/bin' ++sbindir='${exec_prefix}/sbin' ++libexecdir='${exec_prefix}/libexec' ++datadir='${prefix}/share' ++sysconfdir='${prefix}/etc' ++sharedstatedir='${prefix}/com' ++localstatedir='${prefix}/var' ++libdir='${exec_prefix}/lib' ++includedir='${prefix}/include' ++oldincludedir='/usr/include' ++infodir='${prefix}/info' ++mandir='${prefix}/man' ++ ++ac_prev= ++for ac_option ++do ++ # If the previous option needs an argument, assign it. ++ if test -n "$ac_prev"; then ++ eval "$ac_prev=\$ac_option" ++ ac_prev= ++ continue ++ fi ++ ++ ac_optarg=`expr "x$ac_option" : 'x[^=]*=\(.*\)'` ++ ++ # Accept the important Cygnus configure options, so we can diagnose typos. ++ ++ case $ac_option in ++ ++ -bindir | --bindir | --bindi | --bind | --bin | --bi) ++ ac_prev=bindir ;; ++ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) ++ bindir=$ac_optarg ;; ++ ++ -build | --build | --buil | --bui | --bu) ++ ac_prev=build_alias ;; ++ -build=* | --build=* | --buil=* | --bui=* | --bu=*) ++ build_alias=$ac_optarg ;; ++ ++ -cache-file | --cache-file | --cache-fil | --cache-fi \ ++ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) ++ ac_prev=cache_file ;; ++ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ ++ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) ++ cache_file=$ac_optarg ;; ++ ++ --config-cache | -C) ++ cache_file=config.cache ;; ++ ++ -datadir | --datadir | --datadi | --datad | --data | --dat | --da) ++ ac_prev=datadir ;; ++ -datadir=* | --datadir=* | --datadi=* | --datad=* | --data=* | --dat=* \ ++ | --da=*) ++ datadir=$ac_optarg ;; ++ ++ -disable-* | --disable-*) ++ ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid feature name: $ac_feature" >&2 ++ { (exit 1); exit 1; }; } ++ ac_feature=`echo $ac_feature | sed 's/-/_/g'` ++ eval "enable_$ac_feature=no" ;; ++ ++ -enable-* | --enable-*) ++ ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_feature" : ".*[^-_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid feature name: $ac_feature" >&2 ++ { (exit 1); exit 1; }; } ++ ac_feature=`echo $ac_feature | sed 's/-/_/g'` ++ case $ac_option in ++ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; ++ *) ac_optarg=yes ;; ++ esac ++ eval "enable_$ac_feature='$ac_optarg'" ;; ++ ++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ ++ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ ++ | --exec | --exe | --ex) ++ ac_prev=exec_prefix ;; ++ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ ++ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ ++ | --exec=* | --exe=* | --ex=*) ++ exec_prefix=$ac_optarg ;; ++ ++ -gas | --gas | --ga | --g) ++ # Obsolete; use --with-gas. ++ with_gas=yes ;; ++ ++ -help | --help | --hel | --he | -h) ++ ac_init_help=long ;; ++ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) ++ ac_init_help=recursive ;; ++ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) ++ ac_init_help=short ;; ++ ++ -host | --host | --hos | --ho) ++ ac_prev=host_alias ;; ++ -host=* | --host=* | --hos=* | --ho=*) ++ host_alias=$ac_optarg ;; ++ ++ -includedir | --includedir | --includedi | --included | --include \ ++ | --includ | --inclu | --incl | --inc) ++ ac_prev=includedir ;; ++ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ ++ | --includ=* | --inclu=* | --incl=* | --inc=*) ++ includedir=$ac_optarg ;; ++ ++ -infodir | --infodir | --infodi | --infod | --info | --inf) ++ ac_prev=infodir ;; ++ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) ++ infodir=$ac_optarg ;; ++ ++ -libdir | --libdir | --libdi | --libd) ++ ac_prev=libdir ;; ++ -libdir=* | --libdir=* | --libdi=* | --libd=*) ++ libdir=$ac_optarg ;; ++ ++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ ++ | --libexe | --libex | --libe) ++ ac_prev=libexecdir ;; ++ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ ++ | --libexe=* | --libex=* | --libe=*) ++ libexecdir=$ac_optarg ;; ++ ++ -localstatedir | --localstatedir | --localstatedi | --localstated \ ++ | --localstate | --localstat | --localsta | --localst \ ++ | --locals | --local | --loca | --loc | --lo) ++ ac_prev=localstatedir ;; ++ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ ++ | --localstate=* | --localstat=* | --localsta=* | --localst=* \ ++ | --locals=* | --local=* | --loca=* | --loc=* | --lo=*) ++ localstatedir=$ac_optarg ;; ++ ++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m) ++ ac_prev=mandir ;; ++ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) ++ mandir=$ac_optarg ;; ++ ++ -nfp | --nfp | --nf) ++ # Obsolete; use --without-fp. ++ with_fp=no ;; ++ ++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \ ++ | --no-cr | --no-c | -n) ++ no_create=yes ;; ++ ++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \ ++ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) ++ no_recursion=yes ;; ++ ++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ ++ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ ++ | --oldin | --oldi | --old | --ol | --o) ++ ac_prev=oldincludedir ;; ++ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ ++ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ ++ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) ++ oldincludedir=$ac_optarg ;; ++ ++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) ++ ac_prev=prefix ;; ++ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) ++ prefix=$ac_optarg ;; ++ ++ -program-prefix | --program-prefix | --program-prefi | --program-pref \ ++ | --program-pre | --program-pr | --program-p) ++ ac_prev=program_prefix ;; ++ -program-prefix=* | --program-prefix=* | --program-prefi=* \ ++ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) ++ program_prefix=$ac_optarg ;; ++ ++ -program-suffix | --program-suffix | --program-suffi | --program-suff \ ++ | --program-suf | --program-su | --program-s) ++ ac_prev=program_suffix ;; ++ -program-suffix=* | --program-suffix=* | --program-suffi=* \ ++ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) ++ program_suffix=$ac_optarg ;; ++ ++ -program-transform-name | --program-transform-name \ ++ | --program-transform-nam | --program-transform-na \ ++ | --program-transform-n | --program-transform- \ ++ | --program-transform | --program-transfor \ ++ | --program-transfo | --program-transf \ ++ | --program-trans | --program-tran \ ++ | --progr-tra | --program-tr | --program-t) ++ ac_prev=program_transform_name ;; ++ -program-transform-name=* | --program-transform-name=* \ ++ | --program-transform-nam=* | --program-transform-na=* \ ++ | --program-transform-n=* | --program-transform-=* \ ++ | --program-transform=* | --program-transfor=* \ ++ | --program-transfo=* | --program-transf=* \ ++ | --program-trans=* | --program-tran=* \ ++ | --progr-tra=* | --program-tr=* | --program-t=*) ++ program_transform_name=$ac_optarg ;; ++ ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ silent=yes ;; ++ ++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) ++ ac_prev=sbindir ;; ++ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ ++ | --sbi=* | --sb=*) ++ sbindir=$ac_optarg ;; ++ ++ -sharedstatedir | --sharedstatedir | --sharedstatedi \ ++ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ ++ | --sharedst | --shareds | --shared | --share | --shar \ ++ | --sha | --sh) ++ ac_prev=sharedstatedir ;; ++ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ ++ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ ++ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ ++ | --sha=* | --sh=*) ++ sharedstatedir=$ac_optarg ;; ++ ++ -site | --site | --sit) ++ ac_prev=site ;; ++ -site=* | --site=* | --sit=*) ++ site=$ac_optarg ;; ++ ++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) ++ ac_prev=srcdir ;; ++ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) ++ srcdir=$ac_optarg ;; ++ ++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ ++ | --syscon | --sysco | --sysc | --sys | --sy) ++ ac_prev=sysconfdir ;; ++ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ ++ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) ++ sysconfdir=$ac_optarg ;; ++ ++ -target | --target | --targe | --targ | --tar | --ta | --t) ++ ac_prev=target_alias ;; ++ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) ++ target_alias=$ac_optarg ;; ++ ++ -v | -verbose | --verbose | --verbos | --verbo | --verb) ++ verbose=yes ;; ++ ++ -version | --version | --versio | --versi | --vers | -V) ++ ac_init_version=: ;; ++ ++ -with-* | --with-*) ++ ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid package name: $ac_package" >&2 ++ { (exit 1); exit 1; }; } ++ ac_package=`echo $ac_package| sed 's/-/_/g'` ++ case $ac_option in ++ *=*) ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"`;; ++ *) ac_optarg=yes ;; ++ esac ++ eval "with_$ac_package='$ac_optarg'" ;; ++ ++ -without-* | --without-*) ++ ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_package" : ".*[^-_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid package name: $ac_package" >&2 ++ { (exit 1); exit 1; }; } ++ ac_package=`echo $ac_package | sed 's/-/_/g'` ++ eval "with_$ac_package=no" ;; ++ ++ --x) ++ # Obsolete; use --with-x. ++ with_x=yes ;; ++ ++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ ++ | --x-incl | --x-inc | --x-in | --x-i) ++ ac_prev=x_includes ;; ++ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ ++ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) ++ x_includes=$ac_optarg ;; ++ ++ -x-libraries | --x-libraries | --x-librarie | --x-librari \ ++ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) ++ ac_prev=x_libraries ;; ++ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ ++ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) ++ x_libraries=$ac_optarg ;; ++ ++ -*) { echo "$as_me: error: unrecognized option: $ac_option ++Try \`$0 --help' for more information." >&2 ++ { (exit 1); exit 1; }; } ++ ;; ++ ++ *=*) ++ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` ++ # Reject names that are not valid shell variable names. ++ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && ++ { echo "$as_me: error: invalid variable name: $ac_envvar" >&2 ++ { (exit 1); exit 1; }; } ++ ac_optarg=`echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ++ eval "$ac_envvar='$ac_optarg'" ++ export $ac_envvar ;; ++ ++ *) ++ # FIXME: should be removed in autoconf 3.0. ++ echo "$as_me: WARNING: you should use --build, --host, --target" >&2 ++ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && ++ echo "$as_me: WARNING: invalid host type: $ac_option" >&2 ++ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} ++ ;; ++ ++ esac ++done ++ ++if test -n "$ac_prev"; then ++ ac_option=--`echo $ac_prev | sed 's/_/-/g'` ++ { echo "$as_me: error: missing argument to $ac_option" >&2 ++ { (exit 1); exit 1; }; } ++fi ++ ++# Be sure to have absolute paths. ++for ac_var in exec_prefix prefix ++do ++ eval ac_val=$`echo $ac_var` ++ case $ac_val in ++ [\\/$]* | ?:[\\/]* | NONE | '' ) ;; ++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 ++ { (exit 1); exit 1; }; };; ++ esac ++done ++ ++# Be sure to have absolute paths. ++for ac_var in bindir sbindir libexecdir datadir sysconfdir sharedstatedir \ ++ localstatedir libdir includedir oldincludedir infodir mandir ++do ++ eval ac_val=$`echo $ac_var` ++ case $ac_val in ++ [\\/$]* | ?:[\\/]* ) ;; ++ *) { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 ++ { (exit 1); exit 1; }; };; ++ esac ++done ++ ++# There might be people who depend on the old broken behavior: `$host' ++# used to hold the argument of --host etc. ++# FIXME: To remove some day. ++build=$build_alias ++host=$host_alias ++target=$target_alias ++ ++# FIXME: To remove some day. ++if test "x$host_alias" != x; then ++ if test "x$build_alias" = x; then ++ cross_compiling=maybe ++ echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. ++ If a cross compiler is detected then cross compile mode will be used." >&2 ++ elif test "x$build_alias" != "x$host_alias"; then ++ cross_compiling=yes ++ fi ++fi ++ ++ac_tool_prefix= ++test -n "$host_alias" && ac_tool_prefix=$host_alias- ++ ++test "$silent" = yes && exec 6>/dev/null ++ ++ ++# Find the source files, if location was not specified. ++if test -z "$srcdir"; then ++ ac_srcdir_defaulted=yes ++ # Try the directory containing this script, then its parent. ++ ac_confdir=`(dirname "$0") 2>/dev/null || ++$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$0" : 'X\(//\)[^/]' \| \ ++ X"$0" : 'X\(//\)$' \| \ ++ X"$0" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$0" | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'` ++ srcdir=$ac_confdir ++ if test ! -r $srcdir/$ac_unique_file; then ++ srcdir=.. ++ fi ++else ++ ac_srcdir_defaulted=no ++fi ++if test ! -r $srcdir/$ac_unique_file; then ++ if test "$ac_srcdir_defaulted" = yes; then ++ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $ac_confdir or .." >&2 ++ { (exit 1); exit 1; }; } ++ else ++ { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 ++ { (exit 1); exit 1; }; } ++ fi ++fi ++(cd $srcdir && test -r ./$ac_unique_file) 2>/dev/null || ++ { echo "$as_me: error: sources are in $srcdir, but \`cd $srcdir' does not work" >&2 ++ { (exit 1); exit 1; }; } ++srcdir=`echo "$srcdir" | sed 's%\([^\\/]\)[\\/]*$%\1%'` ++ac_env_build_alias_set=${build_alias+set} ++ac_env_build_alias_value=$build_alias ++ac_cv_env_build_alias_set=${build_alias+set} ++ac_cv_env_build_alias_value=$build_alias ++ac_env_host_alias_set=${host_alias+set} ++ac_env_host_alias_value=$host_alias ++ac_cv_env_host_alias_set=${host_alias+set} ++ac_cv_env_host_alias_value=$host_alias ++ac_env_target_alias_set=${target_alias+set} ++ac_env_target_alias_value=$target_alias ++ac_cv_env_target_alias_set=${target_alias+set} ++ac_cv_env_target_alias_value=$target_alias ++ac_env_CC_set=${CC+set} ++ac_env_CC_value=$CC ++ac_cv_env_CC_set=${CC+set} ++ac_cv_env_CC_value=$CC ++ac_env_CFLAGS_set=${CFLAGS+set} ++ac_env_CFLAGS_value=$CFLAGS ++ac_cv_env_CFLAGS_set=${CFLAGS+set} ++ac_cv_env_CFLAGS_value=$CFLAGS ++ac_env_LDFLAGS_set=${LDFLAGS+set} ++ac_env_LDFLAGS_value=$LDFLAGS ++ac_cv_env_LDFLAGS_set=${LDFLAGS+set} ++ac_cv_env_LDFLAGS_value=$LDFLAGS ++ac_env_CPPFLAGS_set=${CPPFLAGS+set} ++ac_env_CPPFLAGS_value=$CPPFLAGS ++ac_cv_env_CPPFLAGS_set=${CPPFLAGS+set} ++ac_cv_env_CPPFLAGS_value=$CPPFLAGS ++ac_env_CPP_set=${CPP+set} ++ac_env_CPP_value=$CPP ++ac_cv_env_CPP_set=${CPP+set} ++ac_cv_env_CPP_value=$CPP ++ ++# ++# Report the --help message. ++# ++if test "$ac_init_help" = "long"; then ++ # Omit some internal or obsolete options to make the list less imposing. ++ # This message is too long to be a string in the A/UX 3.1 sh. ++ cat <<_ACEOF ++\`configure' configures this package to adapt to many kinds of systems. ++ ++Usage: $0 [OPTION]... [VAR=VALUE]... ++ ++To assign environment variables (e.g., CC, CFLAGS...), specify them as ++VAR=VALUE. See below for descriptions of some of the useful variables. ++ ++Defaults for the options are specified in brackets. ++ ++Configuration: ++ -h, --help display this help and exit ++ --help=short display options specific to this package ++ --help=recursive display the short help of all the included packages ++ -V, --version display version information and exit ++ -q, --quiet, --silent do not print \`checking...' messages ++ --cache-file=FILE cache test results in FILE [disabled] ++ -C, --config-cache alias for \`--cache-file=config.cache' ++ -n, --no-create do not create output files ++ --srcdir=DIR find the sources in DIR [configure dir or \`..'] ++ ++_ACEOF ++ ++ cat <<_ACEOF ++Installation directories: ++ --prefix=PREFIX install architecture-independent files in PREFIX ++ [$ac_default_prefix] ++ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX ++ [PREFIX] ++ ++By default, \`make install' will install all the files in ++\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify ++an installation prefix other than \`$ac_default_prefix' using \`--prefix', ++for instance \`--prefix=\$HOME'. ++ ++For better control, use the options below. ++ ++Fine tuning of the installation directories: ++ --bindir=DIR user executables [EPREFIX/bin] ++ --sbindir=DIR system admin executables [EPREFIX/sbin] ++ --libexecdir=DIR program executables [EPREFIX/libexec] ++ --datadir=DIR read-only architecture-independent data [PREFIX/share] ++ --sysconfdir=DIR read-only single-machine data [PREFIX/etc] ++ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] ++ --localstatedir=DIR modifiable single-machine data [PREFIX/var] ++ --libdir=DIR object code libraries [EPREFIX/lib] ++ --includedir=DIR C header files [PREFIX/include] ++ --oldincludedir=DIR C header files for non-gcc [/usr/include] ++ --infodir=DIR info documentation [PREFIX/info] ++ --mandir=DIR man documentation [PREFIX/man] ++_ACEOF ++ ++ cat <<\_ACEOF ++ ++Program names: ++ --program-prefix=PREFIX prepend PREFIX to installed program names ++ --program-suffix=SUFFIX append SUFFIX to installed program names ++ --program-transform-name=PROGRAM run sed PROGRAM on installed program names ++_ACEOF ++fi ++ ++if test -n "$ac_init_help"; then ++ ++ cat <<\_ACEOF ++ ++Optional Features: ++ --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) ++ --enable-FEATURE[=ARG] include FEATURE [ARG=yes] ++ --disable-dependency-tracking speeds up one-time build ++ --enable-dependency-tracking do not reject slow dependency extractors ++ --enable-gcc-warnings enable verbose warnings with GCC ++ ++Some influential environment variables: ++ CC C compiler command ++ CFLAGS C compiler flags ++ LDFLAGS linker flags, e.g. -L if you have libraries in a ++ nonstandard directory ++ CPPFLAGS C/C++ preprocessor flags, e.g. -I if you have ++ headers in a nonstandard directory ++ CPP C preprocessor ++ ++Use these variables to override the choices made by `configure' or to help ++it to find libraries and programs with nonstandard names/locations. ++ ++_ACEOF ++fi ++ ++if test "$ac_init_help" = "recursive"; then ++ # If there are subdirs, report their specific --help. ++ ac_popdir=`pwd` ++ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue ++ test -d $ac_dir || continue ++ ac_builddir=. ++ ++if test "$ac_dir" != .; then ++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` ++ # A "../" for each directory in $ac_dir_suffix. ++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` ++else ++ ac_dir_suffix= ac_top_builddir= ++fi ++ ++case $srcdir in ++ .) # No --srcdir option. We are building in place. ++ ac_srcdir=. ++ if test -z "$ac_top_builddir"; then ++ ac_top_srcdir=. ++ else ++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` ++ fi ;; ++ [\\/]* | ?:[\\/]* ) # Absolute path. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ;; ++ *) # Relative path. ++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_builddir$srcdir ;; ++esac ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac ++ ++ cd $ac_dir ++ # Check for guested configure; otherwise get Cygnus style configure. ++ if test -f $ac_srcdir/configure.gnu; then ++ echo ++ $SHELL $ac_srcdir/configure.gnu --help=recursive ++ elif test -f $ac_srcdir/configure; then ++ echo ++ $SHELL $ac_srcdir/configure --help=recursive ++ elif test -f $ac_srcdir/configure.ac || ++ test -f $ac_srcdir/configure.in; then ++ echo ++ $ac_configure --help ++ else ++ echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 ++ fi ++ cd $ac_popdir ++ done ++fi ++ ++test -n "$ac_init_help" && exit 0 ++if $ac_init_version; then ++ cat <<\_ACEOF ++ ++Copyright (C) 2003 Free Software Foundation, Inc. ++This configure script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it. ++_ACEOF ++ exit 0 ++fi ++exec 5>config.log ++cat >&5 <<_ACEOF ++This file contains any messages produced by compilers while ++running configure, to aid debugging if configure makes a mistake. ++ ++It was created by $as_me, which was ++generated by GNU Autoconf 2.59. Invocation command line was ++ ++ $ $0 $@ ++ ++_ACEOF ++{ ++cat <<_ASUNAME ++## --------- ## ++## Platform. ## ++## --------- ## ++ ++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` ++uname -m = `(uname -m) 2>/dev/null || echo unknown` ++uname -r = `(uname -r) 2>/dev/null || echo unknown` ++uname -s = `(uname -s) 2>/dev/null || echo unknown` ++uname -v = `(uname -v) 2>/dev/null || echo unknown` ++ ++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` ++/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` ++ ++/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` ++/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` ++/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` ++hostinfo = `(hostinfo) 2>/dev/null || echo unknown` ++/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` ++/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` ++/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` ++ ++_ASUNAME ++ ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ echo "PATH: $as_dir" ++done ++ ++} >&5 ++ ++cat >&5 <<_ACEOF ++ ++ ++## ----------- ## ++## Core tests. ## ++## ----------- ## ++ ++_ACEOF ++ ++ ++# Keep a trace of the command line. ++# Strip out --no-create and --no-recursion so they do not pile up. ++# Strip out --silent because we don't want to record it for future runs. ++# Also quote any args containing shell meta-characters. ++# Make two passes to allow for proper duplicate-argument suppression. ++ac_configure_args= ++ac_configure_args0= ++ac_configure_args1= ++ac_sep= ++ac_must_keep_next=false ++for ac_pass in 1 2 ++do ++ for ac_arg ++ do ++ case $ac_arg in ++ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil) ++ continue ;; ++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ++ ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; ++ esac ++ case $ac_pass in ++ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; ++ 2) ++ ac_configure_args1="$ac_configure_args1 '$ac_arg'" ++ if test $ac_must_keep_next = true; then ++ ac_must_keep_next=false # Got value, back to normal. ++ else ++ case $ac_arg in ++ *=* | --config-cache | -C | -disable-* | --disable-* \ ++ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ ++ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ ++ | -with-* | --with-* | -without-* | --without-* | --x) ++ case "$ac_configure_args0 " in ++ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; ++ esac ++ ;; ++ -* ) ac_must_keep_next=true ;; ++ esac ++ fi ++ ac_configure_args="$ac_configure_args$ac_sep'$ac_arg'" ++ # Get rid of the leading space. ++ ac_sep=" " ++ ;; ++ esac ++ done ++done ++$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } ++$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } ++ ++# When interrupted or exit'd, cleanup temporary files, and complete ++# config.log. We remove comments because anyway the quotes in there ++# would cause problems or look ugly. ++# WARNING: Be sure not to use single quotes in there, as some shells, ++# such as our DU 5.0 friend, will then `close' the trap. ++trap 'exit_status=$? ++ # Save into config.log some information that might help in debugging. ++ { ++ echo ++ ++ cat <<\_ASBOX ++## ---------------- ## ++## Cache variables. ## ++## ---------------- ## ++_ASBOX ++ echo ++ # The following way of writing the cache mishandles newlines in values, ++{ ++ (set) 2>&1 | ++ case `(ac_space='"'"' '"'"'; set | grep ac_space) 2>&1` in ++ *ac_space=\ *) ++ sed -n \ ++ "s/'"'"'/'"'"'\\\\'"'"''"'"'/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='"'"'\\2'"'"'/p" ++ ;; ++ *) ++ sed -n \ ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ ;; ++ esac; ++} ++ echo ++ ++ cat <<\_ASBOX ++## ----------------- ## ++## Output variables. ## ++## ----------------- ## ++_ASBOX ++ echo ++ for ac_var in $ac_subst_vars ++ do ++ eval ac_val=$`echo $ac_var` ++ echo "$ac_var='"'"'$ac_val'"'"'" ++ done | sort ++ echo ++ ++ if test -n "$ac_subst_files"; then ++ cat <<\_ASBOX ++## ------------- ## ++## Output files. ## ++## ------------- ## ++_ASBOX ++ echo ++ for ac_var in $ac_subst_files ++ do ++ eval ac_val=$`echo $ac_var` ++ echo "$ac_var='"'"'$ac_val'"'"'" ++ done | sort ++ echo ++ fi ++ ++ if test -s confdefs.h; then ++ cat <<\_ASBOX ++## ----------- ## ++## confdefs.h. ## ++## ----------- ## ++_ASBOX ++ echo ++ sed "/^$/d" confdefs.h | sort ++ echo ++ fi ++ test "$ac_signal" != 0 && ++ echo "$as_me: caught signal $ac_signal" ++ echo "$as_me: exit $exit_status" ++ } >&5 ++ rm -f core *.core && ++ rm -rf conftest* confdefs* conf$$* $ac_clean_files && ++ exit $exit_status ++ ' 0 ++for ac_signal in 1 2 13 15; do ++ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal ++done ++ac_signal=0 ++ ++# confdefs.h avoids OS command line length limits that DEFS can exceed. ++rm -rf conftest* confdefs.h ++# AIX cpp loses on an empty file, so make sure it contains at least a newline. ++echo >confdefs.h ++ ++# Predefined preprocessor variables. ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_NAME "$PACKAGE_NAME" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_TARNAME "$PACKAGE_TARNAME" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_VERSION "$PACKAGE_VERSION" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_STRING "$PACKAGE_STRING" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" ++_ACEOF ++ ++ ++# Let the site file select an alternate cache file if it wants to. ++# Prefer explicitly selected file to automatically selected ones. ++if test -z "$CONFIG_SITE"; then ++ if test "x$prefix" != xNONE; then ++ CONFIG_SITE="$prefix/share/config.site $prefix/etc/config.site" ++ else ++ CONFIG_SITE="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" ++ fi ++fi ++for ac_site_file in $CONFIG_SITE; do ++ if test -r "$ac_site_file"; then ++ { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 ++echo "$as_me: loading site script $ac_site_file" >&6;} ++ sed 's/^/| /' "$ac_site_file" >&5 ++ . "$ac_site_file" ++ fi ++done ++ ++if test -r "$cache_file"; then ++ # Some versions of bash will fail to source /dev/null (special ++ # files actually), so we avoid doing that. ++ if test -f "$cache_file"; then ++ { echo "$as_me:$LINENO: loading cache $cache_file" >&5 ++echo "$as_me: loading cache $cache_file" >&6;} ++ case $cache_file in ++ [\\/]* | ?:[\\/]* ) . $cache_file;; ++ *) . ./$cache_file;; ++ esac ++ fi ++else ++ { echo "$as_me:$LINENO: creating cache $cache_file" >&5 ++echo "$as_me: creating cache $cache_file" >&6;} ++ >$cache_file ++fi ++ ++# Check that the precious variables saved in the cache have kept the same ++# value. ++ac_cache_corrupted=false ++for ac_var in `(set) 2>&1 | ++ sed -n 's/^ac_env_\([a-zA-Z_0-9]*\)_set=.*/\1/p'`; do ++ eval ac_old_set=\$ac_cv_env_${ac_var}_set ++ eval ac_new_set=\$ac_env_${ac_var}_set ++ eval ac_old_val="\$ac_cv_env_${ac_var}_value" ++ eval ac_new_val="\$ac_env_${ac_var}_value" ++ case $ac_old_set,$ac_new_set in ++ set,) ++ { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 ++echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} ++ ac_cache_corrupted=: ;; ++ ,set) ++ { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 ++echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} ++ ac_cache_corrupted=: ;; ++ ,);; ++ *) ++ if test "x$ac_old_val" != "x$ac_new_val"; then ++ { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 ++echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} ++ { echo "$as_me:$LINENO: former value: $ac_old_val" >&5 ++echo "$as_me: former value: $ac_old_val" >&2;} ++ { echo "$as_me:$LINENO: current value: $ac_new_val" >&5 ++echo "$as_me: current value: $ac_new_val" >&2;} ++ ac_cache_corrupted=: ++ fi;; ++ esac ++ # Pass precious variables to config.status. ++ if test "$ac_new_set" = set; then ++ case $ac_new_val in ++ *" "*|*" "*|*[\[\]\~\#\$\^\&\*\(\)\{\}\\\|\;\<\>\?\"\']*) ++ ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; ++ *) ac_arg=$ac_var=$ac_new_val ;; ++ esac ++ case " $ac_configure_args " in ++ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. ++ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; ++ esac ++ fi ++done ++if $ac_cache_corrupted; then ++ { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 ++echo "$as_me: error: changes in the environment can compromise the build" >&2;} ++ { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 ++echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++am__api_version="1.9" ++ac_aux_dir= ++for ac_dir in $srcdir $srcdir/.. $srcdir/../..; do ++ if test -f $ac_dir/install-sh; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install-sh -c" ++ break ++ elif test -f $ac_dir/install.sh; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/install.sh -c" ++ break ++ elif test -f $ac_dir/shtool; then ++ ac_aux_dir=$ac_dir ++ ac_install_sh="$ac_aux_dir/shtool install -c" ++ break ++ fi ++done ++if test -z "$ac_aux_dir"; then ++ { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&5 ++echo "$as_me: error: cannot find install-sh or install.sh in $srcdir $srcdir/.. $srcdir/../.." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ac_config_guess="$SHELL $ac_aux_dir/config.guess" ++ac_config_sub="$SHELL $ac_aux_dir/config.sub" ++ac_configure="$SHELL $ac_aux_dir/configure" # This should be Cygnus configure. ++ ++# Find a good install program. We prefer a C program (faster), ++# so one script is as good as another. But avoid the broken or ++# incompatible versions: ++# SysV /etc/install, /usr/sbin/install ++# SunOS /usr/etc/install ++# IRIX /sbin/install ++# AIX /bin/install ++# AmigaOS /C/install, which installs bootblocks on floppy discs ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic ++# ./install, which can be erroneously created by make from ./install.sh. ++echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 ++if test -z "$INSTALL"; then ++if test "${ac_cv_path_install+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ # Account for people who put trailing slashes in PATH elements. ++case $as_dir/ in ++ ./ | .// | /cC/* | \ ++ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ ++ /usr/ucb/* ) ;; ++ *) ++ # OSF1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF since it installs stuff as root ++ # by default. ++ for ac_prog in ginstall scoinst install; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ if test $ac_prog = install && ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : ++ else ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 ++ fi ++ fi ++ done ++ done ++ ;; ++esac ++done ++ ++ ++fi ++ if test "${ac_cv_path_install+set}" = set; then ++ INSTALL=$ac_cv_path_install ++ else ++ # As a last resort, use the slow shell script. We don't cache a ++ # path for INSTALL within a source directory, because that will ++ # break other packages using the cache if that directory is ++ # removed, or if the path is relative. ++ INSTALL=$ac_install_sh ++ fi ++fi ++echo "$as_me:$LINENO: result: $INSTALL" >&5 ++echo "${ECHO_T}$INSTALL" >&6 ++ ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}. ++# It thinks the first close brace ends the variable substitution. ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' ++ ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' ++ ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ++ ++echo "$as_me:$LINENO: checking whether build environment is sane" >&5 ++echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6 ++# Just in case ++sleep 1 ++echo timestamp > conftest.file ++# Do `set' in a subshell so we don't clobber the current shell's ++# arguments. Must try -L first in case configure is actually a ++# symlink; some systems play weird games with the mod time of symlinks ++# (eg FreeBSD returns the mod time of the symlink's containing ++# directory). ++if ( ++ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null` ++ if test "$*" = "X"; then ++ # -L didn't work. ++ set X `ls -t $srcdir/configure conftest.file` ++ fi ++ rm -f conftest.file ++ if test "$*" != "X $srcdir/configure conftest.file" \ ++ && test "$*" != "X conftest.file $srcdir/configure"; then ++ ++ # If neither matched, then we have a broken ls. This can happen ++ # if, for instance, CONFIG_SHELL is bash and it inherits a ++ # broken ls alias from the environment. This has actually ++ # happened. Such a system could not be considered "sane". ++ { { echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken ++alias in your environment" >&5 ++echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken ++alias in your environment" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ ++ test "$2" = conftest.file ++ ) ++then ++ # Ok. ++ : ++else ++ { { echo "$as_me:$LINENO: error: newly created file is older than distributed files! ++Check your system clock" >&5 ++echo "$as_me: error: newly created file is older than distributed files! ++Check your system clock" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++test "$program_prefix" != NONE && ++ program_transform_name="s,^,$program_prefix,;$program_transform_name" ++# Use a double $ so make ignores it. ++test "$program_suffix" != NONE && ++ program_transform_name="s,\$,$program_suffix,;$program_transform_name" ++# Double any \ or $. echo might interpret backslashes. ++# By default was `s,x,x', remove it if useless. ++cat <<\_ACEOF >conftest.sed ++s/[\\$]/&&/g;s/;s,x,x,$// ++_ACEOF ++program_transform_name=`echo $program_transform_name | sed -f conftest.sed` ++rm conftest.sed ++ ++# expand $ac_aux_dir to an absolute path ++am_aux_dir=`cd $ac_aux_dir && pwd` ++ ++test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing" ++# Use eval to expand $SHELL ++if eval "$MISSING --run true"; then ++ am_missing_run="$MISSING --run " ++else ++ am_missing_run= ++ { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 ++echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} ++fi ++ ++if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then ++ # We used to keeping the `.' as first argument, in order to ++ # allow $(mkdir_p) to be used without argument. As in ++ # $(mkdir_p) $(somedir) ++ # where $(somedir) is conditionally defined. However this is wrong ++ # for two reasons: ++ # 1. if the package is installed by a user who cannot write `.' ++ # make install will fail, ++ # 2. the above comment should most certainly read ++ # $(mkdir_p) $(DESTDIR)$(somedir) ++ # so it does not work when $(somedir) is undefined and ++ # $(DESTDIR) is not. ++ # To support the latter case, we have to write ++ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir), ++ # so the `.' trick is pointless. ++ mkdir_p='mkdir -p --' ++else ++ # On NextStep and OpenStep, the `mkdir' command does not ++ # recognize any option. It will interpret all options as ++ # directories to create, and then abort because `.' already ++ # exists. ++ for d in ./-p ./--version; ++ do ++ test -d $d && rmdir $d ++ done ++ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists. ++ if test -f "$ac_aux_dir/mkinstalldirs"; then ++ mkdir_p='$(mkinstalldirs)' ++ else ++ mkdir_p='$(install_sh) -d' ++ fi ++fi ++ ++for ac_prog in gawk mawk nawk awk ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_AWK+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$AWK"; then ++ ac_cv_prog_AWK="$AWK" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_AWK="$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++AWK=$ac_cv_prog_AWK ++if test -n "$AWK"; then ++ echo "$as_me:$LINENO: result: $AWK" >&5 ++echo "${ECHO_T}$AWK" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ test -n "$AWK" && break ++done ++ ++echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 ++echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6 ++set dummy ${MAKE-make}; ac_make=`echo "$2" | sed 'y,:./+-,___p_,'` ++if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.make <<\_ACEOF ++all: ++ @echo 'ac_maketemp="$(MAKE)"' ++_ACEOF ++# GNU make sometimes prints "make[1]: Entering...", which would confuse us. ++eval `${MAKE-make} -f conftest.make 2>/dev/null | grep temp=` ++if test -n "$ac_maketemp"; then ++ eval ac_cv_prog_make_${ac_make}_set=yes ++else ++ eval ac_cv_prog_make_${ac_make}_set=no ++fi ++rm -f conftest.make ++fi ++if eval "test \"`echo '$ac_cv_prog_make_'${ac_make}_set`\" = yes"; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ SET_MAKE= ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ SET_MAKE="MAKE=${MAKE-make}" ++fi ++ ++rm -rf .tst 2>/dev/null ++mkdir .tst 2>/dev/null ++if test -d .tst; then ++ am__leading_dot=. ++else ++ am__leading_dot=_ ++fi ++rmdir .tst 2>/dev/null ++ ++# test to see if srcdir already configured ++if test "`cd $srcdir && pwd`" != "`pwd`" && ++ test -f $srcdir/config.status; then ++ { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 ++echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++# test whether we have cygpath ++if test -z "$CYGPATH_W"; then ++ if (cygpath --version) >/dev/null 2>/dev/null; then ++ CYGPATH_W='cygpath -w' ++ else ++ CYGPATH_W=echo ++ fi ++fi ++ ++ ++# Define the identity of the package. ++ PACKAGE=libevent ++ VERSION=1.4.8-stable ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define PACKAGE "$PACKAGE" ++_ACEOF ++ ++ ++cat >>confdefs.h <<_ACEOF ++#define VERSION "$VERSION" ++_ACEOF ++ ++# Some tools Automake needs. ++ ++ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} ++ ++ ++AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} ++ ++ ++AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} ++ ++ ++AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} ++ ++ ++MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} ++ ++install_sh=${install_sh-"$am_aux_dir/install-sh"} ++ ++# Installed binaries are usually stripped using `strip' when the user ++# run `make install-strip'. However `strip' might not be the right ++# tool to use in cross-compilation environments, therefore Automake ++# will honor the `STRIP' environment variable to overrule this program. ++if test "$cross_compiling" != no; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. ++set dummy ${ac_tool_prefix}strip; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_STRIP+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$STRIP"; then ++ ac_cv_prog_STRIP="$STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_STRIP="${ac_tool_prefix}strip" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++STRIP=$ac_cv_prog_STRIP ++if test -n "$STRIP"; then ++ echo "$as_me:$LINENO: result: $STRIP" >&5 ++echo "${ECHO_T}$STRIP" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++fi ++if test -z "$ac_cv_prog_STRIP"; then ++ ac_ct_STRIP=$STRIP ++ # Extract the first word of "strip", so it can be a program name with args. ++set dummy strip; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_STRIP"; then ++ ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_STRIP="strip" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++ test -z "$ac_cv_prog_ac_ct_STRIP" && ac_cv_prog_ac_ct_STRIP=":" ++fi ++fi ++ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP ++if test -n "$ac_ct_STRIP"; then ++ echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 ++echo "${ECHO_T}$ac_ct_STRIP" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ STRIP=$ac_ct_STRIP ++else ++ STRIP="$ac_cv_prog_STRIP" ++fi ++ ++fi ++INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s" ++ ++# We need awk for the "check" target. The system "awk" is bad on ++# some platforms. ++# Always define AMTAR for backward compatibility. ++ ++AMTAR=${AMTAR-"${am_missing_run}tar"} ++ ++am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' ++ ++ ++ ++ ++ ++ ac_config_headers="$ac_config_headers config.h" ++ ++ ++if test "$prefix" = "NONE"; then ++ prefix="/usr/local" ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. ++set dummy ${ac_tool_prefix}gcc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="${ac_tool_prefix}gcc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ echo "$as_me:$LINENO: result: $CC" >&5 ++echo "${ECHO_T}$CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++fi ++if test -z "$ac_cv_prog_CC"; then ++ ac_ct_CC=$CC ++ # Extract the first word of "gcc", so it can be a program name with args. ++set dummy gcc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CC="gcc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 ++echo "${ECHO_T}$ac_ct_CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ CC=$ac_ct_CC ++else ++ CC="$ac_cv_prog_CC" ++fi ++ ++if test -z "$CC"; then ++ if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. ++set dummy ${ac_tool_prefix}cc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="${ac_tool_prefix}cc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ echo "$as_me:$LINENO: result: $CC" >&5 ++echo "${ECHO_T}$CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++fi ++if test -z "$ac_cv_prog_CC"; then ++ ac_ct_CC=$CC ++ # Extract the first word of "cc", so it can be a program name with args. ++set dummy cc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CC="cc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 ++echo "${ECHO_T}$ac_ct_CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ CC=$ac_ct_CC ++else ++ CC="$ac_cv_prog_CC" ++fi ++ ++fi ++if test -z "$CC"; then ++ # Extract the first word of "cc", so it can be a program name with args. ++set dummy cc; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++ ac_prog_rejected=no ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then ++ ac_prog_rejected=yes ++ continue ++ fi ++ ac_cv_prog_CC="cc" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++if test $ac_prog_rejected = yes; then ++ # We found a bogon in the path, so make sure we never use it. ++ set dummy $ac_cv_prog_CC ++ shift ++ if test $# != 0; then ++ # We chose a different compiler from the bogus one. ++ # However, it has the same basename, so the bogon will be chosen ++ # first if we set CC to just the basename; use the full file name. ++ shift ++ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" ++ fi ++fi ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ echo "$as_me:$LINENO: result: $CC" >&5 ++echo "${ECHO_T}$CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++fi ++if test -z "$CC"; then ++ if test -n "$ac_tool_prefix"; then ++ for ac_prog in cl ++ do ++ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. ++set dummy $ac_tool_prefix$ac_prog; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$CC"; then ++ ac_cv_prog_CC="$CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_CC="$ac_tool_prefix$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++CC=$ac_cv_prog_CC ++if test -n "$CC"; then ++ echo "$as_me:$LINENO: result: $CC" >&5 ++echo "${ECHO_T}$CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ test -n "$CC" && break ++ done ++fi ++if test -z "$CC"; then ++ ac_ct_CC=$CC ++ for ac_prog in cl ++do ++ # Extract the first word of "$ac_prog", so it can be a program name with args. ++set dummy $ac_prog; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_CC+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_CC"; then ++ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_CC="$ac_prog" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++ac_ct_CC=$ac_cv_prog_ac_ct_CC ++if test -n "$ac_ct_CC"; then ++ echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 ++echo "${ECHO_T}$ac_ct_CC" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ test -n "$ac_ct_CC" && break ++done ++ ++ CC=$ac_ct_CC ++fi ++ ++fi ++ ++ ++test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH ++See \`config.log' for more details." >&5 ++echo "$as_me: error: no acceptable C compiler found in \$PATH ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++ ++# Provide some information about the compiler. ++echo "$as_me:$LINENO:" \ ++ "checking for C compiler version" >&5 ++ac_compiler=`set X $ac_compile; echo $2` ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 ++ (eval $ac_compiler --version &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -v &5\"") >&5 ++ (eval $ac_compiler -v &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++{ (eval echo "$as_me:$LINENO: \"$ac_compiler -V &5\"") >&5 ++ (eval $ac_compiler -V &5) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++ac_clean_files_save=$ac_clean_files ++ac_clean_files="$ac_clean_files a.out a.exe b.out" ++# Try to create an executable without -o first, disregard a.out. ++# It will help us diagnose broken compilers, and finding out an intuition ++# of exeext. ++echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 ++echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6 ++ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` ++if { (eval echo "$as_me:$LINENO: \"$ac_link_default\"") >&5 ++ (eval $ac_link_default) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ # Find the output, starting from the most likely. This scheme is ++# not robust to junk in `.', hence go to wildcards (a.*) only as a last ++# resort. ++ ++# Be careful to initialize this variable, since it used to be cached. ++# Otherwise an old cache value of `no' led to `EXEEXT = no' in a Makefile. ++ac_cv_exeext= ++# b.out is created by i960 compilers. ++for ac_file in a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out ++do ++ test -f "$ac_file" || continue ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ++ ;; ++ conftest.$ac_ext ) ++ # This is the source file. ++ ;; ++ [ab].out ) ++ # We found the default executable, but exeext='' is most ++ # certainly right. ++ break;; ++ *.* ) ++ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ # FIXME: I believe we export ac_cv_exeext for Libtool, ++ # but it would be cool to find out if it's true. Does anybody ++ # maintain Libtool? --akim. ++ export ac_cv_exeext ++ break;; ++ * ) ++ break;; ++ esac ++done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++{ { echo "$as_me:$LINENO: error: C compiler cannot create executables ++See \`config.log' for more details." >&5 ++echo "$as_me: error: C compiler cannot create executables ++See \`config.log' for more details." >&2;} ++ { (exit 77); exit 77; }; } ++fi ++ ++ac_exeext=$ac_cv_exeext ++echo "$as_me:$LINENO: result: $ac_file" >&5 ++echo "${ECHO_T}$ac_file" >&6 ++ ++# Check the compiler produces executables we can run. If not, either ++# the compiler is broken, or we cross compile. ++echo "$as_me:$LINENO: checking whether the C compiler works" >&5 ++echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6 ++# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 ++# If not cross compiling, check that we can run a simple program. ++if test "$cross_compiling" != yes; then ++ if { ac_try='./$ac_file' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ cross_compiling=no ++ else ++ if test "$cross_compiling" = maybe; then ++ cross_compiling=yes ++ else ++ { { echo "$as_me:$LINENO: error: cannot run C compiled programs. ++If you meant to cross compile, use \`--host'. ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot run C compiled programs. ++If you meant to cross compile, use \`--host'. ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ fi ++fi ++echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ ++rm -f a.out a.exe conftest$ac_cv_exeext b.out ++ac_clean_files=$ac_clean_files_save ++# Check the compiler produces executables we can run. If not, either ++# the compiler is broken, or we cross compile. ++echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 ++echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6 ++echo "$as_me:$LINENO: result: $cross_compiling" >&5 ++echo "${ECHO_T}$cross_compiling" >&6 ++ ++echo "$as_me:$LINENO: checking for suffix of executables" >&5 ++echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6 ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ # If both `conftest.exe' and `conftest' are `present' (well, observable) ++# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will ++# work properly (i.e., refer to `conftest.exe'), while it won't with ++# `rm'. ++for ac_file in conftest.exe conftest conftest.*; do ++ test -f "$ac_file" || continue ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.o | *.obj ) ;; ++ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` ++ export ac_cv_exeext ++ break;; ++ * ) break;; ++ esac ++done ++else ++ { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute suffix of executables: cannot compile and link ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++rm -f conftest$ac_cv_exeext ++echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 ++echo "${ECHO_T}$ac_cv_exeext" >&6 ++ ++rm -f conftest.$ac_ext ++EXEEXT=$ac_cv_exeext ++ac_exeext=$EXEEXT ++echo "$as_me:$LINENO: checking for suffix of object files" >&5 ++echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6 ++if test "${ac_cv_objext+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.o conftest.obj ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; then ++ for ac_file in `(ls conftest.o conftest.obj; ls conftest.*) 2>/dev/null`; do ++ case $ac_file in ++ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg ) ;; ++ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` ++ break;; ++ esac ++done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute suffix of object files: cannot compile ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++rm -f conftest.$ac_cv_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 ++echo "${ECHO_T}$ac_cv_objext" >&6 ++OBJEXT=$ac_cv_objext ++ac_objext=$OBJEXT ++echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 ++echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6 ++if test "${ac_cv_c_compiler_gnu+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++#ifndef __GNUC__ ++ choke me ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_compiler_gnu=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_compiler_gnu=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ac_cv_c_compiler_gnu=$ac_compiler_gnu ++ ++fi ++echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 ++echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6 ++GCC=`test $ac_compiler_gnu = yes && echo yes` ++ac_test_CFLAGS=${CFLAGS+set} ++ac_save_CFLAGS=$CFLAGS ++CFLAGS="-g" ++echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 ++echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6 ++if test "${ac_cv_prog_cc_g+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_prog_cc_g=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_prog_cc_g=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 ++echo "${ECHO_T}$ac_cv_prog_cc_g" >&6 ++if test "$ac_test_CFLAGS" = set; then ++ CFLAGS=$ac_save_CFLAGS ++elif test $ac_cv_prog_cc_g = yes; then ++ if test "$GCC" = yes; then ++ CFLAGS="-g -O2" ++ else ++ CFLAGS="-g" ++ fi ++else ++ if test "$GCC" = yes; then ++ CFLAGS="-O2" ++ else ++ CFLAGS= ++ fi ++fi ++echo "$as_me:$LINENO: checking for $CC option to accept ANSI C" >&5 ++echo $ECHO_N "checking for $CC option to accept ANSI C... $ECHO_C" >&6 ++if test "${ac_cv_prog_cc_stdc+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_cv_prog_cc_stdc=no ++ac_save_CC=$CC ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ ++struct buf { int x; }; ++FILE * (*rcsopen) (struct buf *, struct stat *, int); ++static char *e (p, i) ++ char **p; ++ int i; ++{ ++ return p[i]; ++} ++static char *f (char * (*g) (char **, int), char **p, ...) ++{ ++ char *s; ++ va_list v; ++ va_start (v,p); ++ s = g (p, va_arg (v,int)); ++ va_end (v); ++ return s; ++} ++ ++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has ++ function prototypes and stuff, but not '\xHH' hex character constants. ++ These don't provoke an error unfortunately, instead are silently treated ++ as 'x'. The following induces an error, until -std1 is added to get ++ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an ++ array size at least. It's necessary to write '\x00'==0 to get something ++ that's true only with -std1. */ ++int osf4_cc_array ['\x00' == 0 ? 1 : -1]; ++ ++int test (int i, double x); ++struct s1 {int (*f) (int a);}; ++struct s2 {int (*f) (double a);}; ++int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); ++int argc; ++char **argv; ++int ++main () ++{ ++return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; ++ ; ++ return 0; ++} ++_ACEOF ++# Don't try gcc -ansi; that turns off useful extensions and ++# breaks some systems' header files. ++# AIX -qlanglvl=ansi ++# Ultrix and OSF/1 -std1 ++# HP-UX 10.20 and later -Ae ++# HP-UX older versions -Aa -D_HPUX_SOURCE ++# SVR4 -Xc -D__EXTENSIONS__ ++for ac_arg in "" -qlanglvl=ansi -std1 -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" ++do ++ CC="$ac_save_CC $ac_arg" ++ rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_prog_cc_stdc=$ac_arg ++break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++fi ++rm -f conftest.err conftest.$ac_objext ++done ++rm -f conftest.$ac_ext conftest.$ac_objext ++CC=$ac_save_CC ++ ++fi ++ ++case "x$ac_cv_prog_cc_stdc" in ++ x|xno) ++ echo "$as_me:$LINENO: result: none needed" >&5 ++echo "${ECHO_T}none needed" >&6 ;; ++ *) ++ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_stdc" >&5 ++echo "${ECHO_T}$ac_cv_prog_cc_stdc" >&6 ++ CC="$CC $ac_cv_prog_cc_stdc" ;; ++esac ++ ++# Some people use a C++ compiler to compile C. Since we use `exit', ++# in C++ we need to declare it. In case someone uses the same compiler ++# for both compiling C and C++ we need to have the C++ compiler decide ++# the declaration of exit, since it's the most demanding environment. ++cat >conftest.$ac_ext <<_ACEOF ++#ifndef __cplusplus ++ choke me ++#endif ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ for ac_declaration in \ ++ '' \ ++ 'extern "C" void std::exit (int) throw (); using std::exit;' \ ++ 'extern "C" void std::exit (int); using std::exit;' \ ++ 'extern "C" void exit (int) throw ();' \ ++ 'extern "C" void exit (int);' \ ++ 'void exit (int);' ++do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_declaration ++#include ++int ++main () ++{ ++exit (42); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++continue ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_declaration ++int ++main () ++{ ++exit (42); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++rm -f conftest* ++if test -n "$ac_declaration"; then ++ echo '#ifdef __cplusplus' >>confdefs.h ++ echo $ac_declaration >>confdefs.h ++ echo '#endif' >>confdefs.h ++fi ++ ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++DEPDIR="${am__leading_dot}deps" ++ ++ ac_config_commands="$ac_config_commands depfiles" ++ ++ ++am_make=${MAKE-make} ++cat > confinc << 'END' ++am__doit: ++ @echo done ++.PHONY: am__doit ++END ++# If we don't find an include directive, just comment out the code. ++echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 ++echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6 ++am__include="#" ++am__quote= ++_am_result=none ++# First try GNU make style include. ++echo "include confinc" > confmf ++# We grep out `Entering directory' and `Leaving directory' ++# messages which can occur if `w' ends up in MAKEFLAGS. ++# In particular we don't look at `^make:' because GNU make might ++# be invoked under some other name (usually "gmake"), in which ++# case it prints its new name instead of `make'. ++if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then ++ am__include=include ++ am__quote= ++ _am_result=GNU ++fi ++# Now try BSD make style include. ++if test "$am__include" = "#"; then ++ echo '.include "confinc"' > confmf ++ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then ++ am__include=.include ++ am__quote="\"" ++ _am_result=BSD ++ fi ++fi ++ ++ ++echo "$as_me:$LINENO: result: $_am_result" >&5 ++echo "${ECHO_T}$_am_result" >&6 ++rm -f confinc confmf ++ ++# Check whether --enable-dependency-tracking or --disable-dependency-tracking was given. ++if test "${enable_dependency_tracking+set}" = set; then ++ enableval="$enable_dependency_tracking" ++ ++fi; ++if test "x$enable_dependency_tracking" != xno; then ++ am_depcomp="$ac_aux_dir/depcomp" ++ AMDEPBACKSLASH='\' ++fi ++ ++ ++if test "x$enable_dependency_tracking" != xno; then ++ AMDEP_TRUE= ++ AMDEP_FALSE='#' ++else ++ AMDEP_TRUE='#' ++ AMDEP_FALSE= ++fi ++ ++ ++ ++ ++depcc="$CC" am_compiler_list= ++ ++echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 ++echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6 ++if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then ++ # We make a subdir and do the tests there. Otherwise we can end up ++ # making bogus files that we don't know about and never remove. For ++ # instance it was reported that on HP-UX the gcc test will end up ++ # making a dummy file named `D' -- because `-MD' means `put the output ++ # in D'. ++ mkdir conftest.dir ++ # Copy depcomp to subdir because otherwise we won't find it if we're ++ # using a relative directory. ++ cp "$am_depcomp" conftest.dir ++ cd conftest.dir ++ # We will build objects and dependencies in a subdirectory because ++ # it helps to detect inapplicable dependency modes. For instance ++ # both Tru64's cc and ICC support -MD to output dependencies as a ++ # side effect of compilation, but ICC will put the dependencies in ++ # the current directory while Tru64 will put them in the object ++ # directory. ++ mkdir sub ++ ++ am_cv_CC_dependencies_compiler_type=none ++ if test "$am_compiler_list" = ""; then ++ am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` ++ fi ++ for depmode in $am_compiler_list; do ++ # Setup a source with many dependencies, because some compilers ++ # like to wrap large dependency lists on column 80 (with \), and ++ # we should not choose a depcomp mode which is confused by this. ++ # ++ # We need to recreate these files for each test, as the compiler may ++ # overwrite some of them when testing with obscure command lines. ++ # This happens at least with the AIX C compiler. ++ : > sub/conftest.c ++ for i in 1 2 3 4 5 6; do ++ echo '#include "conftst'$i'.h"' >> sub/conftest.c ++ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with ++ # Solaris 8's {/usr,}/bin/sh. ++ touch sub/conftst$i.h ++ done ++ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf ++ ++ case $depmode in ++ nosideeffect) ++ # after this tag, mechanisms are not by side-effect, so they'll ++ # only be used when explicitly requested ++ if test "x$enable_dependency_tracking" = xyes; then ++ continue ++ else ++ break ++ fi ++ ;; ++ none) break ;; ++ esac ++ # We check with `-c' and `-o' for the sake of the "dashmstdout" ++ # mode. It turns out that the SunPro C++ compiler does not properly ++ # handle `-M -o', and we need to detect this. ++ if depmode=$depmode \ ++ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \ ++ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ ++ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \ ++ >/dev/null 2>conftest.err && ++ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && ++ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 && ++ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then ++ # icc doesn't choke on unknown options, it will just issue warnings ++ # or remarks (even with -Werror). So we grep stderr for any message ++ # that says an option was ignored or not supported. ++ # When given -MP, icc 7.0 and 7.1 complain thusly: ++ # icc: Command line warning: ignoring option '-M'; no argument required ++ # The diagnosis changed in icc 8.0: ++ # icc: Command line remark: option '-MP' not supported ++ if (grep 'ignoring option' conftest.err || ++ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else ++ am_cv_CC_dependencies_compiler_type=$depmode ++ break ++ fi ++ fi ++ done ++ ++ cd .. ++ rm -rf conftest.dir ++else ++ am_cv_CC_dependencies_compiler_type=none ++fi ++ ++fi ++echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 ++echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6 ++CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type ++ ++ ++ ++if ++ test "x$enable_dependency_tracking" != xno \ ++ && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then ++ am__fastdepCC_TRUE= ++ am__fastdepCC_FALSE='#' ++else ++ am__fastdepCC_TRUE='#' ++ am__fastdepCC_FALSE= ++fi ++ ++ ++# Find a good install program. We prefer a C program (faster), ++# so one script is as good as another. But avoid the broken or ++# incompatible versions: ++# SysV /etc/install, /usr/sbin/install ++# SunOS /usr/etc/install ++# IRIX /sbin/install ++# AIX /bin/install ++# AmigaOS /C/install, which installs bootblocks on floppy discs ++# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag ++# AFS /usr/afsws/bin/install, which mishandles nonexistent args ++# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" ++# OS/2's system install, which has a completely different semantic ++# ./install, which can be erroneously created by make from ./install.sh. ++echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 ++echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6 ++if test -z "$INSTALL"; then ++if test "${ac_cv_path_install+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ # Account for people who put trailing slashes in PATH elements. ++case $as_dir/ in ++ ./ | .// | /cC/* | \ ++ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ ++ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ ++ /usr/ucb/* ) ;; ++ *) ++ # OSF1 and SCO ODT 3.0 have their own names for install. ++ # Don't use installbsd from OSF since it installs stuff as root ++ # by default. ++ for ac_prog in ginstall scoinst install; do ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_prog$ac_exec_ext"; then ++ if test $ac_prog = install && ++ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # AIX install. It has an incompatible calling convention. ++ : ++ elif test $ac_prog = install && ++ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then ++ # program-specific install script used by HP pwplus--don't use. ++ : ++ else ++ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" ++ break 3 ++ fi ++ fi ++ done ++ done ++ ;; ++esac ++done ++ ++ ++fi ++ if test "${ac_cv_path_install+set}" = set; then ++ INSTALL=$ac_cv_path_install ++ else ++ # As a last resort, use the slow shell script. We don't cache a ++ # path for INSTALL within a source directory, because that will ++ # break other packages using the cache if that directory is ++ # removed, or if the path is relative. ++ INSTALL=$ac_install_sh ++ fi ++fi ++echo "$as_me:$LINENO: result: $INSTALL" >&5 ++echo "${ECHO_T}$INSTALL" >&6 ++ ++# Use test -z because SunOS4 sh mishandles braces in ${var-val}. ++# It thinks the first close brace ends the variable substitution. ++test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' ++ ++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' ++ ++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' ++ ++echo "$as_me:$LINENO: checking whether ln -s works" >&5 ++echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6 ++LN_S=$as_ln_s ++if test "$LN_S" = "ln -s"; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:$LINENO: result: no, using $LN_S" >&5 ++echo "${ECHO_T}no, using $LN_S" >&6 ++fi ++ ++ ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 ++echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6 ++# On Suns, sometimes $CPP names a directory. ++if test -n "$CPP" && test -d "$CPP"; then ++ CPP= ++fi ++if test -z "$CPP"; then ++ if test "${ac_cv_prog_CPP+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ # Double quotes because CPP needs to be expanded ++ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" ++ do ++ ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Broken: fails on valid input. ++continue ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether non-existent headers ++ # can be detected and how. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ # Broken: success on invalid input. ++continue ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then ++ break ++fi ++ ++ done ++ ac_cv_prog_CPP=$CPP ++ ++fi ++ CPP=$ac_cv_prog_CPP ++else ++ ac_cv_prog_CPP=$CPP ++fi ++echo "$as_me:$LINENO: result: $CPP" >&5 ++echo "${ECHO_T}$CPP" >&6 ++ac_preproc_ok=false ++for ac_c_preproc_warn_flag in '' yes ++do ++ # Use a header file that comes with gcc, so configuring glibc ++ # with a fresh cross-compiler works. ++ # Prefer to if __STDC__ is defined, since ++ # exists even on freestanding compilers. ++ # On the NeXT, cc -E runs the code through the compiler's parser, ++ # not just through cpp. "Syntax error" is here to catch this case. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ Syntax error ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ : ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Broken: fails on valid input. ++continue ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++ # OK, works on sane cases. Now check whether non-existent headers ++ # can be detected and how. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ # Broken: success on invalid input. ++continue ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ # Passes both tests. ++ac_preproc_ok=: ++break ++fi ++rm -f conftest.err conftest.$ac_ext ++ ++done ++# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. ++rm -f conftest.err conftest.$ac_ext ++if $ac_preproc_ok; then ++ : ++else ++ { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details." >&5 ++echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++ac_ext=c ++ac_cpp='$CPP $CPPFLAGS' ++ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' ++ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' ++ac_compiler_gnu=$ac_cv_c_compiler_gnu ++ ++ ++echo "$as_me:$LINENO: checking for egrep" >&5 ++echo $ECHO_N "checking for egrep... $ECHO_C" >&6 ++if test "${ac_cv_prog_egrep+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if echo a | (grep -E '(a|b)') >/dev/null 2>&1 ++ then ac_cv_prog_egrep='grep -E' ++ else ac_cv_prog_egrep='egrep' ++ fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_prog_egrep" >&5 ++echo "${ECHO_T}$ac_cv_prog_egrep" >&6 ++ EGREP=$ac_cv_prog_egrep ++ ++ ++if test $ac_cv_c_compiler_gnu = yes; then ++ echo "$as_me:$LINENO: checking whether $CC needs -traditional" >&5 ++echo $ECHO_N "checking whether $CC needs -traditional... $ECHO_C" >&6 ++if test "${ac_cv_prog_gcc_traditional+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_pattern="Autoconf.*'x'" ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++Autoconf TIOCGETP ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "$ac_pattern" >/dev/null 2>&1; then ++ ac_cv_prog_gcc_traditional=yes ++else ++ ac_cv_prog_gcc_traditional=no ++fi ++rm -f conftest* ++ ++ ++ if test $ac_cv_prog_gcc_traditional = no; then ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++Autoconf TCGETA ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "$ac_pattern" >/dev/null 2>&1; then ++ ac_cv_prog_gcc_traditional=yes ++fi ++rm -f conftest* ++ ++ fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_prog_gcc_traditional" >&5 ++echo "${ECHO_T}$ac_cv_prog_gcc_traditional" >&6 ++ if test $ac_cv_prog_gcc_traditional = yes; then ++ CC="$CC -traditional" ++ fi ++fi ++ ++#if test "$GCC" = yes ; then ++# CFLAGS="$CFLAGS -Wall" ++#fi ++ ++# Check whether --enable-gcc-warnings or --disable-gcc-warnings was given. ++if test "${enable_gcc_warnings+set}" = set; then ++ enableval="$enable_gcc_warnings" ++ ++fi; ++ ++if test -n "$ac_tool_prefix"; then ++ # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. ++set dummy ${ac_tool_prefix}ranlib; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_RANLIB+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$RANLIB"; then ++ ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++fi ++fi ++RANLIB=$ac_cv_prog_RANLIB ++if test -n "$RANLIB"; then ++ echo "$as_me:$LINENO: result: $RANLIB" >&5 ++echo "${ECHO_T}$RANLIB" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++fi ++if test -z "$ac_cv_prog_RANLIB"; then ++ ac_ct_RANLIB=$RANLIB ++ # Extract the first word of "ranlib", so it can be a program name with args. ++set dummy ranlib; ac_word=$2 ++echo "$as_me:$LINENO: checking for $ac_word" >&5 ++echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6 ++if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test -n "$ac_ct_RANLIB"; then ++ ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. ++else ++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in $PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for ac_exec_ext in '' $ac_executable_extensions; do ++ if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then ++ ac_cv_prog_ac_ct_RANLIB="ranlib" ++ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 ++ break 2 ++ fi ++done ++done ++ ++ test -z "$ac_cv_prog_ac_ct_RANLIB" && ac_cv_prog_ac_ct_RANLIB=":" ++fi ++fi ++ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB ++if test -n "$ac_ct_RANLIB"; then ++ echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5 ++echo "${ECHO_T}$ac_ct_RANLIB" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++ ++ RANLIB=$ac_ct_RANLIB ++else ++ RANLIB="$ac_cv_prog_RANLIB" ++fi ++ ++ ++ ++ ++echo "$as_me:$LINENO: checking for socket in -lsocket" >&5 ++echo $ECHO_N "checking for socket in -lsocket... $ECHO_C" >&6 ++if test "${ac_cv_lib_socket_socket+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lsocket $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char socket (); ++int ++main () ++{ ++socket (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_socket_socket=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_socket_socket=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_socket_socket" >&5 ++echo "${ECHO_T}$ac_cv_lib_socket_socket" >&6 ++if test $ac_cv_lib_socket_socket = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBSOCKET 1 ++_ACEOF ++ ++ LIBS="-lsocket $LIBS" ++ ++fi ++ ++ ++echo "$as_me:$LINENO: checking for inet_aton in -lresolv" >&5 ++echo $ECHO_N "checking for inet_aton in -lresolv... $ECHO_C" >&6 ++if test "${ac_cv_lib_resolv_inet_aton+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lresolv $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char inet_aton (); ++int ++main () ++{ ++inet_aton (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_resolv_inet_aton=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_resolv_inet_aton=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_resolv_inet_aton" >&5 ++echo "${ECHO_T}$ac_cv_lib_resolv_inet_aton" >&6 ++if test $ac_cv_lib_resolv_inet_aton = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBRESOLV 1 ++_ACEOF ++ ++ LIBS="-lresolv $LIBS" ++ ++fi ++ ++ ++echo "$as_me:$LINENO: checking for clock_gettime in -lrt" >&5 ++echo $ECHO_N "checking for clock_gettime in -lrt... $ECHO_C" >&6 ++if test "${ac_cv_lib_rt_clock_gettime+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lrt $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char clock_gettime (); ++int ++main () ++{ ++clock_gettime (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_rt_clock_gettime=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_rt_clock_gettime=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_rt_clock_gettime" >&5 ++echo "${ECHO_T}$ac_cv_lib_rt_clock_gettime" >&6 ++if test $ac_cv_lib_rt_clock_gettime = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBRT 1 ++_ACEOF ++ ++ LIBS="-lrt $LIBS" ++ ++fi ++ ++ ++echo "$as_me:$LINENO: checking for inet_ntoa in -lnsl" >&5 ++echo $ECHO_N "checking for inet_ntoa in -lnsl... $ECHO_C" >&6 ++if test "${ac_cv_lib_nsl_inet_ntoa+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_check_lib_save_LIBS=$LIBS ++LIBS="-lnsl $LIBS" ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char inet_ntoa (); ++int ++main () ++{ ++inet_ntoa (); ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_lib_nsl_inet_ntoa=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_lib_nsl_inet_ntoa=no ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++LIBS=$ac_check_lib_save_LIBS ++fi ++echo "$as_me:$LINENO: result: $ac_cv_lib_nsl_inet_ntoa" >&5 ++echo "${ECHO_T}$ac_cv_lib_nsl_inet_ntoa" >&6 ++if test $ac_cv_lib_nsl_inet_ntoa = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define HAVE_LIBNSL 1 ++_ACEOF ++ ++ LIBS="-lnsl $LIBS" ++ ++fi ++ ++ ++echo "$as_me:$LINENO: checking for ANSI C header files" >&5 ++echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6 ++if test "${ac_cv_header_stdc+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++ ++int ++main () ++{ ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_header_stdc=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_header_stdc=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++if test $ac_cv_header_stdc = yes; then ++ # SunOS 4.x string.h does not declare mem*, contrary to ANSI. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "memchr" >/dev/null 2>&1; then ++ : ++else ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "free" >/dev/null 2>&1; then ++ : ++else ++ ac_cv_header_stdc=no ++fi ++rm -f conftest* ++ ++fi ++ ++if test $ac_cv_header_stdc = yes; then ++ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. ++ if test "$cross_compiling" = yes; then ++ : ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#if ((' ' & 0x0FF) == 0x020) ++# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') ++# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) ++#else ++# define ISLOWER(c) \ ++ (('a' <= (c) && (c) <= 'i') \ ++ || ('j' <= (c) && (c) <= 'r') \ ++ || ('s' <= (c) && (c) <= 'z')) ++# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) ++#endif ++ ++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) ++int ++main () ++{ ++ int i; ++ for (i = 0; i < 256; i++) ++ if (XOR (islower (i), ISLOWER (i)) ++ || toupper (i) != TOUPPER (i)) ++ exit(2); ++ exit (0); ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ : ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++ac_cv_header_stdc=no ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 ++echo "${ECHO_T}$ac_cv_header_stdc" >&6 ++if test $ac_cv_header_stdc = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define STDC_HEADERS 1 ++_ACEOF ++ ++fi ++ ++# On IRIX 5.3, sys/types and inttypes.h are conflicting. ++ ++ ++ ++ ++ ++ ++ ++ ++ ++for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ ++ inttypes.h stdint.h unistd.h ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_header" >&5 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++ ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_Header=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_Header=no" ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++for ac_header in fcntl.h stdarg.h inttypes.h stdint.h poll.h signal.h unistd.h sys/epoll.h sys/time.h sys/queue.h sys/event.h sys/param.h sys/ioctl.h sys/select.h sys/devpoll.h port.h netinet/in6.h sys/socket.h ++do ++as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh` ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo "$as_me:$LINENO: checking for $ac_header" >&5 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++else ++ # Is the header compilable? ++echo "$as_me:$LINENO: checking $ac_header usability" >&5 ++echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++#include <$ac_header> ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_header_compiler=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_header_compiler=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++echo "$as_me:$LINENO: result: $ac_header_compiler" >&5 ++echo "${ECHO_T}$ac_header_compiler" >&6 ++ ++# Is the header present? ++echo "$as_me:$LINENO: checking $ac_header presence" >&5 ++echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include <$ac_header> ++_ACEOF ++if { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&5 ++ (eval $ac_cpp conftest.$ac_ext) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } >/dev/null; then ++ if test -s conftest.err; then ++ ac_cpp_err=$ac_c_preproc_warn_flag ++ ac_cpp_err=$ac_cpp_err$ac_c_werror_flag ++ else ++ ac_cpp_err= ++ fi ++else ++ ac_cpp_err=yes ++fi ++if test -z "$ac_cpp_err"; then ++ ac_header_preproc=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ ac_header_preproc=no ++fi ++rm -f conftest.err conftest.$ac_ext ++echo "$as_me:$LINENO: result: $ac_header_preproc" >&5 ++echo "${ECHO_T}$ac_header_preproc" >&6 ++ ++# So? What about this header? ++case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in ++ yes:no: ) ++ { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5 ++echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;} ++ ac_header_preproc=yes ++ ;; ++ no:yes:* ) ++ { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5 ++echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5 ++echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5 ++echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5 ++echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5 ++echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;} ++ { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5 ++echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;} ++ ( ++ cat <<\_ASBOX ++## ------------------------------------------ ## ++## Report this to the AC_PACKAGE_NAME lists. ## ++## ------------------------------------------ ## ++_ASBOX ++ ) | ++ sed "s/^/$as_me: WARNING: /" >&2 ++ ;; ++esac ++echo "$as_me:$LINENO: checking for $ac_header" >&5 ++echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_Header+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ eval "$as_ac_Header=\$ac_header_preproc" ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&6 ++ ++fi ++if test `eval echo '${'$as_ac_Header'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++ ++done ++ ++if test "x$ac_cv_header_sys_queue_h" = "xyes"; then ++ echo "$as_me:$LINENO: checking for TAILQ_FOREACH in sys/queue.h" >&5 ++echo $ECHO_N "checking for TAILQ_FOREACH in sys/queue.h... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifdef TAILQ_FOREACH ++ yes ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "yes" >/dev/null 2>&1; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_TAILQFOREACH 1 ++_ACEOF ++ ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ ++fi ++rm -f conftest* ++ ++fi ++ ++if test "x$ac_cv_header_sys_time_h" = "xyes"; then ++ echo "$as_me:$LINENO: checking for timeradd in sys/time.h" >&5 ++echo $ECHO_N "checking for timeradd in sys/time.h... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifdef timeradd ++ yes ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "yes" >/dev/null 2>&1; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_TIMERADD 1 ++_ACEOF ++ ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ ++fi ++rm -f conftest* ++ ++fi ++ ++if test "x$ac_cv_header_sys_time_h" = "xyes"; then ++ echo "$as_me:$LINENO: checking for timercmp in sys/time.h" >&5 ++echo $ECHO_N "checking for timercmp in sys/time.h... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifdef timercmp ++ yes ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "yes" >/dev/null 2>&1; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_TIMERCMP 1 ++_ACEOF ++ ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ ++fi ++rm -f conftest* ++ ++fi ++ ++if test "x$ac_cv_header_sys_time_h" = "xyes"; then ++ echo "$as_me:$LINENO: checking for timerclear in sys/time.h" >&5 ++echo $ECHO_N "checking for timerclear in sys/time.h... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifdef timerclear ++ yes ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "yes" >/dev/null 2>&1; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_TIMERCLEAR 1 ++_ACEOF ++ ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ ++fi ++rm -f conftest* ++ ++fi ++ ++if test "x$ac_cv_header_sys_time_h" = "xyes"; then ++ echo "$as_me:$LINENO: checking for timerisset in sys/time.h" >&5 ++echo $ECHO_N "checking for timerisset in sys/time.h... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#include ++#ifdef timerisset ++ yes ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "yes" >/dev/null 2>&1; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_TIMERISSET 1 ++_ACEOF ++ ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ ++fi ++rm -f conftest* ++ ++fi ++ ++echo "$as_me:$LINENO: checking for WIN32" >&5 ++echo $ECHO_N "checking for WIN32... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++#ifndef WIN32 ++die horribly ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ bwin32=true; echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++bwin32=false; echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++ ++ ++if test x$bwin32 = xtrue; then ++ BUILD_WIN32_TRUE= ++ BUILD_WIN32_FALSE='#' ++else ++ BUILD_WIN32_TRUE='#' ++ BUILD_WIN32_FALSE= ++fi ++ ++ ++echo "$as_me:$LINENO: checking for an ANSI C-conforming const" >&5 ++echo $ECHO_N "checking for an ANSI C-conforming const... $ECHO_C" >&6 ++if test "${ac_cv_c_const+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++/* FIXME: Include the comments suggested by Paul. */ ++#ifndef __cplusplus ++ /* Ultrix mips cc rejects this. */ ++ typedef int charset[2]; ++ const charset x; ++ /* SunOS 4.1.1 cc rejects this. */ ++ char const *const *ccp; ++ char **p; ++ /* NEC SVR4.0.2 mips cc rejects this. */ ++ struct point {int x, y;}; ++ static struct point const zero = {0,0}; ++ /* AIX XL C 1.02.0.0 rejects this. ++ It does not let you subtract one const X* pointer from another in ++ an arm of an if-expression whose if-part is not a constant ++ expression */ ++ const char *g = "string"; ++ ccp = &g + (g ? g-g : 0); ++ /* HPUX 7.0 cc rejects these. */ ++ ++ccp; ++ p = (char**) ccp; ++ ccp = (char const *const *) p; ++ { /* SCO 3.2v4 cc rejects this. */ ++ char *t; ++ char const *s = 0 ? (char *) 0 : (char const *) 0; ++ ++ *t++ = 0; ++ } ++ { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ ++ int x[] = {25, 17}; ++ const int *foo = &x[0]; ++ ++foo; ++ } ++ { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ ++ typedef const int *iptr; ++ iptr p = 0; ++ ++p; ++ } ++ { /* AIX XL C 1.02.0.0 rejects this saying ++ "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ ++ struct s { int j; const int *ap[3]; }; ++ struct s *b; b->j = 5; ++ } ++ { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ ++ const int foo = 10; ++ } ++#endif ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_c_const=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_c_const=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_c_const" >&5 ++echo "${ECHO_T}$ac_cv_c_const" >&6 ++if test $ac_cv_c_const = no; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define const ++_ACEOF ++ ++fi ++ ++echo "$as_me:$LINENO: checking for inline" >&5 ++echo $ECHO_N "checking for inline... $ECHO_C" >&6 ++if test "${ac_cv_c_inline+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ ac_cv_c_inline=no ++for ac_kw in inline __inline__ __inline; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifndef __cplusplus ++typedef int foo_t; ++static $ac_kw foo_t static_foo () {return 0; } ++$ac_kw foo_t foo () {return 0; } ++#endif ++ ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_c_inline=$ac_kw; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++ ++fi ++echo "$as_me:$LINENO: result: $ac_cv_c_inline" >&5 ++echo "${ECHO_T}$ac_cv_c_inline" >&6 ++ ++ ++case $ac_cv_c_inline in ++ inline | yes) ;; ++ *) ++ case $ac_cv_c_inline in ++ no) ac_val=;; ++ *) ac_val=$ac_cv_c_inline;; ++ esac ++ cat >>confdefs.h <<_ACEOF ++#ifndef __cplusplus ++#define inline $ac_val ++#endif ++_ACEOF ++ ;; ++esac ++ ++echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5 ++echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6 ++if test "${ac_cv_header_time+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++ ++int ++main () ++{ ++if ((struct tm *) 0) ++return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_header_time=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_header_time=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5 ++echo "${ECHO_T}$ac_cv_header_time" >&6 ++if test $ac_cv_header_time = yes; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define TIME_WITH_SYS_TIME 1 ++_ACEOF ++ ++fi ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++ ++for ac_func in gettimeofday vasprintf fcntl clock_gettime strtok_r strsep getaddrinfo getnameinfo strlcpy inet_ntop signal sigaction strtoll ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ ++fi ++done ++ ++ ++echo "$as_me:$LINENO: checking for long" >&5 ++echo $ECHO_N "checking for long... $ECHO_C" >&6 ++if test "${ac_cv_type_long+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if ((long *) 0) ++ return 0; ++if (sizeof (long)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_long=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_long=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 ++echo "${ECHO_T}$ac_cv_type_long" >&6 ++ ++echo "$as_me:$LINENO: checking size of long" >&5 ++echo $ECHO_N "checking size of long... $ECHO_C" >&6 ++if test "${ac_cv_sizeof_long+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test "$ac_cv_type_long" = yes; then ++ # The cast to unsigned long works around a bug in the HP C Compiler ++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++ # This bug is HP SR number 8606223364. ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_hi=`expr '(' $ac_mid ')' - 1` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo= ac_hi= ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++while test "x$ac_lo" != "x$ac_hi"; do ++ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr '(' $ac_mid ')' + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++case $ac_lo in ++?*) ac_cv_sizeof_long=$ac_lo;; ++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (long), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ;; ++esac ++else ++ if test "$cross_compiling" = yes; then ++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++long longval () { return (long) (sizeof (long)); } ++unsigned long ulongval () { return (long) (sizeof (long)); } ++#include ++#include ++int ++main () ++{ ++ ++ FILE *f = fopen ("conftest.val", "w"); ++ if (! f) ++ exit (1); ++ if (((long) (sizeof (long))) < 0) ++ { ++ long i = longval (); ++ if (i != ((long) (sizeof (long)))) ++ exit (1); ++ fprintf (f, "%ld\n", i); ++ } ++ else ++ { ++ unsigned long i = ulongval (); ++ if (i != ((long) (sizeof (long)))) ++ exit (1); ++ fprintf (f, "%lu\n", i); ++ } ++ exit (ferror (f) || fclose (f) != 0); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_sizeof_long=`cat conftest.val` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (long), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++rm -f conftest.val ++else ++ ac_cv_sizeof_long=0 ++fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_long" >&6 ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_LONG $ac_cv_sizeof_long ++_ACEOF ++ ++ ++ ++if test "x$ac_cv_func_clock_gettime" = "xyes"; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define DNS_USE_CPU_CLOCK_FOR_ID 1 ++_ACEOF ++ ++else ++ ++cat >>confdefs.h <<\_ACEOF ++#define DNS_USE_GETTIMEOFDAY_FOR_ID 1 ++_ACEOF ++ ++fi ++ ++echo "$as_me:$LINENO: checking for F_SETFD in fcntl.h" >&5 ++echo $ECHO_N "checking for F_SETFD in fcntl.h... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++#define _GNU_SOURCE ++#include ++#ifdef F_SETFD ++yes ++#endif ++ ++_ACEOF ++if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | ++ $EGREP "yes" >/dev/null 2>&1; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_SETFD 1 ++_ACEOF ++ ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++rm -f conftest* ++ ++ ++needsignal=no ++haveselect=no ++ ++for ac_func in select ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ haveselect=yes ++fi ++done ++ ++if test "x$haveselect" = "xyes" ; then ++ case $LIBOBJS in ++ "select.$ac_objext" | \ ++ *" select.$ac_objext" | \ ++ "select.$ac_objext "* | \ ++ *" select.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS select.$ac_objext" ;; ++esac ++ ++ needsignal=yes ++fi ++ ++havepoll=no ++ ++for ac_func in poll ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ havepoll=yes ++fi ++done ++ ++if test "x$havepoll" = "xyes" ; then ++ case $LIBOBJS in ++ "poll.$ac_objext" | \ ++ *" poll.$ac_objext" | \ ++ "poll.$ac_objext "* | \ ++ *" poll.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS poll.$ac_objext" ;; ++esac ++ ++ needsignal=yes ++fi ++ ++haveepoll=no ++ ++for ac_func in epoll_ctl ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ haveepoll=yes ++fi ++done ++ ++if test "x$haveepoll" = "xyes" ; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_EPOLL 1 ++_ACEOF ++ ++ case $LIBOBJS in ++ "epoll.$ac_objext" | \ ++ *" epoll.$ac_objext" | \ ++ "epoll.$ac_objext "* | \ ++ *" epoll.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS epoll.$ac_objext" ;; ++esac ++ ++ needsignal=yes ++fi ++ ++havedevpoll=no ++if test "x$ac_cv_header_sys_devpoll_h" = "xyes"; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_DEVPOLL 1 ++_ACEOF ++ ++ case $LIBOBJS in ++ "devpoll.$ac_objext" | \ ++ *" devpoll.$ac_objext" | \ ++ "devpoll.$ac_objext "* | \ ++ *" devpoll.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS devpoll.$ac_objext" ;; ++esac ++ ++fi ++ ++havekqueue=no ++if test "x$ac_cv_header_sys_event_h" = "xyes"; then ++ ++for ac_func in kqueue ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ havekqueue=yes ++fi ++done ++ ++ if test "x$havekqueue" = "xyes" ; then ++ echo "$as_me:$LINENO: checking for working kqueue" >&5 ++echo $ECHO_N "checking for working kqueue... $ECHO_C" >&6 ++ if test "$cross_compiling" = yes; then ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++main(int argc, char **argv) ++{ ++ int kq; ++ int n; ++ int fd[2]; ++ struct kevent ev; ++ struct timespec ts; ++ char buf[8000]; ++ ++ if (pipe(fd) == -1) ++ exit(1); ++ if (fcntl(fd[1], F_SETFL, O_NONBLOCK) == -1) ++ exit(1); ++ ++ while ((n = write(fd[1], buf, sizeof(buf))) == sizeof(buf)) ++ ; ++ ++ if ((kq = kqueue()) == -1) ++ exit(1); ++ ++ ev.ident = fd[1]; ++ ev.filter = EVFILT_WRITE; ++ ev.flags = EV_ADD | EV_ENABLE; ++ n = kevent(kq, &ev, 1, NULL, 0, NULL); ++ if (n == -1) ++ exit(1); ++ ++ read(fd[0], buf, sizeof(buf)); ++ ++ ts.tv_sec = 0; ++ ts.tv_nsec = 0; ++ n = kevent(kq, NULL, 0, &ev, 1, &ts); ++ if (n == -1 || n == 0) ++ exit(1); ++ ++ exit(0); ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_WORKING_KQUEUE 1 ++_ACEOF ++ ++ case $LIBOBJS in ++ "kqueue.$ac_objext" | \ ++ *" kqueue.$ac_objext" | \ ++ "kqueue.$ac_objext "* | \ ++ *" kqueue.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS kqueue.$ac_objext" ;; ++esac ++ ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ fi ++fi ++ ++haveepollsyscall=no ++if test "x$ac_cv_header_sys_epoll_h" = "xyes"; then ++ if test "x$haveepoll" = "xno" ; then ++ echo "$as_me:$LINENO: checking for epoll system call" >&5 ++echo $ECHO_N "checking for epoll system call... $ECHO_C" >&6 ++ if test "$cross_compiling" = yes; then ++ echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++epoll_create(int size) ++{ ++ return (syscall(__NR_epoll_create, size)); ++} ++ ++int ++main(int argc, char **argv) ++{ ++ int epfd; ++ ++ epfd = epoll_create(256); ++ exit (epfd == -1 ? 1 : 0); ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_EPOLL 1 ++_ACEOF ++ ++ needsignal=yes ++ case $LIBOBJS in ++ "epoll_sub.$ac_objext" | \ ++ *" epoll_sub.$ac_objext" | \ ++ "epoll_sub.$ac_objext "* | \ ++ *" epoll_sub.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS epoll_sub.$ac_objext" ;; ++esac ++ ++ case $LIBOBJS in ++ "epoll.$ac_objext" | \ ++ *" epoll.$ac_objext" | \ ++ "epoll.$ac_objext "* | \ ++ *" epoll.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS epoll.$ac_objext" ;; ++esac ++ ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++ fi ++fi ++ ++haveeventports=no ++ ++for ac_func in port_create ++do ++as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh` ++echo "$as_me:$LINENO: checking for $ac_func" >&5 ++echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6 ++if eval "test \"\${$as_ac_var+set}\" = set"; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++/* Define $ac_func to an innocuous variant, in case declares $ac_func. ++ For example, HP-UX 11i declares gettimeofday. */ ++#define $ac_func innocuous_$ac_func ++ ++/* System header to define __stub macros and hopefully few prototypes, ++ which can conflict with char $ac_func (); below. ++ Prefer to if __STDC__ is defined, since ++ exists even on freestanding compilers. */ ++ ++#ifdef __STDC__ ++# include ++#else ++# include ++#endif ++ ++#undef $ac_func ++ ++/* Override any gcc2 internal prototype to avoid an error. */ ++#ifdef __cplusplus ++extern "C" ++{ ++#endif ++/* We use char because int might match the return type of a gcc2 ++ builtin and then its argument prototype would still apply. */ ++char $ac_func (); ++/* The GNU C library defines this for functions which it implements ++ to always fail with ENOSYS. Some functions are actually named ++ something starting with __ and the normal name is an alias. */ ++#if defined (__stub_$ac_func) || defined (__stub___$ac_func) ++choke me ++#else ++char (*f) () = $ac_func; ++#endif ++#ifdef __cplusplus ++} ++#endif ++ ++int ++main () ++{ ++return f != $ac_func; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ eval "$as_ac_var=yes" ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++eval "$as_ac_var=no" ++fi ++rm -f conftest.err conftest.$ac_objext \ ++ conftest$ac_exeext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_var'}'`" >&5 ++echo "${ECHO_T}`eval echo '${'$as_ac_var'}'`" >&6 ++if test `eval echo '${'$as_ac_var'}'` = yes; then ++ cat >>confdefs.h <<_ACEOF ++#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1 ++_ACEOF ++ haveeventports=yes ++fi ++done ++ ++if test "x$haveeventports" = "xyes" ; then ++ ++cat >>confdefs.h <<\_ACEOF ++#define HAVE_EVENT_PORTS 1 ++_ACEOF ++ ++ case $LIBOBJS in ++ "evport.$ac_objext" | \ ++ *" evport.$ac_objext" | \ ++ "evport.$ac_objext "* | \ ++ *" evport.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS evport.$ac_objext" ;; ++esac ++ ++ needsignal=yes ++fi ++if test "x$bwin32" = "xtrue"; then ++ needsignal=yes ++fi ++if test "x$bwin32" = "xtrue"; then ++ needsignal=yes ++fi ++if test "x$needsignal" = "xyes" ; then ++ case $LIBOBJS in ++ "signal.$ac_objext" | \ ++ *" signal.$ac_objext" | \ ++ "signal.$ac_objext "* | \ ++ *" signal.$ac_objext "* ) ;; ++ *) LIBOBJS="$LIBOBJS signal.$ac_objext" ;; ++esac ++ ++fi ++ ++echo "$as_me:$LINENO: checking for pid_t" >&5 ++echo $ECHO_N "checking for pid_t... $ECHO_C" >&6 ++if test "${ac_cv_type_pid_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if ((pid_t *) 0) ++ return 0; ++if (sizeof (pid_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_pid_t=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_pid_t=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_pid_t" >&5 ++echo "${ECHO_T}$ac_cv_type_pid_t" >&6 ++if test $ac_cv_type_pid_t = yes; then ++ : ++else ++ ++cat >>confdefs.h <<_ACEOF ++#define pid_t int ++_ACEOF ++ ++fi ++ ++echo "$as_me:$LINENO: checking for size_t" >&5 ++echo $ECHO_N "checking for size_t... $ECHO_C" >&6 ++if test "${ac_cv_type_size_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if ((size_t *) 0) ++ return 0; ++if (sizeof (size_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_size_t=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_size_t=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_size_t" >&5 ++echo "${ECHO_T}$ac_cv_type_size_t" >&6 ++if test $ac_cv_type_size_t = yes; then ++ : ++else ++ ++cat >>confdefs.h <<_ACEOF ++#define size_t unsigned ++_ACEOF ++ ++fi ++ ++echo "$as_me:$LINENO: checking for uint64_t" >&5 ++echo $ECHO_N "checking for uint64_t... $ECHO_C" >&6 ++if test "${ac_cv_type_uint64_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef HAVE_STDINT_H ++#include ++#elif defined(HAVE_INTTYPES_H) ++#include ++#endif ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif ++ ++int ++main () ++{ ++if ((uint64_t *) 0) ++ return 0; ++if (sizeof (uint64_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_uint64_t=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_uint64_t=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_uint64_t" >&5 ++echo "${ECHO_T}$ac_cv_type_uint64_t" >&6 ++if test $ac_cv_type_uint64_t = yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_UINT64_T 1 ++_ACEOF ++ ++ ++fi ++echo "$as_me:$LINENO: checking for uint32_t" >&5 ++echo $ECHO_N "checking for uint32_t... $ECHO_C" >&6 ++if test "${ac_cv_type_uint32_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef HAVE_STDINT_H ++#include ++#elif defined(HAVE_INTTYPES_H) ++#include ++#endif ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif ++ ++int ++main () ++{ ++if ((uint32_t *) 0) ++ return 0; ++if (sizeof (uint32_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_uint32_t=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_uint32_t=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_uint32_t" >&5 ++echo "${ECHO_T}$ac_cv_type_uint32_t" >&6 ++if test $ac_cv_type_uint32_t = yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_UINT32_T 1 ++_ACEOF ++ ++ ++fi ++echo "$as_me:$LINENO: checking for uint16_t" >&5 ++echo $ECHO_N "checking for uint16_t... $ECHO_C" >&6 ++if test "${ac_cv_type_uint16_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef HAVE_STDINT_H ++#include ++#elif defined(HAVE_INTTYPES_H) ++#include ++#endif ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif ++ ++int ++main () ++{ ++if ((uint16_t *) 0) ++ return 0; ++if (sizeof (uint16_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_uint16_t=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_uint16_t=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_uint16_t" >&5 ++echo "${ECHO_T}$ac_cv_type_uint16_t" >&6 ++if test $ac_cv_type_uint16_t = yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_UINT16_T 1 ++_ACEOF ++ ++ ++fi ++echo "$as_me:$LINENO: checking for uint8_t" >&5 ++echo $ECHO_N "checking for uint8_t... $ECHO_C" >&6 ++if test "${ac_cv_type_uint8_t+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef HAVE_STDINT_H ++#include ++#elif defined(HAVE_INTTYPES_H) ++#include ++#endif ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif ++ ++int ++main () ++{ ++if ((uint8_t *) 0) ++ return 0; ++if (sizeof (uint8_t)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_uint8_t=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_uint8_t=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_uint8_t" >&5 ++echo "${ECHO_T}$ac_cv_type_uint8_t" >&6 ++if test $ac_cv_type_uint8_t = yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_UINT8_T 1 ++_ACEOF ++ ++ ++fi ++ ++echo "$as_me:$LINENO: checking for long long" >&5 ++echo $ECHO_N "checking for long long... $ECHO_C" >&6 ++if test "${ac_cv_type_long_long+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if ((long long *) 0) ++ return 0; ++if (sizeof (long long)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_long_long=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_long_long=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_long_long" >&5 ++echo "${ECHO_T}$ac_cv_type_long_long" >&6 ++ ++echo "$as_me:$LINENO: checking size of long long" >&5 ++echo $ECHO_N "checking size of long long... $ECHO_C" >&6 ++if test "${ac_cv_sizeof_long_long+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test "$ac_cv_type_long_long" = yes; then ++ # The cast to unsigned long works around a bug in the HP C Compiler ++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++ # This bug is HP SR number 8606223364. ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long long))) < 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long long))) >= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_hi=`expr '(' $ac_mid ')' - 1` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo= ac_hi= ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++while test "x$ac_lo" != "x$ac_hi"; do ++ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long long))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr '(' $ac_mid ')' + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++case $ac_lo in ++?*) ac_cv_sizeof_long_long=$ac_lo;; ++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (long long), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ;; ++esac ++else ++ if test "$cross_compiling" = yes; then ++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++long longval () { return (long) (sizeof (long long)); } ++unsigned long ulongval () { return (long) (sizeof (long long)); } ++#include ++#include ++int ++main () ++{ ++ ++ FILE *f = fopen ("conftest.val", "w"); ++ if (! f) ++ exit (1); ++ if (((long) (sizeof (long long))) < 0) ++ { ++ long i = longval (); ++ if (i != ((long) (sizeof (long long)))) ++ exit (1); ++ fprintf (f, "%ld\n", i); ++ } ++ else ++ { ++ unsigned long i = ulongval (); ++ if (i != ((long) (sizeof (long long)))) ++ exit (1); ++ fprintf (f, "%lu\n", i); ++ } ++ exit (ferror (f) || fclose (f) != 0); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_sizeof_long_long=`cat conftest.val` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long long), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (long long), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++rm -f conftest.val ++else ++ ac_cv_sizeof_long_long=0 ++fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_sizeof_long_long" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_long_long" >&6 ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_LONG_LONG $ac_cv_sizeof_long_long ++_ACEOF ++ ++ ++echo "$as_me:$LINENO: checking for long" >&5 ++echo $ECHO_N "checking for long... $ECHO_C" >&6 ++if test "${ac_cv_type_long+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if ((long *) 0) ++ return 0; ++if (sizeof (long)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_long=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_long=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_long" >&5 ++echo "${ECHO_T}$ac_cv_type_long" >&6 ++ ++echo "$as_me:$LINENO: checking size of long" >&5 ++echo $ECHO_N "checking size of long... $ECHO_C" >&6 ++if test "${ac_cv_sizeof_long+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test "$ac_cv_type_long" = yes; then ++ # The cast to unsigned long works around a bug in the HP C Compiler ++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++ # This bug is HP SR number 8606223364. ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) >= 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) < 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) >= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_hi=`expr '(' $ac_mid ')' - 1` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo= ac_hi= ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++while test "x$ac_lo" != "x$ac_hi"; do ++ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (long))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr '(' $ac_mid ')' + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++case $ac_lo in ++?*) ac_cv_sizeof_long=$ac_lo;; ++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (long), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ;; ++esac ++else ++ if test "$cross_compiling" = yes; then ++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++long longval () { return (long) (sizeof (long)); } ++unsigned long ulongval () { return (long) (sizeof (long)); } ++#include ++#include ++int ++main () ++{ ++ ++ FILE *f = fopen ("conftest.val", "w"); ++ if (! f) ++ exit (1); ++ if (((long) (sizeof (long))) < 0) ++ { ++ long i = longval (); ++ if (i != ((long) (sizeof (long)))) ++ exit (1); ++ fprintf (f, "%ld\n", i); ++ } ++ else ++ { ++ unsigned long i = ulongval (); ++ if (i != ((long) (sizeof (long)))) ++ exit (1); ++ fprintf (f, "%lu\n", i); ++ } ++ exit (ferror (f) || fclose (f) != 0); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_sizeof_long=`cat conftest.val` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (long), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (long), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++rm -f conftest.val ++else ++ ac_cv_sizeof_long=0 ++fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_sizeof_long" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_long" >&6 ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_LONG $ac_cv_sizeof_long ++_ACEOF ++ ++ ++echo "$as_me:$LINENO: checking for int" >&5 ++echo $ECHO_N "checking for int... $ECHO_C" >&6 ++if test "${ac_cv_type_int+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if ((int *) 0) ++ return 0; ++if (sizeof (int)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_int=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_int=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_int" >&5 ++echo "${ECHO_T}$ac_cv_type_int" >&6 ++ ++echo "$as_me:$LINENO: checking size of int" >&5 ++echo $ECHO_N "checking size of int... $ECHO_C" >&6 ++if test "${ac_cv_sizeof_int+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test "$ac_cv_type_int" = yes; then ++ # The cast to unsigned long works around a bug in the HP C Compiler ++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++ # This bug is HP SR number 8606223364. ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (int))) >= 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (int))) < 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (int))) >= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_hi=`expr '(' $ac_mid ')' - 1` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo= ac_hi= ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++while test "x$ac_lo" != "x$ac_hi"; do ++ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (int))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr '(' $ac_mid ')' + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++case $ac_lo in ++?*) ac_cv_sizeof_int=$ac_lo;; ++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (int), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ;; ++esac ++else ++ if test "$cross_compiling" = yes; then ++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++long longval () { return (long) (sizeof (int)); } ++unsigned long ulongval () { return (long) (sizeof (int)); } ++#include ++#include ++int ++main () ++{ ++ ++ FILE *f = fopen ("conftest.val", "w"); ++ if (! f) ++ exit (1); ++ if (((long) (sizeof (int))) < 0) ++ { ++ long i = longval (); ++ if (i != ((long) (sizeof (int)))) ++ exit (1); ++ fprintf (f, "%ld\n", i); ++ } ++ else ++ { ++ unsigned long i = ulongval (); ++ if (i != ((long) (sizeof (int)))) ++ exit (1); ++ fprintf (f, "%lu\n", i); ++ } ++ exit (ferror (f) || fclose (f) != 0); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_sizeof_int=`cat conftest.val` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (int), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (int), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++rm -f conftest.val ++else ++ ac_cv_sizeof_int=0 ++fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_sizeof_int" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_int" >&6 ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_INT $ac_cv_sizeof_int ++_ACEOF ++ ++ ++echo "$as_me:$LINENO: checking for short" >&5 ++echo $ECHO_N "checking for short... $ECHO_C" >&6 ++if test "${ac_cv_type_short+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++if ((short *) 0) ++ return 0; ++if (sizeof (short)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_short=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_short=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_short" >&5 ++echo "${ECHO_T}$ac_cv_type_short" >&6 ++ ++echo "$as_me:$LINENO: checking size of short" >&5 ++echo $ECHO_N "checking size of short... $ECHO_C" >&6 ++if test "${ac_cv_sizeof_short+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ if test "$ac_cv_type_short" = yes; then ++ # The cast to unsigned long works around a bug in the HP C Compiler ++ # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects ++ # declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. ++ # This bug is HP SR number 8606223364. ++ if test "$cross_compiling" = yes; then ++ # Depending upon the size, compute the lo and hi bounds. ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (short))) >= 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=0 ac_mid=0 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr $ac_mid + 1` ++ if test $ac_lo -le $ac_mid; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (short))) < 0)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=-1 ac_mid=-1 ++ while :; do ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (short))) >= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_lo=$ac_mid; break ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_hi=`expr '(' $ac_mid ')' - 1` ++ if test $ac_mid -le $ac_hi; then ++ ac_lo= ac_hi= ++ break ++ fi ++ ac_mid=`expr 2 '*' $ac_mid` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ done ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo= ac_hi= ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++# Binary search between lo and hi bounds. ++while test "x$ac_lo" != "x$ac_hi"; do ++ ac_mid=`expr '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo` ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++int ++main () ++{ ++static int test_array [1 - 2 * !(((long) (sizeof (short))) <= $ac_mid)]; ++test_array [0] = 0 ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_hi=$ac_mid ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_lo=`expr '(' $ac_mid ')' + 1` ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++done ++case $ac_lo in ++?*) ac_cv_sizeof_short=$ac_lo;; ++'') { { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (short), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ;; ++esac ++else ++ if test "$cross_compiling" = yes; then ++ { { echo "$as_me:$LINENO: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot run test program while cross compiling ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++$ac_includes_default ++long longval () { return (long) (sizeof (short)); } ++unsigned long ulongval () { return (long) (sizeof (short)); } ++#include ++#include ++int ++main () ++{ ++ ++ FILE *f = fopen ("conftest.val", "w"); ++ if (! f) ++ exit (1); ++ if (((long) (sizeof (short))) < 0) ++ { ++ long i = longval (); ++ if (i != ((long) (sizeof (short)))) ++ exit (1); ++ fprintf (f, "%ld\n", i); ++ } ++ else ++ { ++ unsigned long i = ulongval (); ++ if (i != ((long) (sizeof (short)))) ++ exit (1); ++ fprintf (f, "%lu\n", i); ++ } ++ exit (ferror (f) || fclose (f) != 0); ++ ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest$ac_exeext ++if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5 ++ (eval $ac_link) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && { ac_try='./conftest$ac_exeext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_sizeof_short=`cat conftest.val` ++else ++ echo "$as_me: program exited with status $ac_status" >&5 ++echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++( exit $ac_status ) ++{ { echo "$as_me:$LINENO: error: cannot compute sizeof (short), 77 ++See \`config.log' for more details." >&5 ++echo "$as_me: error: cannot compute sizeof (short), 77 ++See \`config.log' for more details." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++rm -f core *.core gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext ++fi ++fi ++rm -f conftest.val ++else ++ ac_cv_sizeof_short=0 ++fi ++fi ++echo "$as_me:$LINENO: result: $ac_cv_sizeof_short" >&5 ++echo "${ECHO_T}$ac_cv_sizeof_short" >&6 ++cat >>confdefs.h <<_ACEOF ++#define SIZEOF_SHORT $ac_cv_sizeof_short ++_ACEOF ++ ++ ++echo "$as_me:$LINENO: checking for struct in6_addr" >&5 ++echo $ECHO_N "checking for struct in6_addr... $ECHO_C" >&6 ++if test "${ac_cv_type_struct_in6_addr+set}" = set; then ++ echo $ECHO_N "(cached) $ECHO_C" >&6 ++else ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++#ifdef WIN32 ++#include ++#else ++#include ++#include ++#include ++#endif ++#ifdef HAVE_NETINET_IN6_H ++#include ++#endif ++ ++int ++main () ++{ ++if ((struct in6_addr *) 0) ++ return 0; ++if (sizeof (struct in6_addr)) ++ return 0; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ ac_cv_type_struct_in6_addr=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++ac_cv_type_struct_in6_addr=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++echo "$as_me:$LINENO: result: $ac_cv_type_struct_in6_addr" >&5 ++echo "${ECHO_T}$ac_cv_type_struct_in6_addr" >&6 ++if test $ac_cv_type_struct_in6_addr = yes; then ++ ++cat >>confdefs.h <<_ACEOF ++#define HAVE_STRUCT_IN6_ADDR 1 ++_ACEOF ++ ++ ++fi ++ ++ ++echo "$as_me:$LINENO: checking for socklen_t" >&5 ++echo $ECHO_N "checking for socklen_t... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++ #include ++ #include ++int ++main () ++{ ++socklen_t x; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ ++cat >>confdefs.h <<\_ACEOF ++#define socklen_t unsigned int ++_ACEOF ++ ++ ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++echo "$as_me:$LINENO: checking whether our compiler supports __func__" >&5 ++echo $ECHO_N "checking whether our compiler supports __func__... $ECHO_C" >&6 ++cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ const char *cp = __func__; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ echo "$as_me:$LINENO: checking whether our compiler supports __FUNCTION__" >&5 ++echo $ECHO_N "checking whether our compiler supports __FUNCTION__... $ECHO_C" >&6 ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ const char *cp = __FUNCTION__; ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ echo "$as_me:$LINENO: result: yes" >&5 ++echo "${ECHO_T}yes" >&6 ++ ++cat >>confdefs.h <<\_ACEOF ++#define __func__ __FUNCTION__ ++_ACEOF ++ ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++echo "$as_me:$LINENO: result: no" >&5 ++echo "${ECHO_T}no" >&6 ++ ++cat >>confdefs.h <<\_ACEOF ++#define __func__ __FILE__ ++_ACEOF ++ ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++ ++# Add some more warnings which we use in development but not in the ++# released versions. (Some relevant gcc versions can't handle these.) ++if test x$enable_gcc_warnings = xyes; then ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++#if !defined(__GNUC__) || (__GNUC__ < 4) ++#error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ have_gcc4=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++have_gcc4=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++ cat >conftest.$ac_ext <<_ACEOF ++/* confdefs.h. */ ++_ACEOF ++cat confdefs.h >>conftest.$ac_ext ++cat >>conftest.$ac_ext <<_ACEOF ++/* end confdefs.h. */ ++ ++int ++main () ++{ ++ ++#if !defined(__GNUC__) || (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 2) ++#error ++#endif ++ ; ++ return 0; ++} ++_ACEOF ++rm -f conftest.$ac_objext ++if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 ++ (eval $ac_compile) 2>conftest.er1 ++ ac_status=$? ++ grep -v '^ *+' conftest.er1 >conftest.err ++ rm -f conftest.er1 ++ cat conftest.err >&5 ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); } && ++ { ac_try='test -z "$ac_c_werror_flag" ++ || test ! -s conftest.err' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; } && ++ { ac_try='test -s conftest.$ac_objext' ++ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5 ++ (eval $ac_try) 2>&5 ++ ac_status=$? ++ echo "$as_me:$LINENO: \$? = $ac_status" >&5 ++ (exit $ac_status); }; }; then ++ have_gcc42=yes ++else ++ echo "$as_me: failed program was:" >&5 ++sed 's/^/| /' conftest.$ac_ext >&5 ++ ++have_gcc42=no ++fi ++rm -f conftest.err conftest.$ac_objext conftest.$ac_ext ++ ++ CFLAGS="$CFLAGS -W -Wfloat-equal -Wundef -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wbad-function-cast -Wswitch-enum -Werror" ++ CFLAGS="$CFLAGS -Wno-unused-parameter -Wno-sign-compare -Wstrict-aliasing" ++ ++ if test x$have_gcc4 = xyes ; then ++ # These warnings break gcc 3.3.5 and work on gcc 4.0.2 ++ CFLAGS="$CFLAGS -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement" ++ #CFLAGS="$CFLAGS -Wold-style-definition" ++ fi ++ ++ if test x$have_gcc42 = xyes ; then ++ # These warnings break gcc 4.0.2 and work on gcc 4.2 ++ CFLAGS="$CFLAGS -Waddress -Wnormalized=id -Woverride-init" ++ fi ++ ++##This will break the world on some 64-bit architectures ++# CFLAGS="$CFLAGS -Winline" ++ ++fi ++ ++ ac_config_files="$ac_config_files Makefile" ++cat >confcache <<\_ACEOF ++# This file is a shell script that caches the results of configure ++# tests run on this system so they can be shared between configure ++# scripts and configure runs, see configure's option --config-cache. ++# It is not useful on other systems. If it contains results you don't ++# want to keep, you may remove or edit it. ++# ++# config.status only pays attention to the cache file if you give it ++# the --recheck option to rerun configure. ++# ++# `ac_cv_env_foo' variables (set or unset) will be overridden when ++# loading this file, other *unset* `ac_cv_foo' will be assigned the ++# following values. ++ ++_ACEOF ++ ++# The following way of writing the cache mishandles newlines in values, ++# but we know of no workaround that is simple, portable, and efficient. ++# So, don't put newlines in cache variables' values. ++# Ultrix sh set writes to stderr and can't be redirected directly, ++# and sets the high bit in the cache file unless we assign to the vars. ++{ ++ (set) 2>&1 | ++ case `(ac_space=' '; set | grep ac_space) 2>&1` in ++ *ac_space=\ *) ++ # `set' does not quote correctly, so add quotes (double-quote ++ # substitution turns \\\\ into \\, and sed turns \\ into \). ++ sed -n \ ++ "s/'/'\\\\''/g; ++ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" ++ ;; ++ *) ++ # `set' quotes correctly as required by POSIX, so do not add quotes. ++ sed -n \ ++ "s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1=\\2/p" ++ ;; ++ esac; ++} | ++ sed ' ++ t clear ++ : clear ++ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ ++ t end ++ /^ac_cv_env/!s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ ++ : end' >>confcache ++if diff $cache_file confcache >/dev/null 2>&1; then :; else ++ if test -w $cache_file; then ++ test "x$cache_file" != "x/dev/null" && echo "updating cache $cache_file" ++ cat confcache >$cache_file ++ else ++ echo "not updating unwritable cache $cache_file" ++ fi ++fi ++rm -f confcache ++ ++test "x$prefix" = xNONE && prefix=$ac_default_prefix ++# Let make expand exec_prefix. ++test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' ++ ++# VPATH may cause trouble with some makes, so we remove $(srcdir), ++# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and ++# trailing colons and then remove the whole line if VPATH becomes empty ++# (actually we leave an empty line to preserve line numbers). ++if test "x$srcdir" = x.; then ++ ac_vpsub='/^[ ]*VPATH[ ]*=/{ ++s/:*\$(srcdir):*/:/; ++s/:*\${srcdir}:*/:/; ++s/:*@srcdir@:*/:/; ++s/^\([^=]*=[ ]*\):*/\1/; ++s/:*$//; ++s/^[^=]*=[ ]*$//; ++}' ++fi ++ ++DEFS=-DHAVE_CONFIG_H ++ ++ac_libobjs= ++ac_ltlibobjs= ++for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue ++ # 1. Remove the extension, and $U if already installed. ++ ac_i=`echo "$ac_i" | ++ sed 's/\$U\././;s/\.o$//;s/\.obj$//'` ++ # 2. Add them. ++ ac_libobjs="$ac_libobjs $ac_i\$U.$ac_objext" ++ ac_ltlibobjs="$ac_ltlibobjs $ac_i"'$U.lo' ++done ++LIBOBJS=$ac_libobjs ++ ++LTLIBOBJS=$ac_ltlibobjs ++ ++ ++if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then ++ { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++echo "$as_me: error: conditional \"AMDEP\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then ++ { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++if test -z "${BUILD_WIN32_TRUE}" && test -z "${BUILD_WIN32_FALSE}"; then ++ { { echo "$as_me:$LINENO: error: conditional \"BUILD_WIN32\" was never defined. ++Usually this means the macro was only invoked conditionally." >&5 ++echo "$as_me: error: conditional \"BUILD_WIN32\" was never defined. ++Usually this means the macro was only invoked conditionally." >&2;} ++ { (exit 1); exit 1; }; } ++fi ++ ++: ${CONFIG_STATUS=./config.status} ++ac_clean_files_save=$ac_clean_files ++ac_clean_files="$ac_clean_files $CONFIG_STATUS" ++{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 ++echo "$as_me: creating $CONFIG_STATUS" >&6;} ++cat >$CONFIG_STATUS <<_ACEOF ++#! $SHELL ++# Generated by $as_me. ++# Run this file to recreate the current configuration. ++# Compiler output produced by configure, useful for debugging ++# configure, is in config.log if it exists. ++ ++debug=false ++ac_cs_recheck=false ++ac_cs_silent=false ++SHELL=\${CONFIG_SHELL-$SHELL} ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++## --------------------- ## ++## M4sh Initialization. ## ++## --------------------- ## ++ ++# Be 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+"$@"}'='"$@"' ++elif test -n "${BASH_VERSION+set}" && (set -o posix) >/dev/null 2>&1; then ++ set -o posix ++fi ++DUALCASE=1; export DUALCASE # for MKS sh ++ ++# Support unset when possible. ++if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then ++ as_unset=unset ++else ++ as_unset=false ++fi ++ ++ ++# Work around bugs in pre-3.0 UWIN ksh. ++$as_unset ENV MAIL MAILPATH ++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 -z "`(eval $as_var=C; export $as_var) 2>&1`"); then ++ eval $as_var=C; export $as_var ++ else ++ $as_unset $as_var ++ fi ++done ++ ++# Required to use basename. ++if expr a : '\(a\)' >/dev/null 2>&1; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++if (basename /) >/dev/null 2>&1 && test "X`basename / 2>&1`" = "X/"; then ++ as_basename=basename ++else ++ as_basename=false ++fi ++ ++ ++# Name of the executable. ++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'` ++ ++ ++# PATH needs CR, and LINENO needs CR and PATH. ++# 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 ++ ++# The user is always right. ++if test "${PATH_SEPARATOR+set}" != set; then ++ echo "#! /bin/sh" >conf$$.sh ++ echo "exit 0" >>conf$$.sh ++ chmod +x conf$$.sh ++ if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then ++ PATH_SEPARATOR=';' ++ else ++ PATH_SEPARATOR=: ++ fi ++ rm -f conf$$.sh ++fi ++ ++ ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x$as_lineno_3" = "x$as_lineno_2" || { ++ # Find who we are. Look in the path if we contain no path at all ++ # relative or not. ++ 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 ++ ++ ;; ++ 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 ++ { { echo "$as_me:$LINENO: error: cannot find myself; rerun with an absolute path" >&5 ++echo "$as_me: error: cannot find myself; rerun with an absolute path" >&2;} ++ { (exit 1); exit 1; }; } ++ fi ++ case $CONFIG_SHELL in ++ '') ++ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR ++for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH ++do ++ IFS=$as_save_IFS ++ test -z "$as_dir" && as_dir=. ++ for as_base in sh bash ksh sh5; do ++ case $as_dir in ++ /*) ++ if ("$as_dir/$as_base" -c ' ++ as_lineno_1=$LINENO ++ as_lineno_2=$LINENO ++ as_lineno_3=`(expr $as_lineno_1 + 1) 2>/dev/null` ++ test "x$as_lineno_1" != "x$as_lineno_2" && ++ test "x$as_lineno_3" = "x$as_lineno_2" ') 2>/dev/null; then ++ $as_unset BASH_ENV || test "${BASH_ENV+set}" != set || { BASH_ENV=; export BASH_ENV; } ++ $as_unset ENV || test "${ENV+set}" != set || { ENV=; export ENV; } ++ CONFIG_SHELL=$as_dir/$as_base ++ export CONFIG_SHELL ++ exec "$CONFIG_SHELL" "$0" ${1+"$@"} ++ fi;; ++ esac ++ done ++done ++;; ++ esac ++ ++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO ++ # uniformly replaced by the line number. The first 'sed' inserts a ++ # line-number line before each line; the second 'sed' does the real ++ # work. The second script uses 'N' to pair each line-number line ++ # with the numbered line, and appends trailing '-' during ++ # substitution so that $LINENO is not a special case at line end. ++ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the ++ # second 'sed' script. Blame Lee E. McMahon for sed's syntax. :-) ++ sed '=' <$as_myself | ++ sed ' ++ N ++ s,$,-, ++ : loop ++ s,^\(['$as_cr_digits']*\)\(.*\)[$]LINENO\([^'$as_cr_alnum'_]\),\1\2\1\3, ++ t loop ++ s,-$,, ++ s,^['$as_cr_digits']*\n,, ++ ' >$as_me.lineno && ++ chmod +x $as_me.lineno || ++ { { echo "$as_me:$LINENO: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&5 ++echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2;} ++ { (exit 1); exit 1; }; } ++ ++ # Don't try to exec as it changes $[0], causing all sort of problems ++ # (the dirname of $[0] is not the place where we might find the ++ # original and so on. Autoconf is especially sensible to this). ++ . ./$as_me.lineno ++ # Exit status is that of the last command. ++ exit ++} ++ ++ ++case `echo "testing\c"; echo 1,2,3`,`echo -n testing; echo 1,2,3` in ++ *c*,-n*) ECHO_N= ECHO_C=' ++' ECHO_T=' ' ;; ++ *c*,* ) ECHO_N=-n ECHO_C= ECHO_T= ;; ++ *) ECHO_N= ECHO_C='\c' ECHO_T= ;; ++esac ++ ++if expr a : '\(a\)' >/dev/null 2>&1; then ++ as_expr=expr ++else ++ as_expr=false ++fi ++ ++rm -f conf$$ conf$$.exe conf$$.file ++echo >conf$$.file ++if ln -s conf$$.file conf$$ 2>/dev/null; then ++ # We could just check for DJGPP; but this test a) works b) is more generic ++ # and c) will remain valid once DJGPP supports symlinks (DJGPP 2.04). ++ if test -f conf$$.exe; then ++ # Don't use ln at all; we don't have any links ++ as_ln_s='cp -p' ++ else ++ as_ln_s='ln -s' ++ fi ++elif ln conf$$.file conf$$ 2>/dev/null; then ++ as_ln_s=ln ++else ++ as_ln_s='cp -p' ++fi ++rm -f conf$$ conf$$.exe conf$$.file ++ ++if mkdir -p . 2>/dev/null; then ++ as_mkdir_p=: ++else ++ test -d ./-p && rmdir ./-p ++ as_mkdir_p=false ++fi ++ ++as_executable_p="test -f" ++ ++# Sed expression to map a string onto a valid CPP name. ++as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" ++ ++# Sed expression to map a string onto a valid variable name. ++as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" ++ ++ ++# IFS ++# We need space, tab and new line, in precisely that order. ++as_nl=' ++' ++IFS=" $as_nl" ++ ++# CDPATH. ++$as_unset CDPATH ++ ++exec 6>&1 ++ ++# Open the log real soon, to keep \$[0] and so on meaningful, and to ++# report actual input values of CONFIG_FILES etc. instead of their ++# values after options handling. Logging --version etc. is OK. ++exec 5>>config.log ++{ ++ echo ++ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX ++## Running $as_me. ## ++_ASBOX ++} >&5 ++cat >&5 <<_CSEOF ++ ++This file was extended by $as_me, which was ++generated by GNU Autoconf 2.59. Invocation command line was ++ ++ CONFIG_FILES = $CONFIG_FILES ++ CONFIG_HEADERS = $CONFIG_HEADERS ++ CONFIG_LINKS = $CONFIG_LINKS ++ CONFIG_COMMANDS = $CONFIG_COMMANDS ++ $ $0 $@ ++ ++_CSEOF ++echo "on `(hostname || uname -n) 2>/dev/null | sed 1q`" >&5 ++echo >&5 ++_ACEOF ++ ++# Files that config.status was made for. ++if test -n "$ac_config_files"; then ++ echo "config_files=\"$ac_config_files\"" >>$CONFIG_STATUS ++fi ++ ++if test -n "$ac_config_headers"; then ++ echo "config_headers=\"$ac_config_headers\"" >>$CONFIG_STATUS ++fi ++ ++if test -n "$ac_config_links"; then ++ echo "config_links=\"$ac_config_links\"" >>$CONFIG_STATUS ++fi ++ ++if test -n "$ac_config_commands"; then ++ echo "config_commands=\"$ac_config_commands\"" >>$CONFIG_STATUS ++fi ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++ ++ac_cs_usage="\ ++\`$as_me' instantiates files from templates according to the ++current configuration. ++ ++Usage: $0 [OPTIONS] [FILE]... ++ ++ -h, --help print this help, then exit ++ -V, --version print version number, then exit ++ -q, --quiet do not print progress messages ++ -d, --debug don't remove temporary files ++ --recheck update $as_me by reconfiguring in the same conditions ++ --file=FILE[:TEMPLATE] ++ instantiate the configuration file FILE ++ --header=FILE[:TEMPLATE] ++ instantiate the configuration header FILE ++ ++Configuration files: ++$config_files ++ ++Configuration headers: ++$config_headers ++ ++Configuration commands: ++$config_commands ++ ++Report bugs to ." ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<_ACEOF ++ac_cs_version="\\ ++config.status ++configured by $0, generated by GNU Autoconf 2.59, ++ with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\" ++ ++Copyright (C) 2003 Free Software Foundation, Inc. ++This config.status script is free software; the Free Software Foundation ++gives unlimited permission to copy, distribute and modify it." ++srcdir=$srcdir ++INSTALL="$INSTALL" ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++# If no file are specified by the user, then we need to provide default ++# value. By we need to know if files were specified by the user. ++ac_need_defaults=: ++while test $# != 0 ++do ++ case $1 in ++ --*=*) ++ ac_option=`expr "x$1" : 'x\([^=]*\)='` ++ ac_optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` ++ ac_shift=: ++ ;; ++ -*) ++ ac_option=$1 ++ ac_optarg=$2 ++ ac_shift=shift ++ ;; ++ *) # This is not an option, so the user has probably given explicit ++ # arguments. ++ ac_option=$1 ++ ac_need_defaults=false;; ++ esac ++ ++ case $ac_option in ++ # Handling of the options. ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF ++ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) ++ ac_cs_recheck=: ;; ++ --version | --vers* | -V ) ++ echo "$ac_cs_version"; exit 0 ;; ++ --he | --h) ++ # Conflict between --help and --header ++ { { echo "$as_me:$LINENO: error: ambiguous option: $1 ++Try \`$0 --help' for more information." >&5 ++echo "$as_me: error: ambiguous option: $1 ++Try \`$0 --help' for more information." >&2;} ++ { (exit 1); exit 1; }; };; ++ --help | --hel | -h ) ++ echo "$ac_cs_usage"; exit 0 ;; ++ --debug | --d* | -d ) ++ debug=: ;; ++ --file | --fil | --fi | --f ) ++ $ac_shift ++ CONFIG_FILES="$CONFIG_FILES $ac_optarg" ++ ac_need_defaults=false;; ++ --header | --heade | --head | --hea ) ++ $ac_shift ++ CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg" ++ ac_need_defaults=false;; ++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \ ++ | -silent | --silent | --silen | --sile | --sil | --si | --s) ++ ac_cs_silent=: ;; ++ ++ # This is an error. ++ -*) { { echo "$as_me:$LINENO: error: unrecognized option: $1 ++Try \`$0 --help' for more information." >&5 ++echo "$as_me: error: unrecognized option: $1 ++Try \`$0 --help' for more information." >&2;} ++ { (exit 1); exit 1; }; } ;; ++ ++ *) ac_config_targets="$ac_config_targets $1" ;; ++ ++ esac ++ shift ++done ++ ++ac_configure_extra_args= ++ ++if $ac_cs_silent; then ++ exec 6>/dev/null ++ ac_configure_extra_args="$ac_configure_extra_args --silent" ++fi ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF ++if \$ac_cs_recheck; then ++ echo "running $SHELL $0 " $ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6 ++ exec $SHELL $0 $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion ++fi ++ ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<_ACEOF ++# ++# INIT-COMMANDS section. ++# ++ ++AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" ++ ++_ACEOF ++ ++ ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++for ac_config_target in $ac_config_targets ++do ++ case "$ac_config_target" in ++ # Handling of arguments. ++ "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;; ++ "depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; ++ "config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; ++ *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 ++echo "$as_me: error: invalid argument: $ac_config_target" >&2;} ++ { (exit 1); exit 1; }; };; ++ esac ++done ++ ++# If the user did not use the arguments to specify the items to instantiate, ++# then the envvar interface is used. Set only those that are not. ++# We use the long form for the default assignment because of an extremely ++# bizarre bug on SunOS 4.1.3. ++if $ac_need_defaults; then ++ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files ++ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers ++ test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands ++fi ++ ++# Have a temporary directory for convenience. Make it in the build tree ++# simply because there is no reason to put it here, and in addition, ++# creating and moving files from /tmp can sometimes cause problems. ++# 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 ++} ++ ++# Create a (secure) tmp directory for tmp files. ++ ++{ ++ tmp=`(umask 077 && mktemp -d -q "./confstatXXXXXX") 2>/dev/null` && ++ test -n "$tmp" && test -d "$tmp" ++} || ++{ ++ tmp=./confstat$$-$RANDOM ++ (umask 077 && mkdir $tmp) ++} || ++{ ++ echo "$me: cannot create a temporary directory in ." >&2 ++ { (exit 1); exit 1; } ++} ++ ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<_ACEOF ++ ++# ++# CONFIG_FILES section. ++# ++ ++# No need to generate the scripts if there are no CONFIG_FILES. ++# This happens for instance when ./config.status config.h ++if test -n "\$CONFIG_FILES"; then ++ # Protect against being on the right side of a sed subst in config.status. ++ sed 's/,@/@@/; s/@,/@@/; s/,;t t\$/@;t t/; /@;t t\$/s/[\\\\&,]/\\\\&/g; ++ s/@@/,@/; s/@@/@,/; s/@;t t\$/,;t t/' >\$tmp/subs.sed <<\\CEOF ++s,@SHELL@,$SHELL,;t t ++s,@PATH_SEPARATOR@,$PATH_SEPARATOR,;t t ++s,@PACKAGE_NAME@,$PACKAGE_NAME,;t t ++s,@PACKAGE_TARNAME@,$PACKAGE_TARNAME,;t t ++s,@PACKAGE_VERSION@,$PACKAGE_VERSION,;t t ++s,@PACKAGE_STRING@,$PACKAGE_STRING,;t t ++s,@PACKAGE_BUGREPORT@,$PACKAGE_BUGREPORT,;t t ++s,@exec_prefix@,$exec_prefix,;t t ++s,@prefix@,$prefix,;t t ++s,@program_transform_name@,$program_transform_name,;t t ++s,@bindir@,$bindir,;t t ++s,@sbindir@,$sbindir,;t t ++s,@libexecdir@,$libexecdir,;t t ++s,@datadir@,$datadir,;t t ++s,@sysconfdir@,$sysconfdir,;t t ++s,@sharedstatedir@,$sharedstatedir,;t t ++s,@localstatedir@,$localstatedir,;t t ++s,@libdir@,$libdir,;t t ++s,@includedir@,$includedir,;t t ++s,@oldincludedir@,$oldincludedir,;t t ++s,@infodir@,$infodir,;t t ++s,@mandir@,$mandir,;t t ++s,@build_alias@,$build_alias,;t t ++s,@host_alias@,$host_alias,;t t ++s,@target_alias@,$target_alias,;t t ++s,@DEFS@,$DEFS,;t t ++s,@ECHO_C@,$ECHO_C,;t t ++s,@ECHO_N@,$ECHO_N,;t t ++s,@ECHO_T@,$ECHO_T,;t t ++s,@LIBS@,$LIBS,;t t ++s,@INSTALL_PROGRAM@,$INSTALL_PROGRAM,;t t ++s,@INSTALL_SCRIPT@,$INSTALL_SCRIPT,;t t ++s,@INSTALL_DATA@,$INSTALL_DATA,;t t ++s,@CYGPATH_W@,$CYGPATH_W,;t t ++s,@PACKAGE@,$PACKAGE,;t t ++s,@VERSION@,$VERSION,;t t ++s,@ACLOCAL@,$ACLOCAL,;t t ++s,@AUTOCONF@,$AUTOCONF,;t t ++s,@AUTOMAKE@,$AUTOMAKE,;t t ++s,@AUTOHEADER@,$AUTOHEADER,;t t ++s,@MAKEINFO@,$MAKEINFO,;t t ++s,@install_sh@,$install_sh,;t t ++s,@STRIP@,$STRIP,;t t ++s,@ac_ct_STRIP@,$ac_ct_STRIP,;t t ++s,@INSTALL_STRIP_PROGRAM@,$INSTALL_STRIP_PROGRAM,;t t ++s,@mkdir_p@,$mkdir_p,;t t ++s,@AWK@,$AWK,;t t ++s,@SET_MAKE@,$SET_MAKE,;t t ++s,@am__leading_dot@,$am__leading_dot,;t t ++s,@AMTAR@,$AMTAR,;t t ++s,@am__tar@,$am__tar,;t t ++s,@am__untar@,$am__untar,;t t ++s,@CC@,$CC,;t t ++s,@CFLAGS@,$CFLAGS,;t t ++s,@LDFLAGS@,$LDFLAGS,;t t ++s,@CPPFLAGS@,$CPPFLAGS,;t t ++s,@ac_ct_CC@,$ac_ct_CC,;t t ++s,@EXEEXT@,$EXEEXT,;t t ++s,@OBJEXT@,$OBJEXT,;t t ++s,@DEPDIR@,$DEPDIR,;t t ++s,@am__include@,$am__include,;t t ++s,@am__quote@,$am__quote,;t t ++s,@AMDEP_TRUE@,$AMDEP_TRUE,;t t ++s,@AMDEP_FALSE@,$AMDEP_FALSE,;t t ++s,@AMDEPBACKSLASH@,$AMDEPBACKSLASH,;t t ++s,@CCDEPMODE@,$CCDEPMODE,;t t ++s,@am__fastdepCC_TRUE@,$am__fastdepCC_TRUE,;t t ++s,@am__fastdepCC_FALSE@,$am__fastdepCC_FALSE,;t t ++s,@LN_S@,$LN_S,;t t ++s,@CPP@,$CPP,;t t ++s,@EGREP@,$EGREP,;t t ++s,@RANLIB@,$RANLIB,;t t ++s,@ac_ct_RANLIB@,$ac_ct_RANLIB,;t t ++s,@BUILD_WIN32_TRUE@,$BUILD_WIN32_TRUE,;t t ++s,@BUILD_WIN32_FALSE@,$BUILD_WIN32_FALSE,;t t ++s,@LIBOBJS@,$LIBOBJS,;t t ++s,@LTLIBOBJS@,$LTLIBOBJS,;t t ++CEOF ++ ++_ACEOF ++ ++ cat >>$CONFIG_STATUS <<\_ACEOF ++ # Split the substitutions into bite-sized pieces for seds with ++ # small command number limits, like on Digital OSF/1 and HP-UX. ++ ac_max_sed_lines=48 ++ ac_sed_frag=1 # Number of current file. ++ ac_beg=1 # First line for current file. ++ ac_end=$ac_max_sed_lines # Line after last line for current file. ++ ac_more_lines=: ++ ac_sed_cmds= ++ while $ac_more_lines; do ++ if test $ac_beg -gt 1; then ++ sed "1,${ac_beg}d; ${ac_end}q" $tmp/subs.sed >$tmp/subs.frag ++ else ++ sed "${ac_end}q" $tmp/subs.sed >$tmp/subs.frag ++ fi ++ if test ! -s $tmp/subs.frag; then ++ ac_more_lines=false ++ else ++ # The purpose of the label and of the branching condition is to ++ # speed up the sed processing (if there are no `@' at all, there ++ # is no need to browse any of the substitutions). ++ # These are the two extra sed commands mentioned above. ++ (echo ':t ++ /@[a-zA-Z_][a-zA-Z_0-9]*@/!b' && cat $tmp/subs.frag) >$tmp/subs-$ac_sed_frag.sed ++ if test -z "$ac_sed_cmds"; then ++ ac_sed_cmds="sed -f $tmp/subs-$ac_sed_frag.sed" ++ else ++ ac_sed_cmds="$ac_sed_cmds | sed -f $tmp/subs-$ac_sed_frag.sed" ++ fi ++ ac_sed_frag=`expr $ac_sed_frag + 1` ++ ac_beg=$ac_end ++ ac_end=`expr $ac_end + $ac_max_sed_lines` ++ fi ++ done ++ if test -z "$ac_sed_cmds"; then ++ ac_sed_cmds=cat ++ fi ++fi # test -n "$CONFIG_FILES" ++ ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF ++for ac_file in : $CONFIG_FILES; do test "x$ac_file" = x: && continue ++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". ++ case $ac_file in ++ - | *:- | *:-:* ) # input from stdin ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ * ) ac_file_in=$ac_file.in ;; ++ esac ++ ++ # Compute @srcdir@, @top_srcdir@, and @INSTALL@ for subdirectories. ++ ac_dir=`(dirname "$ac_file") 2>/dev/null || ++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$ac_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 "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$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'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } ++ ++ ac_builddir=. ++ ++if test "$ac_dir" != .; then ++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` ++ # A "../" for each directory in $ac_dir_suffix. ++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` ++else ++ ac_dir_suffix= ac_top_builddir= ++fi ++ ++case $srcdir in ++ .) # No --srcdir option. We are building in place. ++ ac_srcdir=. ++ if test -z "$ac_top_builddir"; then ++ ac_top_srcdir=. ++ else ++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` ++ fi ;; ++ [\\/]* | ?:[\\/]* ) # Absolute path. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ;; ++ *) # Relative path. ++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_builddir$srcdir ;; ++esac ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac ++ ++ ++ case $INSTALL in ++ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; ++ *) ac_INSTALL=$ac_top_builddir$INSTALL ;; ++ esac ++ ++ if test x"$ac_file" != x-; then ++ { echo "$as_me:$LINENO: creating $ac_file" >&5 ++echo "$as_me: creating $ac_file" >&6;} ++ rm -f "$ac_file" ++ fi ++ # Let's still pretend it is `configure' which instantiates (i.e., don't ++ # use $as_me), people would be surprised to read: ++ # /* config.h. Generated by config.status. */ ++ if test x"$ac_file" = x-; then ++ configure_input= ++ else ++ configure_input="$ac_file. " ++ fi ++ configure_input=$configure_input"Generated from `echo $ac_file_in | ++ sed 's,.*/,,'` by configure." ++ ++ # First look for the input files in the build tree, otherwise in the ++ # src tree. ++ ac_file_inputs=`IFS=: ++ for f in $ac_file_in; do ++ case $f in ++ -) echo $tmp/stdin ;; ++ [\\/$]*) ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++echo "$as_me: error: cannot find input file: $f" >&2;} ++ { (exit 1); exit 1; }; } ++ echo "$f";; ++ *) # Relative ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++echo "$as_me: error: cannot find input file: $f" >&2;} ++ { (exit 1); exit 1; }; } ++ fi;; ++ esac ++ done` || { (exit 1); exit 1; } ++_ACEOF ++cat >>$CONFIG_STATUS <<_ACEOF ++ sed "$ac_vpsub ++$extrasub ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF ++:t ++/@[a-zA-Z_][a-zA-Z_0-9]*@/!b ++s,@configure_input@,$configure_input,;t t ++s,@srcdir@,$ac_srcdir,;t t ++s,@abs_srcdir@,$ac_abs_srcdir,;t t ++s,@top_srcdir@,$ac_top_srcdir,;t t ++s,@abs_top_srcdir@,$ac_abs_top_srcdir,;t t ++s,@builddir@,$ac_builddir,;t t ++s,@abs_builddir@,$ac_abs_builddir,;t t ++s,@top_builddir@,$ac_top_builddir,;t t ++s,@abs_top_builddir@,$ac_abs_top_builddir,;t t ++s,@INSTALL@,$ac_INSTALL,;t t ++" $ac_file_inputs | (eval "$ac_sed_cmds") >$tmp/out ++ rm -f $tmp/stdin ++ if test x"$ac_file" != x-; then ++ mv $tmp/out $ac_file ++ else ++ cat $tmp/out ++ rm -f $tmp/out ++ fi ++ ++done ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF ++ ++# ++# CONFIG_HEADER section. ++# ++ ++# These sed commands are passed to sed as "A NAME B NAME C VALUE D", where ++# NAME is the cpp macro being defined and VALUE is the value it is being given. ++# ++# ac_d sets the value in "#define NAME VALUE" lines. ++ac_dA='s,^\([ ]*\)#\([ ]*define[ ][ ]*\)' ++ac_dB='[ ].*$,\1#\2' ++ac_dC=' ' ++ac_dD=',;t' ++# ac_u turns "#undef NAME" without trailing blanks into "#define NAME VALUE". ++ac_uA='s,^\([ ]*\)#\([ ]*\)undef\([ ][ ]*\)' ++ac_uB='$,\1#\2define\3' ++ac_uC=' ' ++ac_uD=',;t' ++ ++for ac_file in : $CONFIG_HEADERS; do test "x$ac_file" = x: && continue ++ # Support "outfile[:infile[:infile...]]", defaulting infile="outfile.in". ++ case $ac_file in ++ - | *:- | *:-:* ) # input from stdin ++ cat >$tmp/stdin ++ ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ *:* ) ac_file_in=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_file=`echo "$ac_file" | sed 's,:.*,,'` ;; ++ * ) ac_file_in=$ac_file.in ;; ++ esac ++ ++ test x"$ac_file" != x- && { echo "$as_me:$LINENO: creating $ac_file" >&5 ++echo "$as_me: creating $ac_file" >&6;} ++ ++ # First look for the input files in the build tree, otherwise in the ++ # src tree. ++ ac_file_inputs=`IFS=: ++ for f in $ac_file_in; do ++ case $f in ++ -) echo $tmp/stdin ;; ++ [\\/$]*) ++ # Absolute (can't be DOS-style, as IFS=:) ++ test -f "$f" || { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++echo "$as_me: error: cannot find input file: $f" >&2;} ++ { (exit 1); exit 1; }; } ++ # Do quote $f, to prevent DOS paths from being IFS'd. ++ echo "$f";; ++ *) # Relative ++ if test -f "$f"; then ++ # Build tree ++ echo "$f" ++ elif test -f "$srcdir/$f"; then ++ # Source tree ++ echo "$srcdir/$f" ++ else ++ # /dev/null tree ++ { { echo "$as_me:$LINENO: error: cannot find input file: $f" >&5 ++echo "$as_me: error: cannot find input file: $f" >&2;} ++ { (exit 1); exit 1; }; } ++ fi;; ++ esac ++ done` || { (exit 1); exit 1; } ++ # Remove the trailing spaces. ++ sed 's/[ ]*$//' $ac_file_inputs >$tmp/in ++ ++_ACEOF ++ ++# Transform confdefs.h into two sed scripts, `conftest.defines' and ++# `conftest.undefs', that substitutes the proper values into ++# config.h.in to produce config.h. The first handles `#define' ++# templates, and the second `#undef' templates. ++# And first: Protect against being on the right side of a sed subst in ++# config.status. Protect against being in an unquoted here document ++# in config.status. ++rm -f conftest.defines conftest.undefs ++# Using a here document instead of a string reduces the quoting nightmare. ++# Putting comments in sed scripts is not portable. ++# ++# `end' is used to avoid that the second main sed command (meant for ++# 0-ary CPP macros) applies to n-ary macro definitions. ++# See the Autoconf documentation for `clear'. ++cat >confdef2sed.sed <<\_ACEOF ++s/[\\&,]/\\&/g ++s,[\\$`],\\&,g ++t clear ++: clear ++s,^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*\)\(([^)]*)\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1\2${ac_dC}\3${ac_dD},gp ++t end ++s,^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)$,${ac_dA}\1${ac_dB}\1${ac_dC}\2${ac_dD},gp ++: end ++_ACEOF ++# If some macros were called several times there might be several times ++# the same #defines, which is useless. Nevertheless, we may not want to ++# sort them, since we want the *last* AC-DEFINE to be honored. ++uniq confdefs.h | sed -n -f confdef2sed.sed >conftest.defines ++sed 's/ac_d/ac_u/g' conftest.defines >conftest.undefs ++rm -f confdef2sed.sed ++ ++# This sed command replaces #undef with comments. This is necessary, for ++# example, in the case of _POSIX_SOURCE, which is predefined and required ++# on some systems where configure will not decide to define it. ++cat >>conftest.undefs <<\_ACEOF ++s,^[ ]*#[ ]*undef[ ][ ]*[a-zA-Z_][a-zA-Z_0-9]*,/* & */, ++_ACEOF ++ ++# Break up conftest.defines because some shells have a limit on the size ++# of here documents, and old seds have small limits too (100 cmds). ++echo ' # Handle all the #define templates only if necessary.' >>$CONFIG_STATUS ++echo ' if grep "^[ ]*#[ ]*define" $tmp/in >/dev/null; then' >>$CONFIG_STATUS ++echo ' # If there are no defines, we may have an empty if/fi' >>$CONFIG_STATUS ++echo ' :' >>$CONFIG_STATUS ++rm -f conftest.tail ++while grep . conftest.defines >/dev/null ++do ++ # Write a limited-size here document to $tmp/defines.sed. ++ echo ' cat >$tmp/defines.sed <>$CONFIG_STATUS ++ # Speed up: don't consider the non `#define' lines. ++ echo '/^[ ]*#[ ]*define/!b' >>$CONFIG_STATUS ++ # Work around the forget-to-reset-the-flag bug. ++ echo 't clr' >>$CONFIG_STATUS ++ echo ': clr' >>$CONFIG_STATUS ++ sed ${ac_max_here_lines}q conftest.defines >>$CONFIG_STATUS ++ echo 'CEOF ++ sed -f $tmp/defines.sed $tmp/in >$tmp/out ++ rm -f $tmp/in ++ mv $tmp/out $tmp/in ++' >>$CONFIG_STATUS ++ sed 1,${ac_max_here_lines}d conftest.defines >conftest.tail ++ rm -f conftest.defines ++ mv conftest.tail conftest.defines ++done ++rm -f conftest.defines ++echo ' fi # grep' >>$CONFIG_STATUS ++echo >>$CONFIG_STATUS ++ ++# Break up conftest.undefs because some shells have a limit on the size ++# of here documents, and old seds have small limits too (100 cmds). ++echo ' # Handle all the #undef templates' >>$CONFIG_STATUS ++rm -f conftest.tail ++while grep . conftest.undefs >/dev/null ++do ++ # Write a limited-size here document to $tmp/undefs.sed. ++ echo ' cat >$tmp/undefs.sed <>$CONFIG_STATUS ++ # Speed up: don't consider the non `#undef' ++ echo '/^[ ]*#[ ]*undef/!b' >>$CONFIG_STATUS ++ # Work around the forget-to-reset-the-flag bug. ++ echo 't clr' >>$CONFIG_STATUS ++ echo ': clr' >>$CONFIG_STATUS ++ sed ${ac_max_here_lines}q conftest.undefs >>$CONFIG_STATUS ++ echo 'CEOF ++ sed -f $tmp/undefs.sed $tmp/in >$tmp/out ++ rm -f $tmp/in ++ mv $tmp/out $tmp/in ++' >>$CONFIG_STATUS ++ sed 1,${ac_max_here_lines}d conftest.undefs >conftest.tail ++ rm -f conftest.undefs ++ mv conftest.tail conftest.undefs ++done ++rm -f conftest.undefs ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++ # Let's still pretend it is `configure' which instantiates (i.e., don't ++ # use $as_me), people would be surprised to read: ++ # /* config.h. Generated by config.status. */ ++ if test x"$ac_file" = x-; then ++ echo "/* Generated by configure. */" >$tmp/config.h ++ else ++ echo "/* $ac_file. Generated by configure. */" >$tmp/config.h ++ fi ++ cat $tmp/in >>$tmp/config.h ++ rm -f $tmp/in ++ if test x"$ac_file" != x-; then ++ if diff $ac_file $tmp/config.h >/dev/null 2>&1; then ++ { echo "$as_me:$LINENO: $ac_file is unchanged" >&5 ++echo "$as_me: $ac_file is unchanged" >&6;} ++ else ++ ac_dir=`(dirname "$ac_file") 2>/dev/null || ++$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$ac_file" : 'X\(//\)[^/]' \| \ ++ X"$ac_file" : 'X\(//\)$' \| \ ++ X"$ac_file" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$ac_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 "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$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'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } ++ ++ rm -f $ac_file ++ mv $tmp/config.h $ac_file ++ fi ++ else ++ cat $tmp/config.h ++ rm -f $tmp/config.h ++ fi ++# Compute $ac_file's index in $config_headers. ++_am_stamp_count=1 ++for _am_header in $config_headers :; do ++ case $_am_header in ++ $ac_file | $ac_file:* ) ++ break ;; ++ * ) ++ _am_stamp_count=`expr $_am_stamp_count + 1` ;; ++ esac ++done ++echo "timestamp for $ac_file" >`(dirname $ac_file) 2>/dev/null || ++$as_expr X$ac_file : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X$ac_file : 'X\(//\)[^/]' \| \ ++ X$ac_file : 'X\(//\)$' \| \ ++ X$ac_file : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X$ac_file | ++ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ s//\1/; q; } ++ /^X\(\/\/\)[^/].*/{ s//\1/; q; } ++ /^X\(\/\/\)$/{ s//\1/; q; } ++ /^X\(\/\).*/{ s//\1/; q; } ++ s/.*/./; q'`/stamp-h$_am_stamp_count ++done ++_ACEOF ++cat >>$CONFIG_STATUS <<\_ACEOF ++ ++# ++# CONFIG_COMMANDS section. ++# ++for ac_file in : $CONFIG_COMMANDS; do test "x$ac_file" = x: && continue ++ ac_dest=`echo "$ac_file" | sed 's,:.*,,'` ++ ac_source=`echo "$ac_file" | sed 's,[^:]*:,,'` ++ ac_dir=`(dirname "$ac_dest") 2>/dev/null || ++$as_expr X"$ac_dest" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$ac_dest" : 'X\(//\)[^/]' \| \ ++ X"$ac_dest" : 'X\(//\)$' \| \ ++ X"$ac_dest" : 'X\(/\)' \| \ ++ . : '\(.\)' 2>/dev/null || ++echo X"$ac_dest" | ++ 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 "$ac_dir" ++ else ++ as_dir="$ac_dir" ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$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'` ++ done ++ test ! -n "$as_dirs" || mkdir $as_dirs ++ fi || { { echo "$as_me:$LINENO: error: cannot create directory \"$ac_dir\"" >&5 ++echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;} ++ { (exit 1); exit 1; }; }; } ++ ++ ac_builddir=. ++ ++if test "$ac_dir" != .; then ++ ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'` ++ # A "../" for each directory in $ac_dir_suffix. ++ ac_top_builddir=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,../,g'` ++else ++ ac_dir_suffix= ac_top_builddir= ++fi ++ ++case $srcdir in ++ .) # No --srcdir option. We are building in place. ++ ac_srcdir=. ++ if test -z "$ac_top_builddir"; then ++ ac_top_srcdir=. ++ else ++ ac_top_srcdir=`echo $ac_top_builddir | sed 's,/$,,'` ++ fi ;; ++ [\\/]* | ?:[\\/]* ) # Absolute path. ++ ac_srcdir=$srcdir$ac_dir_suffix; ++ ac_top_srcdir=$srcdir ;; ++ *) # Relative path. ++ ac_srcdir=$ac_top_builddir$srcdir$ac_dir_suffix ++ ac_top_srcdir=$ac_top_builddir$srcdir ;; ++esac ++ ++# Do not use `cd foo && pwd` to compute absolute paths, because ++# the directories may not exist. ++case `pwd` in ++.) ac_abs_builddir="$ac_dir";; ++*) ++ case "$ac_dir" in ++ .) ac_abs_builddir=`pwd`;; ++ [\\/]* | ?:[\\/]* ) ac_abs_builddir="$ac_dir";; ++ *) ac_abs_builddir=`pwd`/"$ac_dir";; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_builddir=${ac_top_builddir}.;; ++*) ++ case ${ac_top_builddir}. in ++ .) ac_abs_top_builddir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_builddir=${ac_top_builddir}.;; ++ *) ac_abs_top_builddir=$ac_abs_builddir/${ac_top_builddir}.;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_srcdir=$ac_srcdir;; ++*) ++ case $ac_srcdir in ++ .) ac_abs_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_srcdir=$ac_srcdir;; ++ *) ac_abs_srcdir=$ac_abs_builddir/$ac_srcdir;; ++ esac;; ++esac ++case $ac_abs_builddir in ++.) ac_abs_top_srcdir=$ac_top_srcdir;; ++*) ++ case $ac_top_srcdir in ++ .) ac_abs_top_srcdir=$ac_abs_builddir;; ++ [\\/]* | ?:[\\/]* ) ac_abs_top_srcdir=$ac_top_srcdir;; ++ *) ac_abs_top_srcdir=$ac_abs_builddir/$ac_top_srcdir;; ++ esac;; ++esac ++ ++ ++ { echo "$as_me:$LINENO: executing $ac_dest commands" >&5 ++echo "$as_me: executing $ac_dest commands" >&6;} ++ case $ac_dest in ++ depfiles ) test x"$AMDEP_TRUE" != x"" || for mf in $CONFIG_FILES; do ++ # Strip MF so we end up with the name of the file. ++ mf=`echo "$mf" | sed -e 's/:.*$//'` ++ # Check whether this is an Automake generated Makefile or not. ++ # We used to match only the files named `Makefile.in', but ++ # some people rename them; so instead we look at the file content. ++ # Grep'ing the first line is not enough: some people post-process ++ # each Makefile.in and add a new line on top of each file to say so. ++ # So let's grep whole file. ++ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then ++ dirpart=`(dirname "$mf") 2>/dev/null || ++$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ ++ X"$mf" : 'X\(//\)[^/]' \| \ ++ X"$mf" : 'X\(//\)$' \| \ ++ 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'` ++ else ++ continue ++ fi ++ # 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 '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 || ++$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 ++ as_dirs= ++ while test ! -d "$as_dir"; do ++ as_dirs="$as_dir $as_dirs" ++ as_dir=`(dirname "$as_dir") 2>/dev/null || ++$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'` ++ 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;} ++ { (exit 1); exit 1; }; }; } ++ ++ # echo "creating $dirpart/$file" ++ echo '# dummy' > "$dirpart/$file" ++ done ++done ++ ;; ++ esac ++done ++_ACEOF ++ ++cat >>$CONFIG_STATUS <<\_ACEOF ++ ++{ (exit 0); exit 0; } ++_ACEOF ++chmod +x $CONFIG_STATUS ++ac_clean_files=$ac_clean_files_save ++ ++ ++# configure is writing to config.log, and then calls config.status. ++# config.status does its own redirection, appending to config.log. ++# Unfortunately, on DOS this fails, as config.log is still kept open ++# by configure, so config.status won't be able to write to it; its ++# output is simply discarded. So we exec the FD to /dev/null, ++# effectively closing config.log, so it can be properly (re)opened and ++# appended to by config.status. When coming back to configure, we ++# need to make the FD available again. ++if test "$no_create" != yes; then ++ ac_cs_success=: ++ ac_config_status_args= ++ test "$silent" = yes && ++ ac_config_status_args="$ac_config_status_args --quiet" ++ exec 5>/dev/null ++ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false ++ exec 5>>config.log ++ # Use ||, not &&, to avoid exiting from the if with $? = 1, which ++ # would make configure fail if this is the last instruction. ++ $ac_cs_success || { (exit 1); exit 1; } ++fi ++ +diff --git a/libevent/configure.in b/libevent/configure.in +new file mode 100644 +index 0000000..852d3c5 +--- /dev/null ++++ b/libevent/configure.in +@@ -0,0 +1,385 @@ ++dnl configure.in for libevent ++dnl Dug Song ++AC_INIT(event.c) ++ ++AM_INIT_AUTOMAKE(libevent,1.4.8-stable) ++AM_CONFIG_HEADER(config.h) ++dnl AM_MAINTAINER_MODE ++ ++dnl Initialize prefix. ++if test "$prefix" = "NONE"; then ++ prefix="/usr/local" ++fi ++ ++dnl Checks for programs. ++AC_PROG_CC ++AC_PROG_INSTALL ++AC_PROG_LN_S ++ ++AC_PROG_GCC_TRADITIONAL ++#if test "$GCC" = yes ; then ++# CFLAGS="$CFLAGS -Wall" ++#fi ++ ++AC_ARG_ENABLE(gcc-warnings, ++ AS_HELP_STRING(--enable-gcc-warnings, enable verbose warnings with GCC)) ++ ++AC_PROG_RANLIB ++ ++dnl Uncomment "AC_DISABLE_SHARED" to make shared librraries not get ++dnl built by default. You can also turn shared libs on and off from ++dnl the command line with --enable-shared and --disable-shared. ++dnl AC_DISABLE_SHARED ++dnl AC_SUBST(LIBTOOL_DEPS) ++ ++dnl Checks for libraries. ++AC_CHECK_LIB(socket, socket) ++AC_CHECK_LIB(resolv, inet_aton) ++AC_CHECK_LIB(rt, clock_gettime) ++AC_CHECK_LIB(nsl, inet_ntoa) ++ ++dnl Checks for header files. ++AC_HEADER_STDC ++AC_CHECK_HEADERS(fcntl.h stdarg.h inttypes.h stdint.h poll.h signal.h unistd.h sys/epoll.h sys/time.h sys/queue.h sys/event.h sys/param.h sys/ioctl.h sys/select.h sys/devpoll.h port.h netinet/in6.h sys/socket.h) ++if test "x$ac_cv_header_sys_queue_h" = "xyes"; then ++ AC_MSG_CHECKING(for TAILQ_FOREACH in sys/queue.h) ++ AC_EGREP_CPP(yes, ++[ ++#include ++#ifdef TAILQ_FOREACH ++ yes ++#endif ++], [AC_MSG_RESULT(yes) ++ AC_DEFINE(HAVE_TAILQFOREACH, 1, ++ [Define if TAILQ_FOREACH is defined in ])], ++ AC_MSG_RESULT(no) ++ ) ++fi ++ ++if test "x$ac_cv_header_sys_time_h" = "xyes"; then ++ AC_MSG_CHECKING(for timeradd in sys/time.h) ++ AC_EGREP_CPP(yes, ++[ ++#include ++#ifdef timeradd ++ yes ++#endif ++], [ AC_DEFINE(HAVE_TIMERADD, 1, ++ [Define if timeradd is defined in ]) ++ AC_MSG_RESULT(yes)] ,AC_MSG_RESULT(no) ++) ++fi ++ ++if test "x$ac_cv_header_sys_time_h" = "xyes"; then ++ AC_MSG_CHECKING(for timercmp in sys/time.h) ++ AC_EGREP_CPP(yes, ++[ ++#include ++#ifdef timercmp ++ yes ++#endif ++], [ AC_DEFINE(HAVE_TIMERCMP, 1, ++ [Define if timercmp is defined in ]) ++ AC_MSG_RESULT(yes)] ,AC_MSG_RESULT(no) ++) ++fi ++ ++if test "x$ac_cv_header_sys_time_h" = "xyes"; then ++ AC_MSG_CHECKING(for timerclear in sys/time.h) ++ AC_EGREP_CPP(yes, ++[ ++#include ++#ifdef timerclear ++ yes ++#endif ++], [ AC_DEFINE(HAVE_TIMERCLEAR, 1, ++ [Define if timerclear is defined in ]) ++ AC_MSG_RESULT(yes)] ,AC_MSG_RESULT(no) ++) ++fi ++ ++if test "x$ac_cv_header_sys_time_h" = "xyes"; then ++ AC_MSG_CHECKING(for timerisset in sys/time.h) ++ AC_EGREP_CPP(yes, ++[ ++#include ++#ifdef timerisset ++ yes ++#endif ++], [ AC_DEFINE(HAVE_TIMERISSET, 1, ++ [Define if timerisset is defined in ]) ++ AC_MSG_RESULT(yes)] ,AC_MSG_RESULT(no) ++) ++fi ++ ++dnl - check if the macro WIN32 is defined on this compiler. ++dnl - (this is how we check for a windows version of GCC) ++AC_MSG_CHECKING(for WIN32) ++AC_TRY_COMPILE(, ++ [ ++#ifndef WIN32 ++die horribly ++#endif ++ ], ++ bwin32=true; AC_MSG_RESULT(yes), ++ bwin32=false; AC_MSG_RESULT(no), ++) ++ ++AM_CONDITIONAL(BUILD_WIN32, test x$bwin32 = xtrue) ++ ++dnl Checks for typedefs, structures, and compiler characteristics. ++AC_C_CONST ++AC_C_INLINE ++AC_HEADER_TIME ++ ++dnl Checks for library functions. ++AC_CHECK_FUNCS(gettimeofday vasprintf fcntl clock_gettime strtok_r strsep getaddrinfo getnameinfo strlcpy inet_ntop signal sigaction strtoll) ++ ++AC_CHECK_SIZEOF(long) ++ ++if test "x$ac_cv_func_clock_gettime" = "xyes"; then ++ AC_DEFINE(DNS_USE_CPU_CLOCK_FOR_ID, 1, [Define if clock_gettime is available in libc]) ++else ++ AC_DEFINE(DNS_USE_GETTIMEOFDAY_FOR_ID, 1, [Define is no secure id variant is available]) ++fi ++ ++AC_MSG_CHECKING(for F_SETFD in fcntl.h) ++AC_EGREP_CPP(yes, ++[ ++#define _GNU_SOURCE ++#include ++#ifdef F_SETFD ++yes ++#endif ++], [ AC_DEFINE(HAVE_SETFD, 1, ++ [Define if F_SETFD is defined in ]) ++ AC_MSG_RESULT(yes) ], AC_MSG_RESULT(no)) ++ ++needsignal=no ++haveselect=no ++AC_CHECK_FUNCS(select, [haveselect=yes], ) ++if test "x$haveselect" = "xyes" ; then ++ AC_LIBOBJ(select) ++ needsignal=yes ++fi ++ ++havepoll=no ++AC_CHECK_FUNCS(poll, [havepoll=yes], ) ++if test "x$havepoll" = "xyes" ; then ++ AC_LIBOBJ(poll) ++ needsignal=yes ++fi ++ ++haveepoll=no ++AC_CHECK_FUNCS(epoll_ctl, [haveepoll=yes], ) ++if test "x$haveepoll" = "xyes" ; then ++ AC_DEFINE(HAVE_EPOLL, 1, ++ [Define if your system supports the epoll system calls]) ++ AC_LIBOBJ(epoll) ++ needsignal=yes ++fi ++ ++havedevpoll=no ++if test "x$ac_cv_header_sys_devpoll_h" = "xyes"; then ++ AC_DEFINE(HAVE_DEVPOLL, 1, ++ [Define if /dev/poll is available]) ++ AC_LIBOBJ(devpoll) ++fi ++ ++havekqueue=no ++if test "x$ac_cv_header_sys_event_h" = "xyes"; then ++ AC_CHECK_FUNCS(kqueue, [havekqueue=yes], ) ++ if test "x$havekqueue" = "xyes" ; then ++ AC_MSG_CHECKING(for working kqueue) ++ AC_TRY_RUN( ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++main(int argc, char **argv) ++{ ++ int kq; ++ int n; ++ int fd[[2]]; ++ struct kevent ev; ++ struct timespec ts; ++ char buf[[8000]]; ++ ++ if (pipe(fd) == -1) ++ exit(1); ++ if (fcntl(fd[[1]], F_SETFL, O_NONBLOCK) == -1) ++ exit(1); ++ ++ while ((n = write(fd[[1]], buf, sizeof(buf))) == sizeof(buf)) ++ ; ++ ++ if ((kq = kqueue()) == -1) ++ exit(1); ++ ++ ev.ident = fd[[1]]; ++ ev.filter = EVFILT_WRITE; ++ ev.flags = EV_ADD | EV_ENABLE; ++ n = kevent(kq, &ev, 1, NULL, 0, NULL); ++ if (n == -1) ++ exit(1); ++ ++ read(fd[[0]], buf, sizeof(buf)); ++ ++ ts.tv_sec = 0; ++ ts.tv_nsec = 0; ++ n = kevent(kq, NULL, 0, &ev, 1, &ts); ++ if (n == -1 || n == 0) ++ exit(1); ++ ++ exit(0); ++}, [AC_MSG_RESULT(yes) ++ AC_DEFINE(HAVE_WORKING_KQUEUE, 1, ++ [Define if kqueue works correctly with pipes]) ++ AC_LIBOBJ(kqueue)], AC_MSG_RESULT(no), AC_MSG_RESULT(no)) ++ fi ++fi ++ ++haveepollsyscall=no ++if test "x$ac_cv_header_sys_epoll_h" = "xyes"; then ++ if test "x$haveepoll" = "xno" ; then ++ AC_MSG_CHECKING(for epoll system call) ++ AC_TRY_RUN( ++#include ++#include ++#include ++#include ++#include ++#include ++ ++int ++epoll_create(int size) ++{ ++ return (syscall(__NR_epoll_create, size)); ++} ++ ++int ++main(int argc, char **argv) ++{ ++ int epfd; ++ ++ epfd = epoll_create(256); ++ exit (epfd == -1 ? 1 : 0); ++}, [AC_MSG_RESULT(yes) ++ AC_DEFINE(HAVE_EPOLL, 1, ++ [Define if your system supports the epoll system calls]) ++ needsignal=yes ++ AC_LIBOBJ(epoll_sub) ++ AC_LIBOBJ(epoll)], AC_MSG_RESULT(no), AC_MSG_RESULT(no)) ++ fi ++fi ++ ++haveeventports=no ++AC_CHECK_FUNCS(port_create, [haveeventports=yes], ) ++if test "x$haveeventports" = "xyes" ; then ++ AC_DEFINE(HAVE_EVENT_PORTS, 1, ++ [Define if your system supports event ports]) ++ AC_LIBOBJ(evport) ++ needsignal=yes ++fi ++if test "x$bwin32" = "xtrue"; then ++ needsignal=yes ++fi ++if test "x$bwin32" = "xtrue"; then ++ needsignal=yes ++fi ++if test "x$needsignal" = "xyes" ; then ++ AC_LIBOBJ(signal) ++fi ++ ++AC_TYPE_PID_T ++AC_TYPE_SIZE_T ++AC_CHECK_TYPES([uint64_t, uint32_t, uint16_t, uint8_t], , , ++[#ifdef HAVE_STDINT_H ++#include ++#elif defined(HAVE_INTTYPES_H) ++#include ++#endif ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif]) ++AC_CHECK_SIZEOF(long long) ++AC_CHECK_SIZEOF(long) ++AC_CHECK_SIZEOF(int) ++AC_CHECK_SIZEOF(short) ++AC_CHECK_TYPES([struct in6_addr], , , ++[#ifdef WIN32 ++#include ++#else ++#include ++#include ++#include ++#endif ++#ifdef HAVE_NETINET_IN6_H ++#include ++#endif]) ++ ++AC_MSG_CHECKING([for socklen_t]) ++AC_TRY_COMPILE([ ++ #include ++ #include ], ++ [socklen_t x;], ++ AC_MSG_RESULT([yes]), ++ [AC_MSG_RESULT([no]) ++ AC_DEFINE(socklen_t, unsigned int, ++ [Define to unsigned int if you dont have it])] ++) ++ ++AC_MSG_CHECKING([whether our compiler supports __func__]) ++AC_TRY_COMPILE([], ++ [ const char *cp = __func__; ], ++ AC_MSG_RESULT([yes]), ++ AC_MSG_RESULT([no]) ++ AC_MSG_CHECKING([whether our compiler supports __FUNCTION__]) ++ AC_TRY_COMPILE([], ++ [ const char *cp = __FUNCTION__; ], ++ AC_MSG_RESULT([yes]) ++ AC_DEFINE(__func__, __FUNCTION__, ++ [Define to appropriate substitue if compiler doesnt have __func__]), ++ AC_MSG_RESULT([no]) ++ AC_DEFINE(__func__, __FILE__, ++ [Define to appropriate substitue if compiler doesnt have __func__]))) ++ ++ ++# Add some more warnings which we use in development but not in the ++# released versions. (Some relevant gcc versions can't handle these.) ++if test x$enable_gcc_warnings = xyes; then ++ ++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM([], [ ++#if !defined(__GNUC__) || (__GNUC__ < 4) ++#error ++#endif]), have_gcc4=yes, have_gcc4=no) ++ ++ AC_COMPILE_IFELSE(AC_LANG_PROGRAM([], [ ++#if !defined(__GNUC__) || (__GNUC__ < 4) || (__GNUC__ == 4 && __GNUC_MINOR__ < 2) ++#error ++#endif]), have_gcc42=yes, have_gcc42=no) ++ ++ CFLAGS="$CFLAGS -W -Wfloat-equal -Wundef -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment -Wformat=2 -Wwrite-strings -Wmissing-declarations -Wredundant-decls -Wnested-externs -Wbad-function-cast -Wswitch-enum -Werror" ++ CFLAGS="$CFLAGS -Wno-unused-parameter -Wno-sign-compare -Wstrict-aliasing" ++ ++ if test x$have_gcc4 = xyes ; then ++ # These warnings break gcc 3.3.5 and work on gcc 4.0.2 ++ CFLAGS="$CFLAGS -Winit-self -Wmissing-field-initializers -Wdeclaration-after-statement" ++ #CFLAGS="$CFLAGS -Wold-style-definition" ++ fi ++ ++ if test x$have_gcc42 = xyes ; then ++ # These warnings break gcc 4.0.2 and work on gcc 4.2 ++ CFLAGS="$CFLAGS -Waddress -Wnormalized=id -Woverride-init" ++ fi ++ ++##This will break the world on some 64-bit architectures ++# CFLAGS="$CFLAGS -Winline" ++ ++fi ++ ++AC_OUTPUT(Makefile) +diff --git a/libevent/depcomp b/libevent/depcomp +new file mode 100644 +index 0000000..ffcd540 +--- /dev/null ++++ b/libevent/depcomp +@@ -0,0 +1,529 @@ ++#! /bin/sh ++# depcomp - compile a program generating dependencies as side-effects ++ ++scriptversion=2005-02-09.22 ++ ++# Copyright (C) 1999, 2000, 2003, 2004, 2005 Free Software Foundation, Inc. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++# 02111-1307, USA. ++ ++# As a special exception 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. ++ ++# Originally written by Alexandre Oliva . ++ ++case $1 in ++ '') ++ echo "$0: No command. Try \`$0 --help' for more information." 1>&2 ++ exit 1; ++ ;; ++ -h | --h*) ++ cat <<\EOF ++Usage: depcomp [--help] [--version] PROGRAM [ARGS] ++ ++Run PROGRAMS ARGS to compile a file, generating dependencies ++as side-effects. ++ ++Environment variables: ++ depmode Dependency tracking mode. ++ source Source file read by `PROGRAMS ARGS'. ++ object Object file output by `PROGRAMS ARGS'. ++ DEPDIR directory where to store dependencies. ++ depfile Dependency file to output. ++ tmpdepfile Temporary file to use when outputing dependencies. ++ libtool Whether libtool is used (yes/no). ++ ++Report bugs to . ++EOF ++ exit $? ++ ;; ++ -v | --v*) ++ echo "depcomp $scriptversion" ++ exit $? ++ ;; ++esac ++ ++if test -z "$depmode" || test -z "$source" || test -z "$object"; then ++ echo "depcomp: Variables source, object and depmode must be set" 1>&2 ++ exit 1 ++fi ++ ++# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. ++depfile=${depfile-`echo "$object" | ++ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} ++tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} ++ ++rm -f "$tmpdepfile" ++ ++# Some modes work just like other modes, but use different flags. We ++# parameterize here, but still list the modes in the big case below, ++# to make depend.m4 easier to write. Note that we *cannot* use a case ++# here, because this file can only contain one case statement. ++if test "$depmode" = hp; then ++ # HP compiler uses -M and no extra arg. ++ gccflag=-M ++ depmode=gcc ++fi ++ ++if test "$depmode" = dashXmstdout; then ++ # This is just like dashmstdout with a different argument. ++ dashmflag=-xM ++ depmode=dashmstdout ++fi ++ ++case "$depmode" in ++gcc3) ++## gcc 3 implements dependency tracking that does exactly what ++## we want. Yay! Note: for some reason libtool 1.4 doesn't like ++## it if -MD -MP comes after the -MF stuff. Hmm. ++ "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ mv "$tmpdepfile" "$depfile" ++ ;; ++ ++gcc) ++## There are various ways to get dependency output from gcc. Here's ++## why we pick this rather obscure method: ++## - Don't want to use -MD because we'd like the dependencies to end ++## up in a subdir. Having to rename by hand is ugly. ++## (We might end up doing this anyway to support other compilers.) ++## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like ++## -MM, not -M (despite what the docs say). ++## - Using -M directly means running the compiler twice (even worse ++## than renaming). ++ if test -z "$gccflag"; then ++ gccflag=-MD, ++ fi ++ "$@" -Wp,"$gccflag$tmpdepfile" ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ++## The second -e expression handles DOS-style file names with drive letters. ++ sed -e 's/^[^:]*: / /' \ ++ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" ++## This next piece of magic avoids the `deleted header file' problem. ++## The problem is that when a header file which appears in a .P file ++## is deleted, the dependency causes make to die (because there is ++## typically no way to rebuild the header). We avoid this by adding ++## dummy dependencies for each header file. Too bad gcc doesn't do ++## this for us directly. ++ tr ' ' ' ++' < "$tmpdepfile" | ++## Some versions of gcc put a space before the `:'. On the theory ++## that the space means something, we add a space to the output as ++## well. ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++hp) ++ # This case exists only to let depend.m4 do its work. It works by ++ # looking at the text of this script. This case will never be run, ++ # since it is checked for above. ++ exit 1 ++ ;; ++ ++sgi) ++ if test "$libtool" = yes; then ++ "$@" "-Wp,-MDupdate,$tmpdepfile" ++ else ++ "$@" -MDupdate "$tmpdepfile" ++ fi ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ ++ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files ++ echo "$object : \\" > "$depfile" ++ ++ # Clip off the initial element (the dependent). Don't try to be ++ # clever and replace this with sed code, as IRIX sed won't handle ++ # lines with more than a fixed number of characters (4096 in ++ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; ++ # the IRIX cc adds comments like `#:fec' to the end of the ++ # dependency line. ++ tr ' ' ' ++' < "$tmpdepfile" \ ++ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ ++ tr ' ++' ' ' >> $depfile ++ echo >> $depfile ++ ++ # The second pass generates a dummy entry for each header file. ++ tr ' ' ' ++' < "$tmpdepfile" \ ++ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ ++ >> $depfile ++ else ++ # The sourcefile does not contain any dependencies, so just ++ # store a dummy comment line, to avoid errors with the Makefile ++ # "include basename.Plo" scheme. ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++aix) ++ # The C for AIX Compiler uses -M and outputs the dependencies ++ # in a .u file. In older versions, this file always lives in the ++ # current directory. Also, the AIX compiler puts `$object:' at the ++ # start of each line; $object doesn't have directory information. ++ # Version 6 uses the directory in both cases. ++ stripped=`echo "$object" | sed 's/\(.*\)\..*$/\1/'` ++ tmpdepfile="$stripped.u" ++ if test "$libtool" = yes; then ++ "$@" -Wc,-M ++ else ++ "$@" -M ++ fi ++ stat=$? ++ ++ if test -f "$tmpdepfile"; then : ++ else ++ stripped=`echo "$stripped" | sed 's,^.*/,,'` ++ tmpdepfile="$stripped.u" ++ fi ++ ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ ++ if test -f "$tmpdepfile"; then ++ outname="$stripped.o" ++ # Each line is of the form `foo.o: dependent.h'. ++ # Do two passes, one to just change these to ++ # `$object: dependent.h' and one to simply `dependent.h:'. ++ sed -e "s,^$outname:,$object :," < "$tmpdepfile" > "$depfile" ++ sed -e "s,^$outname: \(.*\)$,\1:," < "$tmpdepfile" >> "$depfile" ++ else ++ # The sourcefile does not contain any dependencies, so just ++ # store a dummy comment line, to avoid errors with the Makefile ++ # "include basename.Plo" scheme. ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++icc) ++ # Intel's C compiler understands `-MD -MF file'. However on ++ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c ++ # ICC 7.0 will fill foo.d with something like ++ # foo.o: sub/foo.c ++ # foo.o: sub/foo.h ++ # which is wrong. We want: ++ # sub/foo.o: sub/foo.c ++ # sub/foo.o: sub/foo.h ++ # sub/foo.c: ++ # sub/foo.h: ++ # ICC 7.1 will output ++ # foo.o: sub/foo.c sub/foo.h ++ # and will wrap long lines using \ : ++ # foo.o: sub/foo.c ... \ ++ # sub/foo.h ... \ ++ # ... ++ ++ "$@" -MD -MF "$tmpdepfile" ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile" ++ exit $stat ++ fi ++ rm -f "$depfile" ++ # Each line is of the form `foo.o: dependent.h', ++ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. ++ # Do two passes, one to just change these to ++ # `$object: dependent.h' and one to simply `dependent.h:'. ++ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" ++ # Some versions of the HPUX 10.20 sed can't process this invocation ++ # correctly. Breaking it into two sed invocations is a workaround. ++ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | ++ sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++tru64) ++ # The Tru64 compiler uses -MD to generate dependencies as a side ++ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. ++ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put ++ # dependencies in `foo.d' instead, so we check for that too. ++ # Subdirectories are respected. ++ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` ++ test "x$dir" = "x$object" && dir= ++ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` ++ ++ if test "$libtool" = yes; then ++ # With Tru64 cc, shared objects can also be used to make a ++ # static library. This mecanism is used in libtool 1.4 series to ++ # handle both shared and static libraries in a single compilation. ++ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. ++ # ++ # With libtool 1.5 this exception was removed, and libtool now ++ # generates 2 separate objects for the 2 libraries. These two ++ # compilations output dependencies in in $dir.libs/$base.o.d and ++ # in $dir$base.o.d. We have to check for both files, because ++ # one of the two compilations can be disabled. We should prefer ++ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is ++ # automatically cleaned when .libs/ is deleted, while ignoring ++ # the former would cause a distcleancheck panic. ++ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 ++ tmpdepfile2=$dir$base.o.d # libtool 1.5 ++ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 ++ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 ++ "$@" -Wc,-MD ++ else ++ tmpdepfile1=$dir$base.o.d ++ tmpdepfile2=$dir$base.d ++ tmpdepfile3=$dir$base.d ++ tmpdepfile4=$dir$base.d ++ "$@" -MD ++ fi ++ ++ stat=$? ++ if test $stat -eq 0; then : ++ else ++ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" ++ exit $stat ++ fi ++ ++ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" ++ do ++ test -f "$tmpdepfile" && break ++ done ++ if test -f "$tmpdepfile"; then ++ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" ++ # That's a tab and a space in the []. ++ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" ++ else ++ echo "#dummy" > "$depfile" ++ fi ++ rm -f "$tmpdepfile" ++ ;; ++ ++#nosideeffect) ++ # This comment above is used by automake to tell side-effect ++ # dependency tracking mechanisms from slower ones. ++ ++dashmstdout) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the preprocessed file to stdout, regardless of -o. ++ "$@" || exit $? ++ ++ # Remove the call to Libtool. ++ if test "$libtool" = yes; then ++ while test $1 != '--mode=compile'; do ++ shift ++ done ++ shift ++ fi ++ ++ # Remove `-o $object'. ++ IFS=" " ++ for arg ++ do ++ case $arg in ++ -o) ++ shift ++ ;; ++ $object) ++ shift ++ ;; ++ *) ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # $arg ++ ;; ++ esac ++ done ++ ++ test -z "$dashmflag" && dashmflag=-M ++ # Require at least two characters before searching for `:' ++ # in the target name. This is to cope with DOS-style filenames: ++ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. ++ "$@" $dashmflag | ++ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" ++ rm -f "$depfile" ++ cat < "$tmpdepfile" > "$depfile" ++ tr ' ' ' ++' < "$tmpdepfile" | \ ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++dashXmstdout) ++ # This case only exists to satisfy depend.m4. It is never actually ++ # run, as this mode is specially recognized in the preamble. ++ exit 1 ++ ;; ++ ++makedepend) ++ "$@" || exit $? ++ # Remove any Libtool call ++ if test "$libtool" = yes; then ++ while test $1 != '--mode=compile'; do ++ shift ++ done ++ shift ++ fi ++ # X makedepend ++ shift ++ cleared=no ++ for arg in "$@"; do ++ case $cleared in ++ no) ++ set ""; shift ++ cleared=yes ;; ++ esac ++ case "$arg" in ++ -D*|-I*) ++ set fnord "$@" "$arg"; shift ;; ++ # Strip any option that makedepend may not understand. Remove ++ # the object too, otherwise makedepend will parse it as a source file. ++ -*|$object) ++ ;; ++ *) ++ set fnord "$@" "$arg"; shift ;; ++ esac ++ done ++ obj_suffix="`echo $object | sed 's/^.*\././'`" ++ touch "$tmpdepfile" ++ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" ++ rm -f "$depfile" ++ cat < "$tmpdepfile" > "$depfile" ++ sed '1,2d' "$tmpdepfile" | tr ' ' ' ++' | \ ++## Some versions of the HPUX 10.20 sed can't process this invocation ++## correctly. Breaking it into two sed invocations is a workaround. ++ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" "$tmpdepfile".bak ++ ;; ++ ++cpp) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the preprocessed file to stdout. ++ "$@" || exit $? ++ ++ # Remove the call to Libtool. ++ if test "$libtool" = yes; then ++ while test $1 != '--mode=compile'; do ++ shift ++ done ++ shift ++ fi ++ ++ # Remove `-o $object'. ++ IFS=" " ++ for arg ++ do ++ case $arg in ++ -o) ++ shift ++ ;; ++ $object) ++ shift ++ ;; ++ *) ++ set fnord "$@" "$arg" ++ shift # fnord ++ shift # $arg ++ ;; ++ esac ++ done ++ ++ "$@" -E | ++ sed -n '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | ++ sed '$ s: \\$::' > "$tmpdepfile" ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ cat < "$tmpdepfile" >> "$depfile" ++ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++msvisualcpp) ++ # Important note: in order to support this mode, a compiler *must* ++ # always write the preprocessed file to stdout, regardless of -o, ++ # because we must use -o when running libtool. ++ "$@" || exit $? ++ IFS=" " ++ for arg ++ do ++ case "$arg" in ++ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") ++ set fnord "$@" ++ shift ++ shift ++ ;; ++ *) ++ set fnord "$@" "$arg" ++ shift ++ shift ++ ;; ++ esac ++ done ++ "$@" -E | ++ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::echo "`cygpath -u \\"\1\\"`":p' | sort | uniq > "$tmpdepfile" ++ rm -f "$depfile" ++ echo "$object : \\" > "$depfile" ++ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" ++ echo " " >> "$depfile" ++ . "$tmpdepfile" | sed 's% %\\ %g' | sed -n '/^\(.*\)$/ s::\1\::p' >> "$depfile" ++ rm -f "$tmpdepfile" ++ ;; ++ ++none) ++ exec "$@" ++ ;; ++ ++*) ++ echo "Unknown depmode $depmode" 1>&2 ++ exit 1 ++ ;; ++esac ++ ++exit 0 ++ ++# Local Variables: ++# mode: shell-script ++# sh-indentation: 2 ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-end: "$" ++# End: +diff --git a/libevent/devpoll.c b/libevent/devpoll.c +new file mode 100644 +index 0000000..cbd2730 +--- /dev/null ++++ b/libevent/devpoll.c +@@ -0,0 +1,417 @@ ++/* ++ * Copyright 2000-2004 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#include ++#ifdef HAVE_SYS_TIME_H ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "event.h" ++#include "event-internal.h" ++#include "evsignal.h" ++#include "log.h" ++ ++/* due to limitations in the devpoll interface, we need to keep track of ++ * all file descriptors outself. ++ */ ++struct evdevpoll { ++ struct event *evread; ++ struct event *evwrite; ++}; ++ ++struct devpollop { ++ struct evdevpoll *fds; ++ int nfds; ++ struct pollfd *events; ++ int nevents; ++ int dpfd; ++ struct pollfd *changes; ++ int nchanges; ++}; ++ ++static void *devpoll_init (struct event_base *); ++static int devpoll_add (void *, struct event *); ++static int devpoll_del (void *, struct event *); ++static int devpoll_dispatch (struct event_base *, void *, struct timeval *); ++static void devpoll_dealloc (struct event_base *, void *); ++ ++const struct eventop devpollops = { ++ "devpoll", ++ devpoll_init, ++ devpoll_add, ++ devpoll_del, ++ devpoll_dispatch, ++ devpoll_dealloc, ++ 1 /* need reinit */ ++}; ++ ++#define NEVENT 32000 ++ ++static int ++devpoll_commit(struct devpollop *devpollop) ++{ ++ /* ++ * Due to a bug in Solaris, we have to use pwrite with an offset of 0. ++ * Write is limited to 2GB of data, until it will fail. ++ */ ++ if (pwrite(devpollop->dpfd, devpollop->changes, ++ sizeof(struct pollfd) * devpollop->nchanges, 0) == -1) ++ return(-1); ++ ++ devpollop->nchanges = 0; ++ return(0); ++} ++ ++static int ++devpoll_queue(struct devpollop *devpollop, int fd, int events) { ++ struct pollfd *pfd; ++ ++ if (devpollop->nchanges >= devpollop->nevents) { ++ /* ++ * Change buffer is full, must commit it to /dev/poll before ++ * adding more ++ */ ++ if (devpoll_commit(devpollop) != 0) ++ return(-1); ++ } ++ ++ pfd = &devpollop->changes[devpollop->nchanges++]; ++ pfd->fd = fd; ++ pfd->events = events; ++ pfd->revents = 0; ++ ++ return(0); ++} ++ ++static void * ++devpoll_init(struct event_base *base) ++{ ++ int dpfd, nfiles = NEVENT; ++ struct rlimit rl; ++ struct devpollop *devpollop; ++ ++ /* Disable devpoll when this environment variable is set */ ++ if (getenv("EVENT_NODEVPOLL")) ++ return (NULL); ++ ++ if (!(devpollop = calloc(1, sizeof(struct devpollop)))) ++ return (NULL); ++ ++ if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && ++ rl.rlim_cur != RLIM_INFINITY) ++ nfiles = rl.rlim_cur; ++ ++ /* Initialize the kernel queue */ ++ if ((dpfd = open("/dev/poll", O_RDWR)) == -1) { ++ event_warn("open: /dev/poll"); ++ free(devpollop); ++ return (NULL); ++ } ++ ++ devpollop->dpfd = dpfd; ++ ++ /* Initialize fields */ ++ devpollop->events = calloc(nfiles, sizeof(struct pollfd)); ++ if (devpollop->events == NULL) { ++ free(devpollop); ++ close(dpfd); ++ return (NULL); ++ } ++ devpollop->nevents = nfiles; ++ ++ devpollop->fds = calloc(nfiles, sizeof(struct evdevpoll)); ++ if (devpollop->fds == NULL) { ++ free(devpollop->events); ++ free(devpollop); ++ close(dpfd); ++ return (NULL); ++ } ++ devpollop->nfds = nfiles; ++ ++ devpollop->changes = calloc(nfiles, sizeof(struct pollfd)); ++ if (devpollop->changes == NULL) { ++ free(devpollop->fds); ++ free(devpollop->events); ++ free(devpollop); ++ close(dpfd); ++ return (NULL); ++ } ++ ++ evsignal_init(base); ++ ++ return (devpollop); ++} ++ ++static int ++devpoll_recalc(struct event_base *base, void *arg, int max) ++{ ++ struct devpollop *devpollop = arg; ++ ++ if (max >= devpollop->nfds) { ++ struct evdevpoll *fds; ++ int nfds; ++ ++ nfds = devpollop->nfds; ++ while (nfds <= max) ++ nfds <<= 1; ++ ++ fds = realloc(devpollop->fds, nfds * sizeof(struct evdevpoll)); ++ if (fds == NULL) { ++ event_warn("realloc"); ++ return (-1); ++ } ++ devpollop->fds = fds; ++ memset(fds + devpollop->nfds, 0, ++ (nfds - devpollop->nfds) * sizeof(struct evdevpoll)); ++ devpollop->nfds = nfds; ++ } ++ ++ return (0); ++} ++ ++static int ++devpoll_dispatch(struct event_base *base, void *arg, struct timeval *tv) ++{ ++ struct devpollop *devpollop = arg; ++ struct pollfd *events = devpollop->events; ++ struct dvpoll dvp; ++ struct evdevpoll *evdp; ++ int i, res, timeout = -1; ++ ++ if (devpollop->nchanges) ++ devpoll_commit(devpollop); ++ ++ if (tv != NULL) ++ timeout = tv->tv_sec * 1000 + (tv->tv_usec + 999) / 1000; ++ ++ dvp.dp_fds = devpollop->events; ++ dvp.dp_nfds = devpollop->nevents; ++ dvp.dp_timeout = timeout; ++ ++ res = ioctl(devpollop->dpfd, DP_POLL, &dvp); ++ ++ if (res == -1) { ++ if (errno != EINTR) { ++ event_warn("ioctl: DP_POLL"); ++ return (-1); ++ } ++ ++ evsignal_process(base); ++ return (0); ++ } else if (base->sig.evsignal_caught) { ++ evsignal_process(base); ++ } ++ ++ event_debug(("%s: devpoll_wait reports %d", __func__, res)); ++ ++ for (i = 0; i < res; i++) { ++ int which = 0; ++ int what = events[i].revents; ++ struct event *evread = NULL, *evwrite = NULL; ++ ++ assert(events[i].fd < devpollop->nfds); ++ evdp = &devpollop->fds[events[i].fd]; ++ ++ if (what & POLLHUP) ++ what |= POLLIN | POLLOUT; ++ else if (what & POLLERR) ++ what |= POLLIN | POLLOUT; ++ ++ if (what & POLLIN) { ++ evread = evdp->evread; ++ which |= EV_READ; ++ } ++ ++ if (what & POLLOUT) { ++ evwrite = evdp->evwrite; ++ which |= EV_WRITE; ++ } ++ ++ if (!which) ++ continue; ++ ++ if (evread != NULL && !(evread->ev_events & EV_PERSIST)) ++ event_del(evread); ++ if (evwrite != NULL && evwrite != evread && ++ !(evwrite->ev_events & EV_PERSIST)) ++ event_del(evwrite); ++ ++ if (evread != NULL) ++ event_active(evread, EV_READ, 1); ++ if (evwrite != NULL) ++ event_active(evwrite, EV_WRITE, 1); ++ } ++ ++ return (0); ++} ++ ++ ++static int ++devpoll_add(void *arg, struct event *ev) ++{ ++ struct devpollop *devpollop = arg; ++ struct evdevpoll *evdp; ++ int fd, events; ++ ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_add(ev)); ++ ++ fd = ev->ev_fd; ++ if (fd >= devpollop->nfds) { ++ /* Extend the file descriptor array as necessary */ ++ if (devpoll_recalc(ev->ev_base, devpollop, fd) == -1) ++ return (-1); ++ } ++ evdp = &devpollop->fds[fd]; ++ ++ /* ++ * It's not necessary to OR the existing read/write events that we ++ * are currently interested in with the new event we are adding. ++ * The /dev/poll driver ORs any new events with the existing events ++ * that it has cached for the fd. ++ */ ++ ++ events = 0; ++ if (ev->ev_events & EV_READ) { ++ if (evdp->evread && evdp->evread != ev) { ++ /* There is already a different read event registered */ ++ return(-1); ++ } ++ events |= POLLIN; ++ } ++ ++ if (ev->ev_events & EV_WRITE) { ++ if (evdp->evwrite && evdp->evwrite != ev) { ++ /* There is already a different write event registered */ ++ return(-1); ++ } ++ events |= POLLOUT; ++ } ++ ++ if (devpoll_queue(devpollop, fd, events) != 0) ++ return(-1); ++ ++ /* Update events responsible */ ++ if (ev->ev_events & EV_READ) ++ evdp->evread = ev; ++ if (ev->ev_events & EV_WRITE) ++ evdp->evwrite = ev; ++ ++ return (0); ++} ++ ++static int ++devpoll_del(void *arg, struct event *ev) ++{ ++ struct devpollop *devpollop = arg; ++ struct evdevpoll *evdp; ++ int fd, events; ++ int needwritedelete = 1, needreaddelete = 1; ++ ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_del(ev)); ++ ++ fd = ev->ev_fd; ++ if (fd >= devpollop->nfds) ++ return (0); ++ evdp = &devpollop->fds[fd]; ++ ++ events = 0; ++ if (ev->ev_events & EV_READ) ++ events |= POLLIN; ++ if (ev->ev_events & EV_WRITE) ++ events |= POLLOUT; ++ ++ /* ++ * The only way to remove an fd from the /dev/poll monitored set is ++ * to use POLLREMOVE by itself. This removes ALL events for the fd ++ * provided so if we care about two events and are only removing one ++ * we must re-add the other event after POLLREMOVE. ++ */ ++ ++ if (devpoll_queue(devpollop, fd, POLLREMOVE) != 0) ++ return(-1); ++ ++ if ((events & (POLLIN|POLLOUT)) != (POLLIN|POLLOUT)) { ++ /* ++ * We're not deleting all events, so we must resubmit the ++ * event that we are still interested in if one exists. ++ */ ++ ++ if ((events & POLLIN) && evdp->evwrite != NULL) { ++ /* Deleting read, still care about write */ ++ devpoll_queue(devpollop, fd, POLLOUT); ++ needwritedelete = 0; ++ } else if ((events & POLLOUT) && evdp->evread != NULL) { ++ /* Deleting write, still care about read */ ++ devpoll_queue(devpollop, fd, POLLIN); ++ needreaddelete = 0; ++ } ++ } ++ ++ if (needreaddelete) ++ evdp->evread = NULL; ++ if (needwritedelete) ++ evdp->evwrite = NULL; ++ ++ return (0); ++} ++ ++static void ++devpoll_dealloc(struct event_base *base, void *arg) ++{ ++ struct devpollop *devpollop = arg; ++ ++ evsignal_dealloc(base); ++ if (devpollop->fds) ++ free(devpollop->fds); ++ if (devpollop->events) ++ free(devpollop->events); ++ if (devpollop->changes) ++ free(devpollop->changes); ++ if (devpollop->dpfd >= 0) ++ close(devpollop->dpfd); ++ ++ memset(devpollop, 0, sizeof(struct devpollop)); ++ free(devpollop); ++} +diff --git a/libevent/epoll.c b/libevent/epoll.c +new file mode 100644 +index 0000000..cf3c859 +--- /dev/null ++++ b/libevent/epoll.c +@@ -0,0 +1,370 @@ ++/* ++ * Copyright 2000-2003 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#include ++#include ++#ifdef HAVE_SYS_TIME_H ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef HAVE_FCNTL_H ++#include ++#endif ++ ++#include "event.h" ++#include "event-internal.h" ++#include "evsignal.h" ++#include "log.h" ++ ++/* due to limitations in the epoll interface, we need to keep track of ++ * all file descriptors outself. ++ */ ++struct evepoll { ++ struct event *evread; ++ struct event *evwrite; ++}; ++ ++struct epollop { ++ struct evepoll *fds; ++ int nfds; ++ struct epoll_event *events; ++ int nevents; ++ int epfd; ++}; ++ ++static void *epoll_init (struct event_base *); ++static int epoll_add (void *, struct event *); ++static int epoll_del (void *, struct event *); ++static int epoll_dispatch (struct event_base *, void *, struct timeval *); ++static void epoll_dealloc (struct event_base *, void *); ++ ++const struct eventop epollops = { ++ "epoll", ++ epoll_init, ++ epoll_add, ++ epoll_del, ++ epoll_dispatch, ++ epoll_dealloc, ++ 1 /* need reinit */ ++}; ++ ++#ifdef HAVE_SETFD ++#define FD_CLOSEONEXEC(x) do { \ ++ if (fcntl(x, F_SETFD, 1) == -1) \ ++ event_warn("fcntl(%d, F_SETFD)", x); \ ++} while (0) ++#else ++#define FD_CLOSEONEXEC(x) ++#endif ++ ++#define NEVENT 32000 ++ ++/* On Linux kernels at least up to 2.6.24.4, epoll can't handle timeout ++ * values bigger than (LONG_MAX - 999ULL)/HZ. HZ in the wild can be ++ * as big as 1000, and LONG_MAX can be as small as (1<<31)-1, so the ++ * largest number of msec we can support here is 2147482. Let's ++ * round that down by 47 seconds. ++ */ ++#define MAX_EPOLL_TIMEOUT_MSEC (35*60*1000) ++ ++static void * ++epoll_init(struct event_base *base) ++{ ++ int epfd, nfiles = NEVENT; ++ struct rlimit rl; ++ struct epollop *epollop; ++ ++ /* Disable epollueue when this environment variable is set */ ++ if (getenv("EVENT_NOEPOLL")) ++ return (NULL); ++ ++ if (getrlimit(RLIMIT_NOFILE, &rl) == 0 && ++ rl.rlim_cur != RLIM_INFINITY) { ++ /* ++ * Solaris is somewhat retarded - it's important to drop ++ * backwards compatibility when making changes. So, don't ++ * dare to put rl.rlim_cur here. ++ */ ++ nfiles = rl.rlim_cur - 1; ++ } ++ ++ /* Initalize the kernel queue */ ++ ++ if ((epfd = epoll_create(nfiles)) == -1) { ++ if (errno != ENOSYS) ++ event_warn("epoll_create"); ++ return (NULL); ++ } ++ ++ FD_CLOSEONEXEC(epfd); ++ ++ if (!(epollop = calloc(1, sizeof(struct epollop)))) ++ return (NULL); ++ ++ epollop->epfd = epfd; ++ ++ /* Initalize fields */ ++ epollop->events = malloc(nfiles * sizeof(struct epoll_event)); ++ if (epollop->events == NULL) { ++ free(epollop); ++ return (NULL); ++ } ++ epollop->nevents = nfiles; ++ ++ epollop->fds = calloc(nfiles, sizeof(struct evepoll)); ++ if (epollop->fds == NULL) { ++ free(epollop->events); ++ free(epollop); ++ return (NULL); ++ } ++ epollop->nfds = nfiles; ++ ++ evsignal_init(base); ++ ++ return (epollop); ++} ++ ++static int ++epoll_recalc(struct event_base *base, void *arg, int max) ++{ ++ struct epollop *epollop = arg; ++ ++ if (max > epollop->nfds) { ++ struct evepoll *fds; ++ int nfds; ++ ++ nfds = epollop->nfds; ++ while (nfds < max) ++ nfds <<= 1; ++ ++ fds = realloc(epollop->fds, nfds * sizeof(struct evepoll)); ++ if (fds == NULL) { ++ event_warn("realloc"); ++ return (-1); ++ } ++ epollop->fds = fds; ++ memset(fds + epollop->nfds, 0, ++ (nfds - epollop->nfds) * sizeof(struct evepoll)); ++ epollop->nfds = nfds; ++ } ++ ++ return (0); ++} ++ ++static int ++epoll_dispatch(struct event_base *base, void *arg, struct timeval *tv) ++{ ++ struct epollop *epollop = arg; ++ struct epoll_event *events = epollop->events; ++ struct evepoll *evep; ++ int i, res, timeout = -1; ++ ++ if (tv != NULL) ++ timeout = tv->tv_sec * 1000 + (tv->tv_usec + 999) / 1000; ++ ++ if (timeout > MAX_EPOLL_TIMEOUT_MSEC) { ++ /* Linux kernels can wait forever if the timeout is too big; ++ * see comment on MAX_EPOLL_TIMEOUT_MSEC. */ ++ timeout = MAX_EPOLL_TIMEOUT_MSEC; ++ } ++ ++ res = epoll_wait(epollop->epfd, events, epollop->nevents, timeout); ++ ++ if (res == -1) { ++ if (errno != EINTR) { ++ event_warn("epoll_wait"); ++ return (-1); ++ } ++ ++ evsignal_process(base); ++ return (0); ++ } else if (base->sig.evsignal_caught) { ++ evsignal_process(base); ++ } ++ ++ event_debug(("%s: epoll_wait reports %d", __func__, res)); ++ ++ for (i = 0; i < res; i++) { ++ int what = events[i].events; ++ struct event *evread = NULL, *evwrite = NULL; ++ ++ evep = (struct evepoll *)events[i].data.ptr; ++ ++ if (what & (EPOLLHUP|EPOLLERR)) { ++ evread = evep->evread; ++ evwrite = evep->evwrite; ++ } else { ++ if (what & EPOLLIN) { ++ evread = evep->evread; ++ } ++ ++ if (what & EPOLLOUT) { ++ evwrite = evep->evwrite; ++ } ++ } ++ ++ if (!(evread||evwrite)) ++ continue; ++ ++ if (evread != NULL) ++ event_active(evread, EV_READ, 1); ++ if (evwrite != NULL) ++ event_active(evwrite, EV_WRITE, 1); ++ } ++ ++ return (0); ++} ++ ++ ++static int ++epoll_add(void *arg, struct event *ev) ++{ ++ struct epollop *epollop = arg; ++ struct epoll_event epev = {0, {0}}; ++ struct evepoll *evep; ++ int fd, op, events; ++ ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_add(ev)); ++ ++ fd = ev->ev_fd; ++ if (fd >= epollop->nfds) { ++ /* Extent the file descriptor array as necessary */ ++ if (epoll_recalc(ev->ev_base, epollop, fd) == -1) ++ return (-1); ++ } ++ evep = &epollop->fds[fd]; ++ op = EPOLL_CTL_ADD; ++ events = 0; ++ if (evep->evread != NULL) { ++ events |= EPOLLIN; ++ op = EPOLL_CTL_MOD; ++ } ++ if (evep->evwrite != NULL) { ++ events |= EPOLLOUT; ++ op = EPOLL_CTL_MOD; ++ } ++ ++ if (ev->ev_events & EV_READ) ++ events |= EPOLLIN; ++ if (ev->ev_events & EV_WRITE) ++ events |= EPOLLOUT; ++ ++ epev.data.ptr = evep; ++ epev.events = events; ++ if (epoll_ctl(epollop->epfd, op, ev->ev_fd, &epev) == -1) ++ return (-1); ++ ++ /* Update events responsible */ ++ if (ev->ev_events & EV_READ) ++ evep->evread = ev; ++ if (ev->ev_events & EV_WRITE) ++ evep->evwrite = ev; ++ ++ return (0); ++} ++ ++static int ++epoll_del(void *arg, struct event *ev) ++{ ++ struct epollop *epollop = arg; ++ struct epoll_event epev = {0, {0}}; ++ struct evepoll *evep; ++ int fd, events, op; ++ int needwritedelete = 1, needreaddelete = 1; ++ ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_del(ev)); ++ ++ fd = ev->ev_fd; ++ if (fd >= epollop->nfds) ++ return (0); ++ evep = &epollop->fds[fd]; ++ ++ op = EPOLL_CTL_DEL; ++ events = 0; ++ ++ if (ev->ev_events & EV_READ) ++ events |= EPOLLIN; ++ if (ev->ev_events & EV_WRITE) ++ events |= EPOLLOUT; ++ ++ if ((events & (EPOLLIN|EPOLLOUT)) != (EPOLLIN|EPOLLOUT)) { ++ if ((events & EPOLLIN) && evep->evwrite != NULL) { ++ needwritedelete = 0; ++ events = EPOLLOUT; ++ op = EPOLL_CTL_MOD; ++ } else if ((events & EPOLLOUT) && evep->evread != NULL) { ++ needreaddelete = 0; ++ events = EPOLLIN; ++ op = EPOLL_CTL_MOD; ++ } ++ } ++ ++ epev.events = events; ++ epev.data.ptr = evep; ++ ++ if (needreaddelete) ++ evep->evread = NULL; ++ if (needwritedelete) ++ evep->evwrite = NULL; ++ ++ if (epoll_ctl(epollop->epfd, op, fd, &epev) == -1) ++ return (-1); ++ ++ return (0); ++} ++ ++static void ++epoll_dealloc(struct event_base *base, void *arg) ++{ ++ struct epollop *epollop = arg; ++ ++ evsignal_dealloc(base); ++ if (epollop->fds) ++ free(epollop->fds); ++ if (epollop->events) ++ free(epollop->events); ++ if (epollop->epfd >= 0) ++ close(epollop->epfd); ++ ++ memset(epollop, 0, sizeof(struct epollop)); ++ free(epollop); ++} +diff --git a/libevent/epoll_sub.c b/libevent/epoll_sub.c +new file mode 100644 +index 0000000..431970c +--- /dev/null ++++ b/libevent/epoll_sub.c +@@ -0,0 +1,52 @@ ++/* ++ * Copyright 2003 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#include ++ ++#include ++#include ++#include ++#include ++#include ++ ++int ++epoll_create(int size) ++{ ++ return (syscall(__NR_epoll_create, size)); ++} ++ ++int ++epoll_ctl(int epfd, int op, int fd, struct epoll_event *event) ++{ ++ ++ return (syscall(__NR_epoll_ctl, epfd, op, fd, event)); ++} ++ ++int ++epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout) ++{ ++ return (syscall(__NR_epoll_wait, epfd, events, maxevents, timeout)); ++} +diff --git a/libevent/evbuffer.c b/libevent/evbuffer.c +new file mode 100644 +index 0000000..f2179a5 +--- /dev/null ++++ b/libevent/evbuffer.c +@@ -0,0 +1,455 @@ ++/* ++ * Copyright (c) 2002-2004 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#ifdef HAVE_SYS_TIME_H ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++#ifdef HAVE_STDARG_H ++#include ++#endif ++ ++#ifdef WIN32 ++#include ++#endif ++ ++#include "evutil.h" ++#include "event.h" ++ ++/* prototypes */ ++ ++void bufferevent_read_pressure_cb(struct evbuffer *, size_t, size_t, void *); ++ ++static int ++bufferevent_add(struct event *ev, int timeout) ++{ ++ struct timeval tv, *ptv = NULL; ++ ++ if (timeout) { ++ evutil_timerclear(&tv); ++ tv.tv_sec = timeout; ++ ptv = &tv; ++ } ++ ++ return (event_add(ev, ptv)); ++} ++ ++/* ++ * This callback is executed when the size of the input buffer changes. ++ * We use it to apply back pressure on the reading side. ++ */ ++ ++void ++bufferevent_read_pressure_cb(struct evbuffer *buf, size_t old, size_t now, ++ void *arg) { ++ struct bufferevent *bufev = arg; ++ /* ++ * If we are below the watermark then reschedule reading if it's ++ * still enabled. ++ */ ++ if (bufev->wm_read.high == 0 || now < bufev->wm_read.high) { ++ evbuffer_setcb(buf, NULL, NULL); ++ ++ if (bufev->enabled & EV_READ) ++ bufferevent_add(&bufev->ev_read, bufev->timeout_read); ++ } ++} ++ ++static void ++bufferevent_readcb(int fd, short event, void *arg) ++{ ++ struct bufferevent *bufev = arg; ++ int res = 0; ++ short what = EVBUFFER_READ; ++ size_t len; ++ int howmuch = -1; ++ ++ if (event == EV_TIMEOUT) { ++ what |= EVBUFFER_TIMEOUT; ++ goto error; ++ } ++ ++ /* ++ * If we have a high watermark configured then we don't want to ++ * read more data than would make us reach the watermark. ++ */ ++ if (bufev->wm_read.high != 0) { ++ howmuch = bufev->wm_read.high - EVBUFFER_LENGTH(bufev->input); ++ /* we might have lowered the watermark, stop reading */ ++ if (howmuch <= 0) { ++ struct evbuffer *buf = bufev->input; ++ event_del(&bufev->ev_read); ++ evbuffer_setcb(buf, ++ bufferevent_read_pressure_cb, bufev); ++ return; ++ } ++ } ++ ++ res = evbuffer_read(bufev->input, fd, howmuch); ++ if (res == -1) { ++ if (errno == EAGAIN || errno == EINTR) ++ goto reschedule; ++ /* error case */ ++ what |= EVBUFFER_ERROR; ++ } else if (res == 0) { ++ /* eof case */ ++ what |= EVBUFFER_EOF; ++ } ++ ++ if (res <= 0) ++ goto error; ++ ++ bufferevent_add(&bufev->ev_read, bufev->timeout_read); ++ ++ /* See if this callbacks meets the water marks */ ++ len = EVBUFFER_LENGTH(bufev->input); ++ if (bufev->wm_read.low != 0 && len < bufev->wm_read.low) ++ return; ++ if (bufev->wm_read.high != 0 && len >= bufev->wm_read.high) { ++ struct evbuffer *buf = bufev->input; ++ event_del(&bufev->ev_read); ++ ++ /* Now schedule a callback for us when the buffer changes */ ++ evbuffer_setcb(buf, bufferevent_read_pressure_cb, bufev); ++ } ++ ++ /* Invoke the user callback - must always be called last */ ++ if (bufev->readcb != NULL) ++ (*bufev->readcb)(bufev, bufev->cbarg); ++ return; ++ ++ reschedule: ++ bufferevent_add(&bufev->ev_read, bufev->timeout_read); ++ return; ++ ++ error: ++ (*bufev->errorcb)(bufev, what, bufev->cbarg); ++} ++ ++static void ++bufferevent_writecb(int fd, short event, void *arg) ++{ ++ struct bufferevent *bufev = arg; ++ int res = 0; ++ short what = EVBUFFER_WRITE; ++ ++ if (event == EV_TIMEOUT) { ++ what |= EVBUFFER_TIMEOUT; ++ goto error; ++ } ++ ++ if (EVBUFFER_LENGTH(bufev->output)) { ++ res = evbuffer_write(bufev->output, fd); ++ if (res == -1) { ++#ifndef WIN32 ++/*todo. evbuffer uses WriteFile when WIN32 is set. WIN32 system calls do not ++ *set errno. thus this error checking is not portable*/ ++ if (errno == EAGAIN || ++ errno == EINTR || ++ errno == EINPROGRESS) ++ goto reschedule; ++ /* error case */ ++ what |= EVBUFFER_ERROR; ++ ++#else ++ goto reschedule; ++#endif ++ ++ } else if (res == 0) { ++ /* eof case */ ++ what |= EVBUFFER_EOF; ++ } ++ if (res <= 0) ++ goto error; ++ } ++ ++ if (EVBUFFER_LENGTH(bufev->output) != 0) ++ bufferevent_add(&bufev->ev_write, bufev->timeout_write); ++ ++ /* ++ * Invoke the user callback if our buffer is drained or below the ++ * low watermark. ++ */ ++ if (bufev->writecb != NULL && ++ EVBUFFER_LENGTH(bufev->output) <= bufev->wm_write.low) ++ (*bufev->writecb)(bufev, bufev->cbarg); ++ ++ return; ++ ++ reschedule: ++ if (EVBUFFER_LENGTH(bufev->output) != 0) ++ bufferevent_add(&bufev->ev_write, bufev->timeout_write); ++ return; ++ ++ error: ++ (*bufev->errorcb)(bufev, what, bufev->cbarg); ++} ++ ++/* ++ * Create a new buffered event object. ++ * ++ * The read callback is invoked whenever we read new data. ++ * The write callback is invoked whenever the output buffer is drained. ++ * The error callback is invoked on a write/read error or on EOF. ++ * ++ * Both read and write callbacks maybe NULL. The error callback is not ++ * allowed to be NULL and have to be provided always. ++ */ ++ ++struct bufferevent * ++bufferevent_new(int fd, evbuffercb readcb, evbuffercb writecb, ++ everrorcb errorcb, void *cbarg) ++{ ++ struct bufferevent *bufev; ++ ++ if ((bufev = calloc(1, sizeof(struct bufferevent))) == NULL) ++ return (NULL); ++ ++ if ((bufev->input = evbuffer_new()) == NULL) { ++ free(bufev); ++ return (NULL); ++ } ++ ++ if ((bufev->output = evbuffer_new()) == NULL) { ++ evbuffer_free(bufev->input); ++ free(bufev); ++ return (NULL); ++ } ++ ++ event_set(&bufev->ev_read, fd, EV_READ, bufferevent_readcb, bufev); ++ event_set(&bufev->ev_write, fd, EV_WRITE, bufferevent_writecb, bufev); ++ ++ bufferevent_setcb(bufev, readcb, writecb, errorcb, cbarg); ++ ++ /* ++ * Set to EV_WRITE so that using bufferevent_write is going to ++ * trigger a callback. Reading needs to be explicitly enabled ++ * because otherwise no data will be available. ++ */ ++ bufev->enabled = EV_WRITE; ++ ++ return (bufev); ++} ++ ++void ++bufferevent_setcb(struct bufferevent *bufev, ++ evbuffercb readcb, evbuffercb writecb, everrorcb errorcb, void *cbarg) ++{ ++ bufev->readcb = readcb; ++ bufev->writecb = writecb; ++ bufev->errorcb = errorcb; ++ ++ bufev->cbarg = cbarg; ++} ++ ++void ++bufferevent_setfd(struct bufferevent *bufev, int fd) ++{ ++ event_del(&bufev->ev_read); ++ event_del(&bufev->ev_write); ++ ++ event_set(&bufev->ev_read, fd, EV_READ, bufferevent_readcb, bufev); ++ event_set(&bufev->ev_write, fd, EV_WRITE, bufferevent_writecb, bufev); ++ if (bufev->ev_base != NULL) { ++ event_base_set(bufev->ev_base, &bufev->ev_read); ++ event_base_set(bufev->ev_base, &bufev->ev_write); ++ } ++ ++ /* might have to manually trigger event registration */ ++} ++ ++int ++bufferevent_priority_set(struct bufferevent *bufev, int priority) ++{ ++ if (event_priority_set(&bufev->ev_read, priority) == -1) ++ return (-1); ++ if (event_priority_set(&bufev->ev_write, priority) == -1) ++ return (-1); ++ ++ return (0); ++} ++ ++/* Closing the file descriptor is the responsibility of the caller */ ++ ++void ++bufferevent_free(struct bufferevent *bufev) ++{ ++ event_del(&bufev->ev_read); ++ event_del(&bufev->ev_write); ++ ++ evbuffer_free(bufev->input); ++ evbuffer_free(bufev->output); ++ ++ free(bufev); ++} ++ ++/* ++ * Returns 0 on success; ++ * -1 on failure. ++ */ ++ ++int ++bufferevent_write(struct bufferevent *bufev, const void *data, size_t size) ++{ ++ int res; ++ ++ res = evbuffer_add(bufev->output, data, size); ++ ++ if (res == -1) ++ return (res); ++ ++ /* If everything is okay, we need to schedule a write */ ++ if (size > 0 && (bufev->enabled & EV_WRITE)) ++ bufferevent_add(&bufev->ev_write, bufev->timeout_write); ++ ++ return (res); ++} ++ ++int ++bufferevent_write_buffer(struct bufferevent *bufev, struct evbuffer *buf) ++{ ++ int res; ++ ++ res = bufferevent_write(bufev, buf->buffer, buf->off); ++ if (res != -1) ++ evbuffer_drain(buf, buf->off); ++ ++ return (res); ++} ++ ++size_t ++bufferevent_read(struct bufferevent *bufev, void *data, size_t size) ++{ ++ struct evbuffer *buf = bufev->input; ++ ++ if (buf->off < size) ++ size = buf->off; ++ ++ /* Copy the available data to the user buffer */ ++ memcpy(data, buf->buffer, size); ++ ++ if (size) ++ evbuffer_drain(buf, size); ++ ++ return (size); ++} ++ ++int ++bufferevent_enable(struct bufferevent *bufev, short event) ++{ ++ if (event & EV_READ) { ++ if (bufferevent_add(&bufev->ev_read, bufev->timeout_read) == -1) ++ return (-1); ++ } ++ if (event & EV_WRITE) { ++ if (bufferevent_add(&bufev->ev_write, bufev->timeout_write) == -1) ++ return (-1); ++ } ++ ++ bufev->enabled |= event; ++ return (0); ++} ++ ++int ++bufferevent_disable(struct bufferevent *bufev, short event) ++{ ++ if (event & EV_READ) { ++ if (event_del(&bufev->ev_read) == -1) ++ return (-1); ++ } ++ if (event & EV_WRITE) { ++ if (event_del(&bufev->ev_write) == -1) ++ return (-1); ++ } ++ ++ bufev->enabled &= ~event; ++ return (0); ++} ++ ++/* ++ * Sets the read and write timeout for a buffered event. ++ */ ++ ++void ++bufferevent_settimeout(struct bufferevent *bufev, ++ int timeout_read, int timeout_write) { ++ bufev->timeout_read = timeout_read; ++ bufev->timeout_write = timeout_write; ++ ++ if (event_pending(&bufev->ev_read, EV_READ, NULL)) ++ bufferevent_add(&bufev->ev_read, timeout_read); ++ if (event_pending(&bufev->ev_write, EV_WRITE, NULL)) ++ bufferevent_add(&bufev->ev_write, timeout_write); ++} ++ ++/* ++ * Sets the water marks ++ */ ++ ++void ++bufferevent_setwatermark(struct bufferevent *bufev, short events, ++ size_t lowmark, size_t highmark) ++{ ++ if (events & EV_READ) { ++ bufev->wm_read.low = lowmark; ++ bufev->wm_read.high = highmark; ++ } ++ ++ if (events & EV_WRITE) { ++ bufev->wm_write.low = lowmark; ++ bufev->wm_write.high = highmark; ++ } ++ ++ /* If the watermarks changed then see if we should call read again */ ++ bufferevent_read_pressure_cb(bufev->input, ++ 0, EVBUFFER_LENGTH(bufev->input), bufev); ++} ++ ++int ++bufferevent_base_set(struct event_base *base, struct bufferevent *bufev) ++{ ++ int res; ++ ++ bufev->ev_base = base; ++ ++ res = event_base_set(base, &bufev->ev_read); ++ if (res == -1) ++ return (res); ++ ++ res = event_base_set(base, &bufev->ev_write); ++ return (res); ++} +diff --git a/libevent/event-config.h b/libevent/event-config.h +new file mode 100644 +index 0000000..0a278b3 +--- /dev/null ++++ b/libevent/event-config.h +@@ -0,0 +1,262 @@ ++/* event-config.h ++ * Generated by autoconf; post-processed by libevent. ++ * Do not edit this file. ++ * Do not rely on macros in this file existing in later versions. ++ */ ++#ifndef _EVENT_CONFIG_H_ ++#define _EVENT_CONFIG_H_ ++/* config.h. Generated from config.h.in by configure. */ ++/* config.h.in. Generated from configure.in by autoheader. */ ++ ++/* Define if clock_gettime is available in libc */ ++/* #undef _EVENT_DNS_USE_CPU_CLOCK_FOR_ID */ ++ ++/* Define is no secure id variant is available */ ++#define _EVENT_DNS_USE_GETTIMEOFDAY_FOR_ID 1 ++ ++/* Define to 1 if you have the `clock_gettime' function. */ ++/* #undef _EVENT_HAVE_CLOCK_GETTIME */ ++ ++/* Define if /dev/poll is available */ ++/* #undef _EVENT_HAVE_DEVPOLL */ ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_DLFCN_H 1 ++ ++/* Define if your system supports the epoll system calls */ ++/* #undef _EVENT_HAVE_EPOLL */ ++ ++/* Define to 1 if you have the `epoll_ctl' function. */ ++/* #undef _EVENT_HAVE_EPOLL_CTL */ ++ ++/* Define if your system supports event ports */ ++/* #undef _EVENT_HAVE_EVENT_PORTS */ ++ ++/* Define to 1 if you have the `fcntl' function. */ ++#define _EVENT_HAVE_FCNTL 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_FCNTL_H 1 ++ ++/* Define to 1 if you have the `getaddrinfo' function. */ ++#define _EVENT_HAVE_GETADDRINFO 1 ++ ++/* Define to 1 if you have the `getnameinfo' function. */ ++#define _EVENT_HAVE_GETNAMEINFO 1 ++ ++/* Define to 1 if you have the `gettimeofday' function. */ ++#define _EVENT_HAVE_GETTIMEOFDAY 1 ++ ++/* Define to 1 if you have the `inet_ntop' function. */ ++#define _EVENT_HAVE_INET_NTOP 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_INTTYPES_H 1 ++ ++/* Define to 1 if you have the `kqueue' function. */ ++#define _EVENT_HAVE_KQUEUE 1 ++ ++/* Define to 1 if you have the `nsl' library (-lnsl). */ ++/* #undef _EVENT_HAVE_LIBNSL */ ++ ++/* Define to 1 if you have the `resolv' library (-lresolv). */ ++#define _EVENT_HAVE_LIBRESOLV 1 ++ ++/* Define to 1 if you have the `rt' library (-lrt). */ ++/* #undef _EVENT_HAVE_LIBRT */ ++ ++/* Define to 1 if you have the `socket' library (-lsocket). */ ++/* #undef _EVENT_HAVE_LIBSOCKET */ ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_MEMORY_H 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef _EVENT_HAVE_NETINET_IN6_H */ ++ ++/* Define to 1 if you have the `poll' function. */ ++#define _EVENT_HAVE_POLL 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_POLL_H 1 ++ ++/* Define to 1 if you have the `port_create' function. */ ++/* #undef _EVENT_HAVE_PORT_CREATE */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef _EVENT_HAVE_PORT_H */ ++ ++/* Define to 1 if you have the `select' function. */ ++#define _EVENT_HAVE_SELECT 1 ++ ++/* Define if F_SETFD is defined in */ ++#define _EVENT_HAVE_SETFD 1 ++ ++/* Define to 1 if you have the `sigaction' function. */ ++#define _EVENT_HAVE_SIGACTION 1 ++ ++/* Define to 1 if you have the `signal' function. */ ++#define _EVENT_HAVE_SIGNAL 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SIGNAL_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_STDARG_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_STDINT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_STDLIB_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_STRINGS_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_STRING_H 1 ++ ++/* Define to 1 if you have the `strlcpy' function. */ ++#define _EVENT_HAVE_STRLCPY 1 ++ ++/* Define to 1 if you have the `strsep' function. */ ++#define _EVENT_HAVE_STRSEP 1 ++ ++/* Define to 1 if you have the `strtok_r' function. */ ++#define _EVENT_HAVE_STRTOK_R 1 ++ ++/* Define to 1 if you have the `strtoll' function. */ ++#define _EVENT_HAVE_STRTOLL 1 ++ ++/* Define to 1 if the system has the type `struct in6_addr'. */ ++#define _EVENT_HAVE_STRUCT_IN6_ADDR 1 ++ ++/* Define to 1 if you have the header file. */ ++/* #undef _EVENT_HAVE_SYS_DEVPOLL_H */ ++ ++/* Define to 1 if you have the header file. */ ++/* #undef _EVENT_HAVE_SYS_EPOLL_H */ ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_EVENT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_IOCTL_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_PARAM_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_QUEUE_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_SELECT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_SOCKET_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_STAT_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_TIME_H 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_SYS_TYPES_H 1 ++ ++/* Define if TAILQ_FOREACH is defined in */ ++#define _EVENT_HAVE_TAILQFOREACH 1 ++ ++/* Define if timeradd is defined in */ ++#define _EVENT_HAVE_TIMERADD 1 ++ ++/* Define if timerclear is defined in */ ++#define _EVENT_HAVE_TIMERCLEAR 1 ++ ++/* Define if timercmp is defined in */ ++#define _EVENT_HAVE_TIMERCMP 1 ++ ++/* Define if timerisset is defined in */ ++#define _EVENT_HAVE_TIMERISSET 1 ++ ++/* Define to 1 if the system has the type `uint16_t'. */ ++#define _EVENT_HAVE_UINT16_T 1 ++ ++/* Define to 1 if the system has the type `uint32_t'. */ ++#define _EVENT_HAVE_UINT32_T 1 ++ ++/* Define to 1 if the system has the type `uint64_t'. */ ++#define _EVENT_HAVE_UINT64_T 1 ++ ++/* Define to 1 if the system has the type `uint8_t'. */ ++#define _EVENT_HAVE_UINT8_T 1 ++ ++/* Define to 1 if you have the header file. */ ++#define _EVENT_HAVE_UNISTD_H 1 ++ ++/* Define to 1 if you have the `vasprintf' function. */ ++#define _EVENT_HAVE_VASPRINTF 1 ++ ++/* Define if kqueue works correctly with pipes */ ++#define _EVENT_HAVE_WORKING_KQUEUE 1 ++ ++/* Name of package */ ++#define _EVENT_PACKAGE "libevent" ++ ++/* Define to the address where bug reports for this package should be sent. */ ++#define _EVENT_PACKAGE_BUGREPORT "" ++ ++/* Define to the full name of this package. */ ++#define _EVENT_PACKAGE_NAME "" ++ ++/* Define to the full name and version of this package. */ ++#define _EVENT_PACKAGE_STRING "" ++ ++/* Define to the one symbol short name of this package. */ ++#define _EVENT_PACKAGE_TARNAME "" ++ ++/* Define to the version of this package. */ ++#define _EVENT_PACKAGE_VERSION "" ++ ++/* The size of `int', as computed by sizeof. */ ++#define _EVENT_SIZEOF_INT 4 ++ ++/* The size of `long', as computed by sizeof. */ ++#define _EVENT_SIZEOF_LONG 4 ++ ++/* The size of `long long', as computed by sizeof. */ ++#define _EVENT_SIZEOF_LONG_LONG 8 ++ ++/* The size of `short', as computed by sizeof. */ ++#define _EVENT_SIZEOF_SHORT 2 ++ ++/* Define to 1 if you have the ANSI C header files. */ ++#define _EVENT_STDC_HEADERS 1 ++ ++/* Define to 1 if you can safely include both and . */ ++#define _EVENT_TIME_WITH_SYS_TIME 1 ++ ++/* Version number of package */ ++#define _EVENT_VERSION "1.4.8-stable" ++ ++/* Define to appropriate substitue if compiler doesnt have __func__ */ ++/* #undef _EVENT___func__ */ ++ ++/* Define to empty if `const' does not conform to ANSI C. */ ++/* #undef _EVENT_const */ ++ ++/* Define to `__inline__' or `__inline' if that's what the C compiler ++ calls it, or to nothing if 'inline' is not supported under any name. */ ++#ifndef _EVENT___cplusplus ++/* #undef _EVENT_inline */ ++#endif ++ ++/* Define to `int' if does not define. */ ++/* #undef _EVENT_pid_t */ ++ ++/* Define to `unsigned int' if does not define. */ ++/* #undef _EVENT_size_t */ ++ ++/* Define to unsigned int if you dont have it */ ++/* #undef _EVENT_socklen_t */ ++#endif +diff --git a/libevent/event-fpm.h b/libevent/event-fpm.h +new file mode 100644 +index 0000000..8625ca5 +--- /dev/null ++++ b/libevent/event-fpm.h +@@ -0,0 +1,129 @@ ++#define event_active _fpm_event_active ++#define event_add _fpm_event_add ++#define event_base_dispatch _fpm_event_base_dispatch ++#define event_base_free _fpm_event_base_free ++#define event_base_get_method _fpm_event_base_get_method ++#define event_base_loop _fpm_event_base_loop ++#define event_base_loopbreak _fpm_event_base_loopbreak ++#define event_base_loopexit _fpm_event_base_loopexit ++#define event_base_new _fpm_event_base_new ++#define event_base_once _fpm_event_base_once ++#define event_base_priority_init _fpm_event_base_priority_init ++#define event_base_set _fpm_event_base_set ++#define event_del _fpm_event_del ++#define event_dispatch _fpm_event_dispatch ++#define event_get_method _fpm_event_get_method ++#define event_get_version _fpm_event_get_version ++#define event_init _fpm_event_init ++#define event_loop _fpm_event_loop ++#define event_loopbreak _fpm_event_loopbreak ++#define event_loopexit _fpm_event_loopexit ++#define event_once _fpm_event_once ++#define event_pending _fpm_event_pending ++#define event_priority_init _fpm_event_priority_init ++#define event_priority_set _fpm_event_priority_set ++#define event_reinit _fpm_event_reinit ++#define event_set _fpm_event_set ++#define _event_debugx _fpm__event_debugx ++#define event_err _fpm_event_err ++#define event_errx _fpm_event_errx ++#define event_msgx _fpm_event_msgx ++#define event_set_log_callback _fpm_event_set_log_callback ++#define event_warn _fpm_event_warn ++#define event_warnx _fpm_event_warnx ++#define evutil_make_socket_nonblocking _fpm_evutil_make_socket_nonblocking ++#define evutil_snprintf _fpm_evutil_snprintf ++#define evutil_socketpair _fpm_evutil_socketpair ++#define evutil_strtoll _fpm_evutil_strtoll ++#define evutil_vsnprintf _fpm_evutil_vsnprintf ++#define evhttp_accept_socket _fpm_evhttp_accept_socket ++#define evhttp_add_header _fpm_evhttp_add_header ++#define evhttp_bind_socket _fpm_evhttp_bind_socket ++#define evhttp_clear_headers _fpm_evhttp_clear_headers ++#define evhttp_connection_connect _fpm_evhttp_connection_connect ++#define evhttp_connection_fail _fpm_evhttp_connection_fail ++#define evhttp_connection_free _fpm_evhttp_connection_free ++#define evhttp_connection_get_peer _fpm_evhttp_connection_get_peer ++#define evhttp_connection_new _fpm_evhttp_connection_new ++#define evhttp_connection_reset _fpm_evhttp_connection_reset ++#define evhttp_connection_set_base _fpm_evhttp_connection_set_base ++#define evhttp_connection_set_closecb _fpm_evhttp_connection_set_closecb ++#define evhttp_connection_set_local_address _fpm_evhttp_connection_set_local_address ++#define evhttp_connection_set_retries _fpm_evhttp_connection_set_retries ++#define evhttp_connection_set_timeout _fpm_evhttp_connection_set_timeout ++#define evhttp_decode_uri _fpm_evhttp_decode_uri ++#define evhttp_del_cb _fpm_evhttp_del_cb ++#define evhttp_encode_uri _fpm_evhttp_encode_uri ++#define evhttp_find_header _fpm_evhttp_find_header ++#define evhttp_free _fpm_evhttp_free ++#define evhttp_get_request _fpm_evhttp_get_request ++#define evhttp_hostportfile _fpm_evhttp_hostportfile ++#define evhttp_htmlescape _fpm_evhttp_htmlescape ++#define evhttp_make_header _fpm_evhttp_make_header ++#define evhttp_make_request _fpm_evhttp_make_request ++#define evhttp_new _fpm_evhttp_new ++#define evhttp_parse_firstline _fpm_evhttp_parse_firstline ++#define evhttp_parse_headers _fpm_evhttp_parse_headers ++#define evhttp_parse_query _fpm_evhttp_parse_query ++#define evhttp_read _fpm_evhttp_read ++#define evhttp_remove_header _fpm_evhttp_remove_header ++#define evhttp_request_free _fpm_evhttp_request_free ++#define evhttp_request_new _fpm_evhttp_request_new ++#define evhttp_request_set_chunked_cb _fpm_evhttp_request_set_chunked_cb ++#define evhttp_request_uri _fpm_evhttp_request_uri ++#define evhttp_response_code _fpm_evhttp_response_code ++#define evhttp_send_error _fpm_evhttp_send_error ++#define evhttp_send_page _fpm_evhttp_send_page ++#define evhttp_send_reply _fpm_evhttp_send_reply ++#define evhttp_send_reply_chunk _fpm_evhttp_send_reply_chunk ++#define evhttp_send_reply_end _fpm_evhttp_send_reply_end ++#define evhttp_send_reply_start _fpm_evhttp_send_reply_start ++#define evhttp_set_cb _fpm_evhttp_set_cb ++#define evhttp_set_gencb _fpm_evhttp_set_gencb ++#define evhttp_set_timeout _fpm_evhttp_set_timeout ++#define evhttp_start _fpm_evhttp_start ++#define evhttp_start_read _fpm_evhttp_start_read ++#define evhttp_write _fpm_evhttp_write ++#define evhttp_write_buffer _fpm_evhttp_write_buffer ++#define evbuffer_add _fpm_evbuffer_add ++#define evbuffer_add_buffer _fpm_evbuffer_add_buffer ++#define evbuffer_add_printf _fpm_evbuffer_add_printf ++#define evbuffer_add_vprintf _fpm_evbuffer_add_vprintf ++#define evbuffer_drain _fpm_evbuffer_drain ++#define evbuffer_expand _fpm_evbuffer_expand ++#define evbuffer_find _fpm_evbuffer_find ++#define evbuffer_free _fpm_evbuffer_free ++#define evbuffer_new _fpm_evbuffer_new ++#define evbuffer_read _fpm_evbuffer_read ++#define evbuffer_readline _fpm_evbuffer_readline ++#define evbuffer_remove _fpm_evbuffer_remove ++#define evbuffer_setcb _fpm_evbuffer_setcb ++#define evbuffer_write _fpm_evbuffer_write ++#define bufferevent_base_set _fpm_bufferevent_base_set ++#define bufferevent_disable _fpm_bufferevent_disable ++#define bufferevent_enable _fpm_bufferevent_enable ++#define bufferevent_free _fpm_bufferevent_free ++#define bufferevent_new _fpm_bufferevent_new ++#define bufferevent_priority_set _fpm_bufferevent_priority_set ++#define bufferevent_read _fpm_bufferevent_read ++#define bufferevent_read_pressure_cb _fpm_bufferevent_read_pressure_cb ++#define bufferevent_setcb _fpm_bufferevent_setcb ++#define bufferevent_setfd _fpm_bufferevent_setfd ++#define bufferevent_settimeout _fpm_bufferevent_settimeout ++#define bufferevent_setwatermark _fpm_bufferevent_setwatermark ++#define bufferevent_write _fpm_bufferevent_write ++#define bufferevent_write_buffer _fpm_bufferevent_write_buffer ++#define _event_strlcpy _fpm__event_strlcpy ++#define selectops _fpm_selectops ++#define pollops _fpm_pollops ++#define epollops _fpm_epollops ++#define devpollops _fpm_devpollops ++#define evportops _fpm_evportops ++#define kqops _fpm_kqops ++#define evsignal_add _fpm_evsignal_add ++#define evsignal_dealloc _fpm_evsignal_dealloc ++#define evsignal_del _fpm_evsignal_del ++#define evsignal_init _fpm_evsignal_init ++#define evsignal_process _fpm_evsignal_process ++#define _evsignal_restore_handler _fpm__evsignal_restore_handler ++#define _evsignal_set_handler _fpm__evsignal_set_handler +diff --git a/libevent/event-internal.h b/libevent/event-internal.h +new file mode 100644 +index 0000000..7485f21 +--- /dev/null ++++ b/libevent/event-internal.h +@@ -0,0 +1,98 @@ ++/* ++ * Copyright (c) 2000-2004 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifndef _EVENT_INTERNAL_H_ ++#define _EVENT_INTERNAL_H_ ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#include "config.h" ++#include "min_heap.h" ++#include "evsignal.h" ++ ++struct eventop { ++ const char *name; ++ void *(*init)(struct event_base *); ++ int (*add)(void *, struct event *); ++ int (*del)(void *, struct event *); ++ int (*dispatch)(struct event_base *, void *, struct timeval *); ++ void (*dealloc)(struct event_base *, void *); ++ /* set if we need to reinitialize the event base */ ++ int need_reinit; ++}; ++ ++struct event_base { ++ const struct eventop *evsel; ++ void *evbase; ++ int event_count; /* counts number of total events */ ++ int event_count_active; /* counts number of active events */ ++ ++ int event_gotterm; /* Set to terminate loop */ ++ int event_break; /* Set to terminate loop immediately */ ++ ++ /* active event management */ ++ struct event_list **activequeues; ++ int nactivequeues; ++ ++ /* signal handling info */ ++ struct evsignal_info sig; ++ ++ struct event_list eventqueue; ++ struct timeval event_tv; ++ ++ struct min_heap timeheap; ++ ++ struct timeval tv_cache; ++}; ++ ++/* Internal use only: Functions that might be missing from */ ++#ifndef HAVE_TAILQFOREACH ++#define TAILQ_FIRST(head) ((head)->tqh_first) ++#define TAILQ_END(head) NULL ++#define TAILQ_NEXT(elm, field) ((elm)->field.tqe_next) ++#define TAILQ_FOREACH(var, head, field) \ ++ for((var) = TAILQ_FIRST(head); \ ++ (var) != TAILQ_END(head); \ ++ (var) = TAILQ_NEXT(var, field)) ++#define TAILQ_INSERT_BEFORE(listelm, elm, field) do { \ ++ (elm)->field.tqe_prev = (listelm)->field.tqe_prev; \ ++ (elm)->field.tqe_next = (listelm); \ ++ *(listelm)->field.tqe_prev = (elm); \ ++ (listelm)->field.tqe_prev = &(elm)->field.tqe_next; \ ++} while (0) ++#endif /* TAILQ_FOREACH */ ++ ++int _evsignal_set_handler(struct event_base *base, int evsignal, ++ void (*fn)(int)); ++int _evsignal_restore_handler(struct event_base *base, int evsignal); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _EVENT_INTERNAL_H_ */ +diff --git a/libevent/event.3 b/libevent/event.3 +new file mode 100644 +index 0000000..5b33ec6 +--- /dev/null ++++ b/libevent/event.3 +@@ -0,0 +1,624 @@ ++.\" $OpenBSD: event.3,v 1.4 2002/07/12 18:50:48 provos Exp $ ++.\" ++.\" Copyright (c) 2000 Artur Grabowski ++.\" All rights reserved. ++.\" ++.\" Redistribution and use in source and binary forms, with or without ++.\" modification, are permitted provided that the following conditions ++.\" are met: ++.\" ++.\" 1. Redistributions of source code must retain the above copyright ++.\" notice, this list of conditions and the following disclaimer. ++.\" 2. Redistributions in binary form must reproduce the above copyright ++.\" notice, this list of conditions and the following disclaimer in the ++.\" documentation and/or other materials provided with the distribution. ++.\" 3. The name of the author may not be used to endorse or promote products ++.\" derived from this software without specific prior written permission. ++.\" ++.\" THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, ++.\" INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ++.\" AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ++.\" THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++.\" EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++.\" PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ++.\" OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++.\" WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++.\" OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ++.\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++.\" ++.Dd August 8, 2000 ++.Dt EVENT 3 ++.Os ++.Sh NAME ++.Nm event_init , ++.Nm event_dispatch , ++.Nm event_loop , ++.Nm event_loopexit , ++.Nm event_loopbreak , ++.Nm event_set , ++.Nm event_base_dispatch , ++.Nm event_base_loop , ++.Nm event_base_loopexit , ++.Nm event_base_loopbreak , ++.Nm event_base_set , ++.Nm event_base_free , ++.Nm event_add , ++.Nm event_del , ++.Nm event_once , ++.Nm event_base_once , ++.Nm event_pending , ++.Nm event_initialized , ++.Nm event_priority_init , ++.Nm event_priority_set , ++.Nm evtimer_set , ++.Nm evtimer_add , ++.Nm evtimer_del , ++.Nm evtimer_pending , ++.Nm evtimer_initialized , ++.Nm signal_set , ++.Nm signal_add , ++.Nm signal_del , ++.Nm signal_pending , ++.Nm signal_initialized , ++.Nm bufferevent_new , ++.Nm bufferevent_free , ++.Nm bufferevent_write , ++.Nm bufferevent_write_buffer , ++.Nm bufferevent_read , ++.Nm bufferevent_enable , ++.Nm bufferevent_disable , ++.Nm bufferevent_settimeout , ++.Nm bufferevent_base_set , ++.Nm evbuffer_new , ++.Nm evbuffer_free , ++.Nm evbuffer_add , ++.Nm evbuffer_add_buffer , ++.Nm evbuffer_add_printf , ++.Nm evbuffer_add_vprintf , ++.Nm evbuffer_drain , ++.Nm evbuffer_write , ++.Nm evbuffer_read , ++.Nm evbuffer_find , ++.Nm evbuffer_readline , ++.Nm evhttp_new , ++.Nm evhttp_bind_socket , ++.Nm evhttp_free ++.Nd execute a function when a specific event occurs ++.Sh SYNOPSIS ++.Fd #include ++.Fd #include ++.Ft "struct event_base *" ++.Fn "event_init" "void" ++.Ft int ++.Fn "event_dispatch" "void" ++.Ft int ++.Fn "event_loop" "int flags" ++.Ft int ++.Fn "event_loopexit" "struct timeval *tv" ++.Ft int ++.Fn "event_loopbreak" "void" ++.Ft void ++.Fn "event_set" "struct event *ev" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg" ++.Ft int ++.Fn "event_base_dispatch" "struct event_base *base" ++.Ft int ++.Fn "event_base_loop" "struct event_base *base" "int flags" ++.Ft int ++.Fn "event_base_loopexit" "struct event_base *base" "struct timeval *tv" ++.Ft int ++.Fn "event_base_loopbreak" "struct event_base *base" ++.Ft int ++.Fn "event_base_set" "struct event_base *base" "struct event *" ++.Ft void ++.Fn "event_base_free" "struct event_base *base" ++.Ft int ++.Fn "event_add" "struct event *ev" "struct timeval *tv" ++.Ft int ++.Fn "event_del" "struct event *ev" ++.Ft int ++.Fn "event_once" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg" "struct timeval *tv" ++.Ft int ++.Fn "event_base_once" "struct event_base *base" "int fd" "short event" "void (*fn)(int, short, void *)" "void *arg" "struct timeval *tv" ++.Ft int ++.Fn "event_pending" "struct event *ev" "short event" "struct timeval *tv" ++.Ft int ++.Fn "event_initialized" "struct event *ev" ++.Ft int ++.Fn "event_priority_init" "int npriorities" ++.Ft int ++.Fn "event_priority_set" "struct event *ev" "int priority" ++.Ft void ++.Fn "evtimer_set" "struct event *ev" "void (*fn)(int, short, void *)" "void *arg" ++.Ft void ++.Fn "evtimer_add" "struct event *ev" "struct timeval *" ++.Ft void ++.Fn "evtimer_del" "struct event *ev" ++.Ft int ++.Fn "evtimer_pending" "struct event *ev" "struct timeval *tv" ++.Ft int ++.Fn "evtimer_initialized" "struct event *ev" ++.Ft void ++.Fn "signal_set" "struct event *ev" "int signal" "void (*fn)(int, short, void *)" "void *arg" ++.Ft void ++.Fn "signal_add" "struct event *ev" "struct timeval *" ++.Ft void ++.Fn "signal_del" "struct event *ev" ++.Ft int ++.Fn "signal_pending" "struct event *ev" "struct timeval *tv" ++.Ft int ++.Fn "signal_initialized" "struct event *ev" ++.Ft "struct bufferevent *" ++.Fn "bufferevent_new" "int fd" "evbuffercb readcb" "evbuffercb writecb" "everrorcb" "void *cbarg" ++.Ft void ++.Fn "bufferevent_free" "struct bufferevent *bufev" ++.Ft int ++.Fn "bufferevent_write" "struct bufferevent *bufev" "void *data" "size_t size" ++.Ft int ++.Fn "bufferevent_write_buffer" "struct bufferevent *bufev" "struct evbuffer *buf" ++.Ft size_t ++.Fn "bufferevent_read" "struct bufferevent *bufev" "void *data" "size_t size" ++.Ft int ++.Fn "bufferevent_enable" "struct bufferevent *bufev" "short event" ++.Ft int ++.Fn "bufferevent_disable" "struct bufferevent *bufev" "short event" ++.Ft void ++.Fn "bufferevent_settimeout" "struct bufferevent *bufev" "int timeout_read" "int timeout_write" ++.Ft int ++.Fn "bufferevent_base_set" "struct event_base *base" "struct bufferevent *bufev" ++.Ft "struct evbuffer *" ++.Fn "evbuffer_new" "void" ++.Ft void ++.Fn "evbuffer_free" "struct evbuffer *buf" ++.Ft int ++.Fn "evbuffer_add" "struct evbuffer *buf" "const void *data" "size_t size" ++.Ft int ++.Fn "evbuffer_add_buffer" "struct evbuffer *dst" "struct evbuffer *src" ++.Ft int ++.Fn "evbuffer_add_printf" "struct evbuffer *buf" "const char *fmt" "..." ++.Ft int ++.Fn "evbuffer_add_vprintf" "struct evbuffer *buf" "const char *fmt" "va_list ap" ++.Ft void ++.Fn "evbuffer_drain" "struct evbuffer *buf" "size_t size" ++.Ft int ++.Fn "evbuffer_write" "struct evbuffer *buf" "int fd" ++.Ft int ++.Fn "evbuffer_read" "struct evbuffer *buf" "int fd" "int size" ++.Ft "u_char *" ++.Fn "evbuffer_find" "struct evbuffer *buf" "const u_char *data" "size_t size" ++.Ft "char *" ++.Fn "evbuffer_readline" "struct evbuffer *buf" ++.Ft "struct evhttp *" ++.Fn "evhttp_new" "struct event_base *base" ++.Ft int ++.Fn "evhttp_bind_socket" "struct evhttp *http" "const char *address" "u_short port" ++.Ft "void" ++.Fn "evhttp_free" "struct evhttp *http" ++.Ft int ++.Fa (*event_sigcb)(void) ; ++.Ft volatile sig_atomic_t ++.Fa event_gotsig ; ++.Sh DESCRIPTION ++The ++.Nm event ++API provides a mechanism to execute a function when a specific event ++on a file descriptor occurs or after a given time has passed. ++.Pp ++The ++.Nm event ++API needs to be initialized with ++.Fn event_init ++before it can be used. ++.Pp ++In order to process events, an application needs to call ++.Fn event_dispatch . ++This function only returns on error, and should replace the event core ++of the application program. ++.Pp ++The function ++.Fn event_set ++prepares the event structure ++.Fa ev ++to be used in future calls to ++.Fn event_add ++and ++.Fn event_del . ++The event will be prepared to call the function specified by the ++.Fa fn ++argument with an ++.Fa int ++argument indicating the file descriptor, a ++.Fa short ++argument indicating the type of event, and a ++.Fa void * ++argument given in the ++.Fa arg ++argument. ++The ++.Fa fd ++indicates the file descriptor that should be monitored for events. ++The events can be either ++.Va EV_READ , ++.Va EV_WRITE , ++or both, ++indicating that an application can read or write from the file descriptor ++respectively without blocking. ++.Pp ++The function ++.Fa fn ++will be called with the file descriptor that triggered the event and ++the type of event which will be either ++.Va EV_TIMEOUT , ++.Va EV_SIGNAL , ++.Va EV_READ , ++or ++.Va EV_WRITE . ++Additionally, an event which has registered interest in more than one of the ++preceeding events, via bitwise-OR to ++.Fn event_set , ++can provide its callback function with a bitwise-OR of more than one triggered ++event. ++The additional flag ++.Va EV_PERSIST ++makes an ++.Fn event_add ++persistent until ++.Fn event_del ++has been called. ++.Pp ++Once initialized, the ++.Fa ev ++structure can be used repeatedly with ++.Fn event_add ++and ++.Fn event_del ++and does not need to be reinitialized unless the function called and/or ++the argument to it are to be changed. ++However, when an ++.Fa ev ++structure has been added to libevent using ++.Fn event_add ++the structure must persist until the event occurs (assuming ++.Fa EV_PERSIST ++is not set) or is removed ++using ++.Fn event_del . ++You may not reuse the same ++.Fa ev ++structure for multiple monitored descriptors; each descriptor ++needs its own ++.Fa ev . ++.Pp ++The function ++.Fn event_add ++schedules the execution of the ++.Fa ev ++event when the event specified in ++.Fn event_set ++occurs or in at least the time specified in the ++.Fa tv . ++If ++.Fa tv ++is ++.Dv NULL , ++no timeout occurs and the function will only be called ++if a matching event occurs on the file descriptor. ++The event in the ++.Fa ev ++argument must be already initialized by ++.Fn event_set ++and may not be used in calls to ++.Fn event_set ++until it has timed out or been removed with ++.Fn event_del . ++If the event in the ++.Fa ev ++argument already has a scheduled timeout, the old timeout will be ++replaced by the new one. ++.Pp ++The function ++.Fn event_del ++will cancel the event in the argument ++.Fa ev . ++If the event has already executed or has never been added ++the call will have no effect. ++.Pp ++The functions ++.Fn evtimer_set , ++.Fn evtimer_add , ++.Fn evtimer_del , ++.Fn evtimer_initialized , ++and ++.Fn evtimer_pending ++are abbreviations for common situations where only a timeout is required. ++The file descriptor passed will be \-1, and the event type will be ++.Va EV_TIMEOUT . ++.Pp ++The functions ++.Fn signal_set , ++.Fn signal_add , ++.Fn signal_del , ++.Fn signal_initialized , ++and ++.Fn signal_pending ++are abbreviations. ++The event type will be a persistent ++.Va EV_SIGNAL . ++That means ++.Fn signal_set ++adds ++.Va EV_PERSIST . ++.Pp ++In order to avoid races in signal handlers, the ++.Nm event ++API provides two variables: ++.Va event_sigcb ++and ++.Va event_gotsig . ++A signal handler ++sets ++.Va event_gotsig ++to indicate that a signal has been received. ++The application sets ++.Va event_sigcb ++to a callback function. ++After the signal handler sets ++.Va event_gotsig , ++.Nm event_dispatch ++will execute the callback function to process received signals. ++The callback returns 1 when no events are registered any more. ++It can return \-1 to indicate an error to the ++.Nm event ++library, causing ++.Fn event_dispatch ++to terminate with ++.Va errno ++set to ++.Er EINTR . ++.Pp ++The function ++.Fn event_once ++is similar to ++.Fn event_set . ++However, it schedules a callback to be called exactly once and does not ++require the caller to prepare an ++.Fa event ++structure. ++This function supports ++.Fa EV_TIMEOUT , ++.Fa EV_READ , ++and ++.Fa EV_WRITE . ++.Pp ++The ++.Fn event_pending ++function can be used to check if the event specified by ++.Fa event ++is pending to run. ++If ++.Va EV_TIMEOUT ++was specified and ++.Fa tv ++is not ++.Dv NULL , ++the expiration time of the event will be returned in ++.Fa tv . ++.Pp ++The ++.Fn event_initialized ++macro can be used to check if an event has been initialized. ++.Pp ++The ++.Nm event_loop ++function provides an interface for single pass execution of pending ++events. ++The flags ++.Va EVLOOP_ONCE ++and ++.Va EVLOOP_NONBLOCK ++are recognized. ++The ++.Nm event_loopexit ++function exits from the event loop. The next ++.Fn event_loop ++iteration after the ++given timer expires will complete normally (handling all queued events) then ++exit without blocking for events again. Subsequent invocations of ++.Fn event_loop ++will proceed normally. ++The ++.Nm event_loopbreak ++function exits from the event loop immediately. ++.Fn event_loop ++will abort after the next event is completed; ++.Fn event_loopbreak ++is typically invoked from this event's callback. This behavior is analogous ++to the "break;" statement. Subsequent invocations of ++.Fn event_loop ++will proceed normally. ++.Pp ++It is the responsibility of the caller to provide these functions with ++pre-allocated event structures. ++.Pp ++.Sh EVENT PRIORITIES ++By default ++.Nm libevent ++schedules all active events with the same priority. ++However, sometimes it is desirable to process some events with a higher ++priority than others. ++For that reason, ++.Nm libevent ++supports strict priority queues. ++Active events with a lower priority are always processed before events ++with a higher priority. ++.Pp ++The number of different priorities can be set initially with the ++.Fn event_priority_init ++function. ++This function should be called before the first call to ++.Fn event_dispatch . ++The ++.Fn event_priority_set ++function can be used to assign a priority to an event. ++By default, ++.Nm libevent ++assigns the middle priority to all events unless their priority ++is explicitly set. ++.Sh THREAD SAFE EVENTS ++.Nm Libevent ++has experimental support for thread-safe events. ++When initializing the library via ++.Fn event_init , ++an event base is returned. ++This event base can be used in conjunction with calls to ++.Fn event_base_set , ++.Fn event_base_dispatch , ++.Fn event_base_loop , ++.Fn event_base_loopexit , ++.Fn bufferevent_base_set ++and ++.Fn event_base_free . ++.Fn event_base_set ++should be called after preparing an event with ++.Fn event_set , ++as ++.Fn event_set ++assigns the provided event to the most recently created event base. ++.Fn bufferevent_base_set ++should be called after preparing a bufferevent with ++.Fn bufferevent_new . ++.Fn event_base_free ++should be used to free memory associated with the event base ++when it is no longer needed. ++.Sh BUFFERED EVENTS ++.Nm libevent ++provides an abstraction on top of the regular event callbacks. ++This abstraction is called a ++.Va "buffered event" . ++A buffered event provides input and output buffers that get filled ++and drained automatically. ++The user of a buffered event no longer deals directly with the IO, ++but instead is reading from input and writing to output buffers. ++.Pp ++A new bufferevent is created by ++.Fn bufferevent_new . ++The parameter ++.Fa fd ++specifies the file descriptor from which data is read and written to. ++This file descriptor is not allowed to be a ++.Xr pipe 2 . ++The next three parameters are callbacks. ++The read and write callback have the following form: ++.Ft void ++.Fn "(*cb)" "struct bufferevent *bufev" "void *arg" . ++The error callback has the following form: ++.Ft void ++.Fn "(*cb)" "struct bufferevent *bufev" "short what" "void *arg" . ++The argument is specified by the fourth parameter ++.Fa "cbarg" . ++A ++.Fa bufferevent struct ++pointer is returned on success, NULL on error. ++Both the read and the write callback may be NULL. ++The error callback has to be always provided. ++.Pp ++Once initialized, the bufferevent structure can be used repeatedly with ++bufferevent_enable() and bufferevent_disable(). ++The flags parameter can be a combination of ++.Va EV_READ ++and ++.Va EV_WRITE . ++When read enabled the bufferevent will try to read from the file ++descriptor and call the read callback. ++The write callback is executed ++whenever the output buffer is drained below the write low watermark, ++which is ++.Va 0 ++by default. ++.Pp ++The ++.Fn bufferevent_write ++function can be used to write data to the file descriptor. ++The data is appended to the output buffer and written to the descriptor ++automatically as it becomes available for writing. ++.Fn bufferevent_write ++returns 0 on success or \-1 on failure. ++The ++.Fn bufferevent_read ++function is used to read data from the input buffer, ++returning the amount of data read. ++.Pp ++If multiple bases are in use, bufferevent_base_set() must be called before ++enabling the bufferevent for the first time. ++.Sh NON-BLOCKING HTTP SUPPORT ++.Nm libevent ++provides a very thin HTTP layer that can be used both to host an HTTP ++server and also to make HTTP requests. ++An HTTP server can be created by calling ++.Fn evhttp_new . ++It can be bound to any port and address with the ++.Fn evhttp_bind_socket ++function. ++When the HTTP server is no longer used, it can be freed via ++.Fn evhttp_free . ++.Pp ++To be notified of HTTP requests, a user needs to register callbacks with the ++HTTP server. ++This can be done by calling ++.Fn evhttp_set_cb . ++The second argument is the URI for which a callback is being registered. ++The corresponding callback will receive an ++.Va struct evhttp_request ++object that contains all information about the request. ++.Pp ++This section does not document all the possible function calls; please ++check ++.Va event.h ++for the public interfaces. ++.Sh ADDITIONAL NOTES ++It is possible to disable support for ++.Va epoll , kqueue , devpoll , poll ++or ++.Va select ++by setting the environment variable ++.Va EVENT_NOEPOLL , EVENT_NOKQUEUE , EVENT_NODEVPOLL , EVENT_NOPOLL ++or ++.Va EVENT_NOSELECT , ++respectively. ++By setting the environment variable ++.Va EVENT_SHOW_METHOD , ++.Nm libevent ++displays the kernel notification method that it uses. ++.Sh RETURN VALUES ++Upon successful completion ++.Fn event_add ++and ++.Fn event_del ++return 0. ++Otherwise, \-1 is returned and the global variable errno is ++set to indicate the error. ++.Sh SEE ALSO ++.Xr kqueue 2 , ++.Xr poll 2 , ++.Xr select 2 , ++.Xr evdns 3 , ++.Xr timeout 9 ++.Sh HISTORY ++The ++.Nm event ++API manpage is based on the ++.Xr timeout 9 ++manpage by Artur Grabowski. ++The port of ++.Nm libevent ++to Windows is due to Michael A. Davis. ++Support for real-time signals is due to Taral. ++.Sh AUTHORS ++The ++.Nm event ++library was written by Niels Provos. ++.Sh BUGS ++This documentation is neither complete nor authoritative. ++If you are in doubt about the usage of this API then ++check the source code to find out how it works, write ++up the missing piece of documentation and send it to ++me for inclusion in this man page. +diff --git a/libevent/event.c b/libevent/event.c +new file mode 100644 +index 0000000..826b7db +--- /dev/null ++++ b/libevent/event.c +@@ -0,0 +1,977 @@ ++/* ++ * Copyright (c) 2000-2004 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#ifdef WIN32 ++#define WIN32_LEAN_AND_MEAN ++#include ++#undef WIN32_LEAN_AND_MEAN ++#endif ++#include ++#ifdef HAVE_SYS_TIME_H ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#ifndef WIN32 ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++ ++#include "event.h" ++#include "event-internal.h" ++#include "evutil.h" ++#include "log.h" ++ ++#ifdef HAVE_EVENT_PORTS ++extern const struct eventop evportops; ++#endif ++#ifdef HAVE_SELECT ++extern const struct eventop selectops; ++#endif ++#ifdef HAVE_POLL ++extern const struct eventop pollops; ++#endif ++#ifdef HAVE_EPOLL ++extern const struct eventop epollops; ++#endif ++#ifdef HAVE_WORKING_KQUEUE ++extern const struct eventop kqops; ++#endif ++#ifdef HAVE_DEVPOLL ++extern const struct eventop devpollops; ++#endif ++#ifdef WIN32 ++extern const struct eventop win32ops; ++#endif ++ ++/* In order of preference */ ++static const struct eventop *eventops[] = { ++#ifdef HAVE_EVENT_PORTS ++ &evportops, ++#endif ++#ifdef HAVE_WORKING_KQUEUE ++ &kqops, ++#endif ++#ifdef HAVE_EPOLL ++ &epollops, ++#endif ++#ifdef HAVE_DEVPOLL ++ &devpollops, ++#endif ++#ifdef HAVE_POLL ++ &pollops, ++#endif ++#ifdef HAVE_SELECT ++ &selectops, ++#endif ++#ifdef WIN32 ++ &win32ops, ++#endif ++ NULL ++}; ++ ++/* Global state */ ++struct event_base *current_base = NULL; ++extern struct event_base *evsignal_base; ++static int use_monotonic; ++ ++/* Handle signals - This is a deprecated interface */ ++int (*event_sigcb)(void); /* Signal callback when gotsig is set */ ++volatile sig_atomic_t event_gotsig; /* Set in signal handler */ ++ ++/* Prototypes */ ++static void event_queue_insert(struct event_base *, struct event *, int); ++static void event_queue_remove(struct event_base *, struct event *, int); ++static int event_haveevents(struct event_base *); ++ ++static void event_process_active(struct event_base *); ++ ++static int timeout_next(struct event_base *, struct timeval **); ++static void timeout_process(struct event_base *); ++static void timeout_correct(struct event_base *, struct timeval *); ++ ++static void ++detect_monotonic(void) ++{ ++#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) ++ struct timespec ts; ++ ++ if (clock_gettime(CLOCK_MONOTONIC, &ts) == 0) ++ use_monotonic = 1; ++#endif ++} ++ ++static int ++gettime(struct event_base *base, struct timeval *tp) ++{ ++ if (base->tv_cache.tv_sec) { ++ *tp = base->tv_cache; ++ return (0); ++ } ++ ++#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) ++ if (use_monotonic) { ++ struct timespec ts; ++ ++ if (clock_gettime(CLOCK_MONOTONIC, &ts) == -1) ++ return (-1); ++ ++ tp->tv_sec = ts.tv_sec; ++ tp->tv_usec = ts.tv_nsec / 1000; ++ return (0); ++ } ++#endif ++ ++ return (evutil_gettimeofday(tp, NULL)); ++} ++ ++struct event_base * ++event_init(void) ++{ ++ struct event_base *base = event_base_new(); ++ ++ if (base != NULL) ++ current_base = base; ++ ++ return (base); ++} ++ ++struct event_base * ++event_base_new(void) ++{ ++ int i; ++ struct event_base *base; ++ ++ if ((base = calloc(1, sizeof(struct event_base))) == NULL) ++ event_err(1, "%s: calloc", __func__); ++ ++ event_sigcb = NULL; ++ event_gotsig = 0; ++ ++ detect_monotonic(); ++ gettime(base, &base->event_tv); ++ ++ min_heap_ctor(&base->timeheap); ++ TAILQ_INIT(&base->eventqueue); ++ base->sig.ev_signal_pair[0] = -1; ++ base->sig.ev_signal_pair[1] = -1; ++ ++ base->evbase = NULL; ++ for (i = 0; eventops[i] && !base->evbase; i++) { ++ base->evsel = eventops[i]; ++ ++ base->evbase = base->evsel->init(base); ++ } ++ ++ if (base->evbase == NULL) ++ event_errx(1, "%s: no event mechanism available", __func__); ++ ++ if (getenv("EVENT_SHOW_METHOD")) ++ event_msgx("libevent using: %s\n", ++ base->evsel->name); ++ ++ /* allocate a single active event queue */ ++ event_base_priority_init(base, 1); ++ ++ return (base); ++} ++ ++void ++event_base_free(struct event_base *base) ++{ ++ int i; ++ ++ if (base == NULL && current_base) ++ base = current_base; ++ if (base == current_base) ++ current_base = NULL; ++ ++ assert(base); ++ ++ if (base->evsel->dealloc != NULL) ++ base->evsel->dealloc(base, base->evbase); ++ ++ min_heap_dtor(&base->timeheap); ++ ++ for (i = 0; i < base->nactivequeues; ++i) ++ free(base->activequeues[i]); ++ free(base->activequeues); ++ ++ free(base); ++} ++ ++/* reinitialized the event base after a fork */ ++int ++event_reinit(struct event_base *base) ++{ ++ const struct eventop *evsel = base->evsel; ++ void *evbase = base->evbase; ++ int res = 0; ++ struct event *ev; ++ ++ /* check if this event mechanism requires reinit */ ++ if (!evsel->need_reinit) ++ return (0); ++ ++ /* prevent internal delete */ ++ if (base->sig.ev_signal_added) { ++ event_queue_remove(base, &base->sig.ev_signal, ++ EVLIST_INSERTED); ++ base->sig.ev_signal_added = 0; ++ } ++ ++ if (base->evsel->dealloc != NULL) ++ base->evsel->dealloc(base, base->evbase); ++ evbase = base->evbase = evsel->init(base); ++ if (base->evbase == NULL) ++ event_errx(1, "%s: could not reinitialize event mechanism", ++ __func__); ++ ++ TAILQ_FOREACH(ev, &base->eventqueue, ev_next) { ++ if (evsel->add(evbase, ev) == -1) ++ res = -1; ++ } ++ ++ return (res); ++} ++ ++int ++event_priority_init(int npriorities) ++{ ++ return event_base_priority_init(current_base, npriorities); ++} ++ ++int ++event_base_priority_init(struct event_base *base, int npriorities) ++{ ++ int i; ++ ++ if (base->event_count_active) ++ return (-1); ++ ++ if (base->nactivequeues && npriorities != base->nactivequeues) { ++ for (i = 0; i < base->nactivequeues; ++i) { ++ free(base->activequeues[i]); ++ } ++ free(base->activequeues); ++ } ++ ++ /* Allocate our priority queues */ ++ base->nactivequeues = npriorities; ++ base->activequeues = (struct event_list **)calloc(base->nactivequeues, ++ npriorities * sizeof(struct event_list *)); ++ if (base->activequeues == NULL) ++ event_err(1, "%s: calloc", __func__); ++ ++ for (i = 0; i < base->nactivequeues; ++i) { ++ base->activequeues[i] = malloc(sizeof(struct event_list)); ++ if (base->activequeues[i] == NULL) ++ event_err(1, "%s: malloc", __func__); ++ TAILQ_INIT(base->activequeues[i]); ++ } ++ ++ return (0); ++} ++ ++int ++event_haveevents(struct event_base *base) ++{ ++ return (base->event_count > 0); ++} ++ ++/* ++ * Active events are stored in priority queues. Lower priorities are always ++ * process before higher priorities. Low priority events can starve high ++ * priority ones. ++ */ ++ ++static void ++event_process_active(struct event_base *base) ++{ ++ struct event *ev; ++ struct event_list *activeq = NULL; ++ int i; ++ short ncalls; ++ ++ for (i = 0; i < base->nactivequeues; ++i) { ++ if (TAILQ_FIRST(base->activequeues[i]) != NULL) { ++ activeq = base->activequeues[i]; ++ break; ++ } ++ } ++ ++ assert(activeq != NULL); ++ ++ for (ev = TAILQ_FIRST(activeq); ev; ev = TAILQ_FIRST(activeq)) { ++ if (ev->ev_events & EV_PERSIST) ++ event_queue_remove(base, ev, EVLIST_ACTIVE); ++ else ++ event_del(ev); ++ ++ /* Allows deletes to work */ ++ ncalls = ev->ev_ncalls; ++ ev->ev_pncalls = &ncalls; ++ while (ncalls) { ++ ncalls--; ++ ev->ev_ncalls = ncalls; ++ (*ev->ev_callback)((int)ev->ev_fd, ev->ev_res, ev->ev_arg); ++ if (event_gotsig || base->event_break) ++ return; ++ } ++ } ++} ++ ++/* ++ * Wait continously for events. We exit only if no events are left. ++ */ ++ ++int ++event_dispatch(void) ++{ ++ return (event_loop(0)); ++} ++ ++int ++event_base_dispatch(struct event_base *event_base) ++{ ++ return (event_base_loop(event_base, 0)); ++} ++ ++const char * ++event_base_get_method(struct event_base *base) ++{ ++ assert(base); ++ return (base->evsel->name); ++} ++ ++static void ++event_loopexit_cb(int fd, short what, void *arg) ++{ ++ struct event_base *base = arg; ++ base->event_gotterm = 1; ++} ++ ++/* not thread safe */ ++int ++event_loopexit(const struct timeval *tv) ++{ ++ return (event_once(-1, EV_TIMEOUT, event_loopexit_cb, ++ current_base, tv)); ++ ++} ++ ++int ++event_base_loopexit(struct event_base *event_base, const struct timeval *tv) ++{ ++ return (event_base_once(event_base, -1, EV_TIMEOUT, event_loopexit_cb, ++ event_base, tv)); ++} ++ ++/* not thread safe */ ++int ++event_loopbreak(void) ++{ ++ return (event_base_loopbreak(current_base)); ++} ++ ++int ++event_base_loopbreak(struct event_base *event_base) ++{ ++ if (event_base == NULL) ++ return (-1); ++ ++ event_base->event_break = 1; ++ return (0); ++} ++ ++ ++ ++/* not thread safe */ ++ ++int ++event_loop(int flags) ++{ ++ return event_base_loop(current_base, flags); ++} ++ ++int ++event_base_loop(struct event_base *base, int flags) ++{ ++ const struct eventop *evsel = base->evsel; ++ void *evbase = base->evbase; ++ struct timeval tv; ++ struct timeval *tv_p; ++ int res, done; ++ ++ if (&base->sig.ev_signal_added) ++ evsignal_base = base; ++ done = 0; ++ while (!done) { ++ /* Terminate the loop if we have been asked to */ ++ if (base->event_gotterm) { ++ base->event_gotterm = 0; ++ break; ++ } ++ ++ if (base->event_break) { ++ base->event_break = 0; ++ break; ++ } ++ ++ /* You cannot use this interface for multi-threaded apps */ ++ while (event_gotsig) { ++ event_gotsig = 0; ++ if (event_sigcb) { ++ res = (*event_sigcb)(); ++ if (res == -1) { ++ errno = EINTR; ++ return (-1); ++ } ++ } ++ } ++ ++ timeout_correct(base, &tv); ++ ++ tv_p = &tv; ++ if (!base->event_count_active && !(flags & EVLOOP_NONBLOCK)) { ++ timeout_next(base, &tv_p); ++ } else { ++ /* ++ * if we have active events, we just poll new events ++ * without waiting. ++ */ ++ evutil_timerclear(&tv); ++ } ++ ++ /* If we have no events, we just exit */ ++ if (!event_haveevents(base)) { ++ event_debug(("%s: no events registered.", __func__)); ++ return (1); ++ } ++ ++ /* update last old time */ ++ gettime(base, &base->event_tv); ++ ++ /* clear time cache */ ++ base->tv_cache.tv_sec = 0; ++ ++ res = evsel->dispatch(base, evbase, tv_p); ++ ++ if (res == -1) ++ return (-1); ++ gettime(base, &base->tv_cache); ++ ++ timeout_process(base); ++ ++ if (base->event_count_active) { ++ event_process_active(base); ++ if (!base->event_count_active && (flags & EVLOOP_ONCE)) ++ done = 1; ++ } else if (flags & EVLOOP_NONBLOCK) ++ done = 1; ++ } ++ ++ event_debug(("%s: asked to terminate loop.", __func__)); ++ return (0); ++} ++ ++/* Sets up an event for processing once */ ++ ++struct event_once { ++ struct event ev; ++ ++ void (*cb)(int, short, void *); ++ void *arg; ++}; ++ ++/* One-time callback, it deletes itself */ ++ ++static void ++event_once_cb(int fd, short events, void *arg) ++{ ++ struct event_once *eonce = arg; ++ ++ (*eonce->cb)(fd, events, eonce->arg); ++ free(eonce); ++} ++ ++/* not threadsafe, event scheduled once. */ ++int ++event_once(int fd, short events, ++ void (*callback)(int, short, void *), void *arg, const struct timeval *tv) ++{ ++ return event_base_once(current_base, fd, events, callback, arg, tv); ++} ++ ++/* Schedules an event once */ ++int ++event_base_once(struct event_base *base, int fd, short events, ++ void (*callback)(int, short, void *), void *arg, const struct timeval *tv) ++{ ++ struct event_once *eonce; ++ struct timeval etv; ++ int res; ++ ++ /* We cannot support signals that just fire once */ ++ if (events & EV_SIGNAL) ++ return (-1); ++ ++ if ((eonce = calloc(1, sizeof(struct event_once))) == NULL) ++ return (-1); ++ ++ eonce->cb = callback; ++ eonce->arg = arg; ++ ++ if (events == EV_TIMEOUT) { ++ if (tv == NULL) { ++ evutil_timerclear(&etv); ++ tv = &etv; ++ } ++ ++ evtimer_set(&eonce->ev, event_once_cb, eonce); ++ } else if (events & (EV_READ|EV_WRITE)) { ++ events &= EV_READ|EV_WRITE; ++ ++ event_set(&eonce->ev, fd, events, event_once_cb, eonce); ++ } else { ++ /* Bad event combination */ ++ free(eonce); ++ return (-1); ++ } ++ ++ res = event_base_set(base, &eonce->ev); ++ if (res == 0) ++ res = event_add(&eonce->ev, tv); ++ if (res != 0) { ++ free(eonce); ++ return (res); ++ } ++ ++ return (0); ++} ++ ++void ++event_set(struct event *ev, int fd, short events, ++ void (*callback)(int, short, void *), void *arg) ++{ ++ /* Take the current base - caller needs to set the real base later */ ++ ev->ev_base = current_base; ++ ++ ev->ev_callback = callback; ++ ev->ev_arg = arg; ++ ev->ev_fd = fd; ++ ev->ev_events = events; ++ ev->ev_res = 0; ++ ev->ev_flags = EVLIST_INIT; ++ ev->ev_ncalls = 0; ++ ev->ev_pncalls = NULL; ++ ++ min_heap_elem_init(ev); ++ ++ /* by default, we put new events into the middle priority */ ++ if(current_base) ++ ev->ev_pri = current_base->nactivequeues/2; ++} ++ ++int ++event_base_set(struct event_base *base, struct event *ev) ++{ ++ /* Only innocent events may be assigned to a different base */ ++ if (ev->ev_flags != EVLIST_INIT) ++ return (-1); ++ ++ ev->ev_base = base; ++ ev->ev_pri = base->nactivequeues/2; ++ ++ return (0); ++} ++ ++/* ++ * Set's the priority of an event - if an event is already scheduled ++ * changing the priority is going to fail. ++ */ ++ ++int ++event_priority_set(struct event *ev, int pri) ++{ ++ if (ev->ev_flags & EVLIST_ACTIVE) ++ return (-1); ++ if (pri < 0 || pri >= ev->ev_base->nactivequeues) ++ return (-1); ++ ++ ev->ev_pri = pri; ++ ++ return (0); ++} ++ ++/* ++ * Checks if a specific event is pending or scheduled. ++ */ ++ ++int ++event_pending(struct event *ev, short event, struct timeval *tv) ++{ ++ struct timeval now, res; ++ int flags = 0; ++ ++ if (ev->ev_flags & EVLIST_INSERTED) ++ flags |= (ev->ev_events & (EV_READ|EV_WRITE|EV_SIGNAL)); ++ if (ev->ev_flags & EVLIST_ACTIVE) ++ flags |= ev->ev_res; ++ if (ev->ev_flags & EVLIST_TIMEOUT) ++ flags |= EV_TIMEOUT; ++ ++ event &= (EV_TIMEOUT|EV_READ|EV_WRITE|EV_SIGNAL); ++ ++ /* See if there is a timeout that we should report */ ++ if (tv != NULL && (flags & event & EV_TIMEOUT)) { ++ gettime(ev->ev_base, &now); ++ evutil_timersub(&ev->ev_timeout, &now, &res); ++ /* correctly remap to real time */ ++ evutil_gettimeofday(&now, NULL); ++ evutil_timeradd(&now, &res, tv); ++ } ++ ++ return (flags & event); ++} ++ ++int ++event_add(struct event *ev, const struct timeval *tv) ++{ ++ struct event_base *base = ev->ev_base; ++ const struct eventop *evsel = base->evsel; ++ void *evbase = base->evbase; ++ int res = 0; ++ ++ event_debug(( ++ "event_add: event: %p, %s%s%scall %p", ++ ev, ++ ev->ev_events & EV_READ ? "EV_READ " : " ", ++ ev->ev_events & EV_WRITE ? "EV_WRITE " : " ", ++ tv ? "EV_TIMEOUT " : " ", ++ ev->ev_callback)); ++ ++ assert(!(ev->ev_flags & ~EVLIST_ALL)); ++ ++ /* ++ * prepare for timeout insertion further below, if we get a ++ * failure on any step, we should not change any state. ++ */ ++ if (tv != NULL && !(ev->ev_flags & EVLIST_TIMEOUT)) { ++ if (min_heap_reserve(&base->timeheap, ++ 1 + min_heap_size(&base->timeheap)) == -1) ++ return (-1); /* ENOMEM == errno */ ++ } ++ ++ if ((ev->ev_events & (EV_READ|EV_WRITE|EV_SIGNAL)) && ++ !(ev->ev_flags & (EVLIST_INSERTED|EVLIST_ACTIVE))) { ++ res = evsel->add(evbase, ev); ++ if (res != -1) ++ event_queue_insert(base, ev, EVLIST_INSERTED); ++ } ++ ++ /* ++ * we should change the timout state only if the previous event ++ * addition succeeded. ++ */ ++ if (res != -1 && tv != NULL) { ++ struct timeval now; ++ ++ /* ++ * we already reserved memory above for the case where we ++ * are not replacing an exisiting timeout. ++ */ ++ if (ev->ev_flags & EVLIST_TIMEOUT) ++ event_queue_remove(base, ev, EVLIST_TIMEOUT); ++ ++ /* Check if it is active due to a timeout. Rescheduling ++ * this timeout before the callback can be executed ++ * removes it from the active list. */ ++ if ((ev->ev_flags & EVLIST_ACTIVE) && ++ (ev->ev_res & EV_TIMEOUT)) { ++ /* See if we are just active executing this ++ * event in a loop ++ */ ++ if (ev->ev_ncalls && ev->ev_pncalls) { ++ /* Abort loop */ ++ *ev->ev_pncalls = 0; ++ } ++ ++ event_queue_remove(base, ev, EVLIST_ACTIVE); ++ } ++ ++ gettime(base, &now); ++ evutil_timeradd(&now, tv, &ev->ev_timeout); ++ ++ event_debug(( ++ "event_add: timeout in %ld seconds, call %p", ++ tv->tv_sec, ev->ev_callback)); ++ ++ event_queue_insert(base, ev, EVLIST_TIMEOUT); ++ } ++ ++ return (0); ++} ++ ++int ++event_del(struct event *ev) ++{ ++ struct event_base *base; ++ const struct eventop *evsel; ++ void *evbase; ++ ++ event_debug(("event_del: %p, callback %p", ++ ev, ev->ev_callback)); ++ ++ /* An event without a base has not been added */ ++ if (ev->ev_base == NULL) ++ return (-1); ++ ++ base = ev->ev_base; ++ evsel = base->evsel; ++ evbase = base->evbase; ++ ++ assert(!(ev->ev_flags & ~EVLIST_ALL)); ++ ++ /* See if we are just active executing this event in a loop */ ++ if (ev->ev_ncalls && ev->ev_pncalls) { ++ /* Abort loop */ ++ *ev->ev_pncalls = 0; ++ } ++ ++ if (ev->ev_flags & EVLIST_TIMEOUT) ++ event_queue_remove(base, ev, EVLIST_TIMEOUT); ++ ++ if (ev->ev_flags & EVLIST_ACTIVE) ++ event_queue_remove(base, ev, EVLIST_ACTIVE); ++ ++ if (ev->ev_flags & EVLIST_INSERTED) { ++ event_queue_remove(base, ev, EVLIST_INSERTED); ++ return (evsel->del(evbase, ev)); ++ } ++ ++ return (0); ++} ++ ++void ++event_active(struct event *ev, int res, short ncalls) ++{ ++ /* We get different kinds of events, add them together */ ++ if (ev->ev_flags & EVLIST_ACTIVE) { ++ ev->ev_res |= res; ++ return; ++ } ++ ++ ev->ev_res = res; ++ ev->ev_ncalls = ncalls; ++ ev->ev_pncalls = NULL; ++ event_queue_insert(ev->ev_base, ev, EVLIST_ACTIVE); ++} ++ ++static int ++timeout_next(struct event_base *base, struct timeval **tv_p) ++{ ++ struct timeval now; ++ struct event *ev; ++ struct timeval *tv = *tv_p; ++ ++ if ((ev = min_heap_top(&base->timeheap)) == NULL) { ++ /* if no time-based events are active wait for I/O */ ++ *tv_p = NULL; ++ return (0); ++ } ++ ++ if (gettime(base, &now) == -1) ++ return (-1); ++ ++ if (evutil_timercmp(&ev->ev_timeout, &now, <=)) { ++ evutil_timerclear(tv); ++ return (0); ++ } ++ ++ evutil_timersub(&ev->ev_timeout, &now, tv); ++ ++ assert(tv->tv_sec >= 0); ++ assert(tv->tv_usec >= 0); ++ ++ event_debug(("timeout_next: in %ld seconds", tv->tv_sec)); ++ return (0); ++} ++ ++/* ++ * Determines if the time is running backwards by comparing the current ++ * time against the last time we checked. Not needed when using clock ++ * monotonic. ++ */ ++ ++static void ++timeout_correct(struct event_base *base, struct timeval *tv) ++{ ++ struct event **pev; ++ unsigned int size; ++ struct timeval off; ++ ++ if (use_monotonic) ++ return; ++ ++ /* Check if time is running backwards */ ++ gettime(base, tv); ++ if (evutil_timercmp(tv, &base->event_tv, >=)) { ++ base->event_tv = *tv; ++ return; ++ } ++ ++ event_debug(("%s: time is running backwards, corrected", ++ __func__)); ++ evutil_timersub(&base->event_tv, tv, &off); ++ ++ /* ++ * We can modify the key element of the node without destroying ++ * the key, beause we apply it to all in the right order. ++ */ ++ pev = base->timeheap.p; ++ size = base->timeheap.n; ++ for (; size-- > 0; ++pev) { ++ struct timeval *ev_tv = &(**pev).ev_timeout; ++ evutil_timersub(ev_tv, &off, ev_tv); ++ } ++} ++ ++void ++timeout_process(struct event_base *base) ++{ ++ struct timeval now; ++ struct event *ev; ++ ++ if (min_heap_empty(&base->timeheap)) ++ return; ++ ++ gettime(base, &now); ++ ++ while ((ev = min_heap_top(&base->timeheap))) { ++ if (evutil_timercmp(&ev->ev_timeout, &now, >)) ++ break; ++ ++ /* delete this event from the I/O queues */ ++ event_del(ev); ++ ++ event_debug(("timeout_process: call %p", ++ ev->ev_callback)); ++ event_active(ev, EV_TIMEOUT, 1); ++ } ++} ++ ++void ++event_queue_remove(struct event_base *base, struct event *ev, int queue) ++{ ++ if (!(ev->ev_flags & queue)) ++ event_errx(1, "%s: %p(fd %d) not on queue %x", __func__, ++ ev, ev->ev_fd, queue); ++ ++ if (~ev->ev_flags & EVLIST_INTERNAL) ++ base->event_count--; ++ ++ ev->ev_flags &= ~queue; ++ switch (queue) { ++ case EVLIST_INSERTED: ++ TAILQ_REMOVE(&base->eventqueue, ev, ev_next); ++ break; ++ case EVLIST_ACTIVE: ++ base->event_count_active--; ++ TAILQ_REMOVE(base->activequeues[ev->ev_pri], ++ ev, ev_active_next); ++ break; ++ case EVLIST_TIMEOUT: ++ min_heap_erase(&base->timeheap, ev); ++ break; ++ default: ++ event_errx(1, "%s: unknown queue %x", __func__, queue); ++ } ++} ++ ++void ++event_queue_insert(struct event_base *base, struct event *ev, int queue) ++{ ++ if (ev->ev_flags & queue) { ++ /* Double insertion is possible for active events */ ++ if (queue & EVLIST_ACTIVE) ++ return; ++ ++ event_errx(1, "%s: %p(fd %d) already on queue %x", __func__, ++ ev, ev->ev_fd, queue); ++ } ++ ++ if (~ev->ev_flags & EVLIST_INTERNAL) ++ base->event_count++; ++ ++ ev->ev_flags |= queue; ++ switch (queue) { ++ case EVLIST_INSERTED: ++ TAILQ_INSERT_TAIL(&base->eventqueue, ev, ev_next); ++ break; ++ case EVLIST_ACTIVE: ++ base->event_count_active++; ++ TAILQ_INSERT_TAIL(base->activequeues[ev->ev_pri], ++ ev,ev_active_next); ++ break; ++ case EVLIST_TIMEOUT: { ++ min_heap_push(&base->timeheap, ev); ++ break; ++ } ++ default: ++ event_errx(1, "%s: unknown queue %x", __func__, queue); ++ } ++} ++ ++/* Functions for debugging */ ++ ++const char * ++event_get_version(void) ++{ ++ return (VERSION); ++} ++ ++/* ++ * No thread-safe interface needed - the information should be the same ++ * for all threads. ++ */ ++ ++const char * ++event_get_method(void) ++{ ++ return (current_base->evsel->name); ++} +diff --git a/libevent/event.h b/libevent/event.h +new file mode 100644 +index 0000000..d67ecb5 +--- /dev/null ++++ b/libevent/event.h +@@ -0,0 +1,1203 @@ ++/* ++ * Copyright (c) 2000-2007 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifndef _EVENT_H_ ++#define _EVENT_H_ ++ ++#include "event-fpm.h" ++ ++/** @mainpage ++ ++ @section intro Introduction ++ ++ libevent is an event notification library for developing scalable network ++ servers. The libevent API provides a mechanism to execute a callback ++ function when a specific event occurs on a file descriptor or after a ++ timeout has been reached. Furthermore, libevent also support callbacks due ++ to signals or regular timeouts. ++ ++ libevent is meant to replace the event loop found in event driven network ++ servers. An application just needs to call event_dispatch() and then add or ++ remove events dynamically without having to change the event loop. ++ ++ Currently, libevent supports /dev/poll, kqueue(2), select(2), poll(2) and ++ epoll(4). It also has experimental support for real-time signals. The ++ internal event mechanism is completely independent of the exposed event API, ++ and a simple update of libevent can provide new functionality without having ++ to redesign the applications. As a result, Libevent allows for portable ++ application development and provides the most scalable event notification ++ mechanism available on an operating system. Libevent can also be used for ++ multi-threaded aplications; see Steven Grimm's explanation. Libevent should ++ compile on Linux, *BSD, Mac OS X, Solaris and Windows. ++ ++ @section usage Standard usage ++ ++ Every program that uses libevent must include the header, and pass ++ the -levent flag to the linker. Before using any of the functions in the ++ library, you must call event_init() or event_base_new() to perform one-time ++ initialization of the libevent library. ++ ++ @section event Event notification ++ ++ For each file descriptor that you wish to monitor, you must declare an event ++ structure and call event_set() to initialize the members of the structure. ++ To enable notification, you add the structure to the list of monitored ++ events by calling event_add(). The event structure must remain allocated as ++ long as it is active, so it should be allocated on the heap. Finally, you ++ call event_dispatch() to loop and dispatch events. ++ ++ @section bufferevent I/O Buffers ++ ++ libevent provides an abstraction on top of the regular event callbacks. This ++ abstraction is called a buffered event. A buffered event provides input and ++ output buffers that get filled and drained automatically. The user of a ++ buffered event no longer deals directly with the I/O, but instead is reading ++ from input and writing to output buffers. ++ ++ Once initialized via bufferevent_new(), the bufferevent structure can be ++ used repeatedly with bufferevent_enable() and bufferevent_disable(). ++ Instead of reading and writing directly to a socket, you would call ++ bufferevent_read() and bufferevent_write(). ++ ++ When read enabled the bufferevent will try to read from the file descriptor ++ and call the read callback. The write callback is executed whenever the ++ output buffer is drained below the write low watermark, which is 0 by ++ default. ++ ++ @section timers Timers ++ ++ libevent can also be used to create timers that invoke a callback after a ++ certain amount of time has expired. The evtimer_set() function prepares an ++ event struct to be used as a timer. To activate the timer, call ++ evtimer_add(). Timers can be deactivated by calling evtimer_del(). ++ ++ @section timeouts Timeouts ++ ++ In addition to simple timers, libevent can assign timeout events to file ++ descriptors that are triggered whenever a certain amount of time has passed ++ with no activity on a file descriptor. The timeout_set() function ++ initializes an event struct for use as a timeout. Once initialized, the ++ event must be activated by using timeout_add(). To cancel the timeout, call ++ timeout_del(). ++ ++ @section evdns Asynchronous DNS resolution ++ ++ libevent provides an asynchronous DNS resolver that should be used instead ++ of the standard DNS resolver functions. These functions can be imported by ++ including the header in your program. Before using any of the ++ resolver functions, you must call evdns_init() to initialize the library. To ++ convert a hostname to an IP address, you call the evdns_resolve_ipv4() ++ function. To perform a reverse lookup, you would call the ++ evdns_resolve_reverse() function. All of these functions use callbacks to ++ avoid blocking while the lookup is performed. ++ ++ @section evhttp Event-driven HTTP servers ++ ++ libevent provides a very simple event-driven HTTP server that can be ++ embedded in your program and used to service HTTP requests. ++ ++ To use this capability, you need to include the header in your ++ program. You create the server by calling evhttp_new(). Add addresses and ++ ports to listen on with evhttp_bind_socket(). You then register one or more ++ callbacks to handle incoming requests. Each URI can be assigned a callback ++ via the evhttp_set_cb() function. A generic callback function can also be ++ registered via evhttp_set_gencb(); this callback will be invoked if no other ++ callbacks have been registered for a given URI. ++ ++ @section evrpc A framework for RPC servers and clients ++ ++ libevents provides a framework for creating RPC servers and clients. It ++ takes care of marshaling and unmarshaling all data structures. ++ ++ @section api API Reference ++ ++ To browse the complete documentation of the libevent API, click on any of ++ the following links. ++ ++ event.h ++ The primary libevent header ++ ++ evdns.h ++ Asynchronous DNS resolution ++ ++ evhttp.h ++ An embedded libevent-based HTTP server ++ ++ evrpc.h ++ A framework for creating RPC servers and clients ++ ++ */ ++ ++/** @file event.h ++ ++ A library for writing event-driven network servers ++ ++ */ ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#include ++#ifdef _EVENT_HAVE_SYS_TYPES_H ++#include ++#endif ++#ifdef _EVENT_HAVE_SYS_TIME_H ++#include ++#endif ++#ifdef _EVENT_HAVE_STDINT_H ++#include ++#endif ++#include ++ ++/* Solaris does not have it */ ++#ifndef timersub ++ ++#define timeradd(tvp, uvp, vvp) \ ++ do { \ ++ (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ ++ (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ ++ if ((vvp)->tv_usec >= 1000000) { \ ++ (vvp)->tv_sec++; \ ++ (vvp)->tv_usec -= 1000000; \ ++ } \ ++ } while (0) ++ ++#define timersub(tvp, uvp, vvp) \ ++ do { \ ++ (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ ++ (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ ++ if ((vvp)->tv_usec < 0) { \ ++ (vvp)->tv_sec--; \ ++ (vvp)->tv_usec += 1000000; \ ++ } \ ++ } while (0) ++ ++#endif ++ ++/* For int types. */ ++#include ++ ++#ifdef WIN32 ++#define WIN32_LEAN_AND_MEAN ++#include ++#undef WIN32_LEAN_AND_MEAN ++typedef unsigned char u_char; ++typedef unsigned short u_short; ++#endif ++ ++#define EVLIST_TIMEOUT 0x01 ++#define EVLIST_INSERTED 0x02 ++#define EVLIST_SIGNAL 0x04 ++#define EVLIST_ACTIVE 0x08 ++#define EVLIST_INTERNAL 0x10 ++#define EVLIST_INIT 0x80 ++ ++/* EVLIST_X_ Private space: 0x1000-0xf000 */ ++#define EVLIST_ALL (0xf000 | 0x9f) ++ ++#define EV_TIMEOUT 0x01 ++#define EV_READ 0x02 ++#define EV_WRITE 0x04 ++#define EV_SIGNAL 0x08 ++#define EV_PERSIST 0x10 /* Persistant event */ ++ ++/* Fix so that ppl dont have to run with */ ++#ifndef TAILQ_ENTRY ++#define _EVENT_DEFINED_TQENTRY ++#define TAILQ_ENTRY(type) \ ++struct { \ ++ struct type *tqe_next; /* next element */ \ ++ struct type **tqe_prev; /* address of previous next element */ \ ++} ++#endif /* !TAILQ_ENTRY */ ++ ++struct event_base; ++struct event { ++ TAILQ_ENTRY (event) ev_next; ++ TAILQ_ENTRY (event) ev_active_next; ++ TAILQ_ENTRY (event) ev_signal_next; ++ unsigned int min_heap_idx; /* for managing timeouts */ ++ ++ struct event_base *ev_base; ++ ++ int ev_fd; ++ short ev_events; ++ short ev_ncalls; ++ short *ev_pncalls; /* Allows deletes in callback */ ++ ++ struct timeval ev_timeout; ++ ++ int ev_pri; /* smaller numbers are higher priority */ ++ ++ void (*ev_callback)(int, short, void *arg); ++ void *ev_arg; ++ ++ int ev_res; /* result passed to event callback */ ++ int ev_flags; ++}; ++ ++#define EVENT_SIGNAL(ev) (int)(ev)->ev_fd ++#define EVENT_FD(ev) (int)(ev)->ev_fd ++ ++/* ++ * Key-Value pairs. Can be used for HTTP headers but also for ++ * query argument parsing. ++ */ ++struct evkeyval { ++ TAILQ_ENTRY(evkeyval) next; ++ ++ char *key; ++ char *value; ++}; ++ ++#ifdef _EVENT_DEFINED_TQENTRY ++#undef TAILQ_ENTRY ++struct event_list; ++struct evkeyvalq; ++#undef _EVENT_DEFINED_TQENTRY ++#else ++TAILQ_HEAD (event_list, event); ++TAILQ_HEAD (evkeyvalq, evkeyval); ++#endif /* _EVENT_DEFINED_TQENTRY */ ++ ++/** ++ Initialize the event API. ++ ++ Use event_base_new() to initialize a new event base, but does not set ++ the current_base global. If using only event_base_new(), each event ++ added must have an event base set with event_base_set() ++ ++ @see event_base_set(), event_base_free(), event_init() ++ */ ++struct event_base *event_base_new(void); ++ ++/** ++ Initialize the event API. ++ ++ The event API needs to be initialized with event_init() before it can be ++ used. Sets the current_base global representing the default base for ++ events that have no base associated with them. ++ ++ @see event_base_set(), event_base_new() ++ */ ++struct event_base *event_init(void); ++ ++/** ++ Reinitialized the event base after a fork ++ ++ Some event mechanisms do not survive across fork. The event base needs ++ to be reinitialized with the event_reinit() function. ++ ++ @param base the event base that needs to be re-initialized ++ @return 0 if successful, or -1 if some events could not be re-added. ++ @see event_base_new(), event_init() ++*/ ++int event_reinit(struct event_base *base); ++ ++/** ++ Loop to process events. ++ ++ In order to process events, an application needs to call ++ event_dispatch(). This function only returns on error, and should ++ replace the event core of the application program. ++ ++ @see event_base_dispatch() ++ */ ++int event_dispatch(void); ++ ++ ++/** ++ Threadsafe event dispatching loop. ++ ++ @param eb the event_base structure returned by event_init() ++ @see event_init(), event_dispatch() ++ */ ++int event_base_dispatch(struct event_base *); ++ ++ ++/** ++ Get the kernel event notification mechanism used by libevent. ++ ++ @param eb the event_base structure returned by event_base_new() ++ @return a string identifying the kernel event mechanism (kqueue, epoll, etc.) ++ */ ++const char *event_base_get_method(struct event_base *); ++ ++ ++/** ++ Deallocate all memory associated with an event_base, and free the base. ++ ++ Note that this function will not close any fds or free any memory passed ++ to event_set as the argument to callback. ++ ++ @param eb an event_base to be freed ++ */ ++void event_base_free(struct event_base *); ++ ++ ++#define _EVENT_LOG_DEBUG 0 ++#define _EVENT_LOG_MSG 1 ++#define _EVENT_LOG_WARN 2 ++#define _EVENT_LOG_ERR 3 ++typedef void (*event_log_cb)(int severity, const char *msg); ++/** ++ Redirect libevent's log messages. ++ ++ @param cb a function taking two arguments: an integer severity between ++ _EVENT_LOG_DEBUG and _EVENT_LOG_ERR, and a string. If cb is NULL, ++ then the default log is used. ++ */ ++void event_set_log_callback(event_log_cb cb); ++ ++/** ++ Associate a different event base with an event. ++ ++ @param eb the event base ++ @param ev the event ++ */ ++int event_base_set(struct event_base *, struct event *); ++ ++/** ++ event_loop() flags ++ */ ++/*@{*/ ++#define EVLOOP_ONCE 0x01 /**< Block at most once. */ ++#define EVLOOP_NONBLOCK 0x02 /**< Do not block. */ ++/*@}*/ ++ ++/** ++ Handle events. ++ ++ This is a more flexible version of event_dispatch(). ++ ++ @param flags any combination of EVLOOP_ONCE | EVLOOP_NONBLOCK ++ @return 0 if successful, -1 if an error occurred, or 1 if no events were ++ registered. ++ @see event_loopexit(), event_base_loop() ++*/ ++int event_loop(int); ++ ++/** ++ Handle events (threadsafe version). ++ ++ This is a more flexible version of event_base_dispatch(). ++ ++ @param eb the event_base structure returned by event_init() ++ @param flags any combination of EVLOOP_ONCE | EVLOOP_NONBLOCK ++ @return 0 if successful, -1 if an error occurred, or 1 if no events were ++ registered. ++ @see event_loopexit(), event_base_loop() ++ */ ++int event_base_loop(struct event_base *, int); ++ ++/** ++ Exit the event loop after the specified time. ++ ++ The next event_loop() iteration after the given timer expires will ++ complete normally (handling all queued events) then exit without ++ blocking for events again. ++ ++ Subsequent invocations of event_loop() will proceed normally. ++ ++ @param tv the amount of time after which the loop should terminate. ++ @return 0 if successful, or -1 if an error occurred ++ @see event_loop(), event_base_loop(), event_base_loopexit() ++ */ ++int event_loopexit(const struct timeval *); ++ ++ ++/** ++ Exit the event loop after the specified time (threadsafe variant). ++ ++ The next event_base_loop() iteration after the given timer expires will ++ complete normally (handling all queued events) then exit without ++ blocking for events again. ++ ++ Subsequent invocations of event_base_loop() will proceed normally. ++ ++ @param eb the event_base structure returned by event_init() ++ @param tv the amount of time after which the loop should terminate. ++ @return 0 if successful, or -1 if an error occurred ++ @see event_loopexit() ++ */ ++int event_base_loopexit(struct event_base *, const struct timeval *); ++ ++/** ++ Abort the active event_loop() immediately. ++ ++ event_loop() will abort the loop after the next event is completed; ++ event_loopbreak() is typically invoked from this event's callback. ++ This behavior is analogous to the "break;" statement. ++ ++ Subsequent invocations of event_loop() will proceed normally. ++ ++ @return 0 if successful, or -1 if an error occurred ++ @see event_base_loopbreak(), event_loopexit() ++ */ ++int event_loopbreak(void); ++ ++/** ++ Abort the active event_base_loop() immediately. ++ ++ event_base_loop() will abort the loop after the next event is completed; ++ event_base_loopbreak() is typically invoked from this event's callback. ++ This behavior is analogous to the "break;" statement. ++ ++ Subsequent invocations of event_loop() will proceed normally. ++ ++ @param eb the event_base structure returned by event_init() ++ @return 0 if successful, or -1 if an error occurred ++ @see event_base_loopexit ++ */ ++int event_base_loopbreak(struct event_base *); ++ ++ ++/** ++ Add a timer event. ++ ++ @param ev the event struct ++ @param tv timeval struct ++ */ ++#define evtimer_add(ev, tv) event_add(ev, tv) ++ ++ ++/** ++ Define a timer event. ++ ++ @param ev event struct to be modified ++ @param cb callback function ++ @param arg argument that will be passed to the callback function ++ */ ++#define evtimer_set(ev, cb, arg) event_set(ev, -1, 0, cb, arg) ++ ++ ++/** ++ * Delete a timer event. ++ * ++ * @param ev the event struct to be disabled ++ */ ++#define evtimer_del(ev) event_del(ev) ++#define evtimer_pending(ev, tv) event_pending(ev, EV_TIMEOUT, tv) ++#define evtimer_initialized(ev) ((ev)->ev_flags & EVLIST_INIT) ++ ++/** ++ * Add a timeout event. ++ * ++ * @param ev the event struct to be disabled ++ * @param tv the timeout value, in seconds ++ */ ++#define timeout_add(ev, tv) event_add(ev, tv) ++ ++ ++/** ++ * Define a timeout event. ++ * ++ * @param ev the event struct to be defined ++ * @param cb the callback to be invoked when the timeout expires ++ * @param arg the argument to be passed to the callback ++ */ ++#define timeout_set(ev, cb, arg) event_set(ev, -1, 0, cb, arg) ++ ++ ++/** ++ * Disable a timeout event. ++ * ++ * @param ev the timeout event to be disabled ++ */ ++#define timeout_del(ev) event_del(ev) ++ ++#define timeout_pending(ev, tv) event_pending(ev, EV_TIMEOUT, tv) ++#define timeout_initialized(ev) ((ev)->ev_flags & EVLIST_INIT) ++ ++#define signal_add(ev, tv) event_add(ev, tv) ++#define signal_set(ev, x, cb, arg) \ ++ event_set(ev, x, EV_SIGNAL|EV_PERSIST, cb, arg) ++#define signal_del(ev) event_del(ev) ++#define signal_pending(ev, tv) event_pending(ev, EV_SIGNAL, tv) ++#define signal_initialized(ev) ((ev)->ev_flags & EVLIST_INIT) ++ ++/** ++ Prepare an event structure to be added. ++ ++ The function event_set() prepares the event structure ev to be used in ++ future calls to event_add() and event_del(). The event will be prepared to ++ call the function specified by the fn argument with an int argument ++ indicating the file descriptor, a short argument indicating the type of ++ event, and a void * argument given in the arg argument. The fd indicates ++ the file descriptor that should be monitored for events. The events can be ++ either EV_READ, EV_WRITE, or both. Indicating that an application can read ++ or write from the file descriptor respectively without blocking. ++ ++ The function fn will be called with the file descriptor that triggered the ++ event and the type of event which will be either EV_TIMEOUT, EV_SIGNAL, ++ EV_READ, or EV_WRITE. The additional flag EV_PERSIST makes an event_add() ++ persistent until event_del() has been called. ++ ++ @param ev an event struct to be modified ++ @param fd the file descriptor to be monitored ++ @param event desired events to monitor; can be EV_READ and/or EV_WRITE ++ @param fn callback function to be invoked when the event occurs ++ @param arg an argument to be passed to the callback function ++ ++ @see event_add(), event_del(), event_once() ++ ++ */ ++void event_set(struct event *, int, short, void (*)(int, short, void *), void *); ++ ++/** ++ Schedule a one-time event to occur. ++ ++ The function event_once() is similar to event_set(). However, it schedules ++ a callback to be called exactly once and does not require the caller to ++ prepare an event structure. ++ ++ @param fd a file descriptor to monitor ++ @param events event(s) to monitor; can be any of EV_TIMEOUT | EV_READ | ++ EV_WRITE ++ @param callback callback function to be invoked when the event occurs ++ @param arg an argument to be passed to the callback function ++ @param timeout the maximum amount of time to wait for the event, or NULL ++ to wait forever ++ @return 0 if successful, or -1 if an error occurred ++ @see event_set() ++ ++ */ ++int event_once(int, short, void (*)(int, short, void *), void *, ++ const struct timeval *); ++ ++ ++/** ++ Schedule a one-time event (threadsafe variant) ++ ++ The function event_base_once() is similar to event_set(). However, it ++ schedules a callback to be called exactly once and does not require the ++ caller to prepare an event structure. ++ ++ @param base an event_base returned by event_init() ++ @param fd a file descriptor to monitor ++ @param events event(s) to monitor; can be any of EV_TIMEOUT | EV_READ | ++ EV_WRITE ++ @param callback callback function to be invoked when the event occurs ++ @param arg an argument to be passed to the callback function ++ @param timeout the maximum amount of time to wait for the event, or NULL ++ to wait forever ++ @return 0 if successful, or -1 if an error occurred ++ @see event_once() ++ */ ++int event_base_once(struct event_base *base, int fd, short events, ++ void (*callback)(int, short, void *), void *arg, ++ const struct timeval *timeout); ++ ++ ++/** ++ Add an event to the set of monitored events. ++ ++ The function event_add() schedules the execution of the ev event when the ++ event specified in event_set() occurs or in at least the time specified in ++ the tv. If tv is NULL, no timeout occurs and the function will only be ++ called if a matching event occurs on the file descriptor. The event in the ++ ev argument must be already initialized by event_set() and may not be used ++ in calls to event_set() until it has timed out or been removed with ++ event_del(). If the event in the ev argument already has a scheduled ++ timeout, the old timeout will be replaced by the new one. ++ ++ @param ev an event struct initialized via event_set() ++ @param timeout the maximum amount of time to wait for the event, or NULL ++ to wait forever ++ @return 0 if successful, or -1 if an error occurred ++ @see event_del(), event_set() ++ */ ++int event_add(struct event *ev, const struct timeval *timeout); ++ ++ ++/** ++ Remove an event from the set of monitored events. ++ ++ The function event_del() will cancel the event in the argument ev. If the ++ event has already executed or has never been added the call will have no ++ effect. ++ ++ @param ev an event struct to be removed from the working set ++ @return 0 if successful, or -1 if an error occurred ++ @see event_add() ++ */ ++int event_del(struct event *); ++ ++void event_active(struct event *, int, short); ++ ++ ++/** ++ Checks if a specific event is pending or scheduled. ++ ++ @param ev an event struct previously passed to event_add() ++ @param event the requested event type; any of EV_TIMEOUT|EV_READ| ++ EV_WRITE|EV_SIGNAL ++ @param tv an alternate timeout (FIXME - is this true?) ++ ++ @return 1 if the event is pending, or 0 if the event has not occurred ++ ++ */ ++int event_pending(struct event *ev, short event, struct timeval *tv); ++ ++ ++/** ++ Test if an event structure has been initialized. ++ ++ The event_initialized() macro can be used to check if an event has been ++ initialized. ++ ++ @param ev an event structure to be tested ++ @return 1 if the structure has been initialized, or 0 if it has not been ++ initialized ++ */ ++#ifdef WIN32 ++#define event_initialized(ev) ((ev)->ev_flags & EVLIST_INIT && (ev)->ev_fd != (int)INVALID_HANDLE_VALUE) ++#else ++#define event_initialized(ev) ((ev)->ev_flags & EVLIST_INIT) ++#endif ++ ++ ++/** ++ Get the libevent version number. ++ ++ @return a string containing the version number of libevent ++ */ ++const char *event_get_version(void); ++ ++ ++/** ++ Get the kernel event notification mechanism used by libevent. ++ ++ @return a string identifying the kernel event mechanism (kqueue, epoll, etc.) ++ */ ++const char *event_get_method(void); ++ ++ ++/** ++ Set the number of different event priorities. ++ ++ By default libevent schedules all active events with the same priority. ++ However, some time it is desirable to process some events with a higher ++ priority than others. For that reason, libevent supports strict priority ++ queues. Active events with a lower priority are always processed before ++ events with a higher priority. ++ ++ The number of different priorities can be set initially with the ++ event_priority_init() function. This function should be called before the ++ first call to event_dispatch(). The event_priority_set() function can be ++ used to assign a priority to an event. By default, libevent assigns the ++ middle priority to all events unless their priority is explicitly set. ++ ++ @param npriorities the maximum number of priorities ++ @return 0 if successful, or -1 if an error occurred ++ @see event_base_priority_init(), event_priority_set() ++ ++ */ ++int event_priority_init(int); ++ ++ ++/** ++ Set the number of different event priorities (threadsafe variant). ++ ++ See the description of event_priority_init() for more information. ++ ++ @param eb the event_base structure returned by event_init() ++ @param npriorities the maximum number of priorities ++ @return 0 if successful, or -1 if an error occurred ++ @see event_priority_init(), event_priority_set() ++ */ ++int event_base_priority_init(struct event_base *, int); ++ ++ ++/** ++ Assign a priority to an event. ++ ++ @param ev an event struct ++ @param priority the new priority to be assigned ++ @return 0 if successful, or -1 if an error occurred ++ @see event_priority_init() ++ */ ++int event_priority_set(struct event *, int); ++ ++ ++/* These functions deal with buffering input and output */ ++ ++struct evbuffer { ++ u_char *buffer; ++ u_char *orig_buffer; ++ ++ size_t misalign; ++ size_t totallen; ++ size_t off; ++ ++ void (*cb)(struct evbuffer *, size_t, size_t, void *); ++ void *cbarg; ++}; ++ ++/* Just for error reporting - use other constants otherwise */ ++#define EVBUFFER_READ 0x01 ++#define EVBUFFER_WRITE 0x02 ++#define EVBUFFER_EOF 0x10 ++#define EVBUFFER_ERROR 0x20 ++#define EVBUFFER_TIMEOUT 0x40 ++ ++struct bufferevent; ++typedef void (*evbuffercb)(struct bufferevent *, void *); ++typedef void (*everrorcb)(struct bufferevent *, short what, void *); ++ ++struct event_watermark { ++ size_t low; ++ size_t high; ++}; ++ ++struct bufferevent { ++ struct event_base *ev_base; ++ ++ struct event ev_read; ++ struct event ev_write; ++ ++ struct evbuffer *input; ++ struct evbuffer *output; ++ ++ struct event_watermark wm_read; ++ struct event_watermark wm_write; ++ ++ evbuffercb readcb; ++ evbuffercb writecb; ++ everrorcb errorcb; ++ void *cbarg; ++ ++ int timeout_read; /* in seconds */ ++ int timeout_write; /* in seconds */ ++ ++ short enabled; /* events that are currently enabled */ ++}; ++ ++ ++/** ++ Create a new bufferevent. ++ ++ libevent provides an abstraction on top of the regular event callbacks. ++ This abstraction is called a buffered event. A buffered event provides ++ input and output buffers that get filled and drained automatically. The ++ user of a buffered event no longer deals directly with the I/O, but ++ instead is reading from input and writing to output buffers. ++ ++ Once initialized, the bufferevent structure can be used repeatedly with ++ bufferevent_enable() and bufferevent_disable(). ++ ++ When read enabled the bufferevent will try to read from the file descriptor ++ and call the read callback. The write callback is executed whenever the ++ output buffer is drained below the write low watermark, which is 0 by ++ default. ++ ++ If multiple bases are in use, bufferevent_base_set() must be called before ++ enabling the bufferevent for the first time. ++ ++ @param fd the file descriptor from which data is read and written to. ++ This file descriptor is not allowed to be a pipe(2). ++ @param readcb callback to invoke when there is data to be read, or NULL if ++ no callback is desired ++ @param writecb callback to invoke when the file descriptor is ready for ++ writing, or NULL if no callback is desired ++ @param errorcb callback to invoke when there is an error on the file ++ descriptor ++ @param cbarg an argument that will be supplied to each of the callbacks ++ (readcb, writecb, and errorcb) ++ @return a pointer to a newly allocated bufferevent struct, or NULL if an ++ error occurred ++ @see bufferevent_base_set(), bufferevent_free() ++ */ ++struct bufferevent *bufferevent_new(int fd, ++ evbuffercb readcb, evbuffercb writecb, everrorcb errorcb, void *cbarg); ++ ++ ++/** ++ Assign a bufferevent to a specific event_base. ++ ++ @param base an event_base returned by event_init() ++ @param bufev a bufferevent struct returned by bufferevent_new() ++ @return 0 if successful, or -1 if an error occurred ++ @see bufferevent_new() ++ */ ++int bufferevent_base_set(struct event_base *base, struct bufferevent *bufev); ++ ++ ++/** ++ Assign a priority to a bufferevent. ++ ++ @param bufev a bufferevent struct ++ @param pri the priority to be assigned ++ @return 0 if successful, or -1 if an error occurred ++ */ ++int bufferevent_priority_set(struct bufferevent *bufev, int pri); ++ ++ ++/** ++ Deallocate the storage associated with a bufferevent structure. ++ ++ @param bufev the bufferevent structure to be freed. ++ */ ++void bufferevent_free(struct bufferevent *bufev); ++ ++ ++/** ++ Changes the callbacks for a bufferevent. ++ ++ @param bufev the bufferevent object for which to change callbacks ++ @param readcb callback to invoke when there is data to be read, or NULL if ++ no callback is desired ++ @param writecb callback to invoke when the file descriptor is ready for ++ writing, or NULL if no callback is desired ++ @param errorcb callback to invoke when there is an error on the file ++ descriptor ++ @param cbarg an argument that will be supplied to each of the callbacks ++ (readcb, writecb, and errorcb) ++ @see bufferevent_new() ++ */ ++void bufferevent_setcb(struct bufferevent *bufev, ++ evbuffercb readcb, evbuffercb writecb, everrorcb errorcb, void *cbarg); ++ ++/** ++ Changes the file descriptor on which the bufferevent operates. ++ ++ @param bufev the bufferevent object for which to change the file descriptor ++ @param fd the file descriptor to operate on ++*/ ++void bufferevent_setfd(struct bufferevent *bufev, int fd); ++ ++/** ++ Write data to a bufferevent buffer. ++ ++ The bufferevent_write() function can be used to write data to the file ++ descriptor. The data is appended to the output buffer and written to the ++ descriptor automatically as it becomes available for writing. ++ ++ @param bufev the bufferevent to be written to ++ @param data a pointer to the data to be written ++ @param size the length of the data, in bytes ++ @return 0 if successful, or -1 if an error occurred ++ @see bufferevent_write_buffer() ++ */ ++int bufferevent_write(struct bufferevent *bufev, ++ const void *data, size_t size); ++ ++ ++/** ++ Write data from an evbuffer to a bufferevent buffer. The evbuffer is ++ being drained as a result. ++ ++ @param bufev the bufferevent to be written to ++ @param buf the evbuffer to be written ++ @return 0 if successful, or -1 if an error occurred ++ @see bufferevent_write() ++ */ ++int bufferevent_write_buffer(struct bufferevent *bufev, struct evbuffer *buf); ++ ++ ++/** ++ Read data from a bufferevent buffer. ++ ++ The bufferevent_read() function is used to read data from the input buffer. ++ ++ @param bufev the bufferevent to be read from ++ @param data pointer to a buffer that will store the data ++ @param size the size of the data buffer, in bytes ++ @return the amount of data read, in bytes. ++ */ ++size_t bufferevent_read(struct bufferevent *bufev, void *data, size_t size); ++ ++/** ++ Enable a bufferevent. ++ ++ @param bufev the bufferevent to be enabled ++ @param event any combination of EV_READ | EV_WRITE. ++ @return 0 if successful, or -1 if an error occurred ++ @see bufferevent_disable() ++ */ ++int bufferevent_enable(struct bufferevent *bufev, short event); ++ ++ ++/** ++ Disable a bufferevent. ++ ++ @param bufev the bufferevent to be disabled ++ @param event any combination of EV_READ | EV_WRITE. ++ @return 0 if successful, or -1 if an error occurred ++ @see bufferevent_enable() ++ */ ++int bufferevent_disable(struct bufferevent *bufev, short event); ++ ++ ++/** ++ Set the read and write timeout for a buffered event. ++ ++ @param bufev the bufferevent to be modified ++ @param timeout_read the read timeout ++ @param timeout_write the write timeout ++ */ ++void bufferevent_settimeout(struct bufferevent *bufev, ++ int timeout_read, int timeout_write); ++ ++ ++/** ++ Sets the watermarks for read and write events. ++ ++ On input, a bufferevent does not invoke the user read callback unless ++ there is at least low watermark data in the buffer. If the read buffer ++ is beyond the high watermark, the buffevent stops reading from the network. ++ ++ On output, the user write callback is invoked whenever the buffered data ++ falls below the low watermark. ++ ++ @param bufev the bufferevent to be modified ++ @param events EV_READ, EV_WRITE or both ++ @param lowmark the lower watermark to set ++ @param highmark the high watermark to set ++*/ ++ ++void bufferevent_setwatermark(struct bufferevent *bufev, short events, ++ size_t lowmark, size_t highmark); ++ ++#define EVBUFFER_LENGTH(x) (x)->off ++#define EVBUFFER_DATA(x) (x)->buffer ++#define EVBUFFER_INPUT(x) (x)->input ++#define EVBUFFER_OUTPUT(x) (x)->output ++ ++ ++/** ++ Allocate storage for a new evbuffer. ++ ++ @return a pointer to a newly allocated evbuffer struct, or NULL if an error ++ occurred ++ */ ++struct evbuffer *evbuffer_new(void); ++ ++ ++/** ++ Deallocate storage for an evbuffer. ++ ++ @param pointer to the evbuffer to be freed ++ */ ++void evbuffer_free(struct evbuffer *); ++ ++ ++/** ++ Expands the available space in an event buffer. ++ ++ Expands the available space in the event buffer to at least datlen ++ ++ @param buf the event buffer to be expanded ++ @param datlen the new minimum length requirement ++ @return 0 if successful, or -1 if an error occurred ++*/ ++int evbuffer_expand(struct evbuffer *, size_t); ++ ++ ++/** ++ Append data to the end of an evbuffer. ++ ++ @param buf the event buffer to be appended to ++ @param data pointer to the beginning of the data buffer ++ @param datlen the number of bytes to be copied from the data buffer ++ */ ++int evbuffer_add(struct evbuffer *, const void *, size_t); ++ ++ ++ ++/** ++ Read data from an event buffer and drain the bytes read. ++ ++ @param buf the event buffer to be read from ++ @param data the destination buffer to store the result ++ @param datlen the maximum size of the destination buffer ++ @return the number of bytes read ++ */ ++int evbuffer_remove(struct evbuffer *, void *, size_t); ++ ++ ++/** ++ * Read a single line from an event buffer. ++ * ++ * Reads a line terminated by either '\r\n', '\n\r' or '\r' or '\n'. ++ * The returned buffer needs to be freed by the caller. ++ * ++ * @param buffer the evbuffer to read from ++ * @return pointer to a single line, or NULL if an error occurred ++ */ ++char *evbuffer_readline(struct evbuffer *); ++ ++ ++/** ++ Move data from one evbuffer into another evbuffer. ++ ++ This is a destructive add. The data from one buffer moves into ++ the other buffer. The destination buffer is expanded as needed. ++ ++ @param outbuf the output buffer ++ @param inbuf the input buffer ++ @return 0 if successful, or -1 if an error occurred ++ */ ++int evbuffer_add_buffer(struct evbuffer *, struct evbuffer *); ++ ++ ++/** ++ Append a formatted string to the end of an evbuffer. ++ ++ @param buf the evbuffer that will be appended to ++ @param fmt a format string ++ @param ... arguments that will be passed to printf(3) ++ @return The number of bytes added if successful, or -1 if an error occurred. ++ */ ++int evbuffer_add_printf(struct evbuffer *, const char *fmt, ...) ++#ifdef __GNUC__ ++ __attribute__((format(printf, 2, 3))) ++#endif ++; ++ ++ ++/** ++ Append a va_list formatted string to the end of an evbuffer. ++ ++ @param buf the evbuffer that will be appended to ++ @param fmt a format string ++ @param ap a varargs va_list argument array that will be passed to vprintf(3) ++ @return The number of bytes added if successful, or -1 if an error occurred. ++ */ ++int evbuffer_add_vprintf(struct evbuffer *, const char *fmt, va_list ap); ++ ++ ++/** ++ Remove a specified number of bytes data from the beginning of an evbuffer. ++ ++ @param buf the evbuffer to be drained ++ @param len the number of bytes to drain from the beginning of the buffer ++ @return 0 if successful, or -1 if an error occurred ++ */ ++void evbuffer_drain(struct evbuffer *, size_t); ++ ++ ++/** ++ Write the contents of an evbuffer to a file descriptor. ++ ++ The evbuffer will be drained after the bytes have been successfully written. ++ ++ @param buffer the evbuffer to be written and drained ++ @param fd the file descriptor to be written to ++ @return the number of bytes written, or -1 if an error occurred ++ @see evbuffer_read() ++ */ ++int evbuffer_write(struct evbuffer *, int); ++ ++ ++/** ++ Read from a file descriptor and store the result in an evbuffer. ++ ++ @param buf the evbuffer to store the result ++ @param fd the file descriptor to read from ++ @param howmuch the number of bytes to be read ++ @return the number of bytes read, or -1 if an error occurred ++ @see evbuffer_write() ++ */ ++int evbuffer_read(struct evbuffer *, int, int); ++ ++ ++/** ++ Find a string within an evbuffer. ++ ++ @param buffer the evbuffer to be searched ++ @param what the string to be searched for ++ @param len the length of the search string ++ @return a pointer to the beginning of the search string, or NULL if the search failed. ++ */ ++u_char *evbuffer_find(struct evbuffer *, const u_char *, size_t); ++ ++/** ++ Set a callback to invoke when the evbuffer is modified. ++ ++ @param buffer the evbuffer to be monitored ++ @param cb the callback function to invoke when the evbuffer is modified ++ @param cbarg an argument to be provided to the callback function ++ */ ++void evbuffer_setcb(struct evbuffer *, void (*)(struct evbuffer *, size_t, size_t, void *), void *); ++ ++/* ++ * Marshaling tagged data - We assume that all tags are inserted in their ++ * numeric order - so that unknown tags will always be higher than the ++ * known ones - and we can just ignore the end of an event buffer. ++ */ ++ ++void evtag_init(void); ++ ++void evtag_marshal(struct evbuffer *evbuf, ev_uint32_t tag, const void *data, ++ ev_uint32_t len); ++ ++/** ++ Encode an integer and store it in an evbuffer. ++ ++ We encode integer's by nibbles; the first nibble contains the number ++ of significant nibbles - 1; this allows us to encode up to 64-bit ++ integers. This function is byte-order independent. ++ ++ @param evbuf evbuffer to store the encoded number ++ @param number a 32-bit integer ++ */ ++void encode_int(struct evbuffer *evbuf, ev_uint32_t number); ++ ++void evtag_marshal_int(struct evbuffer *evbuf, ev_uint32_t tag, ++ ev_uint32_t integer); ++ ++void evtag_marshal_string(struct evbuffer *buf, ev_uint32_t tag, ++ const char *string); ++ ++void evtag_marshal_timeval(struct evbuffer *evbuf, ev_uint32_t tag, ++ struct timeval *tv); ++ ++int evtag_unmarshal(struct evbuffer *src, ev_uint32_t *ptag, ++ struct evbuffer *dst); ++int evtag_peek(struct evbuffer *evbuf, ev_uint32_t *ptag); ++int evtag_peek_length(struct evbuffer *evbuf, ev_uint32_t *plength); ++int evtag_payload_length(struct evbuffer *evbuf, ev_uint32_t *plength); ++int evtag_consume(struct evbuffer *evbuf); ++ ++int evtag_unmarshal_int(struct evbuffer *evbuf, ev_uint32_t need_tag, ++ ev_uint32_t *pinteger); ++ ++int evtag_unmarshal_fixed(struct evbuffer *src, ev_uint32_t need_tag, ++ void *data, size_t len); ++ ++int evtag_unmarshal_string(struct evbuffer *evbuf, ev_uint32_t need_tag, ++ char **pstring); ++ ++int evtag_unmarshal_timeval(struct evbuffer *evbuf, ev_uint32_t need_tag, ++ struct timeval *ptv); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _EVENT_H_ */ +diff --git a/libevent/evhttp.h b/libevent/evhttp.h +new file mode 100644 +index 0000000..0d35f9e +--- /dev/null ++++ b/libevent/evhttp.h +@@ -0,0 +1,357 @@ ++/* ++ * Copyright (c) 2000-2004 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifndef _EVHTTP_H_ ++#define _EVHTTP_H_ ++ ++#include ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#ifdef WIN32 ++#define WIN32_LEAN_AND_MEAN ++#include ++#include ++#undef WIN32_LEAN_AND_MEAN ++#endif ++ ++/** @file evhttp.h ++ * ++ * Basic support for HTTP serving. ++ * ++ * As libevent is a library for dealing with event notification and most ++ * interesting applications are networked today, I have often found the ++ * need to write HTTP code. The following prototypes and definitions provide ++ * an application with a minimal interface for making HTTP requests and for ++ * creating a very simple HTTP server. ++ */ ++ ++/* Response codes */ ++#define HTTP_OK 200 ++#define HTTP_NOCONTENT 204 ++#define HTTP_MOVEPERM 301 ++#define HTTP_MOVETEMP 302 ++#define HTTP_NOTMODIFIED 304 ++#define HTTP_BADREQUEST 400 ++#define HTTP_NOTFOUND 404 ++#define HTTP_SERVUNAVAIL 503 ++ ++struct evhttp; ++struct evhttp_request; ++struct evkeyvalq; ++ ++/** Create a new HTTP server ++ * ++ * @param base (optional) the event base to receive the HTTP events ++ * @return a pointer to a newly initialized evhttp server structure ++ */ ++struct evhttp *evhttp_new(struct event_base *base); ++ ++/** ++ * Binds an HTTP server on the specified address and port. ++ * ++ * Can be called multiple times to bind the same http server ++ * to multiple different ports. ++ * ++ * @param http a pointer to an evhttp object ++ * @param address a string containing the IP address to listen(2) on ++ * @param port the port number to listen on ++ * @return a newly allocated evhttp struct ++ * @see evhttp_free() ++ */ ++int evhttp_bind_socket(struct evhttp *http, const char *address, u_short port); ++ ++/** ++ * Makes an HTTP server accept connections on the specified socket ++ * ++ * This may be useful to create a socket and then fork multiple instances ++ * of an http server, or when a socket has been communicated via file ++ * descriptor passing in situations where an http servers does not have ++ * permissions to bind to a low-numbered port. ++ * ++ * Can be called multiple times to have the http server listen to ++ * multiple different sockets. ++ * ++ * @param http a pointer to an evhttp object ++ * @param fd a socket fd that is ready for accepting connections ++ * @return 0 on success, -1 on failure. ++ * @see evhttp_free(), evhttp_bind_socket() ++ */ ++int evhttp_accept_socket(struct evhttp *http, int fd); ++ ++/** ++ * Free the previously created HTTP server. ++ * ++ * Works only if no requests are currently being served. ++ * ++ * @param http the evhttp server object to be freed ++ * @see evhttp_start() ++ */ ++void evhttp_free(struct evhttp* http); ++ ++/** Set a callback for a specified URI */ ++void evhttp_set_cb(struct evhttp *, const char *, ++ void (*)(struct evhttp_request *, void *), void *); ++ ++/** Removes the callback for a specified URI */ ++int evhttp_del_cb(struct evhttp *, const char *); ++ ++/** Set a callback for all requests that are not caught by specific callbacks ++ */ ++void evhttp_set_gencb(struct evhttp *, ++ void (*)(struct evhttp_request *, void *), void *); ++ ++/** ++ * Set the timeout for an HTTP request. ++ * ++ * @param http an evhttp object ++ * @param timeout_in_secs the timeout, in seconds ++ */ ++void evhttp_set_timeout(struct evhttp *, int timeout_in_secs); ++ ++/* Request/Response functionality */ ++ ++/** ++ * Send an HTML error message to the client. ++ * ++ * @param req a request object ++ * @param error the HTTP error code ++ * @param reason a brief explanation of the error ++ */ ++void evhttp_send_error(struct evhttp_request *req, int error, ++ const char *reason); ++ ++/** ++ * Send an HTML reply to the client. ++ * ++ * @param req a request object ++ * @param code the HTTP response code to send ++ * @param reason a brief message to send with the response code ++ * @param databuf the body of the response ++ */ ++void evhttp_send_reply(struct evhttp_request *req, int code, ++ const char *reason, struct evbuffer *databuf); ++ ++/* Low-level response interface, for streaming/chunked replies */ ++void evhttp_send_reply_start(struct evhttp_request *, int, const char *); ++void evhttp_send_reply_chunk(struct evhttp_request *, struct evbuffer *); ++void evhttp_send_reply_end(struct evhttp_request *); ++ ++/** ++ * Start an HTTP server on the specified address and port ++ * ++ * DEPRECATED: it does not allow an event base to be specified ++ * ++ * @param address the address to which the HTTP server should be bound ++ * @param port the port number on which the HTTP server should listen ++ * @return an struct evhttp object ++ */ ++struct evhttp *evhttp_start(const char *address, u_short port); ++ ++/* ++ * Interfaces for making requests ++ */ ++enum evhttp_cmd_type { EVHTTP_REQ_GET, EVHTTP_REQ_POST, EVHTTP_REQ_HEAD }; ++ ++enum evhttp_request_kind { EVHTTP_REQUEST, EVHTTP_RESPONSE }; ++ ++/** ++ * the request structure that a server receives. ++ * WARNING: expect this structure to change. I will try to provide ++ * reasonable accessors. ++ */ ++struct evhttp_request { ++#if defined(TAILQ_ENTRY) ++ TAILQ_ENTRY(evhttp_request) next; ++#else ++struct { ++ struct evhttp_request *tqe_next; ++ struct evhttp_request **tqe_prev; ++} next; ++#endif ++ ++ /* the connection object that this request belongs to */ ++ struct evhttp_connection *evcon; ++ int flags; ++#define EVHTTP_REQ_OWN_CONNECTION 0x0001 ++#define EVHTTP_PROXY_REQUEST 0x0002 ++ ++ struct evkeyvalq *input_headers; ++ struct evkeyvalq *output_headers; ++ ++ /* address of the remote host and the port connection came from */ ++ char *remote_host; ++ u_short remote_port; ++ ++ enum evhttp_request_kind kind; ++ enum evhttp_cmd_type type; ++ ++ char *uri; /* uri after HTTP request was parsed */ ++ ++ char major; /* HTTP Major number */ ++ char minor; /* HTTP Minor number */ ++ ++ int response_code; /* HTTP Response code */ ++ char *response_code_line; /* Readable response */ ++ ++ struct evbuffer *input_buffer; /* read data */ ++ ev_int64_t ntoread; ++ int chunked; ++ ++ struct evbuffer *output_buffer; /* outgoing post or data */ ++ ++ /* Callback */ ++ void (*cb)(struct evhttp_request *, void *); ++ void *cb_arg; ++ ++ /* ++ * Chunked data callback - call for each completed chunk if ++ * specified. If not specified, all the data is delivered via ++ * the regular callback. ++ */ ++ void (*chunk_cb)(struct evhttp_request *, void *); ++}; ++ ++/** ++ * Creates a new request object that needs to be filled in with the request ++ * parameters. The callback is executed when the request completed or an ++ * error occurred. ++ */ ++struct evhttp_request *evhttp_request_new( ++ void (*cb)(struct evhttp_request *, void *), void *arg); ++ ++/** enable delivery of chunks to requestor */ ++void evhttp_request_set_chunked_cb(struct evhttp_request *, ++ void (*cb)(struct evhttp_request *, void *)); ++ ++/** Frees the request object and removes associated events. */ ++void evhttp_request_free(struct evhttp_request *req); ++ ++/** ++ * A connection object that can be used to for making HTTP requests. The ++ * connection object tries to establish the connection when it is given an ++ * http request object. ++ */ ++struct evhttp_connection *evhttp_connection_new( ++ const char *address, unsigned short port); ++ ++/** Frees an http connection */ ++void evhttp_connection_free(struct evhttp_connection *evcon); ++ ++/** sets the ip address from which http connections are made */ ++void evhttp_connection_set_local_address(struct evhttp_connection *evcon, ++ const char *address); ++ ++/** Sets the timeout for events related to this connection */ ++void evhttp_connection_set_timeout(struct evhttp_connection *evcon, ++ int timeout_in_secs); ++ ++/** Sets the retry limit for this connection - -1 repeats indefnitely */ ++void evhttp_connection_set_retries(struct evhttp_connection *evcon, ++ int retry_max); ++ ++/** Set a callback for connection close. */ ++void evhttp_connection_set_closecb(struct evhttp_connection *evcon, ++ void (*)(struct evhttp_connection *, void *), void *); ++ ++/** ++ * Associates an event base with the connection - can only be called ++ * on a freshly created connection object that has not been used yet. ++ */ ++void evhttp_connection_set_base(struct evhttp_connection *evcon, ++ struct event_base *base); ++ ++/** Get the remote address and port associated with this connection. */ ++void evhttp_connection_get_peer(struct evhttp_connection *evcon, ++ char **address, u_short *port); ++ ++/** The connection gets ownership of the request */ ++int evhttp_make_request(struct evhttp_connection *evcon, ++ struct evhttp_request *req, ++ enum evhttp_cmd_type type, const char *uri); ++ ++const char *evhttp_request_uri(struct evhttp_request *req); ++ ++/* Interfaces for dealing with HTTP headers */ ++ ++const char *evhttp_find_header(const struct evkeyvalq *, const char *); ++int evhttp_remove_header(struct evkeyvalq *, const char *); ++int evhttp_add_header(struct evkeyvalq *, const char *, const char *); ++void evhttp_clear_headers(struct evkeyvalq *); ++ ++/* Miscellaneous utility functions */ ++ ++ ++/** ++ Helper function to encode a URI. ++ ++ The returned string must be freed by the caller. ++ ++ @param uri an unencoded URI ++ @return a newly allocated URI-encoded string ++ */ ++char *evhttp_encode_uri(const char *uri); ++ ++ ++/** ++ Helper function to decode a URI. ++ ++ The returned string must be freed by the caller. ++ ++ @param uri an encoded URI ++ @return a newly allocated unencoded URI ++ */ ++char *evhttp_decode_uri(const char *uri); ++ ++ ++/** ++ * Helper function to parse out arguments in a query. ++ * The arguments are separated by key and value. ++ * URI should already be decoded. ++ */ ++void evhttp_parse_query(const char *uri, struct evkeyvalq *); ++ ++ ++/** ++ * Escape HTML character entities in a string. ++ * ++ * Replaces <, >, ", ' and & with <, >, ", ++ * ' and & correspondingly. ++ * ++ * The returned string needs to be freed by the caller. ++ * ++ * @param html an unescaped HTML string ++ * @return an escaped HTML string ++ */ ++char *evhttp_htmlescape(const char *html); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _EVHTTP_H_ */ +diff --git a/libevent/evport.c b/libevent/evport.c +new file mode 100644 +index 0000000..31523b4 +--- /dev/null ++++ b/libevent/evport.c +@@ -0,0 +1,513 @@ ++/* ++ * Submitted by David Pacheco (dp.spambait@gmail.com) ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY SUN MICROSYSTEMS, INC. ``AS IS'' AND ANY ++ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ * DISCLAIMED. IN NO EVENT SHALL SUN MICROSYSTEMS, INC. BE LIABLE FOR ANY ++ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS ++ * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++/* ++ * Copyright (c) 2007 Sun Microsystems. All rights reserved. ++ * Use is subject to license terms. ++ */ ++ ++/* ++ * evport.c: event backend using Solaris 10 event ports. See port_create(3C). ++ * This implementation is loosely modeled after the one used for select(2) (in ++ * select.c). ++ * ++ * The outstanding events are tracked in a data structure called evport_data. ++ * Each entry in the ed_fds array corresponds to a file descriptor, and contains ++ * pointers to the read and write events that correspond to that fd. (That is, ++ * when the file is readable, the "read" event should handle it, etc.) ++ * ++ * evport_add and evport_del update this data structure. evport_dispatch uses it ++ * to determine where to callback when an event occurs (which it gets from ++ * port_getn). ++ * ++ * Helper functions are used: grow() grows the file descriptor array as ++ * necessary when large fd's come in. reassociate() takes care of maintaining ++ * the proper file-descriptor/event-port associations. ++ * ++ * As in the select(2) implementation, signals are handled by evsignal. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CHECK_INVARIANTS ++#include ++#endif ++ ++#include "event.h" ++#include "event-internal.h" ++#include "log.h" ++#include "evsignal.h" ++ ++ ++/* ++ * Default value for ed_nevents, which is the maximum file descriptor number we ++ * can handle. If an event comes in for a file descriptor F > nevents, we will ++ * grow the array of file descriptors, doubling its size. ++ */ ++#define DEFAULT_NFDS 16 ++ ++ ++/* ++ * EVENTS_PER_GETN is the maximum number of events to retrieve from port_getn on ++ * any particular call. You can speed things up by increasing this, but it will ++ * (obviously) require more memory. ++ */ ++#define EVENTS_PER_GETN 8 ++ ++/* ++ * Per-file-descriptor information about what events we're subscribed to. These ++ * fields are NULL if no event is subscribed to either of them. ++ */ ++ ++struct fd_info { ++ struct event* fdi_revt; /* the event responsible for the "read" */ ++ struct event* fdi_wevt; /* the event responsible for the "write" */ ++}; ++ ++#define FDI_HAS_READ(fdi) ((fdi)->fdi_revt != NULL) ++#define FDI_HAS_WRITE(fdi) ((fdi)->fdi_wevt != NULL) ++#define FDI_HAS_EVENTS(fdi) (FDI_HAS_READ(fdi) || FDI_HAS_WRITE(fdi)) ++#define FDI_TO_SYSEVENTS(fdi) (FDI_HAS_READ(fdi) ? POLLIN : 0) | \ ++ (FDI_HAS_WRITE(fdi) ? POLLOUT : 0) ++ ++struct evport_data { ++ int ed_port; /* event port for system events */ ++ int ed_nevents; /* number of allocated fdi's */ ++ struct fd_info *ed_fds; /* allocated fdi table */ ++ /* fdi's that we need to reassoc */ ++ int ed_pending[EVENTS_PER_GETN]; /* fd's with pending events */ ++}; ++ ++static void* evport_init (struct event_base *); ++static int evport_add (void *, struct event *); ++static int evport_del (void *, struct event *); ++static int evport_dispatch (struct event_base *, void *, struct timeval *); ++static void evport_dealloc (struct event_base *, void *); ++ ++const struct eventop evportops = { ++ "event ports", ++ evport_init, ++ evport_add, ++ evport_del, ++ evport_dispatch, ++ evport_dealloc, ++ 1 /* need reinit */ ++}; ++ ++/* ++ * Initialize the event port implementation. ++ */ ++ ++static void* ++evport_init(struct event_base *base) ++{ ++ struct evport_data *evpd; ++ int i; ++ /* ++ * Disable event ports when this environment variable is set ++ */ ++ if (getenv("EVENT_NOEVPORT")) ++ return (NULL); ++ ++ if (!(evpd = calloc(1, sizeof(struct evport_data)))) ++ return (NULL); ++ ++ if ((evpd->ed_port = port_create()) == -1) { ++ free(evpd); ++ return (NULL); ++ } ++ ++ /* ++ * Initialize file descriptor structure ++ */ ++ evpd->ed_fds = calloc(DEFAULT_NFDS, sizeof(struct fd_info)); ++ if (evpd->ed_fds == NULL) { ++ close(evpd->ed_port); ++ free(evpd); ++ return (NULL); ++ } ++ evpd->ed_nevents = DEFAULT_NFDS; ++ for (i = 0; i < EVENTS_PER_GETN; i++) ++ evpd->ed_pending[i] = -1; ++ ++ evsignal_init(base); ++ ++ return (evpd); ++} ++ ++#ifdef CHECK_INVARIANTS ++/* ++ * Checks some basic properties about the evport_data structure. Because it ++ * checks all file descriptors, this function can be expensive when the maximum ++ * file descriptor ever used is rather large. ++ */ ++ ++static void ++check_evportop(struct evport_data *evpd) ++{ ++ assert(evpd); ++ assert(evpd->ed_nevents > 0); ++ assert(evpd->ed_port > 0); ++ assert(evpd->ed_fds > 0); ++ ++ /* ++ * Verify the integrity of the fd_info struct as well as the events to ++ * which it points (at least, that they're valid references and correct ++ * for their position in the structure). ++ */ ++ int i; ++ for (i = 0; i < evpd->ed_nevents; ++i) { ++ struct event *ev; ++ struct fd_info *fdi; ++ ++ fdi = &evpd->ed_fds[i]; ++ if ((ev = fdi->fdi_revt) != NULL) { ++ assert(ev->ev_fd == i); ++ } ++ if ((ev = fdi->fdi_wevt) != NULL) { ++ assert(ev->ev_fd == i); ++ } ++ } ++} ++ ++/* ++ * Verifies very basic integrity of a given port_event. ++ */ ++static void ++check_event(port_event_t* pevt) ++{ ++ /* ++ * We've only registered for PORT_SOURCE_FD events. The only ++ * other thing we can legitimately receive is PORT_SOURCE_ALERT, ++ * but since we're not using port_alert either, we can assume ++ * PORT_SOURCE_FD. ++ */ ++ assert(pevt->portev_source == PORT_SOURCE_FD); ++ assert(pevt->portev_user == NULL); ++} ++ ++#else ++#define check_evportop(epop) ++#define check_event(pevt) ++#endif /* CHECK_INVARIANTS */ ++ ++/* ++ * Doubles the size of the allocated file descriptor array. ++ */ ++static int ++grow(struct evport_data *epdp, int factor) ++{ ++ struct fd_info *tmp; ++ int oldsize = epdp->ed_nevents; ++ int newsize = factor * oldsize; ++ assert(factor > 1); ++ ++ check_evportop(epdp); ++ ++ tmp = realloc(epdp->ed_fds, sizeof(struct fd_info) * newsize); ++ if (NULL == tmp) ++ return -1; ++ epdp->ed_fds = tmp; ++ memset((char*) (epdp->ed_fds + oldsize), 0, ++ (newsize - oldsize)*sizeof(struct fd_info)); ++ epdp->ed_nevents = newsize; ++ ++ check_evportop(epdp); ++ ++ return 0; ++} ++ ++ ++/* ++ * (Re)associates the given file descriptor with the event port. The OS events ++ * are specified (implicitly) from the fd_info struct. ++ */ ++static int ++reassociate(struct evport_data *epdp, struct fd_info *fdip, int fd) ++{ ++ int sysevents = FDI_TO_SYSEVENTS(fdip); ++ ++ if (sysevents != 0) { ++ if (port_associate(epdp->ed_port, PORT_SOURCE_FD, ++ fd, sysevents, NULL) == -1) { ++ event_warn("port_associate"); ++ return (-1); ++ } ++ } ++ ++ check_evportop(epdp); ++ ++ return (0); ++} ++ ++/* ++ * Main event loop - polls port_getn for some number of events, and processes ++ * them. ++ */ ++ ++static int ++evport_dispatch(struct event_base *base, void *arg, struct timeval *tv) ++{ ++ int i, res; ++ struct evport_data *epdp = arg; ++ port_event_t pevtlist[EVENTS_PER_GETN]; ++ ++ /* ++ * port_getn will block until it has at least nevents events. It will ++ * also return how many it's given us (which may be more than we asked ++ * for, as long as it's less than our maximum (EVENTS_PER_GETN)) in ++ * nevents. ++ */ ++ int nevents = 1; ++ ++ /* ++ * We have to convert a struct timeval to a struct timespec ++ * (only difference is nanoseconds vs. microseconds). If no time-based ++ * events are active, we should wait for I/O (and tv == NULL). ++ */ ++ struct timespec ts; ++ struct timespec *ts_p = NULL; ++ if (tv != NULL) { ++ ts.tv_sec = tv->tv_sec; ++ ts.tv_nsec = tv->tv_usec * 1000; ++ ts_p = &ts; ++ } ++ ++ /* ++ * Before doing anything else, we need to reassociate the events we hit ++ * last time which need reassociation. See comment at the end of the ++ * loop below. ++ */ ++ for (i = 0; i < EVENTS_PER_GETN; ++i) { ++ struct fd_info *fdi = NULL; ++ if (epdp->ed_pending[i] != -1) { ++ fdi = &(epdp->ed_fds[epdp->ed_pending[i]]); ++ } ++ ++ if (fdi != NULL && FDI_HAS_EVENTS(fdi)) { ++ int fd = FDI_HAS_READ(fdi) ? fdi->fdi_revt->ev_fd : ++ fdi->fdi_wevt->ev_fd; ++ reassociate(epdp, fdi, fd); ++ epdp->ed_pending[i] = -1; ++ } ++ } ++ ++ if ((res = port_getn(epdp->ed_port, pevtlist, EVENTS_PER_GETN, ++ (unsigned int *) &nevents, ts_p)) == -1) { ++ if (errno == EINTR || errno == EAGAIN) { ++ evsignal_process(base); ++ return (0); ++ } else if (errno == ETIME) { ++ if (nevents == 0) ++ return (0); ++ } else { ++ event_warn("port_getn"); ++ return (-1); ++ } ++ } else if (base->sig.evsignal_caught) { ++ evsignal_process(base); ++ } ++ ++ event_debug(("%s: port_getn reports %d events", __func__, nevents)); ++ ++ for (i = 0; i < nevents; ++i) { ++ struct event *ev; ++ struct fd_info *fdi; ++ port_event_t *pevt = &pevtlist[i]; ++ int fd = (int) pevt->portev_object; ++ ++ check_evportop(epdp); ++ check_event(pevt); ++ epdp->ed_pending[i] = fd; ++ ++ /* ++ * Figure out what kind of event it was ++ * (because we have to pass this to the callback) ++ */ ++ res = 0; ++ if (pevt->portev_events & POLLIN) ++ res |= EV_READ; ++ if (pevt->portev_events & POLLOUT) ++ res |= EV_WRITE; ++ ++ assert(epdp->ed_nevents > fd); ++ fdi = &(epdp->ed_fds[fd]); ++ ++ /* ++ * We now check for each of the possible events (READ ++ * or WRITE). Then, we activate the event (which will ++ * cause its callback to be executed). ++ */ ++ ++ if ((res & EV_READ) && ((ev = fdi->fdi_revt) != NULL)) { ++ event_active(ev, res, 1); ++ } ++ ++ if ((res & EV_WRITE) && ((ev = fdi->fdi_wevt) != NULL)) { ++ event_active(ev, res, 1); ++ } ++ } /* end of all events gotten */ ++ ++ check_evportop(epdp); ++ ++ return (0); ++} ++ ++ ++/* ++ * Adds the given event (so that you will be notified when it happens via ++ * the callback function). ++ */ ++ ++static int ++evport_add(void *arg, struct event *ev) ++{ ++ struct evport_data *evpd = arg; ++ struct fd_info *fdi; ++ int factor; ++ ++ check_evportop(evpd); ++ ++ /* ++ * Delegate, if it's not ours to handle. ++ */ ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_add(ev)); ++ ++ /* ++ * If necessary, grow the file descriptor info table ++ */ ++ ++ factor = 1; ++ while (ev->ev_fd >= factor * evpd->ed_nevents) ++ factor *= 2; ++ ++ if (factor > 1) { ++ if (-1 == grow(evpd, factor)) { ++ return (-1); ++ } ++ } ++ ++ fdi = &evpd->ed_fds[ev->ev_fd]; ++ if (ev->ev_events & EV_READ) ++ fdi->fdi_revt = ev; ++ if (ev->ev_events & EV_WRITE) ++ fdi->fdi_wevt = ev; ++ ++ return reassociate(evpd, fdi, ev->ev_fd); ++} ++ ++/* ++ * Removes the given event from the list of events to wait for. ++ */ ++ ++static int ++evport_del(void *arg, struct event *ev) ++{ ++ struct evport_data *evpd = arg; ++ struct fd_info *fdi; ++ int i; ++ int associated = 1; ++ ++ check_evportop(evpd); ++ ++ /* ++ * Delegate, if it's not ours to handle ++ */ ++ if (ev->ev_events & EV_SIGNAL) { ++ return (evsignal_del(ev)); ++ } ++ ++ if (evpd->ed_nevents < ev->ev_fd) { ++ return (-1); ++ } ++ ++ for (i = 0; i < EVENTS_PER_GETN; ++i) { ++ if (evpd->ed_pending[i] == ev->ev_fd) { ++ associated = 0; ++ break; ++ } ++ } ++ ++ fdi = &evpd->ed_fds[ev->ev_fd]; ++ if (ev->ev_events & EV_READ) ++ fdi->fdi_revt = NULL; ++ if (ev->ev_events & EV_WRITE) ++ fdi->fdi_wevt = NULL; ++ ++ if (associated) { ++ if (!FDI_HAS_EVENTS(fdi) && ++ port_dissociate(evpd->ed_port, PORT_SOURCE_FD, ++ ev->ev_fd) == -1) { ++ /* ++ * Ignre EBADFD error the fd could have been closed ++ * before event_del() was called. ++ */ ++ if (errno != EBADFD) { ++ event_warn("port_dissociate"); ++ return (-1); ++ } ++ } else { ++ if (FDI_HAS_EVENTS(fdi)) { ++ return (reassociate(evpd, fdi, ev->ev_fd)); ++ } ++ } ++ } else { ++ if (fdi->fdi_revt == NULL && fdi->fdi_wevt == NULL) { ++ evpd->ed_pending[i] = -1; ++ } ++ } ++ return 0; ++} ++ ++ ++static void ++evport_dealloc(struct event_base *base, void *arg) ++{ ++ struct evport_data *evpd = arg; ++ ++ evsignal_dealloc(base); ++ ++ close(evpd->ed_port); ++ ++ if (evpd->ed_fds) ++ free(evpd->ed_fds); ++ free(evpd); ++} +diff --git a/libevent/evsignal.h b/libevent/evsignal.h +new file mode 100644 +index 0000000..8be9cbd +--- /dev/null ++++ b/libevent/evsignal.h +@@ -0,0 +1,52 @@ ++/* ++ * Copyright 2000-2002 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifndef _EVSIGNAL_H_ ++#define _EVSIGNAL_H_ ++ ++typedef void (*ev_sighandler_t)(int); ++ ++struct evsignal_info { ++ struct event ev_signal; ++ int ev_signal_pair[2]; ++ int ev_signal_added; ++ volatile sig_atomic_t evsignal_caught; ++ struct event_list evsigevents[NSIG]; ++ sig_atomic_t evsigcaught[NSIG]; ++#ifdef HAVE_SIGACTION ++ struct sigaction **sh_old; ++#else ++ ev_sighandler_t **sh_old; ++#endif ++ int sh_old_max; ++}; ++void evsignal_init(struct event_base *); ++void evsignal_process(struct event_base *); ++int evsignal_add(struct event *); ++int evsignal_del(struct event *); ++void evsignal_dealloc(struct event_base *); ++ ++#endif /* _EVSIGNAL_H_ */ +diff --git a/libevent/evutil.c b/libevent/evutil.c +new file mode 100644 +index 0000000..86205b2 +--- /dev/null ++++ b/libevent/evutil.c +@@ -0,0 +1,248 @@ ++/* ++ * Copyright (c) 2007 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "event-fpm.h" ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#ifdef WIN32 ++#include ++#define WIN32_LEAN_AND_MEAN ++#include ++#undef WIN32_LEAN_AND_MEAN ++#endif ++ ++#include ++#ifdef HAVE_SYS_SOCKET_H ++#include ++#endif ++#ifdef HAVE_UNISTD_H ++#include ++#endif ++#ifdef HAVE_FCNTL_H ++#include ++#endif ++#ifdef HAVE_STDLIB_H ++#include ++#endif ++#include ++#if defined WIN32 && !defined(HAVE_GETTIMEOFDAY_H) ++#include ++#endif ++#include ++ ++#include "evutil.h" ++#include "log.h" ++ ++int ++evutil_socketpair(int family, int type, int protocol, int fd[2]) ++{ ++#ifndef WIN32 ++ return socketpair(family, type, protocol, fd); ++#else ++ /* This code is originally from Tor. Used with permission. */ ++ ++ /* This socketpair does not work when localhost is down. So ++ * it's really not the same thing at all. But it's close enough ++ * for now, and really, when localhost is down sometimes, we ++ * have other problems too. ++ */ ++ int listener = -1; ++ int connector = -1; ++ int acceptor = -1; ++ struct sockaddr_in listen_addr; ++ struct sockaddr_in connect_addr; ++ int size; ++ int saved_errno = -1; ++ ++ if (protocol ++#ifdef AF_UNIX ++ || family != AF_UNIX ++#endif ++ ) { ++ EVUTIL_SET_SOCKET_ERROR(WSAEAFNOSUPPORT); ++ return -1; ++ } ++ if (!fd) { ++ EVUTIL_SET_SOCKET_ERROR(WSAEINVAL); ++ return -1; ++ } ++ ++ listener = socket(AF_INET, type, 0); ++ if (listener < 0) ++ return -1; ++ memset(&listen_addr, 0, sizeof(listen_addr)); ++ listen_addr.sin_family = AF_INET; ++ listen_addr.sin_addr.s_addr = htonl(INADDR_LOOPBACK); ++ listen_addr.sin_port = 0; /* kernel chooses port. */ ++ if (bind(listener, (struct sockaddr *) &listen_addr, sizeof (listen_addr)) ++ == -1) ++ goto tidy_up_and_fail; ++ if (listen(listener, 1) == -1) ++ goto tidy_up_and_fail; ++ ++ connector = socket(AF_INET, type, 0); ++ if (connector < 0) ++ goto tidy_up_and_fail; ++ /* We want to find out the port number to connect to. */ ++ size = sizeof(connect_addr); ++ if (getsockname(listener, (struct sockaddr *) &connect_addr, &size) == -1) ++ goto tidy_up_and_fail; ++ if (size != sizeof (connect_addr)) ++ goto abort_tidy_up_and_fail; ++ if (connect(connector, (struct sockaddr *) &connect_addr, ++ sizeof(connect_addr)) == -1) ++ goto tidy_up_and_fail; ++ ++ size = sizeof(listen_addr); ++ acceptor = accept(listener, (struct sockaddr *) &listen_addr, &size); ++ if (acceptor < 0) ++ goto tidy_up_and_fail; ++ if (size != sizeof(listen_addr)) ++ goto abort_tidy_up_and_fail; ++ EVUTIL_CLOSESOCKET(listener); ++ /* Now check we are talking to ourself by matching port and host on the ++ two sockets. */ ++ if (getsockname(connector, (struct sockaddr *) &connect_addr, &size) == -1) ++ goto tidy_up_and_fail; ++ if (size != sizeof (connect_addr) ++ || listen_addr.sin_family != connect_addr.sin_family ++ || listen_addr.sin_addr.s_addr != connect_addr.sin_addr.s_addr ++ || listen_addr.sin_port != connect_addr.sin_port) ++ goto abort_tidy_up_and_fail; ++ fd[0] = connector; ++ fd[1] = acceptor; ++ ++ return 0; ++ ++ abort_tidy_up_and_fail: ++ saved_errno = WSAECONNABORTED; ++ tidy_up_and_fail: ++ if (saved_errno < 0) ++ saved_errno = WSAGetLastError(); ++ if (listener != -1) ++ EVUTIL_CLOSESOCKET(listener); ++ if (connector != -1) ++ EVUTIL_CLOSESOCKET(connector); ++ if (acceptor != -1) ++ EVUTIL_CLOSESOCKET(acceptor); ++ ++ EVUTIL_SET_SOCKET_ERROR(saved_errno); ++ return -1; ++#endif ++} ++ ++int ++evutil_make_socket_nonblocking(int fd) ++{ ++#ifdef WIN32 ++ { ++ unsigned long nonblocking = 1; ++ ioctlsocket(fd, FIONBIO, (unsigned long*) &nonblocking); ++ } ++#else ++ if (fcntl(fd, F_SETFL, O_NONBLOCK) == -1) { ++ event_warn("fcntl(O_NONBLOCK)"); ++ return -1; ++} ++#endif ++ return 0; ++} ++ ++ev_int64_t ++evutil_strtoll(const char *s, char **endptr, int base) ++{ ++#ifdef HAVE_STRTOLL ++ return (ev_int64_t)strtoll(s, endptr, base); ++#elif SIZEOF_LONG == 8 ++ return (ev_int64_t)strtol(s, endptr, base); ++#elif defined(WIN32) && defined(_MSC_VER) && _MSC_VER < 1300 ++ /* XXXX on old versions of MS APIs, we only support base ++ * 10. */ ++ ev_int64_t r; ++ if (base != 10) ++ return 0; ++ r = (ev_int64_t) _atoi64(s); ++ while (isspace(*s)) ++ ++s; ++ while (isdigit(*s)) ++ ++s; ++ if (endptr) ++ *endptr = (char*) s; ++ return r; ++#elif defined(WIN32) ++ return (ev_int64_t) _strtoi64(s, endptr, base); ++#else ++#error "I don't know how to parse 64-bit integers." ++#endif ++} ++ ++#ifndef _EVENT_HAVE_GETTIMEOFDAY ++int ++evutil_gettimeofday(struct timeval *tv, struct timezone *tz) ++{ ++ struct _timeb tb; ++ ++ if(tv == NULL) ++ return -1; ++ ++ _ftime(&tb); ++ tv->tv_sec = (long) tb.time; ++ tv->tv_usec = ((int) tb.millitm) * 1000; ++ return 0; ++} ++#endif ++ ++int ++evutil_snprintf(char *buf, size_t buflen, const char *format, ...) ++{ ++ int r; ++ va_list ap; ++ va_start(ap, format); ++ r = evutil_vsnprintf(buf, buflen, format, ap); ++ va_end(ap); ++ return r; ++} ++ ++int ++evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap) ++{ ++#ifdef _MSC_VER ++ int r = _vsnprintf(buf, buflen, format, ap); ++ buf[buflen-1] = '\0'; ++ if (r >= 0) ++ return r; ++ else ++ return _vscprintf(format, ap); ++#else ++ int r = vsnprintf(buf, buflen, format, ap); ++ buf[buflen-1] = '\0'; ++ return r; ++#endif ++} +diff --git a/libevent/evutil.h b/libevent/evutil.h +new file mode 100644 +index 0000000..0a018b8 +--- /dev/null ++++ b/libevent/evutil.h +@@ -0,0 +1,185 @@ ++/* ++ * Copyright (c) 2007 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifndef _EVUTIL_H_ ++#define _EVUTIL_H_ ++ ++/** @file evutil.h ++ ++ Common convenience functions for cross-platform portability and ++ related socket manipulations. ++ ++ */ ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#include ++#ifdef _EVENT_HAVE_SYS_TIME_H ++#include ++#endif ++#ifdef _EVENT_HAVE_STDINT_H ++#include ++#elif defined(_EVENT_HAVE_INTTYPES_H) ++#include ++#endif ++#ifdef _EVENT_HAVE_SYS_TYPES_H ++#include ++#endif ++#include ++ ++#ifdef _EVENT_HAVE_UINT64_T ++#define ev_uint64_t uint64_t ++#define ev_int64_t int64_t ++#elif defined(WIN32) ++#define ev_uint64_t unsigned __int64 ++#define ev_int64_t signed __int64 ++#elif _EVENT_SIZEOF_LONG_LONG == 8 ++#define ev_uint64_t unsigned long long ++#define ev_int64_t long long ++#elif _EVENT_SIZEOF_LONG == 8 ++#define ev_uint64_t unsigned long ++#define ev_int64_t long ++#else ++#error "No way to define ev_uint64_t" ++#endif ++ ++#ifdef _EVENT_HAVE_UINT32_T ++#define ev_uint32_t uint32_t ++#elif defined(WIN32) ++#define ev_uint32_t unsigned int ++#elif _EVENT_SIZEOF_LONG == 4 ++#define ev_uint32_t unsigned long ++#elif _EVENT_SIZEOF_INT == 4 ++#define ev_uint32_t unsigned int ++#else ++#error "No way to define ev_uint32_t" ++#endif ++ ++#ifdef _EVENT_HAVE_UINT16_T ++#define ev_uint16_t uint16_t ++#elif defined(WIN32) ++#define ev_uint16_t unsigned short ++#elif _EVENT_SIZEOF_INT == 2 ++#define ev_uint16_t unsigned int ++#elif _EVENT_SIZEOF_SHORT == 2 ++#define ev_uint16_t unsigned short ++#else ++#error "No way to define ev_uint16_t" ++#endif ++ ++#ifdef _EVENT_HAVE_UINT8_T ++#define ev_uint8_t uint8_t ++#else ++#define ev_uint8_t unsigned char ++#endif ++ ++int evutil_socketpair(int d, int type, int protocol, int sv[2]); ++int evutil_make_socket_nonblocking(int sock); ++#ifdef WIN32 ++#define EVUTIL_CLOSESOCKET(s) closesocket(s) ++#else ++#define EVUTIL_CLOSESOCKET(s) close(s) ++#endif ++ ++#ifdef WIN32 ++#define EVUTIL_SOCKET_ERROR() WSAGetLastError() ++#define EVUTIL_SET_SOCKET_ERROR(errcode) \ ++ do { WSASetLastError(errcode); } while (0) ++#else ++#define EVUTIL_SOCKET_ERROR() (errno) ++#define EVUTIL_SET_SOCKET_ERROR(errcode) \ ++ do { errno = (errcode); } while (0) ++#endif ++ ++/* ++ * Manipulation functions for struct timeval ++ */ ++#ifdef _EVENT_HAVE_TIMERADD ++#define evutil_timeradd(tvp, uvp, vvp) timeradd((tvp), (uvp), (vvp)) ++#define evutil_timersub(tvp, uvp, vvp) timersub((tvp), (uvp), (vvp)) ++#else ++#define evutil_timeradd(tvp, uvp, vvp) \ ++ do { \ ++ (vvp)->tv_sec = (tvp)->tv_sec + (uvp)->tv_sec; \ ++ (vvp)->tv_usec = (tvp)->tv_usec + (uvp)->tv_usec; \ ++ if ((vvp)->tv_usec >= 1000000) { \ ++ (vvp)->tv_sec++; \ ++ (vvp)->tv_usec -= 1000000; \ ++ } \ ++ } while (0) ++#define evutil_timersub(tvp, uvp, vvp) \ ++ do { \ ++ (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ ++ (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ ++ if ((vvp)->tv_usec < 0) { \ ++ (vvp)->tv_sec--; \ ++ (vvp)->tv_usec += 1000000; \ ++ } \ ++ } while (0) ++#endif /* !_EVENT_HAVE_HAVE_TIMERADD */ ++ ++#ifdef _EVENT_HAVE_TIMERCLEAR ++#define evutil_timerclear(tvp) timerclear(tvp) ++#else ++#define evutil_timerclear(tvp) (tvp)->tv_sec = (tvp)->tv_usec = 0 ++#endif ++ ++#define evutil_timercmp(tvp, uvp, cmp) \ ++ (((tvp)->tv_sec == (uvp)->tv_sec) ? \ ++ ((tvp)->tv_usec cmp (uvp)->tv_usec) : \ ++ ((tvp)->tv_sec cmp (uvp)->tv_sec)) ++ ++#ifdef _EVENT_HAVE_TIMERISSET ++#define evutil_timerisset(tvp) timerisset(tvp) ++#else ++#define evutil_timerisset(tvp) ((tvp)->tv_sec || (tvp)->tv_usec) ++#endif ++ ++ ++/* big-int related functions */ ++ev_int64_t evutil_strtoll(const char *s, char **endptr, int base); ++ ++ ++#ifdef _EVENT_HAVE_GETTIMEOFDAY ++#define evutil_gettimeofday(tv, tz) gettimeofday((tv), (tz)) ++#else ++int evutil_gettimeofday(struct timeval *tv, struct timezone *tz); ++#endif ++ ++int evutil_snprintf(char *buf, size_t buflen, const char *format, ...) ++#ifdef __GNUC__ ++ __attribute__((format(printf, 3, 4))) ++#endif ++ ; ++int evutil_vsnprintf(char *buf, size_t buflen, const char *format, va_list ap); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif /* _EVUTIL_H_ */ +diff --git a/libevent/http-internal.h b/libevent/http-internal.h +new file mode 100644 +index 0000000..bc9a1ed +--- /dev/null ++++ b/libevent/http-internal.h +@@ -0,0 +1,153 @@ ++/* ++ * Copyright 2001 Niels Provos ++ * All rights reserved. ++ * ++ * This header file contains definitions for dealing with HTTP requests ++ * that are internal to libevent. As user of the library, you should not ++ * need to know about these. ++ */ ++ ++#ifndef _HTTP_H_ ++#define _HTTP_H_ ++ ++#define HTTP_CONNECT_TIMEOUT 45 ++#define HTTP_WRITE_TIMEOUT 50 ++#define HTTP_READ_TIMEOUT 50 ++ ++#define HTTP_PREFIX "http://" ++#define HTTP_DEFAULTPORT 80 ++ ++enum message_read_status { ++ ALL_DATA_READ = 1, ++ MORE_DATA_EXPECTED = 0, ++ DATA_CORRUPTED = -1, ++ REQUEST_CANCELED = -2 ++}; ++ ++enum evhttp_connection_error { ++ EVCON_HTTP_TIMEOUT, ++ EVCON_HTTP_EOF, ++ EVCON_HTTP_INVALID_HEADER ++}; ++ ++struct evbuffer; ++struct addrinfo; ++struct evhttp_request; ++ ++/* A stupid connection object - maybe make this a bufferevent later */ ++ ++enum evhttp_connection_state { ++ EVCON_DISCONNECTED, /**< not currently connected not trying either*/ ++ EVCON_CONNECTING, /**< tries to currently connect */ ++ EVCON_IDLE, /**< connection is established */ ++ EVCON_READING_FIRSTLINE,/**< reading Request-Line (incoming conn) or ++ **< Status-Line (outgoing conn) */ ++ EVCON_READING_HEADERS, /**< reading request/response headers */ ++ EVCON_READING_BODY, /**< reading request/response body */ ++ EVCON_READING_TRAILER, /**< reading request/response chunked trailer */ ++ EVCON_WRITING /**< writing request/response headers/body */ ++}; ++ ++struct event_base; ++ ++struct evhttp_connection { ++ /* we use tailq only if they were created for an http server */ ++ TAILQ_ENTRY(evhttp_connection) (next); ++ ++ int fd; ++ struct event ev; ++ struct event close_ev; ++ struct evbuffer *input_buffer; ++ struct evbuffer *output_buffer; ++ ++ char *bind_address; /* address to use for binding the src */ ++ ++ char *address; /* address to connect to */ ++ u_short port; ++ ++ int flags; ++#define EVHTTP_CON_INCOMING 0x0001 /* only one request on it ever */ ++#define EVHTTP_CON_OUTGOING 0x0002 /* multiple requests possible */ ++#define EVHTTP_CON_CLOSEDETECT 0x0004 /* detecting if persistent close */ ++ ++ int timeout; /* timeout in seconds for events */ ++ int retry_cnt; /* retry count */ ++ int retry_max; /* maximum number of retries */ ++ ++ enum evhttp_connection_state state; ++ ++ /* for server connections, the http server they are connected with */ ++ struct evhttp *http_server; ++ ++ TAILQ_HEAD(evcon_requestq, evhttp_request) requests; ++ ++ void (*cb)(struct evhttp_connection *, void *); ++ void *cb_arg; ++ ++ void (*closecb)(struct evhttp_connection *, void *); ++ void *closecb_arg; ++ ++ struct event_base *base; ++}; ++ ++struct evhttp_cb { ++ TAILQ_ENTRY(evhttp_cb) next; ++ ++ char *what; ++ ++ void (*cb)(struct evhttp_request *req, void *); ++ void *cbarg; ++}; ++ ++/* both the http server as well as the rpc system need to queue connections */ ++TAILQ_HEAD(evconq, evhttp_connection); ++ ++/* each bound socket is stored in one of these */ ++struct evhttp_bound_socket { ++ TAILQ_ENTRY(evhttp_bound_socket) (next); ++ ++ struct event bind_ev; ++}; ++ ++struct evhttp { ++ TAILQ_HEAD(boundq, evhttp_bound_socket) sockets; ++ ++ TAILQ_HEAD(httpcbq, evhttp_cb) callbacks; ++ struct evconq connections; ++ ++ int timeout; ++ ++ void (*gencb)(struct evhttp_request *req, void *); ++ void *gencbarg; ++ ++ struct event_base *base; ++}; ++ ++/* resets the connection; can be reused for more requests */ ++void evhttp_connection_reset(struct evhttp_connection *); ++ ++/* connects if necessary */ ++int evhttp_connection_connect(struct evhttp_connection *); ++ ++/* notifies the current request that it failed; resets connection */ ++void evhttp_connection_fail(struct evhttp_connection *, ++ enum evhttp_connection_error error); ++ ++void evhttp_get_request(struct evhttp *, int, struct sockaddr *, socklen_t); ++ ++int evhttp_hostportfile(char *, char **, u_short *, char **); ++ ++int evhttp_parse_firstline(struct evhttp_request *, struct evbuffer*); ++int evhttp_parse_headers(struct evhttp_request *, struct evbuffer*); ++ ++void evhttp_start_read(struct evhttp_connection *); ++void evhttp_make_header(struct evhttp_connection *, struct evhttp_request *); ++ ++void evhttp_write_buffer(struct evhttp_connection *, ++ void (*)(struct evhttp_connection *, void *), void *); ++ ++/* response sending HTML the data in the buffer */ ++void evhttp_response_code(struct evhttp_request *, int, const char *); ++void evhttp_send_page(struct evhttp_request *, struct evbuffer *); ++ ++#endif /* _HTTP_H */ +diff --git a/libevent/http.c b/libevent/http.c +new file mode 100644 +index 0000000..1d60fc5 +--- /dev/null ++++ b/libevent/http.c +@@ -0,0 +1,2768 @@ ++/* ++ * Copyright (c) 2002-2006 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#ifdef HAVE_SYS_PARAM_H ++#include ++#endif ++#ifdef HAVE_SYS_TYPES_H ++#include ++#endif ++ ++#ifdef HAVE_SYS_TIME_H ++#include ++#endif ++#ifdef HAVE_SYS_IOCCOM_H ++#include ++#endif ++ ++#ifndef WIN32 ++#include ++#include ++#include ++#include ++#endif ++ ++#include ++ ++#ifndef WIN32 ++#include ++#include ++#endif ++ ++#ifdef WIN32 ++#include ++#endif ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#ifndef WIN32 ++#include ++#endif ++#include ++#include ++#ifdef HAVE_UNISTD_H ++#include ++#endif ++#ifdef HAVE_FCNTL_H ++#include ++#endif ++ ++#undef timeout_pending ++#undef timeout_initialized ++ ++#include "strlcpy-internal.h" ++#include "event.h" ++#include "evhttp.h" ++#include "evutil.h" ++#include "log.h" ++#include "http-internal.h" ++ ++#ifdef WIN32 ++#define strcasecmp _stricmp ++#define strncasecmp _strnicmp ++#define strdup _strdup ++#endif ++ ++#ifndef HAVE_GETNAMEINFO ++#define NI_MAXSERV 32 ++#define NI_MAXHOST 1025 ++ ++#define NI_NUMERICHOST 1 ++#define NI_NUMERICSERV 2 ++ ++int ++fake_getnameinfo(const struct sockaddr *sa, size_t salen, char *host, ++ size_t hostlen, char *serv, size_t servlen, int flags) ++{ ++ struct sockaddr_in *sin = (struct sockaddr_in *)sa; ++ ++ if (serv != NULL) { ++ char tmpserv[16]; ++ evutil_snprintf(tmpserv, sizeof(tmpserv), ++ "%d", ntohs(sin->sin_port)); ++ if (strlcpy(serv, tmpserv, servlen) >= servlen) ++ return (-1); ++ } ++ ++ if (host != NULL) { ++ if (flags & NI_NUMERICHOST) { ++ if (strlcpy(host, inet_ntoa(sin->sin_addr), ++ hostlen) >= hostlen) ++ return (-1); ++ else ++ return (0); ++ } else { ++ struct hostent *hp; ++ hp = gethostbyaddr((char *)&sin->sin_addr, ++ sizeof(struct in_addr), AF_INET); ++ if (hp == NULL) ++ return (-2); ++ ++ if (strlcpy(host, hp->h_name, hostlen) >= hostlen) ++ return (-1); ++ else ++ return (0); ++ } ++ } ++ return (0); ++} ++ ++#endif ++ ++#ifndef HAVE_GETADDRINFO ++struct addrinfo { ++ int ai_family; ++ int ai_socktype; ++ int ai_protocol; ++ size_t ai_addrlen; ++ struct sockaddr *ai_addr; ++ struct addrinfo *ai_next; ++}; ++static int ++fake_getaddrinfo(const char *hostname, struct addrinfo *ai) ++{ ++ struct hostent *he = NULL; ++ struct sockaddr_in *sa; ++ if (hostname) { ++ he = gethostbyname(hostname); ++ if (!he) ++ return (-1); ++ } ++ ai->ai_family = he ? he->h_addrtype : AF_INET; ++ ai->ai_socktype = SOCK_STREAM; ++ ai->ai_protocol = 0; ++ ai->ai_addrlen = sizeof(struct sockaddr_in); ++ if (NULL == (ai->ai_addr = malloc(ai->ai_addrlen))) ++ return (-1); ++ sa = (struct sockaddr_in*)ai->ai_addr; ++ memset(sa, 0, ai->ai_addrlen); ++ if (he) { ++ sa->sin_family = he->h_addrtype; ++ memcpy(&sa->sin_addr, he->h_addr_list[0], he->h_length); ++ } else { ++ sa->sin_family = AF_INET; ++ sa->sin_addr.s_addr = INADDR_ANY; ++ } ++ ai->ai_next = NULL; ++ return (0); ++} ++static void ++fake_freeaddrinfo(struct addrinfo *ai) ++{ ++ free(ai->ai_addr); ++} ++#endif ++ ++#ifndef MIN ++#define MIN(a,b) (((a)<(b))?(a):(b)) ++#endif ++ ++/* wrapper for setting the base from the http server */ ++#define EVHTTP_BASE_SET(x, y) do { \ ++ if ((x)->base != NULL) event_base_set((x)->base, y); \ ++} while (0) ++ ++extern int debug; ++ ++static int socket_connect(int fd, const char *address, unsigned short port); ++static int bind_socket_ai(struct addrinfo *, int reuse); ++static int bind_socket(const char *, u_short, int reuse); ++static void name_from_addr(struct sockaddr *, socklen_t, char **, char **); ++static int evhttp_associate_new_request_with_connection( ++ struct evhttp_connection *evcon); ++static void evhttp_connection_start_detectclose( ++ struct evhttp_connection *evcon); ++static void evhttp_connection_stop_detectclose( ++ struct evhttp_connection *evcon); ++static void evhttp_request_dispatch(struct evhttp_connection* evcon); ++static void evhttp_read_firstline(struct evhttp_connection *evcon, ++ struct evhttp_request *req); ++static void evhttp_read_header(struct evhttp_connection *evcon, ++ struct evhttp_request *req); ++ ++void evhttp_read(int, short, void *); ++void evhttp_write(int, short, void *); ++ ++#ifndef HAVE_STRSEP ++/* strsep replacement for platforms that lack it. Only works if ++ * del is one character long. */ ++static char * ++strsep(char **s, const char *del) ++{ ++ char *d, *tok; ++ assert(strlen(del) == 1); ++ if (!s || !*s) ++ return NULL; ++ tok = *s; ++ d = strstr(tok, del); ++ if (d) { ++ *d = '\0'; ++ *s = d + 1; ++ } else ++ *s = NULL; ++ return tok; ++} ++#endif ++ ++static const char * ++html_replace(char ch, char *buf) ++{ ++ switch (ch) { ++ case '<': ++ return "<"; ++ case '>': ++ return ">"; ++ case '"': ++ return """; ++ case '\'': ++ return "'"; ++ case '&': ++ return "&"; ++ default: ++ break; ++ } ++ ++ /* Echo the character back */ ++ buf[0] = ch; ++ buf[1] = '\0'; ++ ++ return buf; ++} ++ ++/* ++ * Replaces <, >, ", ' and & with <, >, ", ++ * ' and & correspondingly. ++ * ++ * The returned string needs to be freed by the caller. ++ */ ++ ++char * ++evhttp_htmlescape(const char *html) ++{ ++ int i, new_size = 0, old_size = strlen(html); ++ char *escaped_html, *p; ++ char scratch_space[2]; ++ ++ for (i = 0; i < old_size; ++i) ++ new_size += strlen(html_replace(html[i], scratch_space)); ++ ++ p = escaped_html = malloc(new_size + 1); ++ if (escaped_html == NULL) ++ event_err(1, "%s: malloc(%d)", __func__, new_size + 1); ++ for (i = 0; i < old_size; ++i) { ++ const char *replaced = html_replace(html[i], scratch_space); ++ /* this is length checked */ ++ strcpy(p, replaced); ++ p += strlen(replaced); ++ } ++ ++ *p = '\0'; ++ ++ return (escaped_html); ++} ++ ++static const char * ++evhttp_method(enum evhttp_cmd_type type) ++{ ++ const char *method; ++ ++ switch (type) { ++ case EVHTTP_REQ_GET: ++ method = "GET"; ++ break; ++ case EVHTTP_REQ_POST: ++ method = "POST"; ++ break; ++ case EVHTTP_REQ_HEAD: ++ method = "HEAD"; ++ break; ++ default: ++ method = NULL; ++ break; ++ } ++ ++ return (method); ++} ++ ++static void ++evhttp_add_event(struct event *ev, int timeout, int default_timeout) ++{ ++ if (timeout != 0) { ++ struct timeval tv; ++ ++ evutil_timerclear(&tv); ++ tv.tv_sec = timeout != -1 ? timeout : default_timeout; ++ event_add(ev, &tv); ++ } else { ++ event_add(ev, NULL); ++ } ++} ++ ++void ++evhttp_write_buffer(struct evhttp_connection *evcon, ++ void (*cb)(struct evhttp_connection *, void *), void *arg) ++{ ++ event_debug(("%s: preparing to write buffer\n", __func__)); ++ ++ /* Set call back */ ++ evcon->cb = cb; ++ evcon->cb_arg = arg; ++ ++ /* check if the event is already pending */ ++ if (event_pending(&evcon->ev, EV_WRITE|EV_TIMEOUT, NULL)) ++ event_del(&evcon->ev); ++ ++ event_set(&evcon->ev, evcon->fd, EV_WRITE, evhttp_write, evcon); ++ EVHTTP_BASE_SET(evcon, &evcon->ev); ++ evhttp_add_event(&evcon->ev, evcon->timeout, HTTP_WRITE_TIMEOUT); ++} ++ ++static int ++evhttp_connected(struct evhttp_connection *evcon) ++{ ++ switch (evcon->state) { ++ case EVCON_DISCONNECTED: ++ case EVCON_CONNECTING: ++ return (0); ++ case EVCON_IDLE: ++ case EVCON_READING_FIRSTLINE: ++ case EVCON_READING_HEADERS: ++ case EVCON_READING_BODY: ++ case EVCON_READING_TRAILER: ++ case EVCON_WRITING: ++ default: ++ return (1); ++ } ++} ++ ++/* ++ * Create the headers needed for an HTTP request ++ */ ++static void ++evhttp_make_header_request(struct evhttp_connection *evcon, ++ struct evhttp_request *req) ++{ ++ char line[1024]; ++ const char *method; ++ ++ evhttp_remove_header(req->output_headers, "Proxy-Connection"); ++ ++ /* Generate request line */ ++ method = evhttp_method(req->type); ++ evutil_snprintf(line, sizeof(line), "%s %s HTTP/%d.%d\r\n", ++ method, req->uri, req->major, req->minor); ++ evbuffer_add(evcon->output_buffer, line, strlen(line)); ++ ++ /* Add the content length on a post request if missing */ ++ if (req->type == EVHTTP_REQ_POST && ++ evhttp_find_header(req->output_headers, "Content-Length") == NULL){ ++ char size[12]; ++ evutil_snprintf(size, sizeof(size), "%ld", ++ (long)EVBUFFER_LENGTH(req->output_buffer)); ++ evhttp_add_header(req->output_headers, "Content-Length", size); ++ } ++} ++ ++static int ++evhttp_is_connection_close(int flags, struct evkeyvalq* headers) ++{ ++ if (flags & EVHTTP_PROXY_REQUEST) { ++ /* proxy connection */ ++ const char *connection = evhttp_find_header(headers, "Proxy-Connection"); ++ return (connection == NULL || strcasecmp(connection, "keep-alive") != 0); ++ } else { ++ const char *connection = evhttp_find_header(headers, "Connection"); ++ return (connection != NULL && strcasecmp(connection, "close") == 0); ++ } ++} ++ ++static int ++evhttp_is_connection_keepalive(struct evkeyvalq* headers) ++{ ++ const char *connection = evhttp_find_header(headers, "Connection"); ++ return (connection != NULL ++ && strncasecmp(connection, "keep-alive", 10) == 0); ++} ++ ++static void ++evhttp_maybe_add_date_header(struct evkeyvalq *headers) ++{ ++ if (evhttp_find_header(headers, "Date") == NULL) { ++ char date[50]; ++#ifndef WIN32 ++ struct tm cur; ++#endif ++ struct tm *cur_p; ++ time_t t = time(NULL); ++#ifdef WIN32 ++ cur_p = gmtime(&t); ++#else ++ gmtime_r(&t, &cur); ++ cur_p = &cur; ++#endif ++ if (strftime(date, sizeof(date), ++ "%a, %d %b %Y %H:%M:%S GMT", cur_p) != 0) { ++ evhttp_add_header(headers, "Date", date); ++ } ++ } ++} ++ ++static void ++evhttp_maybe_add_content_length_header(struct evkeyvalq *headers, ++ long content_length) ++{ ++ if (evhttp_find_header(headers, "Transfer-Encoding") == NULL && ++ evhttp_find_header(headers, "Content-Length") == NULL) { ++ char len[12]; ++ evutil_snprintf(len, sizeof(len), "%ld", content_length); ++ evhttp_add_header(headers, "Content-Length", len); ++ } ++} ++ ++/* ++ * Create the headers needed for an HTTP reply ++ */ ++ ++static void ++evhttp_make_header_response(struct evhttp_connection *evcon, ++ struct evhttp_request *req) ++{ ++ int is_keepalive = evhttp_is_connection_keepalive(req->input_headers); ++ char line[1024]; ++ evutil_snprintf(line, sizeof(line), "HTTP/%d.%d %d %s\r\n", ++ req->major, req->minor, req->response_code, ++ req->response_code_line); ++ evbuffer_add(evcon->output_buffer, line, strlen(line)); ++ ++ if (req->major == 1) { ++ if (req->minor == 1) ++ evhttp_maybe_add_date_header(req->output_headers); ++ ++ /* ++ * if the protocol is 1.0; and the connection was keep-alive ++ * we need to add a keep-alive header, too. ++ */ ++ if (req->minor == 0 && is_keepalive) ++ evhttp_add_header(req->output_headers, ++ "Connection", "keep-alive"); ++ ++ if (req->minor == 1 || is_keepalive) { ++ /* ++ * we need to add the content length if the ++ * user did not give it, this is required for ++ * persistent connections to work. ++ */ ++ evhttp_maybe_add_content_length_header( ++ req->output_headers, ++ (long)EVBUFFER_LENGTH(req->output_buffer)); ++ } ++ } ++ ++ /* Potentially add headers for unidentified content. */ ++ if (EVBUFFER_LENGTH(req->output_buffer)) { ++ if (evhttp_find_header(req->output_headers, ++ "Content-Type") == NULL) { ++ evhttp_add_header(req->output_headers, ++ "Content-Type", "text/html; charset=ISO-8859-1"); ++ } ++ } ++ ++ /* if the request asked for a close, we send a close, too */ ++ if (evhttp_is_connection_close(req->flags, req->input_headers)) { ++ evhttp_remove_header(req->output_headers, "Connection"); ++ if (!(req->flags & EVHTTP_PROXY_REQUEST)) ++ evhttp_add_header(req->output_headers, "Connection", "close"); ++ evhttp_remove_header(req->output_headers, "Proxy-Connection"); ++ } ++} ++ ++void ++evhttp_make_header(struct evhttp_connection *evcon, struct evhttp_request *req) ++{ ++ char line[1024]; ++ struct evkeyval *header; ++ ++ /* ++ * Depending if this is a HTTP request or response, we might need to ++ * add some new headers or remove existing headers. ++ */ ++ if (req->kind == EVHTTP_REQUEST) { ++ evhttp_make_header_request(evcon, req); ++ } else { ++ evhttp_make_header_response(evcon, req); ++ } ++ ++ TAILQ_FOREACH(header, req->output_headers, next) { ++ evutil_snprintf(line, sizeof(line), "%s: %s\r\n", ++ header->key, header->value); ++ evbuffer_add(evcon->output_buffer, line, strlen(line)); ++ } ++ evbuffer_add(evcon->output_buffer, "\r\n", 2); ++ ++ if (EVBUFFER_LENGTH(req->output_buffer) > 0) { ++ /* ++ * For a request, we add the POST data, for a reply, this ++ * is the regular data. ++ */ ++ evbuffer_add_buffer(evcon->output_buffer, req->output_buffer); ++ } ++} ++ ++/* Separated host, port and file from URI */ ++ ++int ++evhttp_hostportfile(char *url, char **phost, u_short *pport, char **pfile) ++{ ++ /* XXX not threadsafe. */ ++ static char host[1024]; ++ static char file[1024]; ++ char *p; ++ const char *p2; ++ int len; ++ u_short port; ++ ++ len = strlen(HTTP_PREFIX); ++ if (strncasecmp(url, HTTP_PREFIX, len)) ++ return (-1); ++ ++ url += len; ++ ++ /* We might overrun */ ++ if (strlcpy(host, url, sizeof (host)) >= sizeof(host)) ++ return (-1); ++ ++ p = strchr(host, '/'); ++ if (p != NULL) { ++ *p = '\0'; ++ p2 = p + 1; ++ } else ++ p2 = NULL; ++ ++ if (pfile != NULL) { ++ /* Generate request file */ ++ if (p2 == NULL) ++ p2 = ""; ++ evutil_snprintf(file, sizeof(file), "/%s", p2); ++ } ++ ++ p = strchr(host, ':'); ++ if (p != NULL) { ++ *p = '\0'; ++ port = atoi(p + 1); ++ ++ if (port == 0) ++ return (-1); ++ } else ++ port = HTTP_DEFAULTPORT; ++ ++ if (phost != NULL) ++ *phost = host; ++ if (pport != NULL) ++ *pport = port; ++ if (pfile != NULL) ++ *pfile = file; ++ ++ return (0); ++} ++ ++static int ++evhttp_connection_incoming_fail(struct evhttp_request *req, ++ enum evhttp_connection_error error) ++{ ++ switch (error) { ++ case EVCON_HTTP_TIMEOUT: ++ case EVCON_HTTP_EOF: ++ /* ++ * these are cases in which we probably should just ++ * close the connection and not send a reply. this ++ * case may happen when a browser keeps a persistent ++ * connection open and we timeout on the read. ++ */ ++ return (-1); ++ case EVCON_HTTP_INVALID_HEADER: ++ default: /* xxx: probably should just error on default */ ++ /* the callback looks at the uri to determine errors */ ++ if (req->uri) { ++ free(req->uri); ++ req->uri = NULL; ++ } ++ ++ /* ++ * the callback needs to send a reply, once the reply has ++ * been send, the connection should get freed. ++ */ ++ (*req->cb)(req, req->cb_arg); ++ } ++ ++ return (0); ++} ++ ++void ++evhttp_connection_fail(struct evhttp_connection *evcon, ++ enum evhttp_connection_error error) ++{ ++ struct evhttp_request* req = TAILQ_FIRST(&evcon->requests); ++ void (*cb)(struct evhttp_request *, void *); ++ void *cb_arg; ++ assert(req != NULL); ++ ++ if (evcon->flags & EVHTTP_CON_INCOMING) { ++ /* ++ * for incoming requests, there are two different ++ * failure cases. it's either a network level error ++ * or an http layer error. for problems on the network ++ * layer like timeouts we just drop the connections. ++ * For HTTP problems, we might have to send back a ++ * reply before the connection can be freed. ++ */ ++ if (evhttp_connection_incoming_fail(req, error) == -1) ++ evhttp_connection_free(evcon); ++ return; ++ } ++ ++ /* save the callback for later; the cb might free our object */ ++ cb = req->cb; ++ cb_arg = req->cb_arg; ++ ++ TAILQ_REMOVE(&evcon->requests, req, next); ++ evhttp_request_free(req); ++ ++ /* xxx: maybe we should fail all requests??? */ ++ ++ /* reset the connection */ ++ evhttp_connection_reset(evcon); ++ ++ /* We are trying the next request that was queued on us */ ++ if (TAILQ_FIRST(&evcon->requests) != NULL) ++ evhttp_connection_connect(evcon); ++ ++ /* inform the user */ ++ if (cb != NULL) ++ (*cb)(NULL, cb_arg); ++} ++ ++void ++evhttp_write(int fd, short what, void *arg) ++{ ++ struct evhttp_connection *evcon = arg; ++ int n; ++ ++ if (what == EV_TIMEOUT) { ++ evhttp_connection_fail(evcon, EVCON_HTTP_TIMEOUT); ++ return; ++ } ++ ++ n = evbuffer_write(evcon->output_buffer, fd); ++ if (n == -1) { ++ event_debug(("%s: evbuffer_write", __func__)); ++ evhttp_connection_fail(evcon, EVCON_HTTP_EOF); ++ return; ++ } ++ ++ if (n == 0) { ++ event_debug(("%s: write nothing", __func__)); ++ evhttp_connection_fail(evcon, EVCON_HTTP_EOF); ++ return; ++ } ++ ++ if (EVBUFFER_LENGTH(evcon->output_buffer) != 0) { ++ evhttp_add_event(&evcon->ev, ++ evcon->timeout, HTTP_WRITE_TIMEOUT); ++ return; ++ } ++ ++ /* Activate our call back */ ++ if (evcon->cb != NULL) ++ (*evcon->cb)(evcon, evcon->cb_arg); ++} ++ ++/** ++ * Advance the connection state. ++ * - If this is an outgoing connection, we've just processed the response; ++ * idle or close the connection. ++ * - If this is an incoming connection, we've just processed the request; ++ * respond. ++ */ ++static void ++evhttp_connection_done(struct evhttp_connection *evcon) ++{ ++ struct evhttp_request *req = TAILQ_FIRST(&evcon->requests); ++ int con_outgoing = evcon->flags & EVHTTP_CON_OUTGOING; ++ ++ if (con_outgoing) { ++ /* idle or close the connection */ ++ int need_close; ++ TAILQ_REMOVE(&evcon->requests, req, next); ++ req->evcon = NULL; ++ ++ evcon->state = EVCON_IDLE; ++ ++ need_close = ++ evhttp_is_connection_close(req->flags, req->input_headers)|| ++ evhttp_is_connection_close(req->flags, req->output_headers); ++ ++ /* check if we got asked to close the connection */ ++ if (need_close) ++ evhttp_connection_reset(evcon); ++ ++ if (TAILQ_FIRST(&evcon->requests) != NULL) { ++ /* ++ * We have more requests; reset the connection ++ * and deal with the next request. ++ */ ++ if (!evhttp_connected(evcon)) ++ evhttp_connection_connect(evcon); ++ else ++ evhttp_request_dispatch(evcon); ++ } else if (!need_close) { ++ /* ++ * The connection is going to be persistent, but we ++ * need to detect if the other side closes it. ++ */ ++ evhttp_connection_start_detectclose(evcon); ++ } ++ } else { ++ /* ++ * incoming connection - we need to leave the request on the ++ * connection so that we can reply to it. ++ */ ++ evcon->state = EVCON_WRITING; ++ } ++ ++ /* notify the user of the request */ ++ (*req->cb)(req, req->cb_arg); ++ ++ /* if this was an outgoing request, we own and it's done. so free it */ ++ if (con_outgoing) { ++ evhttp_request_free(req); ++ } ++} ++ ++/* ++ * Handles reading from a chunked request. ++ * return ALL_DATA_READ: ++ * all data has been read ++ * return MORE_DATA_EXPECTED: ++ * more data is expected ++ * return DATA_CORRUPTED: ++ * data is corrupted ++ * return REQUEST_CANCLED: ++ * request was canceled by the user calling evhttp_cancel_request ++ */ ++ ++static enum message_read_status ++evhttp_handle_chunked_read(struct evhttp_request *req, struct evbuffer *buf) ++{ ++ int len; ++ ++ while ((len = EVBUFFER_LENGTH(buf)) > 0) { ++ if (req->ntoread < 0) { ++ /* Read chunk size */ ++ ev_int64_t ntoread; ++ char *p = evbuffer_readline(buf); ++ char *endp; ++ int error; ++ if (p == NULL) ++ break; ++ /* the last chunk is on a new line? */ ++ if (strlen(p) == 0) { ++ free(p); ++ continue; ++ } ++ ntoread = evutil_strtoll(p, &endp, 16); ++ error = (*p == '\0' || ++ (*endp != '\0' && *endp != ' ') || ++ ntoread < 0); ++ free(p); ++ if (error) { ++ /* could not get chunk size */ ++ return (DATA_CORRUPTED); ++ } ++ req->ntoread = ntoread; ++ if (req->ntoread == 0) { ++ /* Last chunk */ ++ return (ALL_DATA_READ); ++ } ++ continue; ++ } ++ ++ /* don't have enough to complete a chunk; wait for more */ ++ if (len < req->ntoread) ++ return (MORE_DATA_EXPECTED); ++ ++ /* Completed chunk */ ++ evbuffer_add(req->input_buffer, ++ EVBUFFER_DATA(buf), req->ntoread); ++ evbuffer_drain(buf, req->ntoread); ++ req->ntoread = -1; ++ if (req->chunk_cb != NULL) { ++ (*req->chunk_cb)(req, req->cb_arg); ++ evbuffer_drain(req->input_buffer, ++ EVBUFFER_LENGTH(req->input_buffer)); ++ } ++ } ++ ++ return (MORE_DATA_EXPECTED); ++} ++ ++static void ++evhttp_read_trailer(struct evhttp_connection *evcon, struct evhttp_request *req) ++{ ++ struct evbuffer *buf = evcon->input_buffer; ++ ++ switch (evhttp_parse_headers(req, buf)) { ++ case DATA_CORRUPTED: ++ evhttp_connection_fail(evcon, EVCON_HTTP_INVALID_HEADER); ++ break; ++ case ALL_DATA_READ: ++ event_del(&evcon->ev); ++ evhttp_connection_done(evcon); ++ break; ++ case MORE_DATA_EXPECTED: ++ default: ++ evhttp_add_event(&evcon->ev, evcon->timeout, ++ HTTP_READ_TIMEOUT); ++ break; ++ } ++} ++ ++static void ++evhttp_read_body(struct evhttp_connection *evcon, struct evhttp_request *req) ++{ ++ struct evbuffer *buf = evcon->input_buffer; ++ ++ if (req->chunked) { ++ switch (evhttp_handle_chunked_read(req, buf)) { ++ case ALL_DATA_READ: ++ /* finished last chunk */ ++ evcon->state = EVCON_READING_TRAILER; ++ evhttp_read_trailer(evcon, req); ++ return; ++ case DATA_CORRUPTED: ++ /* corrupted data */ ++ evhttp_connection_fail(evcon, ++ EVCON_HTTP_INVALID_HEADER); ++ return; ++ case REQUEST_CANCELED: ++ /* request canceled */ ++ evhttp_request_free(req); ++ return; ++ case MORE_DATA_EXPECTED: ++ default: ++ break; ++ } ++ } else if (req->ntoread < 0) { ++ /* Read until connection close. */ ++ evbuffer_add_buffer(req->input_buffer, buf); ++ } else if (EVBUFFER_LENGTH(buf) >= req->ntoread) { ++ /* Completed content length */ ++ evbuffer_add(req->input_buffer, EVBUFFER_DATA(buf), ++ req->ntoread); ++ evbuffer_drain(buf, req->ntoread); ++ req->ntoread = 0; ++ evhttp_connection_done(evcon); ++ return; ++ } ++ /* Read more! */ ++ event_set(&evcon->ev, evcon->fd, EV_READ, evhttp_read, evcon); ++ EVHTTP_BASE_SET(evcon, &evcon->ev); ++ evhttp_add_event(&evcon->ev, evcon->timeout, HTTP_READ_TIMEOUT); ++} ++ ++/* ++ * Reads data into a buffer structure until no more data ++ * can be read on the file descriptor or we have read all ++ * the data that we wanted to read. ++ * Execute callback when done. ++ */ ++ ++void ++evhttp_read(int fd, short what, void *arg) ++{ ++ struct evhttp_connection *evcon = arg; ++ struct evhttp_request *req = TAILQ_FIRST(&evcon->requests); ++ struct evbuffer *buf = evcon->input_buffer; ++ int n, len; ++ ++ if (what == EV_TIMEOUT) { ++ evhttp_connection_fail(evcon, EVCON_HTTP_TIMEOUT); ++ return; ++ } ++ n = evbuffer_read(buf, fd, -1); ++ len = EVBUFFER_LENGTH(buf); ++ event_debug(("%s: got %d on %d\n", __func__, n, fd)); ++ ++ if (n == -1) { ++ if (errno != EINTR && errno != EAGAIN) { ++ event_debug(("%s: evbuffer_read", __func__)); ++ evhttp_connection_fail(evcon, EVCON_HTTP_EOF); ++ } else { ++ evhttp_add_event(&evcon->ev, evcon->timeout, ++ HTTP_READ_TIMEOUT); ++ } ++ return; ++ } else if (n == 0) { ++ /* Connection closed */ ++ evhttp_connection_done(evcon); ++ return; ++ } ++ ++ switch (evcon->state) { ++ case EVCON_READING_FIRSTLINE: ++ evhttp_read_firstline(evcon, req); ++ break; ++ case EVCON_READING_HEADERS: ++ evhttp_read_header(evcon, req); ++ break; ++ case EVCON_READING_BODY: ++ evhttp_read_body(evcon, req); ++ break; ++ case EVCON_READING_TRAILER: ++ evhttp_read_trailer(evcon, req); ++ break; ++ case EVCON_DISCONNECTED: ++ case EVCON_CONNECTING: ++ case EVCON_IDLE: ++ case EVCON_WRITING: ++ default: ++ event_errx(1, "%s: illegal connection state %d", ++ __func__, evcon->state); ++ } ++} ++ ++static void ++evhttp_write_connectioncb(struct evhttp_connection *evcon, void *arg) ++{ ++ /* This is after writing the request to the server */ ++ struct evhttp_request *req = TAILQ_FIRST(&evcon->requests); ++ assert(req != NULL); ++ ++ assert(evcon->state == EVCON_WRITING); ++ ++ /* We are done writing our header and are now expecting the response */ ++ req->kind = EVHTTP_RESPONSE; ++ ++ evhttp_start_read(evcon); ++} ++ ++/* ++ * Clean up a connection object ++ */ ++ ++void ++evhttp_connection_free(struct evhttp_connection *evcon) ++{ ++ struct evhttp_request *req; ++ ++ /* notify interested parties that this connection is going down */ ++ if (evcon->fd != -1) { ++ if (evhttp_connected(evcon) && evcon->closecb != NULL) ++ (*evcon->closecb)(evcon, evcon->closecb_arg); ++ } ++ ++ /* remove all requests that might be queued on this connection */ ++ while ((req = TAILQ_FIRST(&evcon->requests)) != NULL) { ++ TAILQ_REMOVE(&evcon->requests, req, next); ++ evhttp_request_free(req); ++ } ++ ++ if (evcon->http_server != NULL) { ++ struct evhttp *http = evcon->http_server; ++ TAILQ_REMOVE(&http->connections, evcon, next); ++ } ++ ++ if (event_initialized(&evcon->close_ev)) ++ event_del(&evcon->close_ev); ++ ++ if (event_initialized(&evcon->ev)) ++ event_del(&evcon->ev); ++ ++ if (evcon->fd != -1) ++ EVUTIL_CLOSESOCKET(evcon->fd); ++ ++ if (evcon->bind_address != NULL) ++ free(evcon->bind_address); ++ ++ if (evcon->address != NULL) ++ free(evcon->address); ++ ++ if (evcon->input_buffer != NULL) ++ evbuffer_free(evcon->input_buffer); ++ ++ if (evcon->output_buffer != NULL) ++ evbuffer_free(evcon->output_buffer); ++ ++ free(evcon); ++} ++ ++void ++evhttp_connection_set_local_address(struct evhttp_connection *evcon, ++ const char *address) ++{ ++ assert(evcon->state == EVCON_DISCONNECTED); ++ if (evcon->bind_address) ++ free(evcon->bind_address); ++ if ((evcon->bind_address = strdup(address)) == NULL) ++ event_err(1, "%s: strdup", __func__); ++} ++ ++ ++static void ++evhttp_request_dispatch(struct evhttp_connection* evcon) ++{ ++ struct evhttp_request *req = TAILQ_FIRST(&evcon->requests); ++ ++ /* this should not usually happy but it's possible */ ++ if (req == NULL) ++ return; ++ ++ /* delete possible close detection events */ ++ evhttp_connection_stop_detectclose(evcon); ++ ++ /* we assume that the connection is connected already */ ++ assert(evcon->state == EVCON_IDLE); ++ ++ evcon->state = EVCON_WRITING; ++ ++ /* Create the header from the store arguments */ ++ evhttp_make_header(evcon, req); ++ ++ evhttp_write_buffer(evcon, evhttp_write_connectioncb, NULL); ++} ++ ++/* Reset our connection state */ ++void ++evhttp_connection_reset(struct evhttp_connection *evcon) ++{ ++ if (event_initialized(&evcon->ev)) ++ event_del(&evcon->ev); ++ ++ if (evcon->fd != -1) { ++ /* inform interested parties about connection close */ ++ if (evhttp_connected(evcon) && evcon->closecb != NULL) ++ (*evcon->closecb)(evcon, evcon->closecb_arg); ++ ++ EVUTIL_CLOSESOCKET(evcon->fd); ++ evcon->fd = -1; ++ } ++ evcon->state = EVCON_DISCONNECTED; ++} ++ ++static void ++evhttp_detect_close_cb(int fd, short what, void *arg) ++{ ++ struct evhttp_connection *evcon = arg; ++ evhttp_connection_reset(evcon); ++} ++ ++static void ++evhttp_connection_start_detectclose(struct evhttp_connection *evcon) ++{ ++ evcon->flags |= EVHTTP_CON_CLOSEDETECT; ++ ++ if (event_initialized(&evcon->close_ev)) ++ event_del(&evcon->close_ev); ++ event_set(&evcon->close_ev, evcon->fd, EV_READ, ++ evhttp_detect_close_cb, evcon); ++ EVHTTP_BASE_SET(evcon, &evcon->close_ev); ++ event_add(&evcon->close_ev, NULL); ++} ++ ++static void ++evhttp_connection_stop_detectclose(struct evhttp_connection *evcon) ++{ ++ evcon->flags &= ~EVHTTP_CON_CLOSEDETECT; ++ event_del(&evcon->close_ev); ++} ++ ++static void ++evhttp_connection_retry(int fd, short what, void *arg) ++{ ++ struct evhttp_connection *evcon = arg; ++ ++ evcon->state = EVCON_DISCONNECTED; ++ evhttp_connection_connect(evcon); ++} ++ ++/* ++ * Call back for asynchronous connection attempt. ++ */ ++ ++static void ++evhttp_connectioncb(int fd, short what, void *arg) ++{ ++ struct evhttp_connection *evcon = arg; ++ int error; ++ socklen_t errsz = sizeof(error); ++ ++ if (what == EV_TIMEOUT) { ++ event_debug(("%s: connection timeout for \"%s:%d\" on %d", ++ __func__, evcon->address, evcon->port, evcon->fd)); ++ goto cleanup; ++ } ++ ++ /* Check if the connection completed */ ++ if (getsockopt(evcon->fd, SOL_SOCKET, SO_ERROR, (void*)&error, ++ &errsz) == -1) { ++ event_debug(("%s: getsockopt for \"%s:%d\" on %d", ++ __func__, evcon->address, evcon->port, evcon->fd)); ++ goto cleanup; ++ } ++ ++ if (error) { ++ event_debug(("%s: connect failed for \"%s:%d\" on %d: %s", ++ __func__, evcon->address, evcon->port, evcon->fd, ++ strerror(error))); ++ goto cleanup; ++ } ++ ++ /* We are connected to the server now */ ++ event_debug(("%s: connected to \"%s:%d\" on %d\n", ++ __func__, evcon->address, evcon->port, evcon->fd)); ++ ++ /* Reset the retry count as we were successful in connecting */ ++ evcon->retry_cnt = 0; ++ evcon->state = EVCON_IDLE; ++ ++ /* try to start requests that have queued up on this connection */ ++ evhttp_request_dispatch(evcon); ++ return; ++ ++ cleanup: ++ if (evcon->retry_max < 0 || evcon->retry_cnt < evcon->retry_max) { ++ evtimer_set(&evcon->ev, evhttp_connection_retry, evcon); ++ EVHTTP_BASE_SET(evcon, &evcon->ev); ++ evhttp_add_event(&evcon->ev, MIN(3600, 2 << evcon->retry_cnt), ++ HTTP_CONNECT_TIMEOUT); ++ evcon->retry_cnt++; ++ return; ++ } ++ evhttp_connection_reset(evcon); ++ ++ /* for now, we just signal all requests by executing their callbacks */ ++ while (TAILQ_FIRST(&evcon->requests) != NULL) { ++ struct evhttp_request *request = TAILQ_FIRST(&evcon->requests); ++ TAILQ_REMOVE(&evcon->requests, request, next); ++ request->evcon = NULL; ++ ++ /* we might want to set an error here */ ++ request->cb(request, request->cb_arg); ++ evhttp_request_free(request); ++ } ++} ++ ++/* ++ * Check if we got a valid response code. ++ */ ++ ++static int ++evhttp_valid_response_code(int code) ++{ ++ if (code == 0) ++ return (0); ++ ++ return (1); ++} ++ ++/* Parses the status line of a web server */ ++ ++static int ++evhttp_parse_response_line(struct evhttp_request *req, char *line) ++{ ++ char *protocol; ++ char *number; ++ char *readable; ++ ++ protocol = strsep(&line, " "); ++ if (line == NULL) ++ return (-1); ++ number = strsep(&line, " "); ++ if (line == NULL) ++ return (-1); ++ readable = line; ++ ++ if (strcmp(protocol, "HTTP/1.0") == 0) { ++ req->major = 1; ++ req->minor = 0; ++ } else if (strcmp(protocol, "HTTP/1.1") == 0) { ++ req->major = 1; ++ req->minor = 1; ++ } else { ++ event_debug(("%s: bad protocol \"%s\"", ++ __func__, protocol)); ++ return (-1); ++ } ++ ++ req->response_code = atoi(number); ++ if (!evhttp_valid_response_code(req->response_code)) { ++ event_debug(("%s: bad response code \"%s\"", ++ __func__, number)); ++ return (-1); ++ } ++ ++ if ((req->response_code_line = strdup(readable)) == NULL) ++ event_err(1, "%s: strdup", __func__); ++ ++ return (0); ++} ++ ++/* Parse the first line of a HTTP request */ ++ ++static int ++evhttp_parse_request_line(struct evhttp_request *req, char *line) ++{ ++ char *method; ++ char *uri; ++ char *version; ++ ++ /* Parse the request line */ ++ method = strsep(&line, " "); ++ if (line == NULL) ++ return (-1); ++ uri = strsep(&line, " "); ++ if (line == NULL) ++ return (-1); ++ version = strsep(&line, " "); ++ if (line != NULL) ++ return (-1); ++ ++ /* First line */ ++ if (strcmp(method, "GET") == 0) { ++ req->type = EVHTTP_REQ_GET; ++ } else if (strcmp(method, "POST") == 0) { ++ req->type = EVHTTP_REQ_POST; ++ } else if (strcmp(method, "HEAD") == 0) { ++ req->type = EVHTTP_REQ_HEAD; ++ } else { ++ event_debug(("%s: bad method %s on request %p from %s", ++ __func__, method, req, req->remote_host)); ++ return (-1); ++ } ++ ++ if (strcmp(version, "HTTP/1.0") == 0) { ++ req->major = 1; ++ req->minor = 0; ++ } else if (strcmp(version, "HTTP/1.1") == 0) { ++ req->major = 1; ++ req->minor = 1; ++ } else { ++ event_debug(("%s: bad version %s on request %p from %s", ++ __func__, version, req, req->remote_host)); ++ return (-1); ++ } ++ ++ if ((req->uri = strdup(uri)) == NULL) { ++ event_debug(("%s: evhttp_decode_uri", __func__)); ++ return (-1); ++ } ++ ++ /* determine if it's a proxy request */ ++ if (strlen(req->uri) > 0 && req->uri[0] != '/') ++ req->flags |= EVHTTP_PROXY_REQUEST; ++ ++ return (0); ++} ++ ++const char * ++evhttp_find_header(const struct evkeyvalq *headers, const char *key) ++{ ++ struct evkeyval *header; ++ ++ TAILQ_FOREACH(header, headers, next) { ++ if (strcasecmp(header->key, key) == 0) ++ return (header->value); ++ } ++ ++ return (NULL); ++} ++ ++void ++evhttp_clear_headers(struct evkeyvalq *headers) ++{ ++ struct evkeyval *header; ++ ++ for (header = TAILQ_FIRST(headers); ++ header != NULL; ++ header = TAILQ_FIRST(headers)) { ++ TAILQ_REMOVE(headers, header, next); ++ free(header->key); ++ free(header->value); ++ free(header); ++ } ++} ++ ++/* ++ * Returns 0, if the header was successfully removed. ++ * Returns -1, if the header could not be found. ++ */ ++ ++int ++evhttp_remove_header(struct evkeyvalq *headers, const char *key) ++{ ++ struct evkeyval *header; ++ ++ TAILQ_FOREACH(header, headers, next) { ++ if (strcasecmp(header->key, key) == 0) ++ break; ++ } ++ ++ if (header == NULL) ++ return (-1); ++ ++ /* Free and remove the header that we found */ ++ TAILQ_REMOVE(headers, header, next); ++ free(header->key); ++ free(header->value); ++ free(header); ++ ++ return (0); ++} ++ ++int ++evhttp_add_header(struct evkeyvalq *headers, ++ const char *key, const char *value) ++{ ++ struct evkeyval *header = NULL; ++ ++ event_debug(("%s: key: %s val: %s\n", __func__, key, value)); ++ ++ if (strchr(value, '\r') != NULL || strchr(value, '\n') != NULL || ++ strchr(key, '\r') != NULL || strchr(key, '\n') != NULL) { ++ /* drop illegal headers */ ++ event_debug(("%s: dropping illegal header\n", __func__)); ++ return (-1); ++ } ++ ++ header = calloc(1, sizeof(struct evkeyval)); ++ if (header == NULL) { ++ event_warn("%s: calloc", __func__); ++ return (-1); ++ } ++ if ((header->key = strdup(key)) == NULL) { ++ free(header); ++ event_warn("%s: strdup", __func__); ++ return (-1); ++ } ++ if ((header->value = strdup(value)) == NULL) { ++ free(header->key); ++ free(header); ++ event_warn("%s: strdup", __func__); ++ return (-1); ++ } ++ ++ TAILQ_INSERT_TAIL(headers, header, next); ++ ++ return (0); ++} ++ ++/* ++ * Parses header lines from a request or a response into the specified ++ * request object given an event buffer. ++ * ++ * Returns ++ * DATA_CORRUPTED on error ++ * MORE_DATA_EXPECTED when we need to read more headers ++ * ALL_DATA_READ when all headers have been read. ++ */ ++ ++enum message_read_status ++evhttp_parse_firstline(struct evhttp_request *req, struct evbuffer *buffer) ++{ ++ char *line; ++ enum message_read_status status = ALL_DATA_READ; ++ ++ line = evbuffer_readline(buffer); ++ if (line == NULL) ++ return (MORE_DATA_EXPECTED); ++ ++ switch (req->kind) { ++ case EVHTTP_REQUEST: ++ if (evhttp_parse_request_line(req, line) == -1) ++ status = DATA_CORRUPTED; ++ break; ++ case EVHTTP_RESPONSE: ++ if (evhttp_parse_response_line(req, line) == -1) ++ status = DATA_CORRUPTED; ++ break; ++ default: ++ status = DATA_CORRUPTED; ++ } ++ ++ free(line); ++ return (status); ++} ++ ++static int ++evhttp_append_to_last_header(struct evkeyvalq *headers, const char *line) ++{ ++ struct evkeyval *header = TAILQ_LAST(headers, evkeyvalq); ++ char *newval; ++ size_t old_len, line_len; ++ ++ if (header == NULL) ++ return (-1); ++ ++ old_len = strlen(header->value); ++ line_len = strlen(line); ++ ++ newval = realloc(header->value, old_len + line_len + 1); ++ if (newval == NULL) ++ return (-1); ++ ++ memcpy(newval + old_len, line, line_len + 1); ++ header->value = newval; ++ ++ return (0); ++} ++ ++enum message_read_status ++evhttp_parse_headers(struct evhttp_request *req, struct evbuffer* buffer) ++{ ++ char *line; ++ enum message_read_status status = MORE_DATA_EXPECTED; ++ ++ struct evkeyvalq* headers = req->input_headers; ++ while ((line = evbuffer_readline(buffer)) ++ != NULL) { ++ char *skey, *svalue; ++ ++ if (*line == '\0') { /* Last header - Done */ ++ status = ALL_DATA_READ; ++ free(line); ++ break; ++ } ++ ++ /* Check if this is a continuation line */ ++ if (*line == ' ' || *line == '\t') { ++ if (evhttp_append_to_last_header(headers, line) == -1) ++ goto error; ++ continue; ++ } ++ ++ /* Processing of header lines */ ++ svalue = line; ++ skey = strsep(&svalue, ":"); ++ if (svalue == NULL) ++ goto error; ++ ++ svalue += strspn(svalue, " "); ++ ++ if (evhttp_add_header(headers, skey, svalue) == -1) ++ goto error; ++ ++ free(line); ++ } ++ ++ return (status); ++ ++ error: ++ free(line); ++ return (DATA_CORRUPTED); ++} ++ ++static int ++evhttp_get_body_length(struct evhttp_request *req) ++{ ++ struct evkeyvalq *headers = req->input_headers; ++ const char *content_length; ++ const char *connection; ++ ++ content_length = evhttp_find_header(headers, "Content-Length"); ++ connection = evhttp_find_header(headers, "Connection"); ++ ++ if (content_length == NULL && connection == NULL) ++ req->ntoread = -1; ++ else if (content_length == NULL && ++ strcasecmp(connection, "Close") != 0) { ++ /* Bad combination, we don't know when it will end */ ++ event_warnx("%s: we got no content length, but the " ++ "server wants to keep the connection open: %s.", ++ __func__, connection); ++ return (-1); ++ } else if (content_length == NULL) { ++ req->ntoread = -1; ++ } else { ++ char *endp; ++ ev_int64_t ntoread = evutil_strtoll(content_length, &endp, 10); ++ if (*content_length == '\0' || *endp != '\0' || ntoread < 0) { ++ event_debug(("%s: illegal content length: %s", ++ __func__, content_length)); ++ return (-1); ++ } ++ req->ntoread = ntoread; ++ } ++ ++ event_debug(("%s: bytes to read: %lld (in buffer %ld)\n", ++ __func__, req->ntoread, ++ EVBUFFER_LENGTH(req->evcon->input_buffer))); ++ ++ return (0); ++} ++ ++static void ++evhttp_get_body(struct evhttp_connection *evcon, struct evhttp_request *req) ++{ ++ const char *xfer_enc; ++ ++ /* If this is a request without a body, then we are done */ ++ if (req->kind == EVHTTP_REQUEST && req->type != EVHTTP_REQ_POST) { ++ evhttp_connection_done(evcon); ++ return; ++ } ++ evcon->state = EVCON_READING_BODY; ++ xfer_enc = evhttp_find_header(req->input_headers, "Transfer-Encoding"); ++ if (xfer_enc != NULL && strcasecmp(xfer_enc, "chunked") == 0) { ++ req->chunked = 1; ++ req->ntoread = -1; ++ } else { ++ if (evhttp_get_body_length(req) == -1) { ++ evhttp_connection_fail(evcon, ++ EVCON_HTTP_INVALID_HEADER); ++ return; ++ } ++ } ++ evhttp_read_body(evcon, req); ++} ++ ++static void ++evhttp_read_firstline(struct evhttp_connection *evcon, ++ struct evhttp_request *req) ++{ ++ enum message_read_status res; ++ ++ res = evhttp_parse_firstline(req, evcon->input_buffer); ++ if (res == DATA_CORRUPTED) { ++ /* Error while reading, terminate */ ++ event_debug(("%s: bad header lines on %d\n", ++ __func__, evcon->fd)); ++ evhttp_connection_fail(evcon, EVCON_HTTP_INVALID_HEADER); ++ return; ++ } else if (res == MORE_DATA_EXPECTED) { ++ /* Need more header lines */ ++ evhttp_add_event(&evcon->ev, ++ evcon->timeout, HTTP_READ_TIMEOUT); ++ return; ++ } ++ ++ evcon->state = EVCON_READING_HEADERS; ++ evhttp_read_header(evcon, req); ++} ++ ++static void ++evhttp_read_header(struct evhttp_connection *evcon, struct evhttp_request *req) ++{ ++ enum message_read_status res; ++ int fd = evcon->fd; ++ ++ res = evhttp_parse_headers(req, evcon->input_buffer); ++ if (res == DATA_CORRUPTED) { ++ /* Error while reading, terminate */ ++ event_debug(("%s: bad header lines on %d\n", __func__, fd)); ++ evhttp_connection_fail(evcon, EVCON_HTTP_INVALID_HEADER); ++ return; ++ } else if (res == MORE_DATA_EXPECTED) { ++ /* Need more header lines */ ++ evhttp_add_event(&evcon->ev, ++ evcon->timeout, HTTP_READ_TIMEOUT); ++ return; ++ } ++ ++ /* Done reading headers, do the real work */ ++ switch (req->kind) { ++ case EVHTTP_REQUEST: ++ event_debug(("%s: checking for post data on %d\n", ++ __func__, fd)); ++ evhttp_get_body(evcon, req); ++ break; ++ ++ case EVHTTP_RESPONSE: ++ if (req->response_code == HTTP_NOCONTENT || ++ req->response_code == HTTP_NOTMODIFIED || ++ (req->response_code >= 100 && req->response_code < 200)) { ++ event_debug(("%s: skipping body for code %d\n", ++ __func__, req->response_code)); ++ evhttp_connection_done(evcon); ++ } else { ++ event_debug(("%s: start of read body for %s on %d\n", ++ __func__, req->remote_host, fd)); ++ evhttp_get_body(evcon, req); ++ } ++ break; ++ ++ default: ++ event_warnx("%s: bad header on %d", __func__, fd); ++ evhttp_connection_fail(evcon, EVCON_HTTP_INVALID_HEADER); ++ break; ++ } ++} ++ ++/* ++ * Creates a TCP connection to the specified port and executes a callback ++ * when finished. Failure or sucess is indicate by the passed connection ++ * object. ++ * ++ * Although this interface accepts a hostname, it is intended to take ++ * only numeric hostnames so that non-blocking DNS resolution can ++ * happen elsewhere. ++ */ ++ ++struct evhttp_connection * ++evhttp_connection_new(const char *address, unsigned short port) ++{ ++ struct evhttp_connection *evcon = NULL; ++ ++ event_debug(("Attempting connection to %s:%d\n", address, port)); ++ ++ if ((evcon = calloc(1, sizeof(struct evhttp_connection))) == NULL) { ++ event_warn("%s: calloc failed", __func__); ++ goto error; ++ } ++ ++ evcon->fd = -1; ++ evcon->port = port; ++ ++ evcon->timeout = -1; ++ evcon->retry_cnt = evcon->retry_max = 0; ++ ++ if ((evcon->address = strdup(address)) == NULL) { ++ event_warn("%s: strdup failed", __func__); ++ goto error; ++ } ++ ++ if ((evcon->input_buffer = evbuffer_new()) == NULL) { ++ event_warn("%s: evbuffer_new failed", __func__); ++ goto error; ++ } ++ ++ if ((evcon->output_buffer = evbuffer_new()) == NULL) { ++ event_warn("%s: evbuffer_new failed", __func__); ++ goto error; ++ } ++ ++ evcon->state = EVCON_DISCONNECTED; ++ TAILQ_INIT(&evcon->requests); ++ ++ return (evcon); ++ ++ error: ++ if (evcon != NULL) ++ evhttp_connection_free(evcon); ++ return (NULL); ++} ++ ++void evhttp_connection_set_base(struct evhttp_connection *evcon, ++ struct event_base *base) ++{ ++ assert(evcon->base == NULL); ++ assert(evcon->state == EVCON_DISCONNECTED); ++ evcon->base = base; ++} ++ ++void ++evhttp_connection_set_timeout(struct evhttp_connection *evcon, ++ int timeout_in_secs) ++{ ++ evcon->timeout = timeout_in_secs; ++} ++ ++void ++evhttp_connection_set_retries(struct evhttp_connection *evcon, ++ int retry_max) ++{ ++ evcon->retry_max = retry_max; ++} ++ ++void ++evhttp_connection_set_closecb(struct evhttp_connection *evcon, ++ void (*cb)(struct evhttp_connection *, void *), void *cbarg) ++{ ++ evcon->closecb = cb; ++ evcon->closecb_arg = cbarg; ++} ++ ++void ++evhttp_connection_get_peer(struct evhttp_connection *evcon, ++ char **address, u_short *port) ++{ ++ *address = evcon->address; ++ *port = evcon->port; ++} ++ ++int ++evhttp_connection_connect(struct evhttp_connection *evcon) ++{ ++ if (evcon->state == EVCON_CONNECTING) ++ return (0); ++ ++ evhttp_connection_reset(evcon); ++ ++ assert(!(evcon->flags & EVHTTP_CON_INCOMING)); ++ evcon->flags |= EVHTTP_CON_OUTGOING; ++ ++ evcon->fd = bind_socket(evcon->bind_address, 0 /*port*/, 0 /*reuse*/); ++ if (evcon->fd == -1) { ++ event_debug(("%s: failed to bind to \"%s\"", ++ __func__, evcon->bind_address)); ++ return (-1); ++ } ++ ++ if (socket_connect(evcon->fd, evcon->address, evcon->port) == -1) { ++ EVUTIL_CLOSESOCKET(evcon->fd); evcon->fd = -1; ++ return (-1); ++ } ++ ++ /* Set up a callback for successful connection setup */ ++ event_set(&evcon->ev, evcon->fd, EV_WRITE, evhttp_connectioncb, evcon); ++ EVHTTP_BASE_SET(evcon, &evcon->ev); ++ evhttp_add_event(&evcon->ev, evcon->timeout, HTTP_CONNECT_TIMEOUT); ++ ++ evcon->state = EVCON_CONNECTING; ++ ++ return (0); ++} ++ ++/* ++ * Starts an HTTP request on the provided evhttp_connection object. ++ * If the connection object is not connected to the web server already, ++ * this will start the connection. ++ */ ++ ++int ++evhttp_make_request(struct evhttp_connection *evcon, ++ struct evhttp_request *req, ++ enum evhttp_cmd_type type, const char *uri) ++{ ++ /* We are making a request */ ++ req->kind = EVHTTP_REQUEST; ++ req->type = type; ++ if (req->uri != NULL) ++ free(req->uri); ++ if ((req->uri = strdup(uri)) == NULL) ++ event_err(1, "%s: strdup", __func__); ++ ++ /* Set the protocol version if it is not supplied */ ++ if (!req->major && !req->minor) { ++ req->major = 1; ++ req->minor = 1; ++ } ++ ++ assert(req->evcon == NULL); ++ req->evcon = evcon; ++ assert(!(req->flags & EVHTTP_REQ_OWN_CONNECTION)); ++ ++ TAILQ_INSERT_TAIL(&evcon->requests, req, next); ++ ++ /* If the connection object is not connected; make it so */ ++ if (!evhttp_connected(evcon)) ++ return (evhttp_connection_connect(evcon)); ++ ++ /* ++ * If it's connected already and we are the first in the queue, ++ * then we can dispatch this request immediately. Otherwise, it ++ * will be dispatched once the pending requests are completed. ++ */ ++ if (TAILQ_FIRST(&evcon->requests) == req) ++ evhttp_request_dispatch(evcon); ++ ++ return (0); ++} ++ ++/* ++ * Reads data from file descriptor into request structure ++ * Request structure needs to be set up correctly. ++ */ ++ ++void ++evhttp_start_read(struct evhttp_connection *evcon) ++{ ++ /* Set up an event to read the headers */ ++ if (event_initialized(&evcon->ev)) ++ event_del(&evcon->ev); ++ event_set(&evcon->ev, evcon->fd, EV_READ, evhttp_read, evcon); ++ EVHTTP_BASE_SET(evcon, &evcon->ev); ++ ++ evhttp_add_event(&evcon->ev, evcon->timeout, HTTP_READ_TIMEOUT); ++ evcon->state = EVCON_READING_FIRSTLINE; ++} ++ ++static void ++evhttp_send_done(struct evhttp_connection *evcon, void *arg) ++{ ++ int need_close; ++ struct evhttp_request *req = TAILQ_FIRST(&evcon->requests); ++ TAILQ_REMOVE(&evcon->requests, req, next); ++ ++ /* delete possible close detection events */ ++ evhttp_connection_stop_detectclose(evcon); ++ ++ need_close = ++ (req->minor == 0 && ++ !evhttp_is_connection_keepalive(req->input_headers))|| ++ evhttp_is_connection_close(req->flags, req->input_headers) || ++ evhttp_is_connection_close(req->flags, req->output_headers); ++ ++ assert(req->flags & EVHTTP_REQ_OWN_CONNECTION); ++ evhttp_request_free(req); ++ ++ if (need_close) { ++ evhttp_connection_free(evcon); ++ return; ++ } ++ ++ /* we have a persistent connection; try to accept another request. */ ++ if (evhttp_associate_new_request_with_connection(evcon) == -1) ++ evhttp_connection_free(evcon); ++} ++ ++/* ++ * Returns an error page. ++ */ ++ ++void ++evhttp_send_error(struct evhttp_request *req, int error, const char *reason) ++{ ++#define ERR_FORMAT "\n" \ ++ "%d %s\n" \ ++ "\n" \ ++ "

Method Not Implemented

\n" \ ++ "Invalid method in request

\n" \ ++ "\n" ++ ++ struct evbuffer *buf = evbuffer_new(); ++ ++ /* close the connection on error */ ++ evhttp_add_header(req->output_headers, "Connection", "close"); ++ ++ evhttp_response_code(req, error, reason); ++ ++ evbuffer_add_printf(buf, ERR_FORMAT, error, reason); ++ ++ evhttp_send_page(req, buf); ++ ++ evbuffer_free(buf); ++#undef ERR_FORMAT ++} ++ ++/* Requires that headers and response code are already set up */ ++ ++static inline void ++evhttp_send(struct evhttp_request *req, struct evbuffer *databuf) ++{ ++ struct evhttp_connection *evcon = req->evcon; ++ ++ assert(TAILQ_FIRST(&evcon->requests) == req); ++ ++ /* xxx: not sure if we really should expose the data buffer this way */ ++ if (databuf != NULL) ++ evbuffer_add_buffer(req->output_buffer, databuf); ++ ++ /* Adds headers to the response */ ++ evhttp_make_header(evcon, req); ++ ++ evhttp_write_buffer(evcon, evhttp_send_done, NULL); ++} ++ ++void ++evhttp_send_reply(struct evhttp_request *req, int code, const char *reason, ++ struct evbuffer *databuf) ++{ ++ /* set up to watch for client close */ ++ evhttp_connection_start_detectclose(req->evcon); ++ evhttp_response_code(req, code, reason); ++ ++ evhttp_send(req, databuf); ++} ++ ++void ++evhttp_send_reply_start(struct evhttp_request *req, int code, ++ const char *reason) ++{ ++ /* set up to watch for client close */ ++ evhttp_connection_start_detectclose(req->evcon); ++ evhttp_response_code(req, code, reason); ++ if (req->major == 1 && req->minor == 1) { ++ /* use chunked encoding for HTTP/1.1 */ ++ evhttp_add_header(req->output_headers, "Transfer-Encoding", ++ "chunked"); ++ req->chunked = 1; ++ } ++ evhttp_make_header(req->evcon, req); ++ evhttp_write_buffer(req->evcon, NULL, NULL); ++} ++ ++void ++evhttp_send_reply_chunk(struct evhttp_request *req, struct evbuffer *databuf) ++{ ++ if (req->chunked) { ++ evbuffer_add_printf(req->evcon->output_buffer, "%x\r\n", ++ (unsigned)EVBUFFER_LENGTH(databuf)); ++ } ++ evbuffer_add_buffer(req->evcon->output_buffer, databuf); ++ if (req->chunked) { ++ evbuffer_add(req->evcon->output_buffer, "\r\n", 2); ++ } ++ evhttp_write_buffer(req->evcon, NULL, NULL); ++} ++ ++void ++evhttp_send_reply_end(struct evhttp_request *req) ++{ ++ struct evhttp_connection *evcon = req->evcon; ++ ++ if (req->chunked) { ++ evbuffer_add(req->evcon->output_buffer, "0\r\n\r\n", 5); ++ evhttp_write_buffer(req->evcon, evhttp_send_done, NULL); ++ req->chunked = 0; ++ } else if (!event_pending(&evcon->ev, EV_WRITE|EV_TIMEOUT, NULL)) { ++ /* let the connection know that we are done with the request */ ++ evhttp_send_done(evcon, NULL); ++ } else { ++ /* make the callback execute after all data has been written */ ++ evcon->cb = evhttp_send_done; ++ evcon->cb_arg = NULL; ++ } ++} ++ ++void ++evhttp_response_code(struct evhttp_request *req, int code, const char *reason) ++{ ++ req->kind = EVHTTP_RESPONSE; ++ req->response_code = code; ++ if (req->response_code_line != NULL) ++ free(req->response_code_line); ++ req->response_code_line = strdup(reason); ++} ++ ++void ++evhttp_send_page(struct evhttp_request *req, struct evbuffer *databuf) ++{ ++ if (!req->major || !req->minor) { ++ req->major = 1; ++ req->minor = 1; ++ } ++ ++ if (req->kind != EVHTTP_RESPONSE) ++ evhttp_response_code(req, 200, "OK"); ++ ++ evhttp_clear_headers(req->output_headers); ++ evhttp_add_header(req->output_headers, "Content-Type", "text/html"); ++ evhttp_add_header(req->output_headers, "Connection", "close"); ++ ++ evhttp_send(req, databuf); ++} ++ ++static const char uri_chars[256] = { ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 1, 0, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, ++ /* 64 */ ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 1, ++ 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ++ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 0, ++ /* 128 */ ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ /* 192 */ ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, ++}; ++ ++/* ++ * Helper functions to encode/decode a URI. ++ * The returned string must be freed by the caller. ++ */ ++char * ++evhttp_encode_uri(const char *uri) ++{ ++ struct evbuffer *buf = evbuffer_new(); ++ char *p; ++ ++ for (p = (char *)uri; *p != '\0'; p++) { ++ if (uri_chars[(u_char)(*p)]) { ++ evbuffer_add(buf, p, 1); ++ } else { ++ evbuffer_add_printf(buf, "%%%02X", (u_char)(*p)); ++ } ++ } ++ evbuffer_add(buf, "", 1); ++ p = strdup((char *)EVBUFFER_DATA(buf)); ++ evbuffer_free(buf); ++ ++ return (p); ++} ++ ++char * ++evhttp_decode_uri(const char *uri) ++{ ++ char c, *ret; ++ int i, j, in_query = 0; ++ ++ ret = malloc(strlen(uri) + 1); ++ if (ret == NULL) ++ event_err(1, "%s: malloc(%lu)", __func__, ++ (unsigned long)(strlen(uri) + 1)); ++ ++ for (i = j = 0; uri[i] != '\0'; i++) { ++ c = uri[i]; ++ if (c == '?') { ++ in_query = 1; ++ } else if (c == '+' && in_query) { ++ c = ' '; ++ } else if (c == '%' && isxdigit((unsigned char)uri[i+1]) && ++ isxdigit((unsigned char)uri[i+2])) { ++ char tmp[] = { uri[i+1], uri[i+2], '\0' }; ++ c = (char)strtol(tmp, NULL, 16); ++ i += 2; ++ } ++ ret[j++] = c; ++ } ++ ret[j] = '\0'; ++ ++ return (ret); ++} ++ ++/* ++ * Helper function to parse out arguments in a query. ++ * The arguments are separated by key and value. ++ * URI should already be decoded. ++ */ ++ ++void ++evhttp_parse_query(const char *uri, struct evkeyvalq *headers) ++{ ++ char *line; ++ char *argument; ++ char *p; ++ ++ TAILQ_INIT(headers); ++ ++ /* No arguments - we are done */ ++ if (strchr(uri, '?') == NULL) ++ return; ++ ++ if ((line = strdup(uri)) == NULL) ++ event_err(1, "%s: strdup", __func__); ++ ++ ++ argument = line; ++ ++ /* We already know that there has to be a ? */ ++ strsep(&argument, "?"); ++ ++ p = argument; ++ while (p != NULL && *p != '\0') { ++ char *key, *value; ++ argument = strsep(&p, "&"); ++ ++ value = argument; ++ key = strsep(&value, "="); ++ if (value == NULL) ++ goto error; ++ ++ value = evhttp_decode_uri(value); ++ event_debug(("Query Param: %s -> %s\n", key, value)); ++ evhttp_add_header(headers, key, value); ++ free(value); ++ } ++ ++ error: ++ free(line); ++} ++ ++static struct evhttp_cb * ++evhttp_dispatch_callback(struct httpcbq *callbacks, struct evhttp_request *req) ++{ ++ struct evhttp_cb *cb; ++ size_t offset = 0; ++ ++ /* Test for different URLs */ ++ char *p = strchr(req->uri, '?'); ++ if (p != NULL) ++ offset = (size_t)(p - req->uri); ++ ++ TAILQ_FOREACH(cb, callbacks, next) { ++ int res = 0; ++ if (p == NULL) { ++ res = strcmp(cb->what, req->uri) == 0; ++ } else { ++ res = ((strncmp(cb->what, req->uri, offset) == 0) && ++ (cb->what[offset] == '\0')); ++ } ++ ++ if (res) ++ return (cb); ++ } ++ ++ return (NULL); ++} ++ ++static void ++evhttp_handle_request(struct evhttp_request *req, void *arg) ++{ ++ struct evhttp *http = arg; ++ struct evhttp_cb *cb = NULL; ++ ++ if (req->uri == NULL) { ++ evhttp_send_error(req, HTTP_BADREQUEST, "Bad Request"); ++ return; ++ } ++ ++ if ((cb = evhttp_dispatch_callback(&http->callbacks, req)) != NULL) { ++ (*cb->cb)(req, cb->cbarg); ++ return; ++ } ++ ++ /* Generic call back */ ++ if (http->gencb) { ++ (*http->gencb)(req, http->gencbarg); ++ return; ++ } else { ++ /* We need to send a 404 here */ ++#define ERR_FORMAT "" \ ++ "404 Not Found" \ ++ "" \ ++ "

Not Found

" \ ++ "

The requested URL %s was not found on this server.

"\ ++ "\n" ++ ++ char *escaped_html = evhttp_htmlescape(req->uri); ++ struct evbuffer *buf = evbuffer_new(); ++ ++ evhttp_response_code(req, HTTP_NOTFOUND, "Not Found"); ++ ++ evbuffer_add_printf(buf, ERR_FORMAT, escaped_html); ++ ++ free(escaped_html); ++ ++ evhttp_send_page(req, buf); ++ ++ evbuffer_free(buf); ++#undef ERR_FORMAT ++ } ++} ++ ++static void ++accept_socket(int fd, short what, void *arg) ++{ ++ struct evhttp *http = arg; ++ struct sockaddr_storage ss; ++ socklen_t addrlen = sizeof(ss); ++ int nfd; ++ ++ if ((nfd = accept(fd, (struct sockaddr *)&ss, &addrlen)) == -1) { ++ if (errno != EAGAIN && errno != EINTR) ++ event_warn("%s: bad accept", __func__); ++ return; ++ } ++ if (evutil_make_socket_nonblocking(nfd) < 0) ++ return; ++ ++ evhttp_get_request(http, nfd, (struct sockaddr *)&ss, addrlen); ++} ++ ++int ++evhttp_bind_socket(struct evhttp *http, const char *address, u_short port) ++{ ++ int fd; ++ int res; ++ ++ if ((fd = bind_socket(address, port, 1 /*reuse*/)) == -1) ++ return (-1); ++ ++ if (listen(fd, 128) == -1) { ++ event_warn("%s: listen", __func__); ++ EVUTIL_CLOSESOCKET(fd); ++ return (-1); ++ } ++ ++ res = evhttp_accept_socket(http, fd); ++ ++ if (res != -1) ++ event_debug(("Bound to port %d - Awaiting connections ... ", ++ port)); ++ ++ return (res); ++} ++ ++int ++evhttp_accept_socket(struct evhttp *http, int fd) ++{ ++ struct evhttp_bound_socket *bound; ++ struct event *ev; ++ int res; ++ ++ bound = malloc(sizeof(struct evhttp_bound_socket)); ++ if (bound == NULL) ++ return (-1); ++ ++ ev = &bound->bind_ev; ++ ++ /* Schedule the socket for accepting */ ++ event_set(ev, fd, EV_READ | EV_PERSIST, accept_socket, http); ++ EVHTTP_BASE_SET(http, ev); ++ ++ res = event_add(ev, NULL); ++ ++ if (res == -1) { ++ free(bound); ++ return (-1); ++ } ++ ++ TAILQ_INSERT_TAIL(&http->sockets, bound, next); ++ ++ return (0); ++} ++ ++static struct evhttp* ++evhttp_new_object(void) ++{ ++ struct evhttp *http = NULL; ++ ++ if ((http = calloc(1, sizeof(struct evhttp))) == NULL) { ++ event_warn("%s: calloc", __func__); ++ return (NULL); ++ } ++ ++ http->timeout = -1; ++ ++ TAILQ_INIT(&http->sockets); ++ TAILQ_INIT(&http->callbacks); ++ TAILQ_INIT(&http->connections); ++ ++ return (http); ++} ++ ++struct evhttp * ++evhttp_new(struct event_base *base) ++{ ++ struct evhttp *http = evhttp_new_object(); ++ ++ http->base = base; ++ ++ return (http); ++} ++ ++/* ++ * Start a web server on the specified address and port. ++ */ ++ ++struct evhttp * ++evhttp_start(const char *address, u_short port) ++{ ++ struct evhttp *http = evhttp_new_object(); ++ ++ if (evhttp_bind_socket(http, address, port) == -1) { ++ free(http); ++ return (NULL); ++ } ++ ++ return (http); ++} ++ ++void ++evhttp_free(struct evhttp* http) ++{ ++ struct evhttp_cb *http_cb; ++ struct evhttp_connection *evcon; ++ struct evhttp_bound_socket *bound; ++ int fd; ++ ++ /* Remove the accepting part */ ++ while ((bound = TAILQ_FIRST(&http->sockets)) != NULL) { ++ TAILQ_REMOVE(&http->sockets, bound, next); ++ ++ fd = bound->bind_ev.ev_fd; ++ event_del(&bound->bind_ev); ++ EVUTIL_CLOSESOCKET(fd); ++ ++ free(bound); ++ } ++ ++ while ((evcon = TAILQ_FIRST(&http->connections)) != NULL) { ++ /* evhttp_connection_free removes the connection */ ++ evhttp_connection_free(evcon); ++ } ++ ++ while ((http_cb = TAILQ_FIRST(&http->callbacks)) != NULL) { ++ TAILQ_REMOVE(&http->callbacks, http_cb, next); ++ free(http_cb->what); ++ free(http_cb); ++ } ++ ++ free(http); ++} ++ ++void ++evhttp_set_timeout(struct evhttp* http, int timeout_in_secs) ++{ ++ http->timeout = timeout_in_secs; ++} ++ ++void ++evhttp_set_cb(struct evhttp *http, const char *uri, ++ void (*cb)(struct evhttp_request *, void *), void *cbarg) ++{ ++ struct evhttp_cb *http_cb; ++ ++ if ((http_cb = calloc(1, sizeof(struct evhttp_cb))) == NULL) ++ event_err(1, "%s: calloc", __func__); ++ ++ http_cb->what = strdup(uri); ++ http_cb->cb = cb; ++ http_cb->cbarg = cbarg; ++ ++ TAILQ_INSERT_TAIL(&http->callbacks, http_cb, next); ++} ++ ++int ++evhttp_del_cb(struct evhttp *http, const char *uri) ++{ ++ struct evhttp_cb *http_cb; ++ ++ TAILQ_FOREACH(http_cb, &http->callbacks, next) { ++ if (strcmp(http_cb->what, uri) == 0) ++ break; ++ } ++ if (http_cb == NULL) ++ return (-1); ++ ++ TAILQ_REMOVE(&http->callbacks, http_cb, next); ++ free(http_cb->what); ++ free(http_cb); ++ ++ return (0); ++} ++ ++void ++evhttp_set_gencb(struct evhttp *http, ++ void (*cb)(struct evhttp_request *, void *), void *cbarg) ++{ ++ http->gencb = cb; ++ http->gencbarg = cbarg; ++} ++ ++/* ++ * Request related functions ++ */ ++ ++struct evhttp_request * ++evhttp_request_new(void (*cb)(struct evhttp_request *, void *), void *arg) ++{ ++ struct evhttp_request *req = NULL; ++ ++ /* Allocate request structure */ ++ if ((req = calloc(1, sizeof(struct evhttp_request))) == NULL) { ++ event_warn("%s: calloc", __func__); ++ goto error; ++ } ++ ++ req->kind = EVHTTP_RESPONSE; ++ req->input_headers = calloc(1, sizeof(struct evkeyvalq)); ++ if (req->input_headers == NULL) { ++ event_warn("%s: calloc", __func__); ++ goto error; ++ } ++ TAILQ_INIT(req->input_headers); ++ ++ req->output_headers = calloc(1, sizeof(struct evkeyvalq)); ++ if (req->output_headers == NULL) { ++ event_warn("%s: calloc", __func__); ++ goto error; ++ } ++ TAILQ_INIT(req->output_headers); ++ ++ if ((req->input_buffer = evbuffer_new()) == NULL) { ++ event_warn("%s: evbuffer_new", __func__); ++ goto error; ++ } ++ ++ if ((req->output_buffer = evbuffer_new()) == NULL) { ++ event_warn("%s: evbuffer_new", __func__); ++ goto error; ++ } ++ ++ req->cb = cb; ++ req->cb_arg = arg; ++ ++ return (req); ++ ++ error: ++ if (req != NULL) ++ evhttp_request_free(req); ++ return (NULL); ++} ++ ++void ++evhttp_request_free(struct evhttp_request *req) ++{ ++ if (req->remote_host != NULL) ++ free(req->remote_host); ++ if (req->uri != NULL) ++ free(req->uri); ++ if (req->response_code_line != NULL) ++ free(req->response_code_line); ++ ++ evhttp_clear_headers(req->input_headers); ++ free(req->input_headers); ++ ++ evhttp_clear_headers(req->output_headers); ++ free(req->output_headers); ++ ++ if (req->input_buffer != NULL) ++ evbuffer_free(req->input_buffer); ++ ++ if (req->output_buffer != NULL) ++ evbuffer_free(req->output_buffer); ++ ++ free(req); ++} ++ ++void ++evhttp_request_set_chunked_cb(struct evhttp_request *req, ++ void (*cb)(struct evhttp_request *, void *)) ++{ ++ req->chunk_cb = cb; ++} ++ ++/* ++ * Allows for inspection of the request URI ++ */ ++ ++const char * ++evhttp_request_uri(struct evhttp_request *req) { ++ if (req->uri == NULL) ++ event_debug(("%s: request %p has no uri\n", __func__, req)); ++ return (req->uri); ++} ++ ++/* ++ * Takes a file descriptor to read a request from. ++ * The callback is executed once the whole request has been read. ++ */ ++ ++static struct evhttp_connection* ++evhttp_get_request_connection( ++ struct evhttp* http, ++ int fd, struct sockaddr *sa, socklen_t salen) ++{ ++ struct evhttp_connection *evcon; ++ char *hostname = NULL, *portname = NULL; ++ ++ name_from_addr(sa, salen, &hostname, &portname); ++ if (hostname == NULL || portname == NULL) { ++ if (hostname) free(hostname); ++ if (portname) free(portname); ++ return (NULL); ++ } ++ ++ event_debug(("%s: new request from %s:%s on %d\n", ++ __func__, hostname, portname, fd)); ++ ++ /* we need a connection object to put the http request on */ ++ evcon = evhttp_connection_new(hostname, atoi(portname)); ++ free(hostname); ++ free(portname); ++ if (evcon == NULL) ++ return (NULL); ++ ++ /* associate the base if we have one*/ ++ evhttp_connection_set_base(evcon, http->base); ++ ++ evcon->flags |= EVHTTP_CON_INCOMING; ++ evcon->state = EVCON_READING_FIRSTLINE; ++ ++ evcon->fd = fd; ++ ++ return (evcon); ++} ++ ++static int ++evhttp_associate_new_request_with_connection(struct evhttp_connection *evcon) ++{ ++ struct evhttp *http = evcon->http_server; ++ struct evhttp_request *req; ++ if ((req = evhttp_request_new(evhttp_handle_request, http)) == NULL) ++ return (-1); ++ ++ req->evcon = evcon; /* the request ends up owning the connection */ ++ req->flags |= EVHTTP_REQ_OWN_CONNECTION; ++ ++ TAILQ_INSERT_TAIL(&evcon->requests, req, next); ++ ++ req->kind = EVHTTP_REQUEST; ++ ++ if ((req->remote_host = strdup(evcon->address)) == NULL) ++ event_err(1, "%s: strdup", __func__); ++ req->remote_port = evcon->port; ++ ++ evhttp_start_read(evcon); ++ ++ return (0); ++} ++ ++void ++evhttp_get_request(struct evhttp *http, int fd, ++ struct sockaddr *sa, socklen_t salen) ++{ ++ struct evhttp_connection *evcon; ++ ++ evcon = evhttp_get_request_connection(http, fd, sa, salen); ++ if (evcon == NULL) ++ return; ++ ++ /* the timeout can be used by the server to close idle connections */ ++ if (http->timeout != -1) ++ evhttp_connection_set_timeout(evcon, http->timeout); ++ ++ /* ++ * if we want to accept more than one request on a connection, ++ * we need to know which http server it belongs to. ++ */ ++ evcon->http_server = http; ++ TAILQ_INSERT_TAIL(&http->connections, evcon, next); ++ ++ if (evhttp_associate_new_request_with_connection(evcon) == -1) ++ evhttp_connection_free(evcon); ++} ++ ++ ++/* ++ * Network helper functions that we do not want to export to the rest of ++ * the world. ++ */ ++#if 0 /* Unused */ ++static struct addrinfo * ++addr_from_name(char *address) ++{ ++#ifdef HAVE_GETADDRINFO ++ struct addrinfo ai, *aitop; ++ int ai_result; ++ ++ memset(&ai, 0, sizeof(ai)); ++ ai.ai_family = AF_INET; ++ ai.ai_socktype = SOCK_RAW; ++ ai.ai_flags = 0; ++ if ((ai_result = getaddrinfo(address, NULL, &ai, &aitop)) != 0) { ++ if ( ai_result == EAI_SYSTEM ) ++ event_warn("getaddrinfo"); ++ else ++ event_warnx("getaddrinfo: %s", gai_strerror(ai_result)); ++ } ++ ++ return (aitop); ++#else ++ assert(0); ++ return NULL; /* XXXXX Use gethostbyname, if this function is ever used. */ ++#endif ++} ++#endif ++ ++static void ++name_from_addr(struct sockaddr *sa, socklen_t salen, ++ char **phost, char **pport) ++{ ++ char ntop[NI_MAXHOST]; ++ char strport[NI_MAXSERV]; ++ int ni_result; ++ ++#ifdef HAVE_GETNAMEINFO ++ ni_result = getnameinfo(sa, salen, ++ ntop, sizeof(ntop), strport, sizeof(strport), ++ NI_NUMERICHOST|NI_NUMERICSERV); ++ ++ if (ni_result != 0) { ++ if (ni_result == EAI_SYSTEM) ++ event_err(1, "getnameinfo failed"); ++ else ++ event_errx(1, "getnameinfo failed: %s", gai_strerror(ni_result)); ++ return; ++ } ++#else ++ ni_result = fake_getnameinfo(sa, salen, ++ ntop, sizeof(ntop), strport, sizeof(strport), ++ NI_NUMERICHOST|NI_NUMERICSERV); ++ if (ni_result != 0) ++ return; ++#endif ++ *phost = strdup(ntop); ++ *pport = strdup(strport); ++} ++ ++/* Either connect or bind */ ++ ++static int ++bind_socket_ai(struct addrinfo *ai, int reuse) ++{ ++ int fd, on = 1, r; ++ int serrno; ++ ++ /* Create listen socket */ ++ fd = socket(AF_INET, SOCK_STREAM, 0); ++ if (fd == -1) { ++ event_warn("socket"); ++ return (-1); ++ } ++ ++ if (evutil_make_socket_nonblocking(fd) < 0) ++ goto out; ++ ++#ifndef WIN32 ++ if (fcntl(fd, F_SETFD, 1) == -1) { ++ event_warn("fcntl(F_SETFD)"); ++ goto out; ++ } ++#endif ++ ++ setsockopt(fd, SOL_SOCKET, SO_KEEPALIVE, (void *)&on, sizeof(on)); ++ if (reuse) { ++ setsockopt(fd, SOL_SOCKET, SO_REUSEADDR, ++ (void *)&on, sizeof(on)); ++ } ++ ++ r = bind(fd, ai->ai_addr, ai->ai_addrlen); ++ if (r == -1) ++ goto out; ++ ++ return (fd); ++ ++ out: ++ serrno = EVUTIL_SOCKET_ERROR(); ++ EVUTIL_CLOSESOCKET(fd); ++ EVUTIL_SET_SOCKET_ERROR(serrno); ++ return (-1); ++} ++ ++static struct addrinfo * ++make_addrinfo(const char *address, u_short port) ++{ ++ struct addrinfo *aitop = NULL; ++ ++#ifdef HAVE_GETADDRINFO ++ struct addrinfo ai; ++ char strport[NI_MAXSERV]; ++ int ai_result; ++ ++ memset(&ai, 0, sizeof(ai)); ++ ai.ai_family = AF_INET; ++ ai.ai_socktype = SOCK_STREAM; ++ ai.ai_flags = AI_PASSIVE; /* turn NULL host name into INADDR_ANY */ ++ evutil_snprintf(strport, sizeof(strport), "%d", port); ++ if ((ai_result = getaddrinfo(address, strport, &ai, &aitop)) != 0) { ++ if ( ai_result == EAI_SYSTEM ) ++ event_warn("getaddrinfo"); ++ else ++ event_warnx("getaddrinfo: %s", gai_strerror(ai_result)); ++ return (NULL); ++ } ++#else ++ static int cur; ++ static struct addrinfo ai[2]; /* We will be returning the address of some of this memory so it has to last even after this call. */ ++ if (++cur == 2) cur = 0; /* allow calling this function twice */ ++ ++ if (fake_getaddrinfo(address, &ai[cur]) < 0) { ++ event_warn("fake_getaddrinfo"); ++ return (NULL); ++ } ++ aitop = &ai[cur]; ++ ((struct sockaddr_in *) aitop->ai_addr)->sin_port = htons(port); ++#endif ++ ++ return (aitop); ++} ++ ++static int ++bind_socket(const char *address, u_short port, int reuse) ++{ ++ int fd; ++ struct addrinfo *aitop = make_addrinfo(address, port); ++ ++ if (aitop == NULL) ++ return (-1); ++ ++ fd = bind_socket_ai(aitop, reuse); ++ ++#ifdef HAVE_GETADDRINFO ++ freeaddrinfo(aitop); ++#else ++ fake_freeaddrinfo(aitop); ++#endif ++ ++ return (fd); ++} ++ ++static int ++socket_connect(int fd, const char *address, unsigned short port) ++{ ++ struct addrinfo *ai = make_addrinfo(address, port); ++ int res = -1; ++ ++ if (ai == NULL) { ++ event_debug(("%s: make_addrinfo: \"%s:%d\"", ++ __func__, address, port)); ++ return (-1); ++ } ++ ++ if (connect(fd, ai->ai_addr, ai->ai_addrlen) == -1) { ++#ifdef WIN32 ++ int tmp_error = WSAGetLastError(); ++ if (tmp_error != WSAEWOULDBLOCK && tmp_error != WSAEINVAL && ++ tmp_error != WSAEINPROGRESS) { ++ goto out; ++ } ++#else ++ if (errno != EINPROGRESS) { ++ goto out; ++ } ++#endif ++ } ++ ++ /* everything is fine */ ++ res = 0; ++ ++out: ++#ifdef HAVE_GETADDRINFO ++ freeaddrinfo(ai); ++#else ++ fake_freeaddrinfo(ai); ++#endif ++ ++ return (res); ++} +diff --git a/libevent/install-sh b/libevent/install-sh +new file mode 100644 +index 0000000..1a83534 +--- /dev/null ++++ b/libevent/install-sh +@@ -0,0 +1,323 @@ ++#!/bin/sh ++# install - install a program, script, or datafile ++ ++scriptversion=2005-02-02.21 ++ ++# This originates from X11R5 (mit/util/scripts/install.sh), which was ++# later released in X11R6 (xc/config/util/install.sh) with the ++# following copyright and license. ++# ++# Copyright (C) 1994 X Consortium ++# ++# Permission is hereby granted, free of charge, to any person obtaining a copy ++# of this software and associated documentation files (the "Software"), to ++# deal in the Software without restriction, including without limitation the ++# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or ++# sell copies of the Software, and to permit persons to whom the Software is ++# furnished to do so, subject to the following conditions: ++# ++# The above copyright notice and this permission notice shall be included in ++# all copies or substantial portions of the Software. ++# ++# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR ++# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, ++# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE ++# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN ++# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- ++# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. ++# ++# Except as contained in this notice, the name of the X Consortium shall not ++# be used in advertising or otherwise to promote the sale, use or other deal- ++# ings in this Software without prior written authorization from the X Consor- ++# tium. ++# ++# ++# FSF changes to this file are in the public domain. ++# ++# Calling this script install-sh is preferred over install.sh, to prevent ++# `make' implicit rules from creating a file called install from it ++# when there is no Makefile. ++# ++# This script is compatible with the BSD install script, but was written ++# from scratch. It can only install one file at a time, a restriction ++# shared with many OS's install programs. ++ ++# set DOITPROG to echo to test this script ++ ++# Don't use :- since 4.3BSD and earlier shells don't like it. ++doit="${DOITPROG-}" ++ ++# put in absolute paths if you don't have them in your path; or use env. vars. ++ ++mvprog="${MVPROG-mv}" ++cpprog="${CPPROG-cp}" ++chmodprog="${CHMODPROG-chmod}" ++chownprog="${CHOWNPROG-chown}" ++chgrpprog="${CHGRPPROG-chgrp}" ++stripprog="${STRIPPROG-strip}" ++rmprog="${RMPROG-rm}" ++mkdirprog="${MKDIRPROG-mkdir}" ++ ++chmodcmd="$chmodprog 0755" ++chowncmd= ++chgrpcmd= ++stripcmd= ++rmcmd="$rmprog -f" ++mvcmd="$mvprog" ++src= ++dst= ++dir_arg= ++dstarg= ++no_target_directory= ++ ++usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE ++ or: $0 [OPTION]... SRCFILES... DIRECTORY ++ or: $0 [OPTION]... -t DIRECTORY SRCFILES... ++ or: $0 [OPTION]... -d DIRECTORIES... ++ ++In the 1st form, copy SRCFILE to DSTFILE. ++In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. ++In the 4th, create DIRECTORIES. ++ ++Options: ++-c (ignored) ++-d create directories instead of installing files. ++-g GROUP $chgrpprog installed files to GROUP. ++-m MODE $chmodprog installed files to MODE. ++-o USER $chownprog installed files to USER. ++-s $stripprog installed files. ++-t DIRECTORY install into DIRECTORY. ++-T report an error if DSTFILE is a directory. ++--help display this help and exit. ++--version display version info and exit. ++ ++Environment variables override the default commands: ++ CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG ++" ++ ++while test -n "$1"; do ++ case $1 in ++ -c) shift ++ continue;; ++ ++ -d) dir_arg=true ++ shift ++ continue;; ++ ++ -g) chgrpcmd="$chgrpprog $2" ++ shift ++ shift ++ continue;; ++ ++ --help) echo "$usage"; exit $?;; ++ ++ -m) chmodcmd="$chmodprog $2" ++ shift ++ shift ++ continue;; ++ ++ -o) chowncmd="$chownprog $2" ++ shift ++ shift ++ continue;; ++ ++ -s) stripcmd=$stripprog ++ shift ++ continue;; ++ ++ -t) dstarg=$2 ++ shift ++ shift ++ continue;; ++ ++ -T) no_target_directory=true ++ shift ++ continue;; ++ ++ --version) echo "$0 $scriptversion"; exit $?;; ++ ++ *) # When -d is used, all remaining arguments are directories to create. ++ # When -t is used, the destination is already specified. ++ test -n "$dir_arg$dstarg" && break ++ # Otherwise, the last argument is the destination. Remove it from $@. ++ for arg ++ do ++ if test -n "$dstarg"; then ++ # $@ is not empty: it contains at least $arg. ++ set fnord "$@" "$dstarg" ++ shift # fnord ++ fi ++ shift # arg ++ dstarg=$arg ++ done ++ break;; ++ esac ++done ++ ++if test -z "$1"; then ++ if test -z "$dir_arg"; then ++ echo "$0: no input file specified." >&2 ++ exit 1 ++ fi ++ # It's OK to call `install-sh -d' without argument. ++ # This can happen when creating conditional directories. ++ exit 0 ++fi ++ ++for src ++do ++ # Protect names starting with `-'. ++ case $src in ++ -*) src=./$src ;; ++ esac ++ ++ if test -n "$dir_arg"; then ++ dst=$src ++ src= ++ ++ if test -d "$dst"; then ++ mkdircmd=: ++ chmodcmd= ++ else ++ mkdircmd=$mkdirprog ++ fi ++ else ++ # Waiting for this to be detected by the "$cpprog $src $dsttmp" command ++ # might cause directories to be created, which would be especially bad ++ # if $src (and thus $dsttmp) contains '*'. ++ if test ! -f "$src" && test ! -d "$src"; then ++ echo "$0: $src does not exist." >&2 ++ exit 1 ++ fi ++ ++ if test -z "$dstarg"; then ++ echo "$0: no destination specified." >&2 ++ exit 1 ++ fi ++ ++ dst=$dstarg ++ # Protect names starting with `-'. ++ case $dst in ++ -*) dst=./$dst ;; ++ esac ++ ++ # If destination is a directory, append the input filename; won't work ++ # if double slashes aren't ignored. ++ if test -d "$dst"; then ++ if test -n "$no_target_directory"; then ++ echo "$0: $dstarg: Is a directory" >&2 ++ exit 1 ++ fi ++ dst=$dst/`basename "$src"` ++ fi ++ fi ++ ++ # This sed command emulates the dirname command. ++ dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'` ++ ++ # Make sure that the destination directory exists. ++ ++ # Skip lots of stat calls in the usual case. ++ if test ! -d "$dstdir"; then ++ defaultIFS=' ++ ' ++ IFS="${IFS-$defaultIFS}" ++ ++ oIFS=$IFS ++ # Some sh's can't handle IFS=/ for some reason. ++ IFS='%' ++ set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'` ++ shift ++ IFS=$oIFS ++ ++ pathcomp= ++ ++ while test $# -ne 0 ; do ++ pathcomp=$pathcomp$1 ++ shift ++ if test ! -d "$pathcomp"; then ++ $mkdirprog "$pathcomp" ++ # mkdir can fail with a `File exist' error in case several ++ # install-sh are creating the directory concurrently. This ++ # is OK. ++ test -d "$pathcomp" || exit ++ fi ++ pathcomp=$pathcomp/ ++ done ++ fi ++ ++ if test -n "$dir_arg"; then ++ $doit $mkdircmd "$dst" \ ++ && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \ ++ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \ ++ && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \ ++ && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; } ++ ++ else ++ dstfile=`basename "$dst"` ++ ++ # Make a couple of temp file names in the proper directory. ++ dsttmp=$dstdir/_inst.$$_ ++ rmtmp=$dstdir/_rm.$$_ ++ ++ # Trap to clean up those temp files at exit. ++ trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 ++ trap '(exit $?); exit' 1 2 13 15 ++ ++ # Copy the file name to the temp name. ++ $doit $cpprog "$src" "$dsttmp" && ++ ++ # and set any options; do chmod last to preserve setuid bits. ++ # ++ # If any of these fail, we abort the whole thing. If we want to ++ # ignore errors from any of these, just make sure not to ignore ++ # errors from the above "$doit $cpprog $src $dsttmp" command. ++ # ++ { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \ ++ && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \ ++ && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \ ++ && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } && ++ ++ # Now rename the file to the real destination. ++ { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \ ++ || { ++ # The rename failed, perhaps because mv can't rename something else ++ # to itself, or perhaps because mv is so ancient that it does not ++ # support -f. ++ ++ # Now remove or move aside any old file at destination location. ++ # We try this two ways since rm can't unlink itself on some ++ # systems and the destination file might be busy for other ++ # reasons. In this case, the final cleanup might fail but the new ++ # file should still install successfully. ++ { ++ if test -f "$dstdir/$dstfile"; then ++ $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \ ++ || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \ ++ || { ++ echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2 ++ (exit 1); exit 1 ++ } ++ else ++ : ++ fi ++ } && ++ ++ # Now rename the file to the real destination. ++ $doit $mvcmd "$dsttmp" "$dstdir/$dstfile" ++ } ++ } ++ fi || { (exit 1); exit 1; } ++done ++ ++# The final little trick to "correctly" pass the exit status to the exit trap. ++{ ++ (exit 0); exit 0 ++} ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-end: "$" ++# End: +diff --git a/libevent/kqueue.c b/libevent/kqueue.c +new file mode 100644 +index 0000000..38a1819 +--- /dev/null ++++ b/libevent/kqueue.c +@@ -0,0 +1,450 @@ ++/* $OpenBSD: kqueue.c,v 1.5 2002/07/10 14:41:31 art Exp $ */ ++ ++/* ++ * Copyright 2000-2002 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#ifdef HAVE_SYS_TIME_H ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef HAVE_INTTYPES_H ++#include ++#endif ++ ++/* Some platforms apparently define the udata field of struct kevent as ++ * intptr_t, whereas others define it as void*. There doesn't seem to be an ++ * easy way to tell them apart via autoconf, so we need to use OS macros. */ ++#if defined(HAVE_INTTYPES_H) && !defined(__OpenBSD__) && !defined(__FreeBSD__) && !defined(__darwin__) && !defined(__APPLE__) ++#define PTR_TO_UDATA(x) ((intptr_t)(x)) ++#else ++#define PTR_TO_UDATA(x) (x) ++#endif ++ ++#include "event.h" ++#include "event-internal.h" ++#include "log.h" ++#include "event-internal.h" ++ ++#define EVLIST_X_KQINKERNEL 0x1000 ++ ++#define NEVENT 64 ++ ++struct kqop { ++ struct kevent *changes; ++ int nchanges; ++ struct kevent *events; ++ struct event_list evsigevents[NSIG]; ++ int nevents; ++ int kq; ++ pid_t pid; ++}; ++ ++static void *kq_init (struct event_base *); ++static int kq_add (void *, struct event *); ++static int kq_del (void *, struct event *); ++static int kq_dispatch (struct event_base *, void *, struct timeval *); ++static int kq_insert (struct kqop *, struct kevent *); ++static void kq_dealloc (struct event_base *, void *); ++ ++const struct eventop kqops = { ++ "kqueue", ++ kq_init, ++ kq_add, ++ kq_del, ++ kq_dispatch, ++ kq_dealloc, ++ 1 /* need reinit */ ++}; ++ ++static void * ++kq_init(struct event_base *base) ++{ ++ int i, kq; ++ struct kqop *kqueueop; ++ ++ /* Disable kqueue when this environment variable is set */ ++ if (getenv("EVENT_NOKQUEUE")) ++ return (NULL); ++ ++ if (!(kqueueop = calloc(1, sizeof(struct kqop)))) ++ return (NULL); ++ ++ /* Initalize the kernel queue */ ++ ++ if ((kq = kqueue()) == -1) { ++ event_warn("kqueue"); ++ free (kqueueop); ++ return (NULL); ++ } ++ ++ kqueueop->kq = kq; ++ ++ kqueueop->pid = getpid(); ++ ++ /* Initalize fields */ ++ kqueueop->changes = malloc(NEVENT * sizeof(struct kevent)); ++ if (kqueueop->changes == NULL) { ++ free (kqueueop); ++ return (NULL); ++ } ++ kqueueop->events = malloc(NEVENT * sizeof(struct kevent)); ++ if (kqueueop->events == NULL) { ++ free (kqueueop->changes); ++ free (kqueueop); ++ return (NULL); ++ } ++ kqueueop->nevents = NEVENT; ++ ++ /* we need to keep track of multiple events per signal */ ++ for (i = 0; i < NSIG; ++i) { ++ TAILQ_INIT(&kqueueop->evsigevents[i]); ++ } ++ ++ /* Check for Mac OS X kqueue bug. */ ++ kqueueop->changes[0].ident = -1; ++ kqueueop->changes[0].filter = EVFILT_READ; ++ kqueueop->changes[0].flags = EV_ADD; ++ /* ++ * If kqueue works, then kevent will succeed, and it will ++ * stick an error in events[0]. If kqueue is broken, then ++ * kevent will fail. ++ */ ++ if (kevent(kq, ++ kqueueop->changes, 1, kqueueop->events, NEVENT, NULL) != 1 || ++ kqueueop->events[0].ident != -1 || ++ kqueueop->events[0].flags != EV_ERROR) { ++ event_warn("%s: detected broken kqueue; not using.", __func__); ++ free(kqueueop->changes); ++ free(kqueueop->events); ++ free(kqueueop); ++ close(kq); ++ return (NULL); ++ } ++ ++ return (kqueueop); ++} ++ ++static int ++kq_insert(struct kqop *kqop, struct kevent *kev) ++{ ++ int nevents = kqop->nevents; ++ ++ if (kqop->nchanges == nevents) { ++ struct kevent *newchange; ++ struct kevent *newresult; ++ ++ nevents *= 2; ++ ++ newchange = realloc(kqop->changes, ++ nevents * sizeof(struct kevent)); ++ if (newchange == NULL) { ++ event_warn("%s: malloc", __func__); ++ return (-1); ++ } ++ kqop->changes = newchange; ++ ++ newresult = realloc(kqop->events, ++ nevents * sizeof(struct kevent)); ++ ++ /* ++ * If we fail, we don't have to worry about freeing, ++ * the next realloc will pick it up. ++ */ ++ if (newresult == NULL) { ++ event_warn("%s: malloc", __func__); ++ return (-1); ++ } ++ kqop->events = newresult; ++ ++ kqop->nevents = nevents; ++ } ++ ++ memcpy(&kqop->changes[kqop->nchanges++], kev, sizeof(struct kevent)); ++ ++ event_debug(("%s: fd %d %s%s", ++ __func__, (int)kev->ident, ++ kev->filter == EVFILT_READ ? "EVFILT_READ" : "EVFILT_WRITE", ++ kev->flags == EV_DELETE ? " (del)" : "")); ++ ++ return (0); ++} ++ ++static void ++kq_sighandler(int sig) ++{ ++ /* Do nothing here */ ++} ++ ++static int ++kq_dispatch(struct event_base *base, void *arg, struct timeval *tv) ++{ ++ struct kqop *kqop = arg; ++ struct kevent *changes = kqop->changes; ++ struct kevent *events = kqop->events; ++ struct event *ev; ++ struct timespec ts, *ts_p = NULL; ++ int i, res; ++ ++ if (tv != NULL) { ++ TIMEVAL_TO_TIMESPEC(tv, &ts); ++ ts_p = &ts; ++ } ++ ++ res = kevent(kqop->kq, changes, kqop->nchanges, ++ events, kqop->nevents, ts_p); ++ kqop->nchanges = 0; ++ if (res == -1) { ++ if (errno != EINTR) { ++ event_warn("kevent"); ++ return (-1); ++ } ++ ++ return (0); ++ } ++ ++ event_debug(("%s: kevent reports %d", __func__, res)); ++ ++ for (i = 0; i < res; i++) { ++ int which = 0; ++ ++ if (events[i].flags & EV_ERROR) { ++ /* ++ * Error messages that can happen, when a delete fails. ++ * EBADF happens when the file discriptor has been ++ * closed, ++ * ENOENT when the file discriptor was closed and ++ * then reopened. ++ * EINVAL for some reasons not understood; EINVAL ++ * should not be returned ever; but FreeBSD does :-\ ++ * An error is also indicated when a callback deletes ++ * an event we are still processing. In that case ++ * the data field is set to ENOENT. ++ */ ++ if (events[i].data == EBADF || ++ events[i].data == EINVAL || ++ events[i].data == ENOENT) ++ continue; ++ errno = events[i].data; ++ return (-1); ++ } ++ ++ if (events[i].filter == EVFILT_READ) { ++ which |= EV_READ; ++ } else if (events[i].filter == EVFILT_WRITE) { ++ which |= EV_WRITE; ++ } else if (events[i].filter == EVFILT_SIGNAL) { ++ which |= EV_SIGNAL; ++ } ++ ++ if (!which) ++ continue; ++ ++ if (events[i].filter == EVFILT_SIGNAL) { ++ struct event_list *head = ++ (struct event_list *)events[i].udata; ++ TAILQ_FOREACH(ev, head, ev_signal_next) { ++ event_active(ev, which, events[i].data); ++ } ++ } else { ++ ev = (struct event *)events[i].udata; ++ ++ if (!(ev->ev_events & EV_PERSIST)) ++ ev->ev_flags &= ~EVLIST_X_KQINKERNEL; ++ ++ event_active(ev, which, 1); ++ } ++ } ++ ++ return (0); ++} ++ ++ ++static int ++kq_add(void *arg, struct event *ev) ++{ ++ struct kqop *kqop = arg; ++ struct kevent kev; ++ ++ if (ev->ev_events & EV_SIGNAL) { ++ int nsignal = EVENT_SIGNAL(ev); ++ ++ assert(nsignal >= 0 && nsignal < NSIG); ++ if (TAILQ_EMPTY(&kqop->evsigevents[nsignal])) { ++ struct timespec timeout = { 0, 0 }; ++ ++ memset(&kev, 0, sizeof(kev)); ++ kev.ident = nsignal; ++ kev.filter = EVFILT_SIGNAL; ++ kev.flags = EV_ADD; ++ kev.udata = PTR_TO_UDATA(&kqop->evsigevents[nsignal]); ++ ++ /* Be ready for the signal if it is sent any ++ * time between now and the next call to ++ * kq_dispatch. */ ++ if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1) ++ return (-1); ++ ++ if (_evsignal_set_handler(ev->ev_base, nsignal, ++ kq_sighandler) == -1) ++ return (-1); ++ } ++ ++ TAILQ_INSERT_TAIL(&kqop->evsigevents[nsignal], ev, ++ ev_signal_next); ++ ev->ev_flags |= EVLIST_X_KQINKERNEL; ++ return (0); ++ } ++ ++ if (ev->ev_events & EV_READ) { ++ memset(&kev, 0, sizeof(kev)); ++ kev.ident = ev->ev_fd; ++ kev.filter = EVFILT_READ; ++#ifdef NOTE_EOF ++ /* Make it behave like select() and poll() */ ++ kev.fflags = NOTE_EOF; ++#endif ++ kev.flags = EV_ADD; ++ if (!(ev->ev_events & EV_PERSIST)) ++ kev.flags |= EV_ONESHOT; ++ kev.udata = PTR_TO_UDATA(ev); ++ ++ if (kq_insert(kqop, &kev) == -1) ++ return (-1); ++ ++ ev->ev_flags |= EVLIST_X_KQINKERNEL; ++ } ++ ++ if (ev->ev_events & EV_WRITE) { ++ memset(&kev, 0, sizeof(kev)); ++ kev.ident = ev->ev_fd; ++ kev.filter = EVFILT_WRITE; ++ kev.flags = EV_ADD; ++ if (!(ev->ev_events & EV_PERSIST)) ++ kev.flags |= EV_ONESHOT; ++ kev.udata = PTR_TO_UDATA(ev); ++ ++ if (kq_insert(kqop, &kev) == -1) ++ return (-1); ++ ++ ev->ev_flags |= EVLIST_X_KQINKERNEL; ++ } ++ ++ return (0); ++} ++ ++static int ++kq_del(void *arg, struct event *ev) ++{ ++ struct kqop *kqop = arg; ++ struct kevent kev; ++ ++ if (!(ev->ev_flags & EVLIST_X_KQINKERNEL)) ++ return (0); ++ ++ if (ev->ev_events & EV_SIGNAL) { ++ int nsignal = EVENT_SIGNAL(ev); ++ struct timespec timeout = { 0, 0 }; ++ ++ assert(nsignal >= 0 && nsignal < NSIG); ++ TAILQ_REMOVE(&kqop->evsigevents[nsignal], ev, ev_signal_next); ++ if (TAILQ_EMPTY(&kqop->evsigevents[nsignal])) { ++ memset(&kev, 0, sizeof(kev)); ++ kev.ident = nsignal; ++ kev.filter = EVFILT_SIGNAL; ++ kev.flags = EV_DELETE; ++ ++ /* Because we insert signal events ++ * immediately, we need to delete them ++ * immediately, too */ ++ if (kevent(kqop->kq, &kev, 1, NULL, 0, &timeout) == -1) ++ return (-1); ++ ++ if (_evsignal_restore_handler(ev->ev_base, ++ nsignal) == -1) ++ return (-1); ++ } ++ ++ ev->ev_flags &= ~EVLIST_X_KQINKERNEL; ++ return (0); ++ } ++ ++ if (ev->ev_events & EV_READ) { ++ memset(&kev, 0, sizeof(kev)); ++ kev.ident = ev->ev_fd; ++ kev.filter = EVFILT_READ; ++ kev.flags = EV_DELETE; ++ ++ if (kq_insert(kqop, &kev) == -1) ++ return (-1); ++ ++ ev->ev_flags &= ~EVLIST_X_KQINKERNEL; ++ } ++ ++ if (ev->ev_events & EV_WRITE) { ++ memset(&kev, 0, sizeof(kev)); ++ kev.ident = ev->ev_fd; ++ kev.filter = EVFILT_WRITE; ++ kev.flags = EV_DELETE; ++ ++ if (kq_insert(kqop, &kev) == -1) ++ return (-1); ++ ++ ev->ev_flags &= ~EVLIST_X_KQINKERNEL; ++ } ++ ++ return (0); ++} ++ ++static void ++kq_dealloc(struct event_base *base, void *arg) ++{ ++ struct kqop *kqop = arg; ++ ++ if (kqop->changes) ++ free(kqop->changes); ++ if (kqop->events) ++ free(kqop->events); ++ ++ if (kqop->kq >= 0 && kqop->pid == getpid()) ++ close(kqop->kq); ++ memset(kqop, 0, sizeof(struct kqop)); ++ free(kqop); ++} +diff --git a/libevent/log.c b/libevent/log.c +new file mode 100644 +index 0000000..b62a619 +--- /dev/null ++++ b/libevent/log.c +@@ -0,0 +1,187 @@ ++/* $OpenBSD: err.c,v 1.2 2002/06/25 15:50:15 mickey Exp $ */ ++ ++/* ++ * log.c ++ * ++ * Based on err.c, which was adapted from OpenBSD libc *err* *warn* code. ++ * ++ * Copyright (c) 2005 Nick Mathewson ++ * ++ * Copyright (c) 2000 Dug Song ++ * ++ * Copyright (c) 1993 ++ * The Regents of the University of California. All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. Neither the name of the University nor the names of its contributors ++ * may be used to endorse or promote products derived from this software ++ * without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ++ * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ++ * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE ++ * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL ++ * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS ++ * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) ++ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT ++ * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY ++ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF ++ * SUCH DAMAGE. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#ifdef WIN32 ++#define WIN32_LEAN_AND_MEAN ++#include ++#undef WIN32_LEAN_AND_MEAN ++#endif ++#include ++#ifdef HAVE_SYS_TIME_H ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include "event.h" ++ ++#include "log.h" ++#include "evutil.h" ++ ++static void _warn_helper(int severity, int log_errno, const char *fmt, ++ va_list ap); ++static void event_log(int severity, const char *msg); ++ ++void ++event_err(int eval, const char *fmt, ...) ++{ ++ va_list ap; ++ ++ va_start(ap, fmt); ++ _warn_helper(_EVENT_LOG_ERR, errno, fmt, ap); ++ va_end(ap); ++ exit(eval); ++} ++ ++void ++event_warn(const char *fmt, ...) ++{ ++ va_list ap; ++ ++ va_start(ap, fmt); ++ _warn_helper(_EVENT_LOG_WARN, errno, fmt, ap); ++ va_end(ap); ++} ++ ++void ++event_errx(int eval, const char *fmt, ...) ++{ ++ va_list ap; ++ ++ va_start(ap, fmt); ++ _warn_helper(_EVENT_LOG_ERR, -1, fmt, ap); ++ va_end(ap); ++ exit(eval); ++} ++ ++void ++event_warnx(const char *fmt, ...) ++{ ++ va_list ap; ++ ++ va_start(ap, fmt); ++ _warn_helper(_EVENT_LOG_WARN, -1, fmt, ap); ++ va_end(ap); ++} ++ ++void ++event_msgx(const char *fmt, ...) ++{ ++ va_list ap; ++ ++ va_start(ap, fmt); ++ _warn_helper(_EVENT_LOG_MSG, -1, fmt, ap); ++ va_end(ap); ++} ++ ++void ++_event_debugx(const char *fmt, ...) ++{ ++ va_list ap; ++ ++ va_start(ap, fmt); ++ _warn_helper(_EVENT_LOG_DEBUG, -1, fmt, ap); ++ va_end(ap); ++} ++ ++static void ++_warn_helper(int severity, int log_errno, const char *fmt, va_list ap) ++{ ++ char buf[1024]; ++ size_t len; ++ ++ if (fmt != NULL) ++ evutil_vsnprintf(buf, sizeof(buf), fmt, ap); ++ else ++ buf[0] = '\0'; ++ ++ if (log_errno >= 0) { ++ len = strlen(buf); ++ if (len < sizeof(buf) - 3) { ++ evutil_snprintf(buf + len, sizeof(buf) - len, ": %s", ++ strerror(log_errno)); ++ } ++ } ++ ++ event_log(severity, buf); ++} ++ ++static event_log_cb log_fn = NULL; ++ ++void ++event_set_log_callback(event_log_cb cb) ++{ ++ log_fn = cb; ++} ++ ++static void ++event_log(int severity, const char *msg) ++{ ++ if (log_fn) ++ log_fn(severity, msg); ++ else { ++ const char *severity_str; ++ switch (severity) { ++ case _EVENT_LOG_DEBUG: ++ severity_str = "debug"; ++ break; ++ case _EVENT_LOG_MSG: ++ severity_str = "msg"; ++ break; ++ case _EVENT_LOG_WARN: ++ severity_str = "warn"; ++ break; ++ case _EVENT_LOG_ERR: ++ severity_str = "err"; ++ break; ++ default: ++ severity_str = "???"; ++ break; ++ } ++ (void)fprintf(stderr, "[%s] %s\n", severity_str, msg); ++ } ++} +diff --git a/libevent/log.h b/libevent/log.h +new file mode 100644 +index 0000000..7bc6632 +--- /dev/null ++++ b/libevent/log.h +@@ -0,0 +1,51 @@ ++/* ++ * Copyright (c) 2000-2004 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifndef _LOG_H_ ++#define _LOG_H_ ++ ++#ifdef __GNUC__ ++#define EV_CHECK_FMT(a,b) __attribute__((format(printf, a, b))) ++#else ++#define EV_CHECK_FMT(a,b) ++#endif ++ ++void event_err(int eval, const char *fmt, ...) EV_CHECK_FMT(2,3); ++void event_warn(const char *fmt, ...) EV_CHECK_FMT(1,2); ++void event_errx(int eval, const char *fmt, ...) EV_CHECK_FMT(2,3); ++void event_warnx(const char *fmt, ...) EV_CHECK_FMT(1,2); ++void event_msgx(const char *fmt, ...) EV_CHECK_FMT(1,2); ++void _event_debugx(const char *fmt, ...) EV_CHECK_FMT(1,2); ++ ++#ifdef USE_DEBUG ++#define event_debug(x) _event_debugx x ++#else ++#define event_debug(x) do {;} while (0) ++#endif ++ ++#undef EV_CHECK_FMT ++ ++#endif +diff --git a/libevent/min_heap.h b/libevent/min_heap.h +new file mode 100644 +index 0000000..d47e563 +--- /dev/null ++++ b/libevent/min_heap.h +@@ -0,0 +1,139 @@ ++/* ++ * Copyright (c) 2006 Maxim Yegorushkin ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifndef _MIN_HEAP_H_ ++#define _MIN_HEAP_H_ ++ ++#include "event.h" ++#include "evutil.h" ++ ++typedef struct min_heap ++{ ++ struct event** p; ++ unsigned n, a; ++} min_heap_t; ++ ++static inline void min_heap_ctor(min_heap_t* s); ++static inline void min_heap_dtor(min_heap_t* s); ++static inline void min_heap_elem_init(struct event* e); ++static inline int min_heap_elem_greater(struct event *a, struct event *b); ++static inline int min_heap_empty(min_heap_t* s); ++static inline unsigned min_heap_size(min_heap_t* s); ++static inline struct event* min_heap_top(min_heap_t* s); ++static inline int min_heap_reserve(min_heap_t* s, unsigned n); ++static inline int min_heap_push(min_heap_t* s, struct event* e); ++static inline struct event* min_heap_pop(min_heap_t* s); ++static inline int min_heap_erase(min_heap_t* s, struct event* e); ++static inline void min_heap_shift_up_(min_heap_t* s, unsigned hole_index, struct event* e); ++static inline void min_heap_shift_down_(min_heap_t* s, unsigned hole_index, struct event* e); ++ ++int min_heap_elem_greater(struct event *a, struct event *b) ++{ ++ return evutil_timercmp(&a->ev_timeout, &b->ev_timeout, >); ++} ++ ++void min_heap_ctor(min_heap_t* s) { s->p = 0; s->n = 0; s->a = 0; } ++void min_heap_dtor(min_heap_t* s) { free(s->p); } ++void min_heap_elem_init(struct event* e) { e->min_heap_idx = -1; } ++int min_heap_empty(min_heap_t* s) { return 0u == s->n; } ++unsigned min_heap_size(min_heap_t* s) { return s->n; } ++struct event* min_heap_top(min_heap_t* s) { return s->n ? *s->p : 0; } ++ ++int min_heap_push(min_heap_t* s, struct event* e) ++{ ++ if(min_heap_reserve(s, s->n + 1)) ++ return -1; ++ min_heap_shift_up_(s, s->n++, e); ++ return 0; ++} ++ ++struct event* min_heap_pop(min_heap_t* s) ++{ ++ if(s->n) ++ { ++ struct event* e = *s->p; ++ min_heap_shift_down_(s, 0u, s->p[--s->n]); ++ e->min_heap_idx = -1; ++ return e; ++ } ++ return 0; ++} ++ ++int min_heap_erase(min_heap_t* s, struct event* e) ++{ ++ if(((unsigned int)-1) != e->min_heap_idx) ++ { ++ min_heap_shift_down_(s, e->min_heap_idx, s->p[--s->n]); ++ e->min_heap_idx = -1; ++ return 0; ++ } ++ return -1; ++} ++ ++int min_heap_reserve(min_heap_t* s, unsigned n) ++{ ++ if(s->a < n) ++ { ++ struct event** p; ++ unsigned a = s->a ? s->a * 2 : 8; ++ if(a < n) ++ a = n; ++ if(!(p = (struct event**)realloc(s->p, a * sizeof *p))) ++ return -1; ++ s->p = p; ++ s->a = a; ++ } ++ return 0; ++} ++ ++void min_heap_shift_up_(min_heap_t* s, unsigned hole_index, struct event* e) ++{ ++ unsigned parent = (hole_index - 1) / 2; ++ while(hole_index && min_heap_elem_greater(s->p[parent], e)) ++ { ++ (s->p[hole_index] = s->p[parent])->min_heap_idx = hole_index; ++ hole_index = parent; ++ parent = (hole_index - 1) / 2; ++ } ++ (s->p[hole_index] = e)->min_heap_idx = hole_index; ++} ++ ++void min_heap_shift_down_(min_heap_t* s, unsigned hole_index, struct event* e) ++{ ++ unsigned min_child = 2 * (hole_index + 1); ++ while(min_child <= s->n) ++ { ++ min_child -= min_child == s->n || min_heap_elem_greater(s->p[min_child], s->p[min_child - 1]); ++ if(!(min_heap_elem_greater(e, s->p[min_child]))) ++ break; ++ (s->p[hole_index] = s->p[min_child])->min_heap_idx = hole_index; ++ hole_index = min_child; ++ min_child = 2 * (hole_index + 1); ++ } ++ min_heap_shift_up_(s, hole_index, e); ++} ++ ++#endif /* _MIN_HEAP_H_ */ +diff --git a/libevent/missing b/libevent/missing +new file mode 100644 +index 0000000..09edd88 +--- /dev/null ++++ b/libevent/missing +@@ -0,0 +1,357 @@ ++#! /bin/sh ++# Common stub for a few missing GNU programs while installing. ++ ++scriptversion=2005-02-08.22 ++ ++# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005 ++# Free Software Foundation, Inc. ++# Originally by Fran,cois Pinard , 1996. ++ ++# This program is free software; you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation; either version 2, or (at your option) ++# any later version. ++ ++# This program is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++ ++# You should have received a copy of the GNU General Public License ++# along with this program; if not, write to the Free Software ++# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA ++# 02111-1307, USA. ++ ++# As a special exception 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. ++ ++if test $# -eq 0; then ++ echo 1>&2 "Try \`$0 --help' for more information" ++ exit 1 ++fi ++ ++run=: ++ ++# In the cases where this matters, `missing' is being run in the ++# srcdir already. ++if test -f configure.ac; then ++ configure_ac=configure.ac ++else ++ configure_ac=configure.in ++fi ++ ++msg="missing on your system" ++ ++case "$1" in ++--run) ++ # Try to run requested program, and just exit if it succeeds. ++ run= ++ shift ++ "$@" && exit 0 ++ # Exit code 63 means version mismatch. This often happens ++ # when the user try to use an ancient version of a tool on ++ # a file that requires a minimum version. In this case we ++ # we should proceed has if the program had been absent, or ++ # if --run hadn't been passed. ++ if test $? = 63; then ++ run=: ++ msg="probably too old" ++ fi ++ ;; ++ ++ -h|--h|--he|--hel|--help) ++ echo "\ ++$0 [OPTION]... PROGRAM [ARGUMENT]... ++ ++Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an ++error status if there is no known handling for PROGRAM. ++ ++Options: ++ -h, --help display this help and exit ++ -v, --version output version information and exit ++ --run try to run the given command, and emulate it if it fails ++ ++Supported PROGRAM values: ++ aclocal touch file \`aclocal.m4' ++ autoconf touch file \`configure' ++ autoheader touch file \`config.h.in' ++ automake touch all \`Makefile.in' files ++ bison create \`y.tab.[ch]', if possible, from existing .[ch] ++ flex create \`lex.yy.c', if possible, from existing .c ++ help2man touch the output file ++ lex create \`lex.yy.c', if possible, from existing .c ++ makeinfo touch the output file ++ tar try tar, gnutar, gtar, then tar without non-portable flags ++ yacc create \`y.tab.[ch]', if possible, from existing .[ch] ++ ++Send bug reports to ." ++ exit $? ++ ;; ++ ++ -v|--v|--ve|--ver|--vers|--versi|--versio|--version) ++ echo "missing $scriptversion (GNU Automake)" ++ exit $? ++ ;; ++ ++ -*) ++ echo 1>&2 "$0: Unknown \`$1' option" ++ echo 1>&2 "Try \`$0 --help' for more information" ++ exit 1 ++ ;; ++ ++esac ++ ++# Now exit if we have it, but it failed. Also exit now if we ++# don't have it and --version was passed (most likely to detect ++# the program). ++case "$1" in ++ lex|yacc) ++ # Not GNU programs, they don't have --version. ++ ;; ++ ++ tar) ++ if test -n "$run"; then ++ echo 1>&2 "ERROR: \`tar' requires --run" ++ exit 1 ++ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then ++ exit 1 ++ fi ++ ;; ++ ++ *) ++ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then ++ # We have it, but it failed. ++ exit 1 ++ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then ++ # Could not run --version or --help. This is probably someone ++ # running `$TOOL --version' or `$TOOL --help' to check whether ++ # $TOOL exists and not knowing $TOOL uses missing. ++ exit 1 ++ fi ++ ;; ++esac ++ ++# If it does not exist, or fails to run (possibly an outdated version), ++# try to emulate it. ++case "$1" in ++ aclocal*) ++ echo 1>&2 "\ ++WARNING: \`$1' is $msg. You should only need it if ++ you modified \`acinclude.m4' or \`${configure_ac}'. You might want ++ to install the \`Automake' and \`Perl' packages. Grab them from ++ any GNU archive site." ++ touch aclocal.m4 ++ ;; ++ ++ autoconf) ++ echo 1>&2 "\ ++WARNING: \`$1' is $msg. You should only need it if ++ you modified \`${configure_ac}'. You might want to install the ++ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU ++ archive site." ++ touch configure ++ ;; ++ ++ autoheader) ++ echo 1>&2 "\ ++WARNING: \`$1' is $msg. You should only need it if ++ you modified \`acconfig.h' or \`${configure_ac}'. You might want ++ to install the \`Autoconf' and \`GNU m4' packages. Grab them ++ from any GNU archive site." ++ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` ++ test -z "$files" && files="config.h" ++ touch_files= ++ for f in $files; do ++ case "$f" in ++ *:*) touch_files="$touch_files "`echo "$f" | ++ sed -e 's/^[^:]*://' -e 's/:.*//'`;; ++ *) touch_files="$touch_files $f.in";; ++ esac ++ done ++ touch $touch_files ++ ;; ++ ++ automake*) ++ echo 1>&2 "\ ++WARNING: \`$1' is $msg. You should only need it if ++ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. ++ You might want to install the \`Automake' and \`Perl' packages. ++ Grab them from any GNU archive site." ++ find . -type f -name Makefile.am -print | ++ sed 's/\.am$/.in/' | ++ while read f; do touch "$f"; done ++ ;; ++ ++ autom4te) ++ echo 1>&2 "\ ++WARNING: \`$1' is needed, but is $msg. ++ You might have modified some files without having the ++ proper tools for further handling them. ++ You can get \`$1' as part of \`Autoconf' from any GNU ++ archive site." ++ ++ file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'` ++ test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'` ++ if test -f "$file"; then ++ touch $file ++ else ++ test -z "$file" || exec >$file ++ echo "#! /bin/sh" ++ echo "# Created by GNU Automake missing as a replacement of" ++ echo "# $ $@" ++ echo "exit 0" ++ chmod +x $file ++ exit 1 ++ fi ++ ;; ++ ++ bison|yacc) ++ echo 1>&2 "\ ++WARNING: \`$1' $msg. You should only need it if ++ you modified a \`.y' file. You may need the \`Bison' package ++ in order for those modifications to take effect. You can get ++ \`Bison' from any GNU archive site." ++ rm -f y.tab.c y.tab.h ++ if [ $# -ne 1 ]; then ++ eval LASTARG="\${$#}" ++ case "$LASTARG" in ++ *.y) ++ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" y.tab.c ++ fi ++ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" y.tab.h ++ fi ++ ;; ++ esac ++ fi ++ if [ ! -f y.tab.h ]; then ++ echo >y.tab.h ++ fi ++ if [ ! -f y.tab.c ]; then ++ echo 'main() { return 0; }' >y.tab.c ++ fi ++ ;; ++ ++ lex|flex) ++ echo 1>&2 "\ ++WARNING: \`$1' is $msg. You should only need it if ++ you modified a \`.l' file. You may need the \`Flex' package ++ in order for those modifications to take effect. You can get ++ \`Flex' from any GNU archive site." ++ rm -f lex.yy.c ++ if [ $# -ne 1 ]; then ++ eval LASTARG="\${$#}" ++ case "$LASTARG" in ++ *.l) ++ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` ++ if [ -f "$SRCFILE" ]; then ++ cp "$SRCFILE" lex.yy.c ++ fi ++ ;; ++ esac ++ fi ++ if [ ! -f lex.yy.c ]; then ++ echo 'main() { return 0; }' >lex.yy.c ++ fi ++ ;; ++ ++ help2man) ++ echo 1>&2 "\ ++WARNING: \`$1' is $msg. You should only need it if ++ you modified a dependency of a manual page. You may need the ++ \`Help2man' package in order for those modifications to take ++ effect. You can get \`Help2man' from any GNU archive site." ++ ++ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` ++ if test -z "$file"; then ++ file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'` ++ fi ++ if [ -f "$file" ]; then ++ touch $file ++ else ++ test -z "$file" || exec >$file ++ echo ".ab help2man is required to generate this page" ++ exit 1 ++ fi ++ ;; ++ ++ makeinfo) ++ echo 1>&2 "\ ++WARNING: \`$1' is $msg. You should only need it if ++ you modified a \`.texi' or \`.texinfo' file, or any other file ++ indirectly affecting the aspect of the manual. The spurious ++ call might also be the consequence of using a buggy \`make' (AIX, ++ DU, IRIX). You might want to install the \`Texinfo' package or ++ the \`GNU make' package. Grab either from any GNU archive site." ++ # The file to touch is that specified with -o ... ++ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'` ++ if test -z "$file"; then ++ # ... or it is the one specified with @setfilename ... ++ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` ++ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile` ++ # ... or it is derived from the source name (dir/f.texi becomes f.info) ++ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info ++ fi ++ touch $file ++ ;; ++ ++ tar) ++ shift ++ ++ # We have already tried tar in the generic part. ++ # Look for gnutar/gtar before invocation to avoid ugly error ++ # messages. ++ if (gnutar --version > /dev/null 2>&1); then ++ gnutar "$@" && exit 0 ++ fi ++ if (gtar --version > /dev/null 2>&1); then ++ gtar "$@" && exit 0 ++ fi ++ firstarg="$1" ++ if shift; then ++ case "$firstarg" in ++ *o*) ++ firstarg=`echo "$firstarg" | sed s/o//` ++ tar "$firstarg" "$@" && exit 0 ++ ;; ++ esac ++ case "$firstarg" in ++ *h*) ++ firstarg=`echo "$firstarg" | sed s/h//` ++ tar "$firstarg" "$@" && exit 0 ++ ;; ++ esac ++ fi ++ ++ echo 1>&2 "\ ++WARNING: I can't seem to be able to run \`tar' with the given arguments. ++ You may want to install GNU tar or Free paxutils, or check the ++ command line arguments." ++ exit 1 ++ ;; ++ ++ *) ++ echo 1>&2 "\ ++WARNING: \`$1' is needed, and is $msg. ++ You might have modified some files without having the ++ proper tools for further handling them. Check the \`README' file, ++ it often tells you about the needed prerequisites for installing ++ this package. You may also peek at any GNU archive site, in case ++ some other package would contain this missing \`$1' program." ++ exit 1 ++ ;; ++esac ++ ++exit 0 ++ ++# Local variables: ++# eval: (add-hook 'write-file-hooks 'time-stamp) ++# time-stamp-start: "scriptversion=" ++# time-stamp-format: "%:y-%02m-%02d.%02H" ++# time-stamp-end: "$" ++# End: +diff --git a/libevent/poll.c b/libevent/poll.c +new file mode 100644 +index 0000000..b67c6ff +--- /dev/null ++++ b/libevent/poll.c +@@ -0,0 +1,374 @@ ++/* $OpenBSD: poll.c,v 1.2 2002/06/25 15:50:15 mickey Exp $ */ ++ ++/* ++ * Copyright 2000-2003 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#ifdef HAVE_SYS_TIME_H ++#include ++#else ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CHECK_INVARIANTS ++#include ++#endif ++ ++#include "event.h" ++#include "event-internal.h" ++#include "evsignal.h" ++#include "log.h" ++ ++struct pollop { ++ int event_count; /* Highest number alloc */ ++ int nfds; /* Size of event_* */ ++ int fd_count; /* Size of idxplus1_by_fd */ ++ struct pollfd *event_set; ++ struct event **event_r_back; ++ struct event **event_w_back; ++ int *idxplus1_by_fd; /* Index into event_set by fd; we add 1 so ++ * that 0 (which is easy to memset) can mean ++ * "no entry." */ ++}; ++ ++static void *poll_init (struct event_base *); ++static int poll_add (void *, struct event *); ++static int poll_del (void *, struct event *); ++static int poll_dispatch (struct event_base *, void *, struct timeval *); ++static void poll_dealloc (struct event_base *, void *); ++ ++const struct eventop pollops = { ++ "poll", ++ poll_init, ++ poll_add, ++ poll_del, ++ poll_dispatch, ++ poll_dealloc, ++ 0 ++}; ++ ++static void * ++poll_init(struct event_base *base) ++{ ++ struct pollop *pollop; ++ ++ /* Disable poll when this environment variable is set */ ++ if (getenv("EVENT_NOPOLL")) ++ return (NULL); ++ ++ if (!(pollop = calloc(1, sizeof(struct pollop)))) ++ return (NULL); ++ ++ evsignal_init(base); ++ ++ return (pollop); ++} ++ ++#ifdef CHECK_INVARIANTS ++static void ++poll_check_ok(struct pollop *pop) ++{ ++ int i, idx; ++ struct event *ev; ++ ++ for (i = 0; i < pop->fd_count; ++i) { ++ idx = pop->idxplus1_by_fd[i]-1; ++ if (idx < 0) ++ continue; ++ assert(pop->event_set[idx].fd == i); ++ if (pop->event_set[idx].events & POLLIN) { ++ ev = pop->event_r_back[idx]; ++ assert(ev); ++ assert(ev->ev_events & EV_READ); ++ assert(ev->ev_fd == i); ++ } ++ if (pop->event_set[idx].events & POLLOUT) { ++ ev = pop->event_w_back[idx]; ++ assert(ev); ++ assert(ev->ev_events & EV_WRITE); ++ assert(ev->ev_fd == i); ++ } ++ } ++ for (i = 0; i < pop->nfds; ++i) { ++ struct pollfd *pfd = &pop->event_set[i]; ++ assert(pop->idxplus1_by_fd[pfd->fd] == i+1); ++ } ++} ++#else ++#define poll_check_ok(pop) ++#endif ++ ++static int ++poll_dispatch(struct event_base *base, void *arg, struct timeval *tv) ++{ ++ int res, i, msec = -1, nfds; ++ struct pollop *pop = arg; ++ ++ poll_check_ok(pop); ++ ++ if (tv != NULL) ++ msec = tv->tv_sec * 1000 + (tv->tv_usec + 999) / 1000; ++ ++ nfds = pop->nfds; ++ res = poll(pop->event_set, nfds, msec); ++ ++ if (res == -1) { ++ if (errno != EINTR) { ++ event_warn("poll"); ++ return (-1); ++ } ++ ++ evsignal_process(base); ++ return (0); ++ } else if (base->sig.evsignal_caught) { ++ evsignal_process(base); ++ } ++ ++ event_debug(("%s: poll reports %d", __func__, res)); ++ ++ if (res == 0) ++ return (0); ++ ++ for (i = 0; i < nfds; i++) { ++ int what = pop->event_set[i].revents; ++ struct event *r_ev = NULL, *w_ev = NULL; ++ if (!what) ++ continue; ++ ++ res = 0; ++ ++ /* If the file gets closed notify */ ++ if (what & (POLLHUP|POLLERR)) ++ what |= POLLIN|POLLOUT; ++ if (what & POLLIN) { ++ res |= EV_READ; ++ r_ev = pop->event_r_back[i]; ++ } ++ if (what & POLLOUT) { ++ res |= EV_WRITE; ++ w_ev = pop->event_w_back[i]; ++ } ++ if (res == 0) ++ continue; ++ ++ if (r_ev && (res & r_ev->ev_events)) { ++ event_active(r_ev, res & r_ev->ev_events, 1); ++ } ++ if (w_ev && w_ev != r_ev && (res & w_ev->ev_events)) { ++ event_active(w_ev, res & w_ev->ev_events, 1); ++ } ++ } ++ ++ return (0); ++} ++ ++static int ++poll_add(void *arg, struct event *ev) ++{ ++ struct pollop *pop = arg; ++ struct pollfd *pfd = NULL; ++ int i; ++ ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_add(ev)); ++ if (!(ev->ev_events & (EV_READ|EV_WRITE))) ++ return (0); ++ ++ poll_check_ok(pop); ++ if (pop->nfds + 1 >= pop->event_count) { ++ struct pollfd *tmp_event_set; ++ struct event **tmp_event_r_back; ++ struct event **tmp_event_w_back; ++ int tmp_event_count; ++ ++ if (pop->event_count < 32) ++ tmp_event_count = 32; ++ else ++ tmp_event_count = pop->event_count * 2; ++ ++ /* We need more file descriptors */ ++ tmp_event_set = realloc(pop->event_set, ++ tmp_event_count * sizeof(struct pollfd)); ++ if (tmp_event_set == NULL) { ++ event_warn("realloc"); ++ return (-1); ++ } ++ pop->event_set = tmp_event_set; ++ ++ tmp_event_r_back = realloc(pop->event_r_back, ++ tmp_event_count * sizeof(struct event *)); ++ if (tmp_event_r_back == NULL) { ++ /* event_set overallocated; that's okay. */ ++ event_warn("realloc"); ++ return (-1); ++ } ++ pop->event_r_back = tmp_event_r_back; ++ ++ tmp_event_w_back = realloc(pop->event_w_back, ++ tmp_event_count * sizeof(struct event *)); ++ if (tmp_event_w_back == NULL) { ++ /* event_set and event_r_back overallocated; that's ++ * okay. */ ++ event_warn("realloc"); ++ return (-1); ++ } ++ pop->event_w_back = tmp_event_w_back; ++ ++ pop->event_count = tmp_event_count; ++ } ++ if (ev->ev_fd >= pop->fd_count) { ++ int *tmp_idxplus1_by_fd; ++ int new_count; ++ if (pop->fd_count < 32) ++ new_count = 32; ++ else ++ new_count = pop->fd_count * 2; ++ while (new_count <= ev->ev_fd) ++ new_count *= 2; ++ tmp_idxplus1_by_fd = ++ realloc(pop->idxplus1_by_fd, new_count * sizeof(int)); ++ if (tmp_idxplus1_by_fd == NULL) { ++ event_warn("realloc"); ++ return (-1); ++ } ++ pop->idxplus1_by_fd = tmp_idxplus1_by_fd; ++ memset(pop->idxplus1_by_fd + pop->fd_count, ++ 0, sizeof(int)*(new_count - pop->fd_count)); ++ pop->fd_count = new_count; ++ } ++ ++ i = pop->idxplus1_by_fd[ev->ev_fd] - 1; ++ if (i >= 0) { ++ pfd = &pop->event_set[i]; ++ } else { ++ i = pop->nfds++; ++ pfd = &pop->event_set[i]; ++ pfd->events = 0; ++ pfd->fd = ev->ev_fd; ++ pop->event_w_back[i] = pop->event_r_back[i] = NULL; ++ pop->idxplus1_by_fd[ev->ev_fd] = i + 1; ++ } ++ ++ pfd->revents = 0; ++ if (ev->ev_events & EV_WRITE) { ++ pfd->events |= POLLOUT; ++ pop->event_w_back[i] = ev; ++ } ++ if (ev->ev_events & EV_READ) { ++ pfd->events |= POLLIN; ++ pop->event_r_back[i] = ev; ++ } ++ poll_check_ok(pop); ++ ++ return (0); ++} ++ ++/* ++ * Nothing to be done here. ++ */ ++ ++static int ++poll_del(void *arg, struct event *ev) ++{ ++ struct pollop *pop = arg; ++ struct pollfd *pfd = NULL; ++ int i; ++ ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_del(ev)); ++ ++ if (!(ev->ev_events & (EV_READ|EV_WRITE))) ++ return (0); ++ ++ poll_check_ok(pop); ++ i = pop->idxplus1_by_fd[ev->ev_fd] - 1; ++ if (i < 0) ++ return (-1); ++ ++ /* Do we still want to read or write? */ ++ pfd = &pop->event_set[i]; ++ if (ev->ev_events & EV_READ) { ++ pfd->events &= ~POLLIN; ++ pop->event_r_back[i] = NULL; ++ } ++ if (ev->ev_events & EV_WRITE) { ++ pfd->events &= ~POLLOUT; ++ pop->event_w_back[i] = NULL; ++ } ++ poll_check_ok(pop); ++ if (pfd->events) ++ /* Another event cares about that fd. */ ++ return (0); ++ ++ /* Okay, so we aren't interested in that fd anymore. */ ++ pop->idxplus1_by_fd[ev->ev_fd] = 0; ++ ++ --pop->nfds; ++ if (i != pop->nfds) { ++ /* ++ * Shift the last pollfd down into the now-unoccupied ++ * position. ++ */ ++ memcpy(&pop->event_set[i], &pop->event_set[pop->nfds], ++ sizeof(struct pollfd)); ++ pop->event_r_back[i] = pop->event_r_back[pop->nfds]; ++ pop->event_w_back[i] = pop->event_w_back[pop->nfds]; ++ pop->idxplus1_by_fd[pop->event_set[i].fd] = i + 1; ++ } ++ ++ poll_check_ok(pop); ++ return (0); ++} ++ ++static void ++poll_dealloc(struct event_base *base, void *arg) ++{ ++ struct pollop *pop = arg; ++ ++ evsignal_dealloc(base); ++ if (pop->event_set) ++ free(pop->event_set); ++ if (pop->event_r_back) ++ free(pop->event_r_back); ++ if (pop->event_w_back) ++ free(pop->event_w_back); ++ if (pop->idxplus1_by_fd) ++ free(pop->idxplus1_by_fd); ++ ++ memset(pop, 0, sizeof(struct pollop)); ++ free(pop); ++} +diff --git a/libevent/select.c b/libevent/select.c +new file mode 100644 +index 0000000..7faafe4 +--- /dev/null ++++ b/libevent/select.c +@@ -0,0 +1,352 @@ ++/* $OpenBSD: select.c,v 1.2 2002/06/25 15:50:15 mickey Exp $ */ ++ ++/* ++ * Copyright 2000-2002 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#include ++#ifdef HAVE_SYS_TIME_H ++#include ++#else ++#include ++#endif ++#ifdef HAVE_SYS_SELECT_H ++#include ++#endif ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#ifdef CHECK_INVARIANTS ++#include ++#endif ++ ++#include "event.h" ++#include "event-internal.h" ++#include "evsignal.h" ++#include "log.h" ++ ++#ifndef howmany ++#define howmany(x, y) (((x)+((y)-1))/(y)) ++#endif ++ ++struct selectop { ++ int event_fds; /* Highest fd in fd set */ ++ int event_fdsz; ++ fd_set *event_readset_in; ++ fd_set *event_writeset_in; ++ fd_set *event_readset_out; ++ fd_set *event_writeset_out; ++ struct event **event_r_by_fd; ++ struct event **event_w_by_fd; ++}; ++ ++static void *select_init (struct event_base *); ++static int select_add (void *, struct event *); ++static int select_del (void *, struct event *); ++static int select_dispatch (struct event_base *, void *, struct timeval *); ++static void select_dealloc (struct event_base *, void *); ++ ++const struct eventop selectops = { ++ "select", ++ select_init, ++ select_add, ++ select_del, ++ select_dispatch, ++ select_dealloc, ++ 0 ++}; ++ ++static int select_resize(struct selectop *sop, int fdsz); ++ ++static void * ++select_init(struct event_base *base) ++{ ++ struct selectop *sop; ++ ++ /* Disable select when this environment variable is set */ ++ if (getenv("EVENT_NOSELECT")) ++ return (NULL); ++ ++ if (!(sop = calloc(1, sizeof(struct selectop)))) ++ return (NULL); ++ ++ select_resize(sop, howmany(32 + 1, NFDBITS)*sizeof(fd_mask)); ++ ++ evsignal_init(base); ++ ++ return (sop); ++} ++ ++#ifdef CHECK_INVARIANTS ++static void ++check_selectop(struct selectop *sop) ++{ ++ int i; ++ for (i = 0; i <= sop->event_fds; ++i) { ++ if (FD_ISSET(i, sop->event_readset_in)) { ++ assert(sop->event_r_by_fd[i]); ++ assert(sop->event_r_by_fd[i]->ev_events & EV_READ); ++ assert(sop->event_r_by_fd[i]->ev_fd == i); ++ } else { ++ assert(! sop->event_r_by_fd[i]); ++ } ++ if (FD_ISSET(i, sop->event_writeset_in)) { ++ assert(sop->event_w_by_fd[i]); ++ assert(sop->event_w_by_fd[i]->ev_events & EV_WRITE); ++ assert(sop->event_w_by_fd[i]->ev_fd == i); ++ } else { ++ assert(! sop->event_w_by_fd[i]); ++ } ++ } ++ ++} ++#else ++#define check_selectop(sop) do { (void) sop; } while (0) ++#endif ++ ++static int ++select_dispatch(struct event_base *base, void *arg, struct timeval *tv) ++{ ++ int res, i; ++ struct selectop *sop = arg; ++ ++ check_selectop(sop); ++ ++ memcpy(sop->event_readset_out, sop->event_readset_in, ++ sop->event_fdsz); ++ memcpy(sop->event_writeset_out, sop->event_writeset_in, ++ sop->event_fdsz); ++ ++ res = select(sop->event_fds + 1, sop->event_readset_out, ++ sop->event_writeset_out, NULL, tv); ++ ++ check_selectop(sop); ++ ++ if (res == -1) { ++ if (errno != EINTR) { ++ event_warn("select"); ++ return (-1); ++ } ++ ++ evsignal_process(base); ++ return (0); ++ } else if (base->sig.evsignal_caught) { ++ evsignal_process(base); ++ } ++ ++ event_debug(("%s: select reports %d", __func__, res)); ++ ++ check_selectop(sop); ++ for (i = 0; i <= sop->event_fds; ++i) { ++ struct event *r_ev = NULL, *w_ev = NULL; ++ res = 0; ++ if (FD_ISSET(i, sop->event_readset_out)) { ++ r_ev = sop->event_r_by_fd[i]; ++ res |= EV_READ; ++ } ++ if (FD_ISSET(i, sop->event_writeset_out)) { ++ w_ev = sop->event_w_by_fd[i]; ++ res |= EV_WRITE; ++ } ++ if (r_ev && (res & r_ev->ev_events)) { ++ event_active(r_ev, res & r_ev->ev_events, 1); ++ } ++ if (w_ev && w_ev != r_ev && (res & w_ev->ev_events)) { ++ event_active(w_ev, res & w_ev->ev_events, 1); ++ } ++ } ++ check_selectop(sop); ++ ++ return (0); ++} ++ ++ ++static int ++select_resize(struct selectop *sop, int fdsz) ++{ ++ int n_events, n_events_old; ++ ++ fd_set *readset_in = NULL; ++ fd_set *writeset_in = NULL; ++ fd_set *readset_out = NULL; ++ fd_set *writeset_out = NULL; ++ struct event **r_by_fd = NULL; ++ struct event **w_by_fd = NULL; ++ ++ n_events = (fdsz/sizeof(fd_mask)) * NFDBITS; ++ n_events_old = (sop->event_fdsz/sizeof(fd_mask)) * NFDBITS; ++ ++ if (sop->event_readset_in) ++ check_selectop(sop); ++ ++ if ((readset_in = realloc(sop->event_readset_in, fdsz)) == NULL) ++ goto error; ++ sop->event_readset_in = readset_in; ++ if ((readset_out = realloc(sop->event_readset_out, fdsz)) == NULL) ++ goto error; ++ sop->event_readset_out = readset_out; ++ if ((writeset_in = realloc(sop->event_writeset_in, fdsz)) == NULL) ++ goto error; ++ sop->event_writeset_in = writeset_in; ++ if ((writeset_out = realloc(sop->event_writeset_out, fdsz)) == NULL) ++ goto error; ++ sop->event_writeset_out = writeset_out; ++ if ((r_by_fd = realloc(sop->event_r_by_fd, ++ n_events*sizeof(struct event*))) == NULL) ++ goto error; ++ sop->event_r_by_fd = r_by_fd; ++ if ((w_by_fd = realloc(sop->event_w_by_fd, ++ n_events * sizeof(struct event*))) == NULL) ++ goto error; ++ sop->event_w_by_fd = w_by_fd; ++ ++ memset((char *)sop->event_readset_in + sop->event_fdsz, 0, ++ fdsz - sop->event_fdsz); ++ memset((char *)sop->event_writeset_in + sop->event_fdsz, 0, ++ fdsz - sop->event_fdsz); ++ memset(sop->event_r_by_fd + n_events_old, 0, ++ (n_events-n_events_old) * sizeof(struct event*)); ++ memset(sop->event_w_by_fd + n_events_old, 0, ++ (n_events-n_events_old) * sizeof(struct event*)); ++ ++ sop->event_fdsz = fdsz; ++ check_selectop(sop); ++ ++ return (0); ++ ++ error: ++ event_warn("malloc"); ++ return (-1); ++} ++ ++ ++static int ++select_add(void *arg, struct event *ev) ++{ ++ struct selectop *sop = arg; ++ ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_add(ev)); ++ ++ check_selectop(sop); ++ /* ++ * Keep track of the highest fd, so that we can calculate the size ++ * of the fd_sets for select(2) ++ */ ++ if (sop->event_fds < ev->ev_fd) { ++ int fdsz = sop->event_fdsz; ++ ++ if (fdsz < sizeof(fd_mask)) ++ fdsz = sizeof(fd_mask); ++ ++ while (fdsz < ++ (howmany(ev->ev_fd + 1, NFDBITS) * sizeof(fd_mask))) ++ fdsz *= 2; ++ ++ if (fdsz != sop->event_fdsz) { ++ if (select_resize(sop, fdsz)) { ++ check_selectop(sop); ++ return (-1); ++ } ++ } ++ ++ sop->event_fds = ev->ev_fd; ++ } ++ ++ if (ev->ev_events & EV_READ) { ++ FD_SET(ev->ev_fd, sop->event_readset_in); ++ sop->event_r_by_fd[ev->ev_fd] = ev; ++ } ++ if (ev->ev_events & EV_WRITE) { ++ FD_SET(ev->ev_fd, sop->event_writeset_in); ++ sop->event_w_by_fd[ev->ev_fd] = ev; ++ } ++ check_selectop(sop); ++ ++ return (0); ++} ++ ++/* ++ * Nothing to be done here. ++ */ ++ ++static int ++select_del(void *arg, struct event *ev) ++{ ++ struct selectop *sop = arg; ++ ++ check_selectop(sop); ++ if (ev->ev_events & EV_SIGNAL) ++ return (evsignal_del(ev)); ++ ++ if (sop->event_fds < ev->ev_fd) { ++ check_selectop(sop); ++ return (0); ++ } ++ ++ if (ev->ev_events & EV_READ) { ++ FD_CLR(ev->ev_fd, sop->event_readset_in); ++ sop->event_r_by_fd[ev->ev_fd] = NULL; ++ } ++ ++ if (ev->ev_events & EV_WRITE) { ++ FD_CLR(ev->ev_fd, sop->event_writeset_in); ++ sop->event_w_by_fd[ev->ev_fd] = NULL; ++ } ++ ++ check_selectop(sop); ++ return (0); ++} ++ ++static void ++select_dealloc(struct event_base *base, void *arg) ++{ ++ struct selectop *sop = arg; ++ ++ evsignal_dealloc(base); ++ if (sop->event_readset_in) ++ free(sop->event_readset_in); ++ if (sop->event_writeset_in) ++ free(sop->event_writeset_in); ++ if (sop->event_readset_out) ++ free(sop->event_readset_out); ++ if (sop->event_writeset_out) ++ free(sop->event_writeset_out); ++ if (sop->event_r_by_fd) ++ free(sop->event_r_by_fd); ++ if (sop->event_w_by_fd) ++ free(sop->event_w_by_fd); ++ ++ memset(sop, 0, sizeof(struct selectop)); ++ free(sop); ++} +diff --git a/libevent/signal.c b/libevent/signal.c +new file mode 100644 +index 0000000..bcaa3f9 +--- /dev/null ++++ b/libevent/signal.c +@@ -0,0 +1,347 @@ ++/* $OpenBSD: select.c,v 1.2 2002/06/25 15:50:15 mickey Exp $ */ ++ ++/* ++ * Copyright 2000-2002 Niels Provos ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR ++ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES ++ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. ++ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, ++ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT ++ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, ++ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY ++ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif ++ ++#ifdef WIN32 ++#define WIN32_LEAN_AND_MEAN ++#include ++#include ++#undef WIN32_LEAN_AND_MEAN ++#endif ++#include ++#ifdef HAVE_SYS_TIME_H ++#include ++#endif ++#include ++#ifdef HAVE_SYS_SOCKET_H ++#include ++#endif ++#include ++#include ++#include ++#include ++#ifdef HAVE_UNISTD_H ++#include ++#endif ++#include ++#ifdef HAVE_FCNTL_H ++#include ++#endif ++#include ++ ++#include "event.h" ++#include "event-internal.h" ++#include "evsignal.h" ++#include "evutil.h" ++#include "log.h" ++ ++struct event_base *evsignal_base = NULL; ++ ++static void evsignal_handler(int sig); ++ ++/* Callback for when the signal handler write a byte to our signaling socket */ ++static void ++evsignal_cb(int fd, short what, void *arg) ++{ ++ static char signals[100]; ++#ifdef WIN32 ++ SSIZE_T n; ++#else ++ ssize_t n; ++#endif ++ ++ n = recv(fd, signals, sizeof(signals), 0); ++ if (n == -1) ++ event_err(1, "%s: read", __func__); ++} ++ ++#ifdef HAVE_SETFD ++#define FD_CLOSEONEXEC(x) do { \ ++ if (fcntl(x, F_SETFD, 1) == -1) \ ++ event_warn("fcntl(%d, F_SETFD)", x); \ ++} while (0) ++#else ++#define FD_CLOSEONEXEC(x) ++#endif ++ ++void ++evsignal_init(struct event_base *base) ++{ ++ int i; ++ ++ /* ++ * Our signal handler is going to write to one end of the socket ++ * pair to wake up our event loop. The event loop then scans for ++ * signals that got delivered. ++ */ ++ if (evutil_socketpair( ++ AF_UNIX, SOCK_STREAM, 0, base->sig.ev_signal_pair) == -1) ++ event_err(1, "%s: socketpair", __func__); ++ ++ FD_CLOSEONEXEC(base->sig.ev_signal_pair[0]); ++ FD_CLOSEONEXEC(base->sig.ev_signal_pair[1]); ++ base->sig.sh_old = NULL; ++ base->sig.sh_old_max = 0; ++ base->sig.evsignal_caught = 0; ++ memset(&base->sig.evsigcaught, 0, sizeof(sig_atomic_t)*NSIG); ++ /* initialize the queues for all events */ ++ for (i = 0; i < NSIG; ++i) ++ TAILQ_INIT(&base->sig.evsigevents[i]); ++ ++ evutil_make_socket_nonblocking(base->sig.ev_signal_pair[0]); ++ ++ event_set(&base->sig.ev_signal, base->sig.ev_signal_pair[1], ++ EV_READ | EV_PERSIST, evsignal_cb, &base->sig.ev_signal); ++ base->sig.ev_signal.ev_base = base; ++ base->sig.ev_signal.ev_flags |= EVLIST_INTERNAL; ++} ++ ++/* Helper: set the signal handler for evsignal to handler in base, so that ++ * we can restore the original handler when we clear the current one. */ ++int ++_evsignal_set_handler(struct event_base *base, ++ int evsignal, void (*handler)(int)) ++{ ++#ifdef HAVE_SIGACTION ++ struct sigaction sa; ++#else ++ ev_sighandler_t sh; ++#endif ++ struct evsignal_info *sig = &base->sig; ++ void *p; ++ ++ /* ++ * resize saved signal handler array up to the highest signal number. ++ * a dynamic array is used to keep footprint on the low side. ++ */ ++ if (evsignal >= sig->sh_old_max) { ++ int new_max = evsignal + 1; ++ event_debug(("%s: evsignal (%d) >= sh_old_max (%d), resizing", ++ __func__, evsignal, sig->sh_old_max)); ++ p = realloc(sig->sh_old, new_max * sizeof(*sig->sh_old)); ++ if (p == NULL) { ++ event_warn("realloc"); ++ return (-1); ++ } ++ ++ memset((char *)p + sig->sh_old_max * sizeof(*sig->sh_old), ++ 0, (new_max - sig->sh_old_max) * sizeof(*sig->sh_old)); ++ ++ sig->sh_old_max = new_max; ++ sig->sh_old = p; ++ } ++ ++ /* allocate space for previous handler out of dynamic array */ ++ sig->sh_old[evsignal] = malloc(sizeof *sig->sh_old[evsignal]); ++ if (sig->sh_old[evsignal] == NULL) { ++ event_warn("malloc"); ++ return (-1); ++ } ++ ++ /* save previous handler and setup new handler */ ++#ifdef HAVE_SIGACTION ++ memset(&sa, 0, sizeof(sa)); ++ sa.sa_handler = handler; ++ sa.sa_flags |= SA_RESTART; ++ sigfillset(&sa.sa_mask); ++ ++ if (sigaction(evsignal, &sa, sig->sh_old[evsignal]) == -1) { ++ event_warn("sigaction"); ++ free(sig->sh_old[evsignal]); ++ return (-1); ++ } ++#else ++ if ((sh = signal(evsignal, handler)) == SIG_ERR) { ++ event_warn("signal"); ++ free(sig->sh_old[evsignal]); ++ return (-1); ++ } ++ *sig->sh_old[evsignal] = sh; ++#endif ++ ++ return (0); ++} ++ ++int ++evsignal_add(struct event *ev) ++{ ++ int evsignal; ++ struct event_base *base = ev->ev_base; ++ struct evsignal_info *sig = &ev->ev_base->sig; ++ ++ if (ev->ev_events & (EV_READ|EV_WRITE)) ++ event_errx(1, "%s: EV_SIGNAL incompatible use", __func__); ++ evsignal = EVENT_SIGNAL(ev); ++ assert(evsignal >= 0 && evsignal < NSIG); ++ if (TAILQ_EMPTY(&sig->evsigevents[evsignal])) { ++ event_debug(("%s: %p: changing signal handler", __func__, ev)); ++ if (_evsignal_set_handler( ++ base, evsignal, evsignal_handler) == -1) ++ return (-1); ++ ++ /* catch signals if they happen quickly */ ++ evsignal_base = base; ++ ++ if (!sig->ev_signal_added) { ++ if (event_add(&sig->ev_signal, NULL)) ++ return (-1); ++ sig->ev_signal_added = 1; ++ } ++ } ++ ++ /* multiple events may listen to the same signal */ ++ TAILQ_INSERT_TAIL(&sig->evsigevents[evsignal], ev, ev_signal_next); ++ ++ return (0); ++} ++ ++int ++_evsignal_restore_handler(struct event_base *base, int evsignal) ++{ ++ int ret = 0; ++ struct evsignal_info *sig = &base->sig; ++#ifdef HAVE_SIGACTION ++ struct sigaction *sh; ++#else ++ ev_sighandler_t *sh; ++#endif ++ ++ /* restore previous handler */ ++ sh = sig->sh_old[evsignal]; ++ sig->sh_old[evsignal] = NULL; ++#ifdef HAVE_SIGACTION ++ if (sigaction(evsignal, sh, NULL) == -1) { ++ event_warn("sigaction"); ++ ret = -1; ++ } ++#else ++ if (signal(evsignal, *sh) == SIG_ERR) { ++ event_warn("signal"); ++ ret = -1; ++ } ++#endif ++ free(sh); ++ ++ return ret; ++} ++ ++int ++evsignal_del(struct event *ev) ++{ ++ struct event_base *base = ev->ev_base; ++ struct evsignal_info *sig = &base->sig; ++ int evsignal = EVENT_SIGNAL(ev); ++ ++ assert(evsignal >= 0 && evsignal < NSIG); ++ ++ /* multiple events may listen to the same signal */ ++ TAILQ_REMOVE(&sig->evsigevents[evsignal], ev, ev_signal_next); ++ ++ if (!TAILQ_EMPTY(&sig->evsigevents[evsignal])) ++ return (0); ++ ++ event_debug(("%s: %p: restoring signal handler", __func__, ev)); ++ ++ return (_evsignal_restore_handler(ev->ev_base, EVENT_SIGNAL(ev))); ++} ++ ++static void ++evsignal_handler(int sig) ++{ ++ int save_errno = errno; ++ ++ if (evsignal_base == NULL) { ++ event_warn( ++ "%s: received signal %d, but have no base configured", ++ __func__, sig); ++ return; ++ } ++ ++ evsignal_base->sig.evsigcaught[sig]++; ++ evsignal_base->sig.evsignal_caught = 1; ++ ++#ifndef HAVE_SIGACTION ++ signal(sig, evsignal_handler); ++#endif ++ ++ /* Wake up our notification mechanism */ ++ send(evsignal_base->sig.ev_signal_pair[0], "a", 1, 0); ++ errno = save_errno; ++} ++ ++void ++evsignal_process(struct event_base *base) ++{ ++ struct evsignal_info *sig = &base->sig; ++ struct event *ev, *next_ev; ++ sig_atomic_t ncalls; ++ int i; ++ ++ base->sig.evsignal_caught = 0; ++ for (i = 1; i < NSIG; ++i) { ++ ncalls = sig->evsigcaught[i]; ++ if (ncalls == 0) ++ continue; ++ ++ for (ev = TAILQ_FIRST(&sig->evsigevents[i]); ++ ev != NULL; ev = next_ev) { ++ next_ev = TAILQ_NEXT(ev, ev_signal_next); ++ if (!(ev->ev_events & EV_PERSIST)) ++ event_del(ev); ++ event_active(ev, EV_SIGNAL, ncalls); ++ } ++ ++ sig->evsigcaught[i] = 0; ++ } ++} ++ ++void ++evsignal_dealloc(struct event_base *base) ++{ ++ int i = 0; ++ if (base->sig.ev_signal_added) { ++ event_del(&base->sig.ev_signal); ++ base->sig.ev_signal_added = 0; ++ } ++ for (i = 0; i < NSIG; ++i) { ++ if (i < base->sig.sh_old_max && base->sig.sh_old[i] != NULL) ++ _evsignal_restore_handler(base, i); ++ } ++ ++ EVUTIL_CLOSESOCKET(base->sig.ev_signal_pair[0]); ++ base->sig.ev_signal_pair[0] = -1; ++ EVUTIL_CLOSESOCKET(base->sig.ev_signal_pair[1]); ++ base->sig.ev_signal_pair[1] = -1; ++ base->sig.sh_old_max = 0; ++ ++ /* per index frees are handled in evsignal_del() */ ++ free(base->sig.sh_old); ++} +diff --git a/libevent/strlcpy-internal.h b/libevent/strlcpy-internal.h +new file mode 100644 +index 0000000..22b5f61 +--- /dev/null ++++ b/libevent/strlcpy-internal.h +@@ -0,0 +1,23 @@ ++#ifndef _STRLCPY_INTERNAL_H_ ++#define _STRLCPY_INTERNAL_H_ ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif /* HAVE_CONFIG_H */ ++ ++#ifndef HAVE_STRLCPY ++#include ++size_t _event_strlcpy(char *dst, const char *src, size_t siz); ++#define strlcpy _event_strlcpy ++#endif ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif ++ +diff --git a/libevent/strlcpy.c b/libevent/strlcpy.c +new file mode 100644 +index 0000000..a1a413d +--- /dev/null ++++ b/libevent/strlcpy.c +@@ -0,0 +1,78 @@ ++/* $OpenBSD: strlcpy.c,v 1.5 2001/05/13 15:40:16 deraadt Exp $ */ ++ ++/* ++ * Copyright (c) 1998 Todd C. Miller ++ * All rights reserved. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * 3. The name of the author may not be used to endorse or promote products ++ * derived from this software without specific prior written permission. ++ * ++ * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, ++ * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ++ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ++ * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ++ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, ++ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR ++ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ++ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#if defined(LIBC_SCCS) && !defined(lint) ++static char *rcsid = "$OpenBSD: strlcpy.c,v 1.5 2001/05/13 15:40:16 deraadt Exp $"; ++#endif /* LIBC_SCCS and not lint */ ++ ++#include "event-fpm.h" ++ ++#include ++ ++#ifdef HAVE_CONFIG_H ++#include "config.h" ++#endif /* HAVE_CONFIG_H */ ++ ++#ifndef HAVE_STRLCPY ++#include "strlcpy-internal.h" ++ ++/* ++ * Copy src to string dst of size siz. At most siz-1 characters ++ * will be copied. Always NUL terminates (unless siz == 0). ++ * Returns strlen(src); if retval >= siz, truncation occurred. ++ */ ++size_t ++_event_strlcpy(dst, src, siz) ++ char *dst; ++ const char *src; ++ size_t siz; ++{ ++ register char *d = dst; ++ register const char *s = src; ++ register size_t n = siz; ++ ++ /* Copy as many bytes as will fit */ ++ if (n != 0 && --n != 0) { ++ do { ++ if ((*d++ = *s++) == 0) ++ break; ++ } while (--n != 0); ++ } ++ ++ /* Not enough room in dst, add NUL and traverse rest of src */ ++ if (n == 0) { ++ if (siz != 0) ++ *d = '\0'; /* NUL-terminate dst */ ++ while (*s++) ++ ; ++ } ++ ++ return(s - src - 1); /* count does not include NUL */ ++} ++#endif +diff --git a/main/php_config.h.in b/main/php_config.h.in +index 6df7d68..f155934 100644 +--- a/main/php_config.h.in ++++ b/main/php_config.h.in +@@ -170,6 +170,9 @@ + /* Define if you have the chroot function. */ + #undef HAVE_CHROOT + ++/* Define if you have the clearenv function. */ ++#undef HAVE_CLEARENV ++ + /* Define if you have the crypt function. */ + #undef HAVE_CRYPT + +@@ -935,6 +938,9 @@ + /* */ + #undef PHP_FASTCGI + ++/* Is experimental fastcgi process manager code activated */ ++#undef PHP_FASTCGI_PM ++ + /* */ + #undef FORCE_CGI_REDIRECT + +@@ -944,6 +950,27 @@ + /* */ + #undef ENABLE_PATHINFO_CHECK + ++/* do we have libxml? */ ++#undef HAVE_LIBXML ++ ++/* do we have prctl? */ ++#undef HAVE_PRCTL ++ ++/* do we have clock_gettime? */ ++#undef HAVE_CLOCK_GETTIME ++ ++/* do we have clock_get_time? */ ++#undef HAVE_CLOCK_GET_TIME ++ ++/* do we have ptrace? */ ++#undef HAVE_PTRACE ++ ++/* do we have mach_vm_read? */ ++#undef HAVE_MACH_VM_READ ++ ++/* /proc/pid/mem interface */ ++#undef PROC_MEM_FILE ++ + /* Define if system uses EBCDIC */ + #undef CHARSET_EBCDIC + +diff --git a/sapi/cgi/Makefile.frag b/sapi/cgi/Makefile.frag +index 57a3b29..6fa6c9f 100644 +--- a/sapi/cgi/Makefile.frag ++++ b/sapi/cgi/Makefile.frag +@@ -1,2 +1,2 @@ +-$(SAPI_CGI_PATH): $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) ++$(SAPI_CGI_PATH): $(PHP_GLOBAL_OBJS) $(PHP_SAPI_OBJS) $(SAPI_EXTRA_DEPS) + $(BUILD_CGI) +diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c +index a4a19c2..2c19083 100644 +--- a/sapi/cgi/cgi_main.c ++++ b/sapi/cgi/cgi_main.c +@@ -55,6 +55,9 @@ + #if HAVE_SYS_WAIT_H + #include + #endif ++#if HAVE_FCNTL_H ++#include ++#endif + #include "zend.h" + #include "zend_extensions.h" + #include "php_ini.h" +@@ -83,6 +86,11 @@ int __riscosify_control = __RISCOSIFY_STRICT_UNIX_SPECS; + #if PHP_FASTCGI + #include "fastcgi.h" + ++#if PHP_FASTCGI_PM ++#include "fpm/fpm.h" ++#include "fpm/fpm_request.h" ++#endif ++ + #ifndef PHP_WIN32 + /* XXX this will need to change later when threaded fastcgi is + implemented. shane */ +@@ -115,8 +123,12 @@ static int parent_waiting = 0; + static pid_t pgroup; + #endif + ++static int request_body_fd; ++ + #endif + ++static char *sapi_cgibin_getenv(char *name, size_t name_len TSRMLS_DC); ++ + #define PHP_MODE_STANDARD 1 + #define PHP_MODE_HIGHLIGHT 2 + #define PHP_MODE_INDENT 3 +@@ -146,6 +158,10 @@ static const opt_struct OPTIONS[] = { + {'w', 0, "strip"}, + {'?', 0, "usage"},/* help alias (both '?' and 'usage') */ + {'v', 0, "version"}, ++#if PHP_FASTCGI_PM ++ {'x', 0, "fpm"}, ++ {'y', 1, "fpm-config"}, ++#endif + {'z', 1, "zend-extension"}, + #if PHP_FASTCGI + {'T', 1, "timing"}, +@@ -170,6 +186,7 @@ typedef struct _php_cgi_globals_struct { + zend_bool impersonate; + # endif + #endif ++ char *error_header; + } php_cgi_globals_struct; + + #ifdef ZTS +@@ -474,7 +491,28 @@ static int sapi_cgi_read_post(char *buffer, uint count_bytes TSRMLS_DC) + #if PHP_FASTCGI + if (fcgi_is_fastcgi()) { + fcgi_request *request = (fcgi_request*) SG(server_context); +- tmp_read_bytes = fcgi_read(request, buffer + read_bytes, count_bytes - read_bytes); ++ ++ if (request_body_fd == -1) { ++ char *request_body_filename = sapi_cgibin_getenv((char *) "REQUEST_BODY_FILE", ++ sizeof("REQUEST_BODY_FILE")-1 TSRMLS_CC); ++ ++ if (request_body_filename && *request_body_filename) { ++ request_body_fd = open(request_body_filename, O_RDONLY); ++ ++ if (0 > request_body_fd) { ++ php_error(E_WARNING, "REQUEST_BODY_FILE: open('%s') failed: %s (%d)", ++ request_body_filename, strerror(errno), errno); ++ return 0; ++ } ++ } ++ } ++ ++ /* If REQUEST_BODY_FILE variable not available - read post body from fastcgi stream */ ++ if (request_body_fd < 0) { ++ tmp_read_bytes = fcgi_read(request, buffer + read_bytes, count_bytes - read_bytes); ++ } else { ++ tmp_read_bytes = read(request_body_fd, buffer + read_bytes, count_bytes - read_bytes); ++ } + } else { + tmp_read_bytes = read(STDIN_FILENO, buffer + read_bytes, count_bytes - read_bytes); + } +@@ -786,7 +824,12 @@ static void php_cgi_usage(char *argv0) + " -s Display colour syntax highlighted source.\n" + " -v Version number\n" + " -w Display source with stripped comments and whitespace.\n" +- " -z Load Zend extension .\n" ++#if PHP_FASTCGI_PM ++ " -x, --fpm Run in FastCGI process manager mode.\n" ++ " -y, --fpm-config \n" ++ " Specify alternative path to FastCGI process manager config file.\n" ++#endif ++ " -z Load Zend extension .\n" + #if PHP_FASTCGI + " -T Measure execution time of script repeated times.\n" + #endif +@@ -1236,6 +1279,7 @@ PHP_INI_BEGIN() + # ifdef PHP_WIN32 + STD_PHP_INI_ENTRY("fastcgi.impersonate", "0", PHP_INI_SYSTEM, OnUpdateBool, impersonate, php_cgi_globals_struct, php_cgi_globals) + # endif ++ STD_PHP_INI_ENTRY("fastcgi.error_header", NULL, PHP_INI_SYSTEM, OnUpdateString, error_header, php_cgi_globals_struct, php_cgi_globals) + #endif + PHP_INI_END() + +@@ -1258,6 +1302,7 @@ static void php_cgi_globals_ctor(php_cgi_globals_struct *php_cgi_globals TSRMLS_ + # ifdef PHP_WIN32 + php_cgi_globals->impersonate = 0; + # endif ++ php_cgi_globals->error_header = NULL; + #endif + } + /* }}} */ +@@ -1290,9 +1335,47 @@ static PHP_MSHUTDOWN_FUNCTION(cgi) + static PHP_MINFO_FUNCTION(cgi) + { + DISPLAY_INI_ENTRIES(); ++ ++#if PHP_FASTCGI_PM ++ ++#include "fpm/fpm_autoconf.h" ++ ++ php_info_print_table_start(); ++ php_info_print_table_row(2, "php-fpm", fpm ? "active" : "inactive"); ++ php_info_print_table_row(2, "php-fpm version", PHP_FPM_VERSION); ++ php_info_print_table_end(); ++#endif ++ + } + /* }}} */ + ++#if PHP_FASTCGI ++PHP_FUNCTION(fastcgi_finish_request) ++{ ++ fcgi_request *request = (fcgi_request*) SG(server_context); ++ ++ if (fcgi_is_fastcgi() && request->fd >= 0) { ++ ++ php_end_ob_buffers(1 TSRMLS_CC); ++ php_header(TSRMLS_C); ++ ++ fcgi_flush(request, 1); ++ fcgi_close(request, 0, 0); ++ RETURN_TRUE; ++ } ++ ++ RETURN_FALSE; ++ ++} ++#endif ++ ++function_entry cgi_fcgi_sapi_functions[] = { ++#if PHP_FASTCGI ++ PHP_FE(fastcgi_finish_request, NULL) ++#endif ++ {NULL, NULL, NULL} ++}; ++ + static zend_module_entry cgi_module_entry = { + STANDARD_MODULE_HEADER, + #if PHP_FASTCGI +@@ -1300,7 +1383,7 @@ static zend_module_entry cgi_module_entry = { + #else + "cgi", + #endif +- NULL, ++ cgi_fcgi_sapi_functions, + PHP_MINIT(cgi), + PHP_MSHUTDOWN(cgi), + NULL, +@@ -1340,6 +1423,7 @@ int main(int argc, char *argv[]) + char *bindpath = NULL; + int fcgi_fd = 0; + fcgi_request request; ++ char *fpm_config = NULL; + int repeats = 1; + int benchmark = 0; + #if HAVE_GETTIMEOFDAY +@@ -1460,6 +1544,14 @@ int main(int argc, char *argv[]) + case 's': /* generate highlighted HTML from source */ + behavior = PHP_MODE_HIGHLIGHT; + break; ++#if PHP_FASTCGI_PM ++ case 'y': ++ fpm_config = php_optarg; ++ break; ++ case 'x': ++ fpm = 1; ++ break; ++#endif + + } + +@@ -1524,6 +1616,19 @@ consult the installation file that came with this distribution, or visit \n\ + #endif /* FORCE_CGI_REDIRECT */ + + #if PHP_FASTCGI ++#if PHP_FASTCGI_PM ++ if (fpm) { ++ if (0 > fpm_init(argc, argv, fpm_config)) { ++ return FAILURE; ++ } ++ ++ fcgi_fd = fpm_run(&max_requests); ++ ++ fcgi_set_is_fastcgi(fastcgi = 1); ++ } ++ else ++#endif ++ + if (bindpath) { + fcgi_fd = fcgi_listen(bindpath, 128); + if (fcgi_fd < 0) { +@@ -1538,6 +1643,9 @@ consult the installation file that came with this distribution, or visit \n\ + + if (fastcgi) { + /* How many times to run PHP scripts before dying */ ++#if PHP_FASTCGI_PM ++ if (!fpm) ++#endif + if (getenv("PHP_FCGI_MAX_REQUESTS")) { + max_requests = atoi(getenv("PHP_FCGI_MAX_REQUESTS")); + if (max_requests < 0) { +@@ -1555,6 +1663,9 @@ consult the installation file that came with this distribution, or visit \n\ + + #ifndef PHP_WIN32 + /* Pre-fork, if required */ ++#if PHP_FASTCGI_PM ++ if (!fpm) ++#endif + if (getenv("PHP_FCGI_CHILDREN")) { + char * children_str = getenv("PHP_FCGI_CHILDREN"); + children = atoi(children_str); +@@ -1704,6 +1815,8 @@ consult the installation file that came with this distribution, or visit \n\ + #endif + + #if PHP_FASTCGI ++ request_body_fd = -1; ++ + SG(server_context) = (void *) &request; + #else + SG(server_context) = (void *) 1; /* avoid server_context==NULL checks */ +@@ -1711,6 +1824,10 @@ consult the installation file that came with this distribution, or visit \n\ + init_request_info(TSRMLS_C); + CG(interactive) = 0; + ++#if PHP_FASTCGI_PM ++ if (fpm) fpm_request_info(); ++#endif ++ + if (!cgi + #if PHP_FASTCGI + && !fastcgi +@@ -1994,6 +2111,10 @@ consult the installation file that came with this distribution, or visit \n\ + } + } + ++#if PHP_FASTCGI_PM ++ if (fpm) fpm_request_executing(); ++#endif ++ + switch (behavior) { + case PHP_MODE_STANDARD: + php_execute_script(&file_handle TSRMLS_CC); +@@ -2046,6 +2167,10 @@ consult the installation file that came with this distribution, or visit \n\ + + #if PHP_FASTCGI + fastcgi_request_done: ++ ++ if (request_body_fd != -1) close(request_body_fd); ++ ++ request_body_fd = -2; + #endif + { + char *path_translated; +@@ -2059,6 +2184,16 @@ fastcgi_request_done: + SG(request_info).path_translated = path_translated; + } + ++ if (EG(exit_status) == 255) { ++ if (CGIG(error_header) && *CGIG(error_header)) { ++ sapi_header_line ctr = {0}; ++ ++ ctr.line = CGIG(error_header); ++ ctr.line_len = strlen(CGIG(error_header)); ++ sapi_header_op(SAPI_HEADER_REPLACE, &ctr TSRMLS_CC); ++ } ++ } ++ + php_request_shutdown((void *) 0); + if (exit_status == 0) { + exit_status = EG(exit_status); +@@ -2096,15 +2231,20 @@ fastcgi_request_done: + if (bindpath) { + free(bindpath); + } +- if (max_requests != 1) { +- /* no need to return exit_status of the last request */ +- exit_status = 0; +- } + break; + } + /* end of fastcgi loop */ + } + fcgi_shutdown(); ++ ++ if (fcgi_in_shutdown() || /* graceful shutdown by a signal */ ++ (max_requests && (requests == max_requests)) /* we were told to process max_requests and we are done */ ++ ) { ++ exit_status = 0; ++ } ++ else { ++ exit_status = 255; ++ } + #endif + + if (cgi_sapi_module.php_ini_path_override) { +diff --git a/sapi/cgi/config9.m4 b/sapi/cgi/config9.m4 +index 4ff90fd..fdf409b 100644 +--- a/sapi/cgi/config9.m4 ++++ b/sapi/cgi/config9.m4 +@@ -22,6 +22,10 @@ PHP_ARG_ENABLE(path-info-check,, + [ --disable-path-info-check CGI: If this is disabled, paths such as + /info.php/test?a=b will fail to work], yes, no) + ++PHP_ARG_ENABLE(fpm,, ++[ --enable-fpm FastCGI: If this is enabled, the fastcgi support ++ will include experimental process manager code], no, no) ++ + dnl + dnl CGI setup + dnl +@@ -54,6 +58,20 @@ if test "$PHP_SAPI" = "default"; then + AC_DEFINE_UNQUOTED(PHP_FASTCGI, $PHP_ENABLE_FASTCGI, [ ]) + AC_MSG_RESULT($PHP_FASTCGI) + ++ dnl --enable-fpm ++ if test "$PHP_FASTCGI" = "yes"; then ++ AC_MSG_CHECKING(whether to enable FastCGI Process Manager) ++ if test "$PHP_FPM" = "yes"; then ++ PHP_FASTCGI_PM=1 ++ else ++ PHP_FASTCGI_PM=0 ++ fi ++ AC_MSG_RESULT($PHP_FPM) ++ else ++ PHP_FASTCGI_PM=0 ++ fi ++ AC_DEFINE_UNQUOTED(PHP_FASTCGI_PM, $PHP_FASTCGI_PM, [Is experimental fastcgi process manager code activated]) ++ + dnl --enable-force-cgi-redirect + AC_MSG_CHECKING(whether to force Apache CGI redirect) + if test "$PHP_FORCE_CGI_REDIRECT" = "yes"; then +@@ -93,10 +111,10 @@ if test "$PHP_SAPI" = "default"; then + BUILD_CGI="echo '\#! .' > php.sym && echo >>php.sym && nm -BCpg \`echo \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) | sed 's/\([A-Za-z0-9_]*\)\.lo/\1.o/g'\` | \$(AWK) '{ if (((\$\$2 == \"T\") || (\$\$2 == \"D\") || (\$\$2 == \"B\")) && (substr(\$\$3,1,1) != \".\")) { print \$\$3 } }' | sort -u >> php.sym && \$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) -Wl,-brtl -Wl,-bE:php.sym \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + ;; + *darwin*) +- BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_SAPI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" ++ BUILD_CGI="\$(CC) \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(NATIVE_RPATHS) \$(PHP_GLOBAL_OBJS:.lo=.o) \$(PHP_SAPI_OBJS:.lo=.o) \$(PHP_FRAMEWORKS) \$(EXTRA_LIBS) \$(SAPI_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + ;; + *) +- BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" ++ BUILD_CGI="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN) \$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS) \$(PHP_SAPI_OBJS) \$(EXTRA_LIBS) \$(SAPI_EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o \$(SAPI_CGI_PATH)" + ;; + esac + +diff --git a/sapi/cgi/fastcgi.c b/sapi/cgi/fastcgi.c +index 68b7e21..bcc0e7e 100644 +--- a/sapi/cgi/fastcgi.c ++++ b/sapi/cgi/fastcgi.c +@@ -27,6 +27,11 @@ + #include + #include + ++#if PHP_FASTCGI_PM ++#include "fpm/fpm.h" ++#include "fpm/fpm_request.h" ++#endif ++ + #ifdef _WIN32 + + #include +@@ -234,6 +239,8 @@ int fcgi_init(void) + } else { + return is_fastcgi = 0; + } ++ ++ fcgi_set_allowed_clients(getenv("FCGI_WEB_SERVER_ADDRS")); + #endif + } + return is_fastcgi; +@@ -249,14 +256,26 @@ int fcgi_is_fastcgi(void) + } + } + ++void fcgi_set_is_fastcgi(int new_value) ++{ ++ is_fastcgi = new_value; ++} ++ ++void fcgi_set_in_shutdown(int new_value) ++{ ++ in_shutdown = new_value; ++} ++ + void fcgi_shutdown(void) + { + if (is_initialized) { + zend_hash_destroy(&fcgi_mgmt_vars); + } + is_fastcgi = 0; ++ + if (allowed_clients) { + free(allowed_clients); ++ allowed_clients = 0; + } + } + +@@ -330,6 +349,41 @@ out_fail: + } + #endif + ++void fcgi_set_allowed_clients(char *ip) ++{ ++ char *cur, *end; ++ int n; ++ ++ if (ip) { ++ ip = strdup(ip); ++ cur = ip; ++ n = 0; ++ while (*cur) { ++ if (*cur == ',') n++; ++ cur++; ++ } ++ if (allowed_clients) free(allowed_clients); ++ allowed_clients = malloc(sizeof(in_addr_t) * (n+2)); ++ n = 0; ++ cur = ip; ++ while (cur) { ++ end = strchr(cur, ','); ++ if (end) { ++ *end = 0; ++ end++; ++ } ++ allowed_clients[n] = inet_addr(cur); ++ if (allowed_clients[n] == INADDR_NONE) { ++ fprintf(stderr, "Wrong IP address '%s' in FCGI_WEB_SERVER_ADDRS\n", cur); ++ } ++ n++; ++ cur = end; ++ } ++ allowed_clients[n] = INADDR_NONE; ++ free(ip); ++ } ++} ++ + static int is_port_number(const char *bindpath) + { + while (*bindpath) { +@@ -458,38 +512,6 @@ int fcgi_listen(const char *path, int backlog) + + if (!tcp) { + chmod(path, 0777); +- } else { +- char *ip = getenv("FCGI_WEB_SERVER_ADDRS"); +- char *cur, *end; +- int n; +- +- if (ip) { +- ip = strdup(ip); +- cur = ip; +- n = 0; +- while (*cur) { +- if (*cur == ',') n++; +- cur++; +- } +- allowed_clients = malloc(sizeof(in_addr_t) * (n+2)); +- n = 0; +- cur = ip; +- while (cur) { +- end = strchr(cur, ','); +- if (end) { +- *end = 0; +- end++; +- } +- allowed_clients[n] = inet_addr(cur); +- if (allowed_clients[n] == INADDR_NONE) { +- fprintf(stderr, "Wrong IP address '%s' in FCGI_WEB_SERVER_ADDRS\n", cur); +- } +- n++; +- cur = end; +- } +- allowed_clients[n] = INADDR_NONE; +- free(ip); +- } + } + + if (!is_initialized) { +@@ -866,7 +888,7 @@ int fcgi_read(fcgi_request *req, char *str, int len) + return n; + } + +-static inline void fcgi_close(fcgi_request *req, int force, int destroy) ++void fcgi_close(fcgi_request *req, int force, int destroy) + { + if (destroy) { + zend_hash_destroy(&req->env); +@@ -906,6 +928,10 @@ static inline void fcgi_close(fcgi_request *req, int force, int destroy) + close(req->fd); + #endif + req->fd = -1; ++ ++#if PHP_FASTCGI_PM ++ if (fpm) fpm_request_finished(); ++#endif + } + } + +@@ -953,6 +979,10 @@ int fcgi_accept_request(fcgi_request *req) + sa_t sa; + socklen_t len = sizeof(sa); + ++#if PHP_FASTCGI_PM ++ if (fpm) fpm_request_accepting(); ++#endif ++ + FCGI_LOCK(req->listen_socket); + req->fd = accept(listen_socket, (struct sockaddr *)&sa, &len); + FCGI_UNLOCK(req->listen_socket); +@@ -988,6 +1018,11 @@ int fcgi_accept_request(fcgi_request *req) + break; + #else + if (req->fd >= 0) { ++ ++#if PHP_FASTCGI_PM ++ if (fpm) fpm_request_reading_headers(); ++#endif ++ + #if defined(HAVE_SYS_POLL_H) && defined(HAVE_POLL) + struct pollfd fds; + int ret; +diff --git a/sapi/cgi/fastcgi.h b/sapi/cgi/fastcgi.h +index c095c49..a3b3832 100644 +--- a/sapi/cgi/fastcgi.h ++++ b/sapi/cgi/fastcgi.h +@@ -114,6 +114,9 @@ typedef struct _fcgi_request { + int fcgi_init(void); + void fcgi_shutdown(void); + int fcgi_is_fastcgi(void); ++void fcgi_set_is_fastcgi(int); ++void fcgi_set_in_shutdown(int); ++void fcgi_set_allowed_clients(char *); + int fcgi_in_shutdown(void); + int fcgi_listen(const char *path, int backlog); + void fcgi_init_request(fcgi_request *req, int listen_socket); +@@ -128,6 +131,8 @@ int fcgi_read(fcgi_request *req, char *str, int len); + int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len); + int fcgi_flush(fcgi_request *req, int close); + ++void fcgi_close(fcgi_request *req, int force, int destroy); ++ + #ifdef PHP_WIN32 + void fcgi_impersonate(void); + #endif +diff --git a/sapi/cgi/fpm/Makefile.frag b/sapi/cgi/fpm/Makefile.frag +new file mode 100644 +index 0000000..15e6637 +--- /dev/null ++++ b/sapi/cgi/fpm/Makefile.frag +@@ -0,0 +1,21 @@ ++ ++install-fpm: sapi/cgi/fpm/php-fpm.conf sapi/cgi/fpm/php-fpm ++ @echo "Installing FPM config: $(INSTALL_ROOT)$(php_fpm_conf_path)" ++ -@$(mkinstalldirs) \ ++ $(INSTALL_ROOT)$(prefix)/sbin \ ++ `dirname "$(INSTALL_ROOT)$(php_fpm_conf_path)"` \ ++ `dirname "$(INSTALL_ROOT)$(php_fpm_log_path)"` \ ++ `dirname "$(INSTALL_ROOT)$(php_fpm_pid_path)"` ++ -@if test -r "$(INSTALL_ROOT)$(php_fpm_conf_path)" ; then \ ++ dest=`basename "$(php_fpm_conf_path)"`.default ; \ ++ echo " (installing as $$dest)" ; \ ++ else \ ++ dest=`basename "$(php_fpm_conf_path)"` ; \ ++ fi ; \ ++ $(INSTALL_DATA) $(top_builddir)/sapi/cgi/fpm/php-fpm.conf $(INSTALL_ROOT)`dirname "$(php_fpm_conf_path)"`/$$dest ++ @echo "Installing init.d script: $(INSTALL_ROOT)$(prefix)/sbin/php-fpm" ++ -@$(INSTALL) -m 0755 $(top_builddir)/sapi/cgi/fpm/php-fpm $(INSTALL_ROOT)$(prefix)/sbin/php-fpm ++ ++$(top_builddir)/libevent/libevent.a: $(top_builddir)/libevent/Makefile ++ cd $(top_builddir)/libevent && $(MAKE) libevent.a ++ +diff --git a/sapi/cgi/fpm/acinclude.m4 b/sapi/cgi/fpm/acinclude.m4 +new file mode 100644 +index 0000000..e4d1f3e +--- /dev/null ++++ b/sapi/cgi/fpm/acinclude.m4 +@@ -0,0 +1,377 @@ ++ ++AC_DEFUN([AC_FPM_CHECK_FUNC], ++[ ++ SAVED_CFLAGS="$CFLAGS" ++ CFLAGS="$CFLAGS $2" ++ SAVED_LIBS="$LIBS" ++ LIBS="$LIBS $3" ++ ++ AC_CHECK_FUNC([$1],[$4],[$5]) ++ ++ CFLAGS="$SAVED_CFLAGS" ++ LIBS="$SAVED_LIBS" ++]) ++ ++AC_DEFUN([AC_FPM_LIBEVENT], ++[ ++ AC_ARG_WITH([libevent], ++ [ --with-libevent=DIR FPM: libevent install directory]) ++ ++ LIBEVENT_CFLAGS="" ++ LIBEVENT_LIBS="-levent" ++ LIBEVENT_INCLUDE_PATH="" ++ ++ if test "$with_libevent" != "no" -a -n "$with_libevent"; then ++ LIBEVENT_CFLAGS="-I$with_libevent/include" ++ LIBEVENT_LIBS="-L$with_libevent/lib $LIBEVENT_LIBS" ++ LIBEVENT_INCLUDE_PATH="$with_libevent/include" ++ fi ++ ++ AC_MSG_CHECKING([for event.h]) ++ ++ found=no ++ ++ for dir in "$LIBEVENT_INCLUDE_PATH" /usr/include ; do ++ if test -r "$dir/event.h" ; then ++ found=yes ++ break ++ fi ++ done ++ ++ AC_MSG_RESULT([$found]) ++ ++ AC_FPM_CHECK_FUNC([event_set], [$LIBEVENT_CFLAGS], [$LIBEVENT_LIBS], , ++ [AC_MSG_ERROR([Failed to link with libevent. Perhaps --with-libevent=DIR option could help.])]) ++ ++ AC_FPM_CHECK_FUNC([event_base_free], [$LIBEVENT_CFLAGS], [$LIBEVENT_LIBS], , ++ [AC_MSG_ERROR([You have too old version. libevent version >= 1.2 is required.])]) ++ ++]) ++ ++AC_DEFUN([AC_FPM_LIBXML], ++[ ++ AC_MSG_RESULT([checking for XML configuration]) ++ ++ AC_ARG_WITH(xml-config, ++ [ --with-xml-config=PATH FPM: use xml-config in PATH to find libxml], ++ [XMLCONFIG="$withval"], ++ [AC_PATH_PROGS(XMLCONFIG, [xml2-config xml-config], "")] ++ ) ++ ++ if test "x$XMLCONFIG" = "x"; then ++ AC_MSG_ERROR([XML configuration could not be found]) ++ else ++ AC_MSG_CHECKING([for libxml library]) ++ ++ if test ! -x "$XMLCONFIG"; then ++ AC_MSG_ERROR([$XMLCONFIG cannot be executed]) ++ fi ++ ++ LIBXML_LIBS="`$XMLCONFIG --libs`" ++ LIBXML_CFLAGS="`$XMLCONFIG --cflags`" ++ LIBXML_VERSION="`$XMLCONFIG --version`" ++ ++ AC_MSG_RESULT([yes, $LIBXML_VERSION]) ++ ++ AC_FPM_CHECK_FUNC([xmlParseFile], [$LIBXML_CFLAGS], [$LIBXML_LIBS], , ++ [AC_MSG_ERROR([Failed to link with libxml])]) ++ ++ AC_DEFINE(HAVE_LIBXML, 1, [do we have libxml?]) ++ fi ++]) ++ ++AC_DEFUN([AC_FPM_JUDY], ++[ ++ AC_ARG_WITH([Judy], ++ [ --with-Judy=DIR FPM: Judy install directory]) ++ ++ JUDY_CFLAGS="" ++ JUDY_LIBS="-lJudy" ++ JUDY_INCLUDE_PATH="" ++ ++ if test "$with_Judy" != "no" -a -n "$with_Judy"; then ++ JUDY_INCLUDE_PATH="$with_Judy/include" ++ JUDY_CFLAGS="-I$with_Judy/include $JUDY_CFLAGS" ++ JUDY_LIBS="-L$with_Judy/lib $JUDY_LIBS" ++ fi ++ ++ AC_MSG_CHECKING([for Judy.h]) ++ ++ found=no ++ ++ for dir in "$JUDY_INCLUDE_PATH" /usr/include ; do ++ if test -r "$dir/Judy.h" ; then ++ found=yes ++ break ++ fi ++ done ++ ++ AC_MSG_RESULT([$found]) ++ ++ AC_FPM_CHECK_FUNC([JudyLCount], [$JUDY_CFLAGS], [$JUDY_LIBS], , ++ [AC_MSG_ERROR([Failed to link with Judy])]) ++ ++]) ++ ++AC_DEFUN([AC_FPM_CLOCK], ++[ ++ have_clock_gettime=no ++ ++ AC_MSG_CHECKING([for clock_gettime]) ++ ++ AC_TRY_LINK([ #include ], [struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts);], [ ++ have_clock_gettime=yes ++ AC_MSG_RESULT([yes]) ++ ], [ ++ AC_MSG_RESULT([no]) ++ ]) ++ ++ if test "$have_clock_gettime" = "no"; then ++ AC_MSG_CHECKING([for clock_gettime in -lrt]) ++ ++ SAVED_LIBS="$LIBS" ++ LIBS="$LIBS -lrt" ++ ++ AC_TRY_LINK([ #include ], [struct timespec ts; clock_gettime(CLOCK_MONOTONIC, &ts);], [ ++ have_clock_gettime=yes ++ AC_MSG_RESULT([yes]) ++ ], [ ++ LIBS="$SAVED_LIBS" ++ AC_MSG_RESULT([no]) ++ ]) ++ fi ++ ++ if test "$have_clock_gettime" = "yes"; then ++ AC_DEFINE([HAVE_CLOCK_GETTIME], 1, [do we have clock_gettime?]) ++ fi ++ ++ have_clock_get_time=no ++ ++ if test "$have_clock_gettime" = "no"; then ++ AC_MSG_CHECKING([for clock_get_time]) ++ ++ AC_TRY_RUN([ #include ++ #include ++ #include ++ ++ int main() ++ { ++ kern_return_t ret; clock_serv_t aClock; mach_timespec_t aTime; ++ ret = host_get_clock_service(mach_host_self(), REALTIME_CLOCK, &aClock); ++ ++ if (ret != KERN_SUCCESS) { ++ return 1; ++ } ++ ++ ret = clock_get_time(aClock, &aTime); ++ if (ret != KERN_SUCCESS) { ++ return 2; ++ } ++ ++ return 0; ++ } ++ ], [ ++ have_clock_get_time=yes ++ AC_MSG_RESULT([yes]) ++ ], [ ++ AC_MSG_RESULT([no]) ++ ]) ++ fi ++ ++ if test "$have_clock_get_time" = "yes"; then ++ AC_DEFINE([HAVE_CLOCK_GET_TIME], 1, [do we have clock_get_time?]) ++ fi ++]) ++ ++AC_DEFUN([AC_FPM_TRACE], ++[ ++ have_ptrace=no ++ have_broken_ptrace=no ++ ++ AC_MSG_CHECKING([for ptrace]) ++ ++ AC_TRY_COMPILE([ ++ #include ++ #include ], [ptrace(0, 0, (void *) 0, 0);], [ ++ have_ptrace=yes ++ AC_MSG_RESULT([yes]) ++ ], [ ++ AC_MSG_RESULT([no]) ++ ]) ++ ++ if test "$have_ptrace" = "yes"; then ++ AC_MSG_CHECKING([whether ptrace works]) ++ ++ AC_TRY_RUN([ ++ #include ++ #include ++ #include ++ #include ++ #include ++ #include ++ ++ #if !defined(PTRACE_ATTACH) && defined(PT_ATTACH) ++ #define PTRACE_ATTACH PT_ATTACH ++ #endif ++ ++ #if !defined(PTRACE_DETACH) && defined(PT_DETACH) ++ #define PTRACE_DETACH PT_DETACH ++ #endif ++ ++ #if !defined(PTRACE_PEEKDATA) && defined(PT_READ_D) ++ #define PTRACE_PEEKDATA PT_READ_D ++ #endif ++ ++ int main() ++ { ++ long v1 = (unsigned int) -1; /* copy will fail if sizeof(long) == 8 and we've got "int ptrace()" */ ++ long v2; ++ pid_t child; ++ int status; ++ ++ if ( (child = fork()) ) { /* parent */ ++ int ret = 0; ++ ++ if (0 > ptrace(PTRACE_ATTACH, child, 0, 0)) { ++ return 1; ++ } ++ ++ waitpid(child, &status, 0); ++ ++ #ifdef PT_IO ++ struct ptrace_io_desc ptio = { ++ .piod_op = PIOD_READ_D, ++ .piod_offs = &v1, ++ .piod_addr = &v2, ++ .piod_len = sizeof(v1) ++ }; ++ ++ if (0 > ptrace(PT_IO, child, (void *) &ptio, 0)) { ++ ret = 1; ++ } ++ #else ++ errno = 0; ++ ++ v2 = ptrace(PTRACE_PEEKDATA, child, (void *) &v1, 0); ++ ++ if (errno) { ++ ret = 1; ++ } ++ #endif ++ ptrace(PTRACE_DETACH, child, (void *) 1, 0); ++ ++ kill(child, SIGKILL); ++ ++ return ret ? ret : (v1 != v2); ++ } ++ else { /* child */ ++ sleep(10); ++ return 0; ++ } ++ } ++ ], [ ++ AC_MSG_RESULT([yes]) ++ ], [ ++ have_ptrace=no ++ have_broken_ptrace=yes ++ AC_MSG_RESULT([no]) ++ ]) ++ fi ++ ++ if test "$have_ptrace" = "yes"; then ++ AC_DEFINE([HAVE_PTRACE], 1, [do we have ptrace?]) ++ fi ++ ++ have_mach_vm_read=no ++ ++ if test "$have_broken_ptrace" = "yes"; then ++ AC_MSG_CHECKING([for mach_vm_read]) ++ ++ AC_TRY_COMPILE([ #include ++ #include ++ ], [ ++ mach_vm_read((vm_map_t)0, (mach_vm_address_t)0, (mach_vm_size_t)0, (vm_offset_t *)0, (mach_msg_type_number_t*)0); ++ ], [ ++ have_mach_vm_read=yes ++ AC_MSG_RESULT([yes]) ++ ], [ ++ AC_MSG_RESULT([no]) ++ ]) ++ fi ++ ++ if test "$have_mach_vm_read" = "yes"; then ++ AC_DEFINE([HAVE_MACH_VM_READ], 1, [do we have mach_vm_read?]) ++ fi ++ ++ proc_mem_file="" ++ ++ if test -r /proc/$$/mem ; then ++ proc_mem_file="mem" ++ else ++ if test -r /proc/$$/as ; then ++ proc_mem_file="as" ++ fi ++ fi ++ ++ if test -n "$proc_mem_file" ; then ++ AC_MSG_CHECKING([for proc mem file]) ++ ++ AC_TRY_RUN([ ++ #define _GNU_SOURCE ++ #define _FILE_OFFSET_BITS 64 ++ #include ++ #include ++ #include ++ #include ++ #include ++ #include ++ int main() ++ { ++ long v1 = (unsigned int) -1, v2 = 0; ++ char buf[128]; ++ int fd; ++ sprintf(buf, "/proc/%d/$proc_mem_file", getpid()); ++ fd = open(buf, O_RDONLY); ++ if (0 > fd) { ++ return 1; ++ } ++ if (sizeof(long) != pread(fd, &v2, sizeof(long), (uintptr_t) &v1)) { ++ close(fd); ++ return 1; ++ } ++ close(fd); ++ return v1 != v2; ++ } ++ ], [ ++ AC_MSG_RESULT([$proc_mem_file]) ++ ], [ ++ proc_mem_file="" ++ AC_MSG_RESULT([no]) ++ ]) ++ fi ++ ++ if test -n "$proc_mem_file"; then ++ AC_DEFINE_UNQUOTED([PROC_MEM_FILE], "$proc_mem_file", [/proc/pid/mem interface]) ++ fi ++ ++ if test "$have_ptrace" = "yes"; then ++ FPM_SOURCES="$FPM_SOURCES fpm_trace.c fpm_trace_ptrace.c" ++ elif test -n "$proc_mem_file"; then ++ FPM_SOURCES="$FPM_SOURCES fpm_trace.c fpm_trace_pread.c" ++ elif test "$have_mach_vm_read" = "yes" ; then ++ FPM_SOURCES="$FPM_SOURCES fpm_trace.c fpm_trace_mach.c" ++ fi ++ ++]) ++ ++AC_DEFUN([AC_FPM_PRCTL], ++[ ++ AC_MSG_CHECKING([for prctl]) ++ ++ AC_TRY_COMPILE([ #include ], [prctl(0, 0, 0, 0, 0);], [ ++ AC_DEFINE([HAVE_PRCTL], 1, [do we have prctl?]) ++ AC_MSG_RESULT([yes]) ++ ], [ ++ AC_MSG_RESULT([no]) ++ ]) ++]) +diff --git a/sapi/cgi/fpm/conf/php-fpm.conf.in b/sapi/cgi/fpm/conf/php-fpm.conf.in +new file mode 100644 +index 0000000..a54b0c2 +--- /dev/null ++++ b/sapi/cgi/fpm/conf/php-fpm.conf.in +@@ -0,0 +1,156 @@ ++ ++ ++ ++ All relative paths in this config are relative to php's install prefix ++ ++
++ ++ Pid file ++ @php_fpm_pid_path@ ++ ++ Error log file ++ @php_fpm_log_path@ ++ ++ Log level ++ notice ++ ++ When this amount of php processes exited with SIGSEGV or SIGBUS ... ++ 10 ++ ++ ... in a less than this interval of time, a graceful restart will be initiated. ++ Useful to work around accidental curruptions in accelerator's shared memory. ++ 1m ++ ++ Time limit on waiting child's reaction on signals from master ++ 5s ++ ++ Set to 'no' to debug fpm ++ yes ++ ++
++ ++ ++ ++
++ ++ Name of pool. Used in logs and stats. ++ default ++ ++ Address to accept fastcgi requests on. ++ Valid syntax is 'ip.ad.re.ss:port' or just 'port' or '/path/to/unix/socket' ++ 127.0.0.1:9000 ++ ++ ++ ++ Set listen(2) backlog ++ -1 ++ ++ Set permissions for unix socket, if one used. ++ In Linux read/write permissions must be set in order to allow connections from web server. ++ Many BSD-derrived systems allow connections regardless of permissions. ++ ++ ++ 0666 ++ ++ ++ Additional php.ini defines, specific to this pool of workers. ++ ++ ++ ++ ++ ++ Unix user of processes ++ ++ ++ Unix group of processes ++ ++ ++ Process manager settings ++ ++ ++ Sets style of controling worker process count. ++ Valid values are 'static' and 'apache-like' ++ static ++ ++ Sets the limit on the number of simultaneous requests that will be served. ++ Equivalent to Apache MaxClients directive. ++ Equivalent to PHP_FCGI_CHILDREN environment in original php.fcgi ++ Used with any pm_style. ++ 5 ++ ++ Settings group for 'apache-like' pm style ++ ++ ++ Sets the number of server processes created on startup. ++ Used only when 'apache-like' pm_style is selected ++ 20 ++ ++ Sets the desired minimum number of idle server processes. ++ Used only when 'apache-like' pm_style is selected ++ 5 ++ ++ Sets the desired maximum number of idle server processes. ++ Used only when 'apache-like' pm_style is selected ++ 35 ++ ++ ++ ++ ++ ++ The timeout (in seconds) for serving a single request after which the worker process will be terminated ++ Should be used when 'max_execution_time' ini option does not stop script execution for some reason ++ '0s' means 'off' ++ 0s ++ ++ The timeout (in seconds) for serving of single request after which a php backtrace will be dumped to slow.log file ++ '0s' means 'off' ++ 0s ++ ++ The log file for slow requests ++ logs/slow.log ++ ++ Set open file desc rlimit ++ 1024 ++ ++ Set max core size rlimit ++ 0 ++ ++ Chroot to this directory at the start, absolute path ++ ++ ++ Chdir to this directory at the start, absolute path ++ ++ ++ Redirect workers' stdout and stderr into main error log. ++ If not set, they will be redirected to /dev/null, according to FastCGI specs ++ yes ++ ++ How much requests each process should execute before respawn. ++ Useful to work around memory leaks in 3rd party libraries. ++ For endless request processing please specify 0 ++ Equivalent to PHP_FCGI_MAX_REQUESTS ++ 500 ++ ++ Comma separated list of ipv4 addresses of FastCGI clients that allowed to connect. ++ Equivalent to FCGI_WEB_SERVER_ADDRS environment in original php.fcgi (5.2.2+) ++ Makes sense only with AF_INET listening socket. ++ 127.0.0.1 ++ ++ Pass environment variables like LD_LIBRARY_PATH ++ All $VARIABLEs are taken from current environment ++ ++ $HOSTNAME ++ /usr/local/bin:/usr/bin:/bin ++ /tmp ++ /tmp ++ /tmp ++ $OSTYPE ++ $MACHTYPE ++ 2 ++ ++ ++
++ ++
++ ++
+diff --git a/sapi/cgi/fpm/config.m4 b/sapi/cgi/fpm/config.m4 +new file mode 100644 +index 0000000..65ea5e2 +--- /dev/null ++++ b/sapi/cgi/fpm/config.m4 +@@ -0,0 +1,141 @@ ++ ++FPM_VERSION="0.5.14" ++ ++PHP_ARG_WITH(fpm-conf, for php-fpm config file path, ++[ --with-fpm-conf=PATH Set the path for php-fpm configuration file [PREFIX/etc/php-fpm.conf]], \$prefix/etc/php-fpm.conf, no) ++ ++PHP_ARG_WITH(fpm-log, for php-fpm log file path, ++[ --with-fpm-log=PATH Set the path for php-fpm log file [PREFIX/logs/php-fpm.log]], \$prefix/logs/php-fpm.log, no) ++ ++PHP_ARG_WITH(fpm-pid, for php-fpm pid file path, ++[ --with-fpm-pid=PATH Set the path for php-fpm pid file [PREFIX/logs/php-fpm.pid]], \$prefix/logs/php-fpm.pid, no) ++ ++FPM_SOURCES="fpm.c \ ++ fpm_conf.c \ ++ fpm_signals.c \ ++ fpm_children.c \ ++ fpm_worker_pool.c \ ++ fpm_unix.c \ ++ fpm_cleanup.c \ ++ fpm_sockets.c \ ++ fpm_stdio.c \ ++ fpm_env.c \ ++ fpm_events.c \ ++ fpm_php.c \ ++ fpm_php_trace.c \ ++ fpm_process_ctl.c \ ++ fpm_request.c \ ++ fpm_clock.c \ ++ fpm_shm.c \ ++ fpm_shm_slots.c \ ++ xml_config.c \ ++ zlog.c" ++ ++dnl AC_FPM_LIBEVENT ++AC_FPM_LIBXML ++AC_FPM_PRCTL ++AC_FPM_CLOCK ++AC_FPM_TRACE ++dnl AC_FPM_JUDY ++ ++LIBEVENT_CFLAGS="-I$abs_srcdir/libevent" ++LIBEVENT_LIBS="$abs_builddir/libevent/libevent.a" ++ ++SAPI_EXTRA_DEPS="$LIBEVENT_LIBS" ++ ++FPM_CFLAGS="$LIBEVENT_CFLAGS $LIBXML_CFLAGS $JUDY_CFLAGS" ++ ++dnl FPM_CFLAGS="$FPM_CFLAGS -DJUDYERROR_NOTEST" # for Judy ++FPM_CFLAGS="$FPM_CFLAGS -I$abs_srcdir/sapi/cgi" # for fastcgi.h ++ ++if test "$ICC" = "yes" ; then ++ FPM_ADD_CFLAGS="-Wall -wd279,310,869,810,981" ++elif test "$GCC" = "yes" ; then ++ FPM_ADD_CFLAGS="-Wall -Wpointer-arith -Wno-unused-parameter -Wunused-variable -Wunused-value -fno-strict-aliasing" ++fi ++ ++if test -n "$FPM_WERROR" ; then ++ FPM_ADD_CFLAGS="$FPM_ADD_CFLAGS -Werror" ++fi ++ ++FPM_CFLAGS="$FPM_ADD_CFLAGS $FPM_CFLAGS" ++ ++PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/cgi/fpm/Makefile.frag) ++ ++PHP_ADD_SOURCES(sapi/cgi/fpm, $FPM_SOURCES, $FPM_CFLAGS, sapi) ++ ++PHP_ADD_BUILD_DIR(sapi/cgi/fpm) ++ ++install_fpm="install-fpm" ++ ++PHP_CONFIGURE_PART(Configuring libevent) ++ ++test -d "$abs_builddir/libevent" || mkdir -p $abs_builddir/libevent ++ ++dnl this is a bad hack ++ ++chmod +x "$abs_srcdir/libevent/configure" \ ++ "$abs_srcdir/libevent/depcomp" \ ++ "$abs_srcdir/libevent/install-sh" \ ++ "$abs_srcdir/libevent/missing" ++ ++libevent_configure="cd $abs_builddir/libevent ; CFLAGS=\"$CFLAGS $GCC_CFLAGS\" $abs_srcdir/libevent/configure --disable-shared" ++ ++(eval $libevent_configure) ++ ++if test ! -f "$abs_builddir/libevent/Makefile" ; then ++ echo "Failed to configure libevent" >&2 ++ exit 1 ++fi ++ ++dnl another hack for stealing libevent dependant library list ++ ++LIBEVENT_LIBS="$LIBEVENT_LIBS `echo "@LIBS@" | $abs_builddir/libevent/config.status --file=-:-`" ++ ++SAPI_EXTRA_LIBS="$LIBEVENT_LIBS $LIBXML_LIBS $JUDY_LIBS" ++ ++ ++if test "$prefix" = "NONE" ; then ++ fpm_prefix=/usr/local ++else ++ fpm_prefix="$prefix" ++fi ++ ++if test "$PHP_FPM_CONF" = "\$prefix/etc/php-fpm.conf" ; then ++ php_fpm_conf_path="$fpm_prefix/etc/php-fpm.conf" ++else ++ php_fpm_conf_path="$PHP_FPM_CONF" ++fi ++ ++if test "$PHP_FPM_LOG" = "\$prefix/logs/php-fpm.log" ; then ++ php_fpm_log_path="$fpm_prefix/logs/php-fpm.log" ++else ++ php_fpm_log_path="$PHP_FPM_LOG" ++fi ++ ++if test "$PHP_FPM_PID" = "\$prefix/logs/php-fpm.pid" ; then ++ php_fpm_pid_path="$fpm_prefix/logs/php-fpm.pid" ++else ++ php_fpm_pid_path="$PHP_FPM_PID" ++fi ++ ++ ++if grep nobody /etc/group >/dev/null 2>&1; then ++ php_fpm_group=nobody ++else ++ if grep nogroup /etc/group >/dev/null 2>&1; then ++ php_fpm_group=nogroup ++ else ++ php_fpm_group=nobody ++ fi ++fi ++ ++PHP_SUBST_OLD(php_fpm_conf_path) ++PHP_SUBST_OLD(php_fpm_log_path) ++PHP_SUBST_OLD(php_fpm_pid_path) ++PHP_SUBST_OLD(php_fpm_group) ++PHP_SUBST_OLD(FPM_VERSION) ++ ++PHP_OUTPUT(sapi/cgi/fpm/fpm_autoconf.h) ++PHP_OUTPUT(sapi/cgi/fpm/php-fpm.conf:sapi/cgi/fpm/conf/php-fpm.conf.in) ++PHP_OUTPUT(sapi/cgi/fpm/php-fpm:sapi/cgi/fpm/init.d/php-fpm.in) +diff --git a/sapi/cgi/fpm/fpm.c b/sapi/cgi/fpm/fpm.c +new file mode 100644 +index 0000000..9db2c9b +--- /dev/null ++++ b/sapi/cgi/fpm/fpm.c +@@ -0,0 +1,84 @@ ++ ++ /* $Id: fpm.c,v 1.23 2008/07/20 16:38:31 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include /* for exit */ ++ ++#include "fpm.h" ++#include "fpm_children.h" ++#include "fpm_signals.h" ++#include "fpm_env.h" ++#include "fpm_events.h" ++#include "fpm_cleanup.h" ++#include "fpm_php.h" ++#include "fpm_sockets.h" ++#include "fpm_unix.h" ++#include "fpm_process_ctl.h" ++#include "fpm_conf.h" ++#include "fpm_worker_pool.h" ++#include "fpm_stdio.h" ++#include "zlog.h" ++ ++int fpm; ++ ++struct fpm_globals_s fpm_globals; ++ ++int fpm_init(int argc, char **argv, char *config) ++{ ++ fpm_globals.argc = argc; ++ fpm_globals.argv = argv; ++ fpm_globals.config = config; ++ ++ if (0 > fpm_php_init_main() || ++ 0 > fpm_stdio_init_main() || ++ 0 > fpm_conf_init_main() || ++ 0 > fpm_unix_init_main() || ++ 0 > fpm_env_init_main() || ++ 0 > fpm_signals_init_main() || ++ 0 > fpm_pctl_init_main() || ++ 0 > fpm_children_init_main() || ++ 0 > fpm_sockets_init_main() || ++ 0 > fpm_worker_pool_init_main() || ++ 0 > fpm_event_init_main()) { ++ return -1; ++ } ++ ++ if (0 > fpm_conf_write_pid()) { ++ return -1; ++ } ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "fpm is running, pid %d", (int) fpm_globals.parent_pid); ++ ++ return 0; ++} ++ ++/* children: return listening socket ++ parent: never return */ ++int fpm_run(int *max_requests) ++{ ++ struct fpm_worker_pool_s *wp; ++ ++ /* create initial children in all pools */ ++ for (wp = fpm_worker_all_pools; wp; wp = wp->next) { ++ int is_parent; ++ ++ is_parent = fpm_children_create_initial(wp); ++ ++ if (!is_parent) { ++ goto run_child; ++ } ++ } ++ ++ /* run event loop forever */ ++ fpm_event_loop(); ++ ++run_child: /* only workers reach this point */ ++ ++ fpm_cleanups_run(FPM_CLEANUP_CHILD); ++ ++ *max_requests = fpm_globals.max_requests; ++ return fpm_globals.listening_socket; ++} ++ +diff --git a/sapi/cgi/fpm/fpm.h b/sapi/cgi/fpm/fpm.h +new file mode 100644 +index 0000000..eebd2dc +--- /dev/null ++++ b/sapi/cgi/fpm/fpm.h +@@ -0,0 +1,30 @@ ++ ++ /* $Id: fpm.h,v 1.13 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_H ++#define FPM_H 1 ++ ++#include ++ ++int fpm_run(int *max_requests); ++int fpm_init(int argc, char **argv, char *config); ++ ++struct fpm_globals_s { ++ pid_t parent_pid; ++ int argc; ++ char **argv; ++ char *config; ++ int running_children; ++ int error_log_fd; ++ int log_level; ++ int listening_socket; /* for this child */ ++ int max_requests; /* for this child */ ++ int is_child; ++}; ++ ++extern struct fpm_globals_s fpm_globals; ++ ++extern int fpm; ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_arrays.h b/sapi/cgi/fpm/fpm_arrays.h +new file mode 100644 +index 0000000..fee6661 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_arrays.h +@@ -0,0 +1,110 @@ ++ ++ /* $Id: fpm_arrays.h,v 1.2 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_ARRAYS_H ++#define FPM_ARRAYS_H 1 ++ ++#include ++#include ++ ++struct fpm_array_s { ++ void *data; ++ size_t sz; ++ size_t used; ++ size_t allocated; ++}; ++ ++static inline struct fpm_array_s *fpm_array_init(struct fpm_array_s *a, unsigned int sz, unsigned int initial_num) ++{ ++ void *allocated = 0; ++ ++ if (!a) { ++ a = malloc(sizeof(struct fpm_array_s)); ++ ++ if (!a) { ++ return 0; ++ } ++ ++ allocated = a; ++ } ++ ++ a->sz = sz; ++ ++ a->data = calloc(sz, initial_num); ++ ++ if (!a->data) { ++ free(allocated); ++ return 0; ++ } ++ ++ a->allocated = initial_num; ++ a->used = 0; ++ ++ return a; ++} ++ ++static inline void *fpm_array_item(struct fpm_array_s *a, unsigned int n) ++{ ++ char *ret; ++ ++ ret = (char *) a->data + a->sz * n; ++ ++ return ret; ++} ++ ++static inline void *fpm_array_item_last(struct fpm_array_s *a) ++{ ++ return fpm_array_item(a, a->used - 1); ++} ++ ++static inline int fpm_array_item_remove(struct fpm_array_s *a, unsigned int n) ++{ ++ int ret = -1; ++ ++ if (n < a->used - 1) { ++ void *last = fpm_array_item(a, a->used - 1); ++ void *to_remove = fpm_array_item(a, n); ++ ++ memcpy(to_remove, last, a->sz); ++ ++ ret = n; ++ } ++ ++ --a->used; ++ ++ return ret; ++} ++ ++static inline void *fpm_array_push(struct fpm_array_s *a) ++{ ++ void *ret; ++ ++ if (a->used == a->allocated) { ++ size_t new_allocated = a->allocated ? a->allocated * 2 : 20; ++ void *new_ptr = realloc(a->data, a->sz * new_allocated); ++ ++ if (!new_ptr) { ++ return 0; ++ } ++ ++ a->data = new_ptr; ++ a->allocated = new_allocated; ++ } ++ ++ ret = fpm_array_item(a, a->used); ++ ++ ++a->used; ++ ++ return ret; ++} ++ ++static inline void fpm_array_free(struct fpm_array_s *a) ++{ ++ free(a->data); ++ a->data = 0; ++ a->sz = 0; ++ a->used = a->allocated = 0; ++} ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_atomic.h b/sapi/cgi/fpm/fpm_atomic.h +new file mode 100644 +index 0000000..3334ae0 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_atomic.h +@@ -0,0 +1,85 @@ ++ ++ /* $Id: fpm_atomic.h,v 1.3 2008/09/18 23:34:11 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_ATOMIC_H ++#define FPM_ATOMIC_H 1 ++ ++#include ++#include ++ ++#if ( __i386__ || __i386 ) ++ ++typedef int32_t atomic_int_t; ++typedef uint32_t atomic_uint_t; ++typedef volatile atomic_uint_t atomic_t; ++ ++ ++static inline atomic_int_t atomic_fetch_add(atomic_t *value, atomic_int_t add) ++{ ++ __asm__ volatile ( "lock;" "xaddl %0, %1;" : ++ "+r" (add) : "m" (*value) : "memory"); ++ ++ return add; ++} ++ ++static inline atomic_uint_t atomic_cmp_set(atomic_t *lock, atomic_uint_t old, atomic_uint_t set) ++{ ++ unsigned char res; ++ ++ __asm__ volatile ( "lock;" "cmpxchgl %3, %1;" "sete %0;" : ++ "=a" (res) : "m" (*lock), "a" (old), "r" (set) : "memory"); ++ ++ return res; ++} ++ ++#elif ( __amd64__ || __amd64 ) ++ ++typedef int64_t atomic_int_t; ++typedef uint64_t atomic_uint_t; ++typedef volatile atomic_uint_t atomic_t; ++ ++static inline atomic_int_t atomic_fetch_add(atomic_t *value, atomic_int_t add) ++{ ++ __asm__ volatile ( "lock;" "xaddq %0, %1;" : ++ "+r" (add) : "m" (*value) : "memory"); ++ ++ return add; ++} ++ ++static inline atomic_uint_t atomic_cmp_set(atomic_t *lock, atomic_uint_t old, atomic_uint_t set) ++{ ++ unsigned char res; ++ ++ __asm__ volatile ( "lock;" "cmpxchgq %3, %1;" "sete %0;" : ++ "=a" (res) : "m" (*lock), "a" (old), "r" (set) : "memory"); ++ ++ return res; ++} ++ ++#else ++ ++#error unsupported processor. please write a patch and send it to me ++ ++#endif ++ ++static inline int fpm_spinlock(atomic_t *lock, int try_once) ++{ ++ if (try_once) { ++ return atomic_cmp_set(lock, 0, 1) ? 0 : -1; ++ } ++ ++ for (;;) { ++ ++ if (atomic_cmp_set(lock, 0, 1)) { ++ break; ++ } ++ ++ sched_yield(); ++ } ++ ++ return 0; ++} ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_autoconf.h.in b/sapi/cgi/fpm/fpm_autoconf.h.in +new file mode 100644 +index 0000000..d00c165 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_autoconf.h.in +@@ -0,0 +1,9 @@ ++ ++ /* $Id: fpm_autoconf.h.in,v 1.3 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#define PHP_FPM_VERSION "@FPM_VERSION@" ++#define PHP_FPM_CONF_PATH "@php_fpm_conf_path@" ++#define PHP_FPM_LOG_PATH "@php_fpm_log_path@" ++#define PHP_FPM_PID_PATH "@php_fpm_pid_path@" ++ +diff --git a/sapi/cgi/fpm/fpm_children.c b/sapi/cgi/fpm/fpm_children.c +new file mode 100644 +index 0000000..f586405 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_children.c +@@ -0,0 +1,385 @@ ++ ++ /* $Id: fpm_children.c,v 1.32.2.2 2008/12/13 03:21:18 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "fpm.h" ++#include "fpm_children.h" ++#include "fpm_signals.h" ++#include "fpm_worker_pool.h" ++#include "fpm_sockets.h" ++#include "fpm_process_ctl.h" ++#include "fpm_php.h" ++#include "fpm_conf.h" ++#include "fpm_cleanup.h" ++#include "fpm_events.h" ++#include "fpm_clock.h" ++#include "fpm_stdio.h" ++#include "fpm_unix.h" ++#include "fpm_env.h" ++#include "fpm_shm_slots.h" ++ ++#include "zlog.h" ++ ++static time_t *last_faults; ++static int fault; ++ ++static int fpm_children_make(struct fpm_worker_pool_s *wp, int in_event_loop); ++ ++static void fpm_children_cleanup(int which, void *arg) ++{ ++ free(last_faults); ++} ++ ++static struct fpm_child_s *fpm_child_alloc() ++{ ++ struct fpm_child_s *ret; ++ ++ ret = malloc(sizeof(struct fpm_child_s)); ++ ++ if (!ret) return 0; ++ ++ memset(ret, 0, sizeof(*ret)); ++ ++ return ret; ++} ++ ++static void fpm_child_free(struct fpm_child_s *child) ++{ ++ free(child); ++} ++ ++static void fpm_child_close(struct fpm_child_s *child, int in_event_loop) ++{ ++ if (child->fd_stdout != -1) { ++ if (in_event_loop) { ++ fpm_event_fire(&child->ev_stdout); ++ } ++ if (child->fd_stdout != -1) { ++ close(child->fd_stdout); ++ } ++ } ++ ++ if (child->fd_stderr != -1) { ++ if (in_event_loop) { ++ fpm_event_fire(&child->ev_stderr); ++ } ++ if (child->fd_stderr != -1) { ++ close(child->fd_stderr); ++ } ++ } ++ ++ fpm_child_free(child); ++} ++ ++static void fpm_child_link(struct fpm_child_s *child) ++{ ++ struct fpm_worker_pool_s *wp = child->wp; ++ ++ ++wp->running_children; ++ ++fpm_globals.running_children; ++ ++ child->next = wp->children; ++ if (child->next) child->next->prev = child; ++ child->prev = 0; ++ wp->children = child; ++} ++ ++static void fpm_child_unlink(struct fpm_child_s *child) ++{ ++ --child->wp->running_children; ++ --fpm_globals.running_children; ++ ++ if (child->prev) child->prev->next = child->next; ++ else child->wp->children = child->next; ++ if (child->next) child->next->prev = child->prev; ++ ++} ++ ++static struct fpm_child_s *fpm_child_find(pid_t pid) ++{ ++ struct fpm_worker_pool_s *wp; ++ struct fpm_child_s *child = 0; ++ ++ for (wp = fpm_worker_all_pools; wp; wp = wp->next) { ++ ++ for (child = wp->children; child; child = child->next) { ++ if (child->pid == pid) { ++ break; ++ } ++ } ++ ++ if (child) break; ++ } ++ ++ if (!child) { ++ return 0; ++ } ++ ++ return child; ++} ++ ++static void fpm_child_init(struct fpm_worker_pool_s *wp) ++{ ++ fpm_globals.max_requests = wp->config->max_requests; ++ ++ if (0 > fpm_stdio_init_child(wp) || ++ 0 > fpm_unix_init_child(wp) || ++ 0 > fpm_signals_init_child() || ++ 0 > fpm_env_init_child(wp) || ++ 0 > fpm_php_init_child(wp)) { ++ ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "child failed to initialize (pool %s)", wp->config->name); ++ exit(255); ++ } ++} ++ ++int fpm_children_free(struct fpm_child_s *child) ++{ ++ struct fpm_child_s *next; ++ ++ for (; child; child = next) { ++ next = child->next; ++ fpm_child_close(child, 0 /* in_event_loop */); ++ } ++ ++ return 0; ++} ++ ++void fpm_children_bury() ++{ ++ int status; ++ pid_t pid; ++ struct fpm_child_s *child; ++ ++ while ( (pid = waitpid(-1, &status, WNOHANG | WUNTRACED)) > 0) { ++ char buf[128]; ++ int severity = ZLOG_NOTICE; ++ ++ child = fpm_child_find(pid); ++ ++ if (WIFEXITED(status)) { ++ ++ snprintf(buf, sizeof(buf), "with code %d", WEXITSTATUS(status)); ++ ++ if (WEXITSTATUS(status) != 0) { ++ severity = ZLOG_WARNING; ++ } ++ ++ } ++ else if (WIFSIGNALED(status)) { ++ const char *signame = fpm_signal_names[WTERMSIG(status)]; ++ const char *have_core = WCOREDUMP(status) ? " (core dumped)" : ""; ++ ++ if (signame == NULL) { ++ signame = ""; ++ } ++ ++ snprintf(buf, sizeof(buf), "on signal %d %s%s", WTERMSIG(status), signame, have_core); ++ ++ if (WTERMSIG(status) != SIGQUIT) { /* possible request loss */ ++ severity = ZLOG_WARNING; ++ } ++ } ++ else if (WIFSTOPPED(status)) { ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "child %d stopped for tracing", (int) pid); ++ ++ if (child && child->tracer) { ++ child->tracer(child); ++ } ++ ++ continue; ++ } ++ ++ if (child) { ++ struct fpm_worker_pool_s *wp = child->wp; ++ struct timeval tv1, tv2; ++ ++ fpm_child_unlink(child); ++ ++ fpm_shm_slots_discard_slot(child); ++ ++ fpm_clock_get(&tv1); ++ ++ timersub(&tv1, &child->started, &tv2); ++ ++ zlog(ZLOG_STUFF, severity, "child %d (pool %s) exited %s after %ld.%06d seconds from start", (int) pid, ++ child->wp->config->name, buf, tv2.tv_sec, (int) tv2.tv_usec); ++ ++ fpm_child_close(child, 1 /* in event_loop */); ++ ++ fpm_pctl_child_exited(); ++ ++ if (last_faults && (WTERMSIG(status) == SIGSEGV || WTERMSIG(status) == SIGBUS)) { ++ time_t now = tv1.tv_sec; ++ int restart_condition = 1; ++ int i; ++ ++ last_faults[fault++] = now; ++ ++ if (fault == fpm_global_config.emergency_restart_threshold) { ++ fault = 0; ++ } ++ ++ for (i = 0; i < fpm_global_config.emergency_restart_threshold; i++) { ++ if (now - last_faults[i] > fpm_global_config.emergency_restart_interval) { ++ restart_condition = 0; ++ break; ++ } ++ } ++ ++ if (restart_condition) { ++ ++ zlog(ZLOG_STUFF, ZLOG_WARNING, "failed processes threshold (%d in %d sec) is reached, initiating reload", ++ fpm_global_config.emergency_restart_threshold, fpm_global_config.emergency_restart_interval); ++ ++ fpm_pctl(FPM_PCTL_STATE_RELOADING, FPM_PCTL_ACTION_SET); ++ } ++ } ++ ++ fpm_children_make(wp, 1 /* in event loop */); ++ ++ if (fpm_globals.is_child) { ++ break; ++ } ++ } ++ else { ++ zlog(ZLOG_STUFF, ZLOG_ALERT, "oops, unknown child exited %s", buf); ++ } ++ } ++ ++} ++ ++static struct fpm_child_s *fpm_resources_prepare(struct fpm_worker_pool_s *wp) ++{ ++ struct fpm_child_s *c; ++ ++ c = fpm_child_alloc(); ++ ++ if (!c) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "malloc failed (pool %s)", wp->config->name); ++ return 0; ++ } ++ ++ c->wp = wp; ++ c->fd_stdout = -1; c->fd_stderr = -1; ++ ++ if (0 > fpm_stdio_prepare_pipes(c)) { ++ fpm_child_free(c); ++ return 0; ++ } ++ ++ if (0 > fpm_shm_slots_prepare_slot(c)) { ++ fpm_stdio_discard_pipes(c); ++ fpm_child_free(c); ++ return 0; ++ } ++ ++ return c; ++} ++ ++static void fpm_resources_discard(struct fpm_child_s *child) ++{ ++ fpm_shm_slots_discard_slot(child); ++ fpm_stdio_discard_pipes(child); ++ fpm_child_free(child); ++} ++ ++static void fpm_child_resources_use(struct fpm_child_s *child) ++{ ++ fpm_shm_slots_child_use_slot(child); ++ fpm_stdio_child_use_pipes(child); ++ fpm_child_free(child); ++} ++ ++static void fpm_parent_resources_use(struct fpm_child_s *child) ++{ ++ fpm_shm_slots_parent_use_slot(child); ++ fpm_stdio_parent_use_pipes(child); ++ fpm_child_link(child); ++} ++ ++static int fpm_children_make(struct fpm_worker_pool_s *wp, int in_event_loop) ++{ ++ int enough = 0; ++ pid_t pid; ++ struct fpm_child_s *child; ++ ++ while (!enough && fpm_pctl_can_spawn_children() && wp->running_children < wp->config->pm->max_children) { ++ ++ child = fpm_resources_prepare(wp); ++ ++ if (!child) { ++ enough = 1; ++ break; ++ } ++ ++ pid = fork(); ++ ++ switch (pid) { ++ ++ case 0 : ++ fpm_child_resources_use(child); ++ fpm_globals.is_child = 1; ++ if (in_event_loop) { ++ fpm_event_exit_loop(); ++ } ++ fpm_child_init(wp); ++ return 0; ++ ++ case -1 : ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "fork() failed"); ++ enough = 1; ++ ++ fpm_resources_discard(child); ++ ++ break; /* dont try any more on error */ ++ ++ default : ++ child->pid = pid; ++ fpm_clock_get(&child->started); ++ fpm_parent_resources_use(child); ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "child %d (pool %s) started", (int) pid, wp->config->name); ++ } ++ ++ } ++ ++ return 1; /* we are done */ ++} ++ ++int fpm_children_create_initial(struct fpm_worker_pool_s *wp) ++{ ++ return fpm_children_make(wp, 0 /* not in event loop yet */); ++} ++ ++int fpm_children_init_main() ++{ ++ if (fpm_global_config.emergency_restart_threshold && ++ fpm_global_config.emergency_restart_interval) { ++ ++ last_faults = malloc(sizeof(time_t) * fpm_global_config.emergency_restart_threshold); ++ ++ if (!last_faults) { ++ return -1; ++ } ++ ++ memset(last_faults, 0, sizeof(time_t) * fpm_global_config.emergency_restart_threshold); ++ } ++ ++ if (0 > fpm_cleanup_add(FPM_CLEANUP_ALL, fpm_children_cleanup, 0)) { ++ return -1; ++ } ++ ++ return 0; ++} ++ +diff --git a/sapi/cgi/fpm/fpm_children.h b/sapi/cgi/fpm/fpm_children.h +new file mode 100644 +index 0000000..c85adf9 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_children.h +@@ -0,0 +1,33 @@ ++ ++ /* $Id: fpm_children.h,v 1.9 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_CHILDREN_H ++#define FPM_CHILDREN_H 1 ++ ++#include ++#include ++#include ++ ++#include "fpm_worker_pool.h" ++ ++int fpm_children_create_initial(struct fpm_worker_pool_s *wp); ++int fpm_children_free(struct fpm_child_s *child); ++void fpm_children_bury(); ++int fpm_children_init_main(); ++ ++struct fpm_child_s; ++ ++struct fpm_child_s { ++ struct fpm_child_s *prev, *next; ++ struct timeval started; ++ struct fpm_worker_pool_s *wp; ++ struct event ev_stdout, ev_stderr; ++ int shm_slot_i; ++ int fd_stdout, fd_stderr; ++ void (*tracer)(struct fpm_child_s *); ++ struct timeval slow_logged; ++ pid_t pid; ++}; ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_cleanup.c b/sapi/cgi/fpm/fpm_cleanup.c +new file mode 100644 +index 0000000..b4ef7bb +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_cleanup.c +@@ -0,0 +1,51 @@ ++ ++ /* $Id: fpm_cleanup.c,v 1.8 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++ ++#include "fpm_arrays.h" ++#include "fpm_cleanup.h" ++#include "zlog.h" ++ ++struct cleanup_s { ++ int type; ++ void (*cleanup)(int, void *); ++ void *arg; ++}; ++ ++static struct fpm_array_s cleanups = { .sz = sizeof(struct cleanup_s) }; ++ ++int fpm_cleanup_add(int type, void (*cleanup)(int, void *), void *arg) ++{ ++ struct cleanup_s *c; ++ ++ c = fpm_array_push(&cleanups); ++ ++ if (!c) { ++ return -1; ++ } ++ ++ c->type = type; ++ c->cleanup = cleanup; ++ c->arg = arg; ++ ++ return 0; ++} ++ ++void fpm_cleanups_run(int type) ++{ ++ struct cleanup_s *c = fpm_array_item_last(&cleanups); ++ int cl = cleanups.used; ++ ++ for ( ; cl--; c--) { ++ if (c->type & type) { ++ c->cleanup(type, c->arg); ++ } ++ } ++ ++ fpm_array_free(&cleanups); ++} ++ +diff --git a/sapi/cgi/fpm/fpm_cleanup.h b/sapi/cgi/fpm/fpm_cleanup.h +new file mode 100644 +index 0000000..4d7cf39 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_cleanup.h +@@ -0,0 +1,21 @@ ++ ++ /* $Id: fpm_cleanup.h,v 1.5 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_CLEANUP_H ++#define FPM_CLEANUP_H 1 ++ ++int fpm_cleanup_add(int type, void (*cleanup)(int, void *), void *); ++void fpm_cleanups_run(int type); ++ ++enum { ++ FPM_CLEANUP_CHILD = (1 << 0), ++ FPM_CLEANUP_PARENT_EXIT = (1 << 1), ++ FPM_CLEANUP_PARENT_EXIT_MAIN = (1 << 2), ++ FPM_CLEANUP_PARENT_EXEC = (1 << 3), ++ FPM_CLEANUP_PARENT = (1 << 1) | (1 << 2) | (1 << 3), ++ FPM_CLEANUP_ALL = ~0, ++}; ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_clock.c b/sapi/cgi/fpm/fpm_clock.c +new file mode 100644 +index 0000000..2abbce8 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_clock.c +@@ -0,0 +1,115 @@ ++ ++ /* $Id: fpm_clock.c,v 1.4 2008/09/18 23:19:59 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#if defined(HAVE_CLOCK_GETTIME) ++#include /* for CLOCK_MONOTONIC */ ++#endif ++ ++#include "fpm_clock.h" ++#include "zlog.h" ++ ++ ++/* posix monotonic clock - preferred source of time */ ++#if defined(HAVE_CLOCK_GETTIME) && defined(CLOCK_MONOTONIC) ++ ++static int monotonic_works; ++ ++int fpm_clock_init() ++{ ++ struct timespec ts; ++ ++ monotonic_works = 0; ++ ++ if (0 == clock_gettime(CLOCK_MONOTONIC, &ts)) { ++ monotonic_works = 1; ++ } ++ ++ return 0; ++} ++ ++int fpm_clock_get(struct timeval *tv) ++{ ++ if (monotonic_works) { ++ struct timespec ts; ++ ++ if (0 > clock_gettime(CLOCK_MONOTONIC, &ts)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "clock_gettime() failed"); ++ return -1; ++ } ++ ++ tv->tv_sec = ts.tv_sec; ++ tv->tv_usec = ts.tv_nsec / 1000; ++ return 0; ++ } ++ ++ return gettimeofday(tv, 0); ++} ++ ++/* macosx clock */ ++#elif defined(HAVE_CLOCK_GET_TIME) ++ ++#include ++#include ++#include ++ ++static clock_serv_t mach_clock; ++ ++/* this code borrowed from here: http://lists.apple.com/archives/Darwin-development/2002/Mar/msg00746.html */ ++/* mach_clock also should be re-initialized in child process after fork */ ++int fpm_clock_init() ++{ ++ kern_return_t ret; ++ mach_timespec_t aTime; ++ ++ ret = host_get_clock_service(mach_host_self(), REALTIME_CLOCK, &mach_clock); ++ ++ if (ret != KERN_SUCCESS) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "host_get_clock_service() failed: %s", mach_error_string(ret)); ++ return -1; ++ } ++ ++ /* test if it works */ ++ ret = clock_get_time(mach_clock, &aTime); ++ ++ if (ret != KERN_SUCCESS) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "clock_get_time() failed: %s", mach_error_string(ret)); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_clock_get(struct timeval *tv) ++{ ++ kern_return_t ret; ++ mach_timespec_t aTime; ++ ++ ret = clock_get_time(mach_clock, &aTime); ++ ++ if (ret != KERN_SUCCESS) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "clock_get_time() failed: %s", mach_error_string(ret)); ++ return -1; ++ } ++ ++ tv->tv_sec = aTime.tv_sec; ++ tv->tv_usec = aTime.tv_nsec / 1000; ++ ++ return 0; ++} ++ ++#else /* no clock */ ++ ++int fpm_clock_init() ++{ ++ return 0; ++} ++ ++int fpm_clock_get(struct timeval *tv) ++{ ++ return gettimeofday(tv, 0); ++} ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_clock.h b/sapi/cgi/fpm/fpm_clock.h +new file mode 100644 +index 0000000..6aab959 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_clock.h +@@ -0,0 +1,13 @@ ++ ++ /* $Id: fpm_clock.h,v 1.2 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_CLOCK_H ++#define FPM_CLOCK_H 1 ++ ++#include ++ ++int fpm_clock_init(); ++int fpm_clock_get(struct timeval *tv); ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_conf.c b/sapi/cgi/fpm/fpm_conf.c +new file mode 100644 +index 0000000..adf4f1a +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_conf.c +@@ -0,0 +1,532 @@ ++ ++ /* $Id: fpm_conf.c,v 1.33.2.3 2008/12/13 03:50:29 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "fpm.h" ++#include "fpm_conf.h" ++#include "fpm_stdio.h" ++#include "fpm_worker_pool.h" ++#include "fpm_cleanup.h" ++#include "fpm_php.h" ++#include "fpm_sockets.h" ++#include "xml_config.h" ++#include "zlog.h" ++ ++ ++struct fpm_global_config_s fpm_global_config; ++ ++static void *fpm_global_config_ptr() ++{ ++ return &fpm_global_config; ++} ++ ++static char *fpm_conf_set_log_level(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ char *value = vv; ++ ++ if (!strcmp(value, "debug")) { ++ fpm_globals.log_level = ZLOG_DEBUG; ++ } ++ else if (!strcmp(value, "notice")) { ++ fpm_globals.log_level = ZLOG_NOTICE; ++ } ++ else if (!strcmp(value, "warn")) { ++ fpm_globals.log_level = ZLOG_WARNING; ++ } ++ else if (!strcmp(value, "error")) { ++ fpm_globals.log_level = ZLOG_ERROR; ++ } ++ else if (!strcmp(value, "alert")) { ++ fpm_globals.log_level = ZLOG_ALERT; ++ } ++ else { ++ return "invalid value for 'log_level'"; ++ } ++ ++ return NULL; ++} ++ ++static struct xml_conf_section xml_section_fpm_global_options = { ++ .conf = &fpm_global_config_ptr, ++ .path = "/configuration/global_options", ++ .parsers = (struct xml_value_parser []) { ++ { XML_CONF_SCALAR, "emergency_restart_threshold", &xml_conf_set_slot_integer, offsetof(struct fpm_global_config_s, emergency_restart_threshold) }, ++ { XML_CONF_SCALAR, "emergency_restart_interval", &xml_conf_set_slot_time, offsetof(struct fpm_global_config_s, emergency_restart_interval) }, ++ { XML_CONF_SCALAR, "process_control_timeout", &xml_conf_set_slot_time, offsetof(struct fpm_global_config_s, process_control_timeout) }, ++ { XML_CONF_SCALAR, "daemonize", &xml_conf_set_slot_boolean, offsetof(struct fpm_global_config_s, daemonize) }, ++ { XML_CONF_SCALAR, "pid_file", &xml_conf_set_slot_string, offsetof(struct fpm_global_config_s, pid_file) }, ++ { XML_CONF_SCALAR, "error_log", &xml_conf_set_slot_string, offsetof(struct fpm_global_config_s, error_log) }, ++ { XML_CONF_SCALAR, "log_level", &fpm_conf_set_log_level, 0 }, ++ { 0, 0, 0, 0 } ++ } ++}; ++ ++static char *fpm_conf_set_pm_style(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ char *value = vv; ++ struct fpm_pm_s *c = *conf; ++ ++ if (!strcmp(value, "static")) { ++ c->style = PM_STYLE_STATIC; ++ } ++ else if (!strcmp(value, "apache-like")) { ++ c->style = PM_STYLE_APACHE_LIKE; ++ } ++ else { ++ return "invalid value for 'style'"; ++ } ++ ++ return NULL; ++} ++ ++static char *fpm_conf_set_rlimit_core(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ char *value = vv; ++ struct fpm_worker_pool_config_s *c = *conf; ++ ++ if (!strcmp(value, "unlimited")) { ++ c->rlimit_core = -1; ++ } ++ else { ++ int int_value; ++ void *subconf = &int_value; ++ char *error; ++ ++ error = xml_conf_set_slot_integer(&subconf, name, vv, 0); ++ ++ if (error) return error; ++ ++ if (int_value < 0) return "invalid value for 'rlimit_core'"; ++ ++ c->rlimit_core = int_value; ++ } ++ ++ return NULL; ++} ++ ++static char *fpm_conf_set_catch_workers_output(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ struct fpm_worker_pool_config_s *c = *conf; ++ int int_value; ++ void *subconf = &int_value; ++ char *error; ++ ++ error = xml_conf_set_slot_boolean(&subconf, name, vv, 0); ++ ++ if (error) return error; ++ ++ c->catch_workers_output = int_value; ++ ++ return NULL; ++} ++ ++static struct xml_conf_section fpm_conf_set_apache_like_subsection_conf = { ++ .path = "apache_like somewhere", /* fixme */ ++ .parsers = (struct xml_value_parser []) { ++ { XML_CONF_SCALAR, "StartServers", &xml_conf_set_slot_integer, offsetof(struct fpm_pm_s, options_apache_like.StartServers) }, ++ { XML_CONF_SCALAR, "MinSpareServers", &xml_conf_set_slot_integer, offsetof(struct fpm_pm_s, options_apache_like.MinSpareServers) }, ++ { XML_CONF_SCALAR, "MaxSpareServers", &xml_conf_set_slot_integer, offsetof(struct fpm_pm_s, options_apache_like.MaxSpareServers) }, ++ { 0, 0, 0, 0 } ++ } ++}; ++ ++static char *fpm_conf_set_apache_like_subsection(void **conf, char *name, void *xml_node, intptr_t offset) ++{ ++ return xml_conf_parse_section(conf, &fpm_conf_set_apache_like_subsection_conf, xml_node); ++} ++ ++static struct xml_conf_section fpm_conf_set_listen_options_subsection_conf = { ++ .path = "listen options somewhere", /* fixme */ ++ .parsers = (struct xml_value_parser []) { ++ { XML_CONF_SCALAR, "backlog", &xml_conf_set_slot_integer, offsetof(struct fpm_listen_options_s, backlog) }, ++ { XML_CONF_SCALAR, "owner", &xml_conf_set_slot_string, offsetof(struct fpm_listen_options_s, owner) }, ++ { XML_CONF_SCALAR, "group", &xml_conf_set_slot_string, offsetof(struct fpm_listen_options_s, group) }, ++ { XML_CONF_SCALAR, "mode", &xml_conf_set_slot_string, offsetof(struct fpm_listen_options_s, mode) }, ++ { 0, 0, 0, 0 } ++ } ++}; ++ ++static char *fpm_conf_set_listen_options_subsection(void **conf, char *name, void *xml_node, intptr_t offset) ++{ ++ void *subconf = (char *) *conf + offset; ++ struct fpm_listen_options_s *lo; ++ ++ lo = malloc(sizeof(*lo)); ++ ++ if (!lo) { ++ return "malloc() failed"; ++ } ++ ++ memset(lo, 0, sizeof(*lo)); ++ ++ lo->backlog = -1; ++ ++ * (struct fpm_listen_options_s **) subconf = lo; ++ ++ subconf = lo; ++ ++ return xml_conf_parse_section(&subconf, &fpm_conf_set_listen_options_subsection_conf, xml_node); ++} ++ ++static struct xml_conf_section fpm_conf_set_pm_subsection_conf = { ++ .path = "pm settings somewhere", /* fixme */ ++ .parsers = (struct xml_value_parser []) { ++ { XML_CONF_SCALAR, "style", &fpm_conf_set_pm_style, 0 }, ++ { XML_CONF_SCALAR, "max_children", &xml_conf_set_slot_integer, offsetof(struct fpm_pm_s, max_children) }, ++ { XML_CONF_SUBSECTION, "apache_like", &fpm_conf_set_apache_like_subsection, offsetof(struct fpm_pm_s, options_apache_like) }, ++ { 0, 0, 0, 0 } ++ } ++}; ++ ++static char *fpm_conf_set_pm_subsection(void **conf, char *name, void *xml_node, intptr_t offset) ++{ ++ void *subconf = (char *) *conf + offset; ++ struct fpm_pm_s *pm; ++ ++ pm = malloc(sizeof(*pm)); ++ ++ if (!pm) { ++ return "fpm_conf_set_pm_subsection(): malloc failed"; ++ } ++ ++ memset(pm, 0, sizeof(*pm)); ++ ++ * (struct fpm_pm_s **) subconf = pm; ++ ++ subconf = pm; ++ ++ return xml_conf_parse_section(&subconf, &fpm_conf_set_pm_subsection_conf, xml_node); ++} ++ ++static char *xml_conf_set_slot_key_value_pair(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ char *value = vv; ++ struct key_value_s *kv; ++ struct key_value_s ***parent = (struct key_value_s ***) conf; ++ ++ kv = malloc(sizeof(*kv)); ++ ++ if (!kv) { ++ return "malloc() failed"; ++ } ++ ++ memset(kv, 0, sizeof(*kv)); ++ ++ kv->key = strdup(name); ++ kv->value = strdup(value); ++ ++ if (!kv->key || !kv->value) { ++ return "xml_conf_set_slot_key_value_pair(): strdup() failed"; ++ } ++ ++ **parent = kv; ++ ++ *parent = &kv->next; ++ ++ return NULL; ++} ++ ++static struct xml_conf_section fpm_conf_set_key_value_pairs_subsection_conf = { ++ .path = "key_value_pairs somewhere", /* fixme */ ++ .parsers = (struct xml_value_parser []) { ++ { XML_CONF_SCALAR, 0, &xml_conf_set_slot_key_value_pair, 0 }, ++ { 0, 0, 0, 0 } ++ } ++}; ++ ++static char *fpm_conf_set_key_value_pairs_subsection(void **conf, char *name, void *xml_node, intptr_t offset) ++{ ++ void *next_kv = (char *) *conf + offset; ++ ++ return xml_conf_parse_section(&next_kv, &fpm_conf_set_key_value_pairs_subsection_conf, xml_node); ++} ++ ++static void *fpm_worker_pool_config_alloc() ++{ ++ static struct fpm_worker_pool_s *current_wp = 0; ++ struct fpm_worker_pool_s *wp; ++ ++ wp = fpm_worker_pool_alloc(); ++ ++ if (!wp) return 0; ++ ++ wp->config = malloc(sizeof(struct fpm_worker_pool_config_s)); ++ ++ if (!wp->config) return 0; ++ ++ memset(wp->config, 0, sizeof(struct fpm_worker_pool_config_s)); ++ ++ if (current_wp) current_wp->next = wp; ++ ++ current_wp = wp; ++ ++ return wp->config; ++} ++ ++int fpm_worker_pool_config_free(struct fpm_worker_pool_config_s *wpc) ++{ ++ struct key_value_s *kv, *kv_next; ++ ++ free(wpc->name); ++ free(wpc->listen_address); ++ if (wpc->listen_options) { ++ free(wpc->listen_options->owner); ++ free(wpc->listen_options->group); ++ free(wpc->listen_options->mode); ++ free(wpc->listen_options); ++ } ++ for (kv = wpc->php_defines; kv; kv = kv_next) { ++ kv_next = kv->next; ++ free(kv->key); ++ free(kv->value); ++ free(kv); ++ } ++ for (kv = wpc->environment; kv; kv = kv_next) { ++ kv_next = kv->next; ++ free(kv->key); ++ free(kv->value); ++ free(kv); ++ } ++ free(wpc->pm); ++ free(wpc->user); ++ free(wpc->group); ++ free(wpc->chroot); ++ free(wpc->chdir); ++ free(wpc->allowed_clients); ++ free(wpc->slowlog); ++ ++ return 0; ++} ++ ++static struct xml_conf_section xml_section_fpm_worker_pool_config = { ++ .conf = &fpm_worker_pool_config_alloc, ++ .path = "/configuration/workers/pool", ++ .parsers = (struct xml_value_parser []) { ++ { XML_CONF_SCALAR, "name", &xml_conf_set_slot_string, offsetof(struct fpm_worker_pool_config_s, name) }, ++ { XML_CONF_SCALAR, "listen_address", &xml_conf_set_slot_string, offsetof(struct fpm_worker_pool_config_s, listen_address) }, ++ { XML_CONF_SUBSECTION, "listen_options", &fpm_conf_set_listen_options_subsection, offsetof(struct fpm_worker_pool_config_s, listen_options) }, ++ { XML_CONF_SUBSECTION, "php_defines", &fpm_conf_set_key_value_pairs_subsection, offsetof(struct fpm_worker_pool_config_s, php_defines) }, ++ { XML_CONF_SCALAR, "user", &xml_conf_set_slot_string, offsetof(struct fpm_worker_pool_config_s, user) }, ++ { XML_CONF_SCALAR, "group", &xml_conf_set_slot_string, offsetof(struct fpm_worker_pool_config_s, group) }, ++ { XML_CONF_SCALAR, "chroot", &xml_conf_set_slot_string, offsetof(struct fpm_worker_pool_config_s, chroot) }, ++ { XML_CONF_SCALAR, "chdir", &xml_conf_set_slot_string, offsetof(struct fpm_worker_pool_config_s, chdir) }, ++ { XML_CONF_SCALAR, "allowed_clients", &xml_conf_set_slot_string, offsetof(struct fpm_worker_pool_config_s, allowed_clients) }, ++ { XML_CONF_SUBSECTION, "environment", &fpm_conf_set_key_value_pairs_subsection, offsetof(struct fpm_worker_pool_config_s, environment) }, ++ { XML_CONF_SCALAR, "request_terminate_timeout", &xml_conf_set_slot_time, offsetof(struct fpm_worker_pool_config_s, request_terminate_timeout) }, ++ { XML_CONF_SCALAR, "request_slowlog_timeout", &xml_conf_set_slot_time, offsetof(struct fpm_worker_pool_config_s, request_slowlog_timeout) }, ++ { XML_CONF_SCALAR, "slowlog", &xml_conf_set_slot_string, offsetof(struct fpm_worker_pool_config_s, slowlog) }, ++ { XML_CONF_SCALAR, "rlimit_files", &xml_conf_set_slot_integer, offsetof(struct fpm_worker_pool_config_s, rlimit_files) }, ++ { XML_CONF_SCALAR, "rlimit_core", &fpm_conf_set_rlimit_core, 0 }, ++ { XML_CONF_SCALAR, "max_requests", &xml_conf_set_slot_integer, offsetof(struct fpm_worker_pool_config_s, max_requests) }, ++ { XML_CONF_SCALAR, "catch_workers_output", &fpm_conf_set_catch_workers_output, 0 }, ++ { XML_CONF_SUBSECTION, "pm", &fpm_conf_set_pm_subsection, offsetof(struct fpm_worker_pool_config_s, pm) }, ++ { 0, 0, 0, 0 } ++ } ++}; ++ ++static struct xml_conf_section *fpm_conf_all_sections[] = { ++ &xml_section_fpm_global_options, ++ &xml_section_fpm_worker_pool_config, ++ 0 ++}; ++ ++static int fpm_evaluate_full_path(char **path) ++{ ++ if (**path != '/') { ++ char *full_path; ++ ++ full_path = malloc(sizeof(PHP_PREFIX) + strlen(*path) + 1); ++ ++ if (!full_path) return -1; ++ ++ sprintf(full_path, "%s/%s", PHP_PREFIX, *path); ++ ++ free(*path); ++ ++ *path = full_path; ++ } ++ ++ return 0; ++} ++ ++static int fpm_conf_process_all_pools() ++{ ++ struct fpm_worker_pool_s *wp; ++ ++ if (!fpm_worker_all_pools) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "at least one pool section must be specified in config file"); ++ return -1; ++ } ++ ++ for (wp = fpm_worker_all_pools; wp; wp = wp->next) { ++ ++ if (wp->config->listen_address && *wp->config->listen_address) { ++ ++ wp->listen_address_domain = fpm_sockets_domain_from_address(wp->config->listen_address); ++ ++ if (wp->listen_address_domain == FPM_AF_UNIX && *wp->config->listen_address != '/') { ++ fpm_evaluate_full_path(&wp->config->listen_address); ++ } ++ ++ } ++ else { ++ ++ wp->is_template = 1; ++ ++ } ++ ++ if (wp->config->request_slowlog_timeout) { ++#if HAVE_FPM_TRACE ++ if (! (wp->config->slowlog && *wp->config->slowlog)) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "pool %s: 'slowlog' must be specified for use with 'request_slowlog_timeout'", ++ wp->config->name); ++ return -1; ++ } ++#else ++ static int warned = 0; ++ ++ if (!warned) { ++ zlog(ZLOG_STUFF, ZLOG_WARNING, "pool %s: 'request_slowlog_timeout' is not supported on your system", ++ wp->config->name); ++ warned = 1; ++ } ++ ++ wp->config->request_slowlog_timeout = 0; ++#endif ++ } ++ ++ if (wp->config->request_slowlog_timeout && wp->config->slowlog && *wp->config->slowlog) { ++ int fd; ++ ++ fpm_evaluate_full_path(&wp->config->slowlog); ++ ++ if (wp->config->request_slowlog_timeout) { ++ fd = open(wp->config->slowlog, O_WRONLY | O_APPEND | O_CREAT, S_IRUSR | S_IWUSR); ++ ++ if (0 > fd) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "open(%s) failed", wp->config->slowlog); ++ return -1; ++ } ++ close(fd); ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++int fpm_conf_unlink_pid() ++{ ++ if (fpm_global_config.pid_file) { ++ ++ if (0 > unlink(fpm_global_config.pid_file)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "unlink(\"%s\") failed", fpm_global_config.pid_file); ++ return -1; ++ } ++ ++ } ++ ++ return 0; ++} ++ ++int fpm_conf_write_pid() ++{ ++ int fd; ++ ++ if (fpm_global_config.pid_file) { ++ char buf[64]; ++ int len; ++ ++ unlink(fpm_global_config.pid_file); ++ ++ fd = creat(fpm_global_config.pid_file, S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH); ++ ++ if (fd < 0) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "creat(\"%s\") failed", fpm_global_config.pid_file); ++ return -1; ++ } ++ ++ len = sprintf(buf, "%d", (int) fpm_globals.parent_pid); ++ ++ if (len != write(fd, buf, len)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "write() failed"); ++ return -1; ++ } ++ ++ close(fd); ++ } ++ ++ return 0; ++} ++ ++static int fpm_conf_post_process() ++{ ++ if (fpm_global_config.pid_file) { ++ fpm_evaluate_full_path(&fpm_global_config.pid_file); ++ } ++ ++ if (!fpm_global_config.error_log) { ++ fpm_global_config.error_log = strdup(PHP_FPM_LOG_PATH); ++ } ++ ++ fpm_evaluate_full_path(&fpm_global_config.error_log); ++ ++ if (0 > fpm_stdio_open_error_log(0)) { ++ return -1; ++ } ++ ++ return fpm_conf_process_all_pools(); ++} ++ ++static void fpm_conf_cleanup(int which, void *arg) ++{ ++ free(fpm_global_config.pid_file); ++ free(fpm_global_config.error_log); ++ fpm_global_config.pid_file = 0; ++ fpm_global_config.error_log = 0; ++} ++ ++int fpm_conf_init_main() ++{ ++ char *filename = fpm_globals.config; ++ char *err; ++ ++ if (0 > xml_conf_sections_register(fpm_conf_all_sections)) { ++ return -1; ++ } ++ ++ if (filename == NULL) { ++ filename = PHP_FPM_CONF_PATH; ++ } ++ ++ err = xml_conf_load_file(filename); ++ ++ if (err) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "failed to load configuration file: %s", err); ++ return -1; ++ } ++ ++ if (0 > fpm_conf_post_process()) { ++ return -1; ++ } ++ ++ xml_conf_clean(); ++ ++ if (0 > fpm_cleanup_add(FPM_CLEANUP_ALL, fpm_conf_cleanup, 0)) { ++ return -1; ++ } ++ ++ return 0; ++} +diff --git a/sapi/cgi/fpm/fpm_conf.h b/sapi/cgi/fpm/fpm_conf.h +new file mode 100644 +index 0000000..4dd011e +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_conf.h +@@ -0,0 +1,73 @@ ++ ++ /* $Id: fpm_conf.h,v 1.12.2.2 2008/12/13 03:46:49 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_CONF_H ++#define FPM_CONF_H 1 ++ ++struct key_value_s; ++ ++struct key_value_s { ++ struct key_value_s *next; ++ char *key; ++ char *value; ++}; ++ ++struct fpm_global_config_s { ++ int emergency_restart_threshold; ++ int emergency_restart_interval; ++ int process_control_timeout; ++ int daemonize; ++ char *pid_file; ++ char *error_log; ++}; ++ ++extern struct fpm_global_config_s fpm_global_config; ++ ++struct fpm_pm_s { ++ int style; ++ int max_children; ++ struct { ++ int StartServers; ++ int MinSpareServers; ++ int MaxSpareServers; ++ } options_apache_like; ++}; ++ ++struct fpm_listen_options_s { ++ int backlog; ++ char *owner; ++ char *group; ++ char *mode; ++}; ++ ++struct fpm_worker_pool_config_s { ++ char *name; ++ char *listen_address; ++ struct fpm_listen_options_s *listen_options; ++ struct key_value_s *php_defines; ++ char *user; ++ char *group; ++ char *chroot; ++ char *chdir; ++ char *allowed_clients; ++ struct key_value_s *environment; ++ struct fpm_pm_s *pm; ++ int request_terminate_timeout; ++ int request_slowlog_timeout; ++ char *slowlog; ++ int max_requests; ++ int rlimit_files; ++ int rlimit_core; ++ unsigned catch_workers_output:1; ++}; ++ ++enum { PM_STYLE_STATIC = 1, PM_STYLE_APACHE_LIKE = 2 }; ++ ++int fpm_conf_init_main(); ++int fpm_worker_pool_config_free(struct fpm_worker_pool_config_s *wpc); ++int fpm_conf_write_pid(); ++int fpm_conf_unlink_pid(); ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_config.h b/sapi/cgi/fpm/fpm_config.h +new file mode 100644 +index 0000000..319b200 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_config.h +@@ -0,0 +1,39 @@ ++ ++ /* $Id: fpm_config.h,v 1.16 2008/05/25 00:30:43 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "php_config.h" ++#include "fpm_autoconf.h" ++ ++ ++/* Solaris does not have it */ ++#ifndef INADDR_NONE ++#define INADDR_NONE (-1) ++#endif ++ ++ ++/* If we're not using GNU C, elide __attribute__ */ ++#ifndef __GNUC__ ++# define __attribute__(x) /*NOTHING*/ ++#endif ++ ++ ++/* Solaris does not have it */ ++#ifndef timersub ++#define timersub(tvp, uvp, vvp) \ ++ do { \ ++ (vvp)->tv_sec = (tvp)->tv_sec - (uvp)->tv_sec; \ ++ (vvp)->tv_usec = (tvp)->tv_usec - (uvp)->tv_usec; \ ++ if ((vvp)->tv_usec < 0) { \ ++ (vvp)->tv_sec--; \ ++ (vvp)->tv_usec += 1000000; \ ++ } \ ++ } while (0) ++#endif ++ ++#if defined(HAVE_PTRACE) || defined(PROC_MEM_FILE) || defined(HAVE_MACH_VM_READ) ++#define HAVE_FPM_TRACE 1 ++#else ++#define HAVE_FPM_TRACE 0 ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_env.c b/sapi/cgi/fpm/fpm_env.c +new file mode 100644 +index 0000000..624a9fe +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_env.c +@@ -0,0 +1,125 @@ ++ ++ /* $Id: fpm_env.c,v 1.15 2008/09/18 23:19:59 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#ifdef HAVE_ALLOCA_H ++#include ++#endif ++#include ++#include ++#include ++ ++#include "fpm_env.h" ++#include "zlog.h" ++ ++#ifndef HAVE_SETENV ++int setenv(char *name, char *value, int overwrite) ++{ ++ int name_len = strlen(name); ++ int value_len = strlen(value); ++ char *var = alloca(name_len + 1 + value_len + 1); ++ ++ memcpy(var, name, name_len); ++ ++ var[name_len] = '='; ++ ++ memcpy(var + name_len + 1, value, value_len); ++ ++ var[name_len + 1 + value_len] = '\0'; ++ ++ return putenv(var); ++} ++#endif ++ ++#ifndef HAVE_CLEARENV ++void clearenv() ++{ ++ char **envp; ++ char *s; ++ ++ /* this algo is the only one known to me ++ that works well on all systems */ ++ while (*(envp = environ)) { ++ char *eq = strchr(*envp, '='); ++ ++ s = strdup(*envp); ++ ++ if (eq) s[eq - *envp] = '\0'; ++ ++ unsetenv(s); ++ free(s); ++ } ++ ++} ++#endif ++ ++ ++int fpm_env_init_child(struct fpm_worker_pool_s *wp) ++{ ++ struct key_value_s *kv; ++ ++ clearenv(); ++ ++ for (kv = wp->config->environment; kv; kv = kv->next) { ++ setenv(kv->key, kv->value, 1); ++ } ++ ++ if (wp->user) { ++ setenv("USER", wp->user, 1); ++ } ++ ++ if (wp->home) { ++ setenv("HOME", wp->home, 1); ++ } ++ ++ return 0; ++} ++ ++static int fpm_env_conf_wp(struct fpm_worker_pool_s *wp) ++{ ++ struct key_value_s *kv; ++ ++ kv = wp->config->environment; ++ ++ for (kv = wp->config->environment; kv; kv = kv->next) { ++ if (*kv->value == '$') { ++ char *value = getenv(kv->value + 1); ++ ++ if (!value) value = ""; ++ ++ free(kv->value); ++ kv->value = strdup(value); ++ } ++ ++ /* autodetected values should be removed ++ if these vars specified in config */ ++ if (!strcmp(kv->key, "USER")) { ++ free(wp->user); ++ wp->user = 0; ++ } ++ ++ if (!strcmp(kv->key, "HOME")) { ++ free(wp->home); ++ wp->home = 0; ++ } ++ } ++ ++ return 0; ++} ++ ++int fpm_env_init_main() ++{ ++ struct fpm_worker_pool_s *wp; ++ ++ for (wp = fpm_worker_all_pools; wp; wp = wp->next) { ++ ++ if (0 > fpm_env_conf_wp(wp)) { ++ return -1; ++ } ++ ++ } ++ ++ return 0; ++} +diff --git a/sapi/cgi/fpm/fpm_env.h b/sapi/cgi/fpm/fpm_env.h +new file mode 100644 +index 0000000..0f79ed7 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_env.h +@@ -0,0 +1,24 @@ ++ ++ /* $Id: fpm_env.h,v 1.9 2008/09/18 23:19:59 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_ENV_H ++#define FPM_ENV_H 1 ++ ++#include "fpm_worker_pool.h" ++ ++int fpm_env_init_child(struct fpm_worker_pool_s *wp); ++int fpm_env_init_main(); ++ ++extern char **environ; ++ ++#ifndef HAVE_SETENV ++int setenv(char *name, char *value, int overwrite); ++#endif ++ ++#ifndef HAVE_CLEARENV ++void clearenv(); ++#endif ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_events.c b/sapi/cgi/fpm/fpm_events.c +new file mode 100644 +index 0000000..654e9c8 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_events.c +@@ -0,0 +1,135 @@ ++ ++ /* $Id: fpm_events.c,v 1.21.2.2 2008/12/13 03:21:18 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include /* for putenv */ ++#include ++#include /* for event.h below */ ++#include ++ ++#include "fpm.h" ++#include "fpm_process_ctl.h" ++#include "fpm_events.h" ++#include "fpm_cleanup.h" ++#include "fpm_stdio.h" ++#include "fpm_signals.h" ++#include "fpm_children.h" ++#include "zlog.h" ++ ++static void fpm_event_cleanup(int which, void *arg) ++{ ++ event_base_free(0); ++} ++ ++static void fpm_got_signal(int fd, short ev, void *arg) ++{ ++ char c; ++ int res; ++ ++ do { ++ ++ do { ++ res = read(fd, &c, 1); ++ } while (res == -1 && errno == EINTR); ++ ++ if (res <= 0) { ++ if (res < 0 && errno != EAGAIN && errno != EWOULDBLOCK) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "read() failed"); ++ } ++ return; ++ } ++ ++ switch (c) { ++ case 'C' : /* SIGCHLD */ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "received SIGCHLD"); ++ fpm_children_bury(); ++ break; ++ case 'I' : /* SIGINT */ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "received SIGINT"); ++ fpm_pctl(FPM_PCTL_STATE_TERMINATING, FPM_PCTL_ACTION_SET); ++ break; ++ case 'T' : /* SIGTERM */ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "received SIGTERM"); ++ fpm_pctl(FPM_PCTL_STATE_TERMINATING, FPM_PCTL_ACTION_SET); ++ break; ++ case 'Q' : /* SIGQUIT */ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "received SIGQUIT"); ++ fpm_pctl(FPM_PCTL_STATE_FINISHING, FPM_PCTL_ACTION_SET); ++ break; ++ case '1' : /* SIGUSR1 */ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "received SIGUSR1"); ++ if (0 == fpm_stdio_open_error_log(1)) { ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "log file re-opened"); ++ } ++ break; ++ case '2' : /* SIGUSR2 */ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "received SIGUSR2"); ++ fpm_pctl(FPM_PCTL_STATE_RELOADING, FPM_PCTL_ACTION_SET); ++ break; ++ } ++ ++ if (fpm_globals.is_child) { ++ break; ++ } ++ ++ } while (1); ++ ++ return; ++} ++ ++int fpm_event_init_main() ++{ ++ event_init(); ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "libevent: using %s", event_get_method()); ++ ++ if (0 > fpm_cleanup_add(FPM_CLEANUP_ALL, fpm_event_cleanup, 0)) { ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_event_loop() ++{ ++ static struct event signal_fd_event; ++ ++ event_set(&signal_fd_event, fpm_signals_get_fd(), EV_PERSIST | EV_READ, &fpm_got_signal, 0); ++ ++ event_add(&signal_fd_event, 0); ++ ++ fpm_pctl_heartbeat(-1, 0, 0); ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "libevent: entering main loop"); ++ ++ event_loop(0); ++ ++ return 0; ++} ++ ++int fpm_event_add(int fd, struct event *ev, void (*callback)(int, short, void *), void *arg) ++{ ++ event_set(ev, fd, EV_PERSIST | EV_READ, callback, arg); ++ ++ return event_add(ev, 0); ++} ++ ++int fpm_event_del(struct event *ev) ++{ ++ return event_del(ev); ++} ++ ++void fpm_event_exit_loop() ++{ ++ event_loopbreak(); ++} ++ ++void fpm_event_fire(struct event *ev) ++{ ++ (*ev->ev_callback)( (int) ev->ev_fd, (short) ev->ev_res, ev->ev_arg); ++} ++ +diff --git a/sapi/cgi/fpm/fpm_events.h b/sapi/cgi/fpm/fpm_events.h +new file mode 100644 +index 0000000..d5a45ce +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_events.h +@@ -0,0 +1,16 @@ ++ ++ /* $Id: fpm_events.h,v 1.9 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_EVENTS_H ++#define FPM_EVENTS_H 1 ++ ++void fpm_event_exit_loop(); ++int fpm_event_loop(); ++int fpm_event_add(int fd, struct event *ev, void (*callback)(int, short, void *), void *arg); ++int fpm_event_del(struct event *ev); ++void fpm_event_fire(struct event *ev); ++int fpm_event_init_main(); ++ ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_php.c b/sapi/cgi/fpm/fpm_php.c +new file mode 100644 +index 0000000..fb46b9b +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_php.c +@@ -0,0 +1,190 @@ ++ ++ /* $Id: fpm_php.c,v 1.22.2.4 2008/12/13 03:21:18 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++ ++#include "php.h" ++#include "php_main.h" ++#include "php_ini.h" ++#include "ext/standard/dl.h" ++ ++#include "fastcgi.h" ++ ++#include "fpm.h" ++#include "fpm_php.h" ++#include "fpm_cleanup.h" ++#include "fpm_worker_pool.h" ++ ++static int zend_ini_alter_master(char *name, int name_length, char *new_value, int new_value_length, int stage TSRMLS_DC) ++{ ++ zend_ini_entry *ini_entry; ++ char *duplicate; ++ ++ if (zend_hash_find(EG(ini_directives), name, name_length, (void **) &ini_entry) == FAILURE) { ++ return FAILURE; ++ } ++ ++ duplicate = strdup(new_value); ++ ++ if (!ini_entry->on_modify ++ || ini_entry->on_modify(ini_entry, duplicate, new_value_length, ++ ini_entry->mh_arg1, ini_entry->mh_arg2, ini_entry->mh_arg3, stage TSRMLS_CC) == SUCCESS) { ++ ini_entry->value = duplicate; ++ ini_entry->value_length = new_value_length; ++ } else { ++ free(duplicate); ++ } ++ ++ return SUCCESS; ++} ++ ++static void fpm_php_disable(char *value, int (*zend_disable)(char *, uint TSRMLS_DC) TSRMLS_DC) ++{ ++ char *s = 0, *e = value; ++ ++ while (*e) { ++ switch (*e) { ++ case ' ': ++ case ',': ++ if (s) { ++ *e = '\0'; ++ zend_disable(s, e - s TSRMLS_CC); ++ s = 0; ++ } ++ break; ++ default: ++ if (!s) { ++ s = e; ++ } ++ break; ++ } ++ e++; ++ } ++ ++ if (s) { ++ zend_disable(s, e - s TSRMLS_CC); ++ } ++} ++ ++static int fpm_php_apply_defines(struct fpm_worker_pool_s *wp) ++{ ++ TSRMLS_FETCH(); ++ struct key_value_s *kv; ++ ++ for (kv = wp->config->php_defines; kv; kv = kv->next) { ++ char *name = kv->key; ++ char *value = kv->value; ++ int name_len = strlen(name); ++ int value_len = strlen(value); ++ ++ if (!strcmp(name, "extension") && *value) { ++ zval zv; ++ ++#if defined(PHP_VERSION_ID) && (PHP_VERSION_ID >= 50300) ++ php_dl(value, MODULE_PERSISTENT, &zv, 1 TSRMLS_CC); ++#else ++ zval filename; ++ ZVAL_STRINGL(&filename, value, value_len, 0); ++#if (PHP_MAJOR_VERSION >= 5) ++ php_dl(&filename, MODULE_PERSISTENT, &zv, 1 TSRMLS_CC); ++#else ++ php_dl(&filename, MODULE_PERSISTENT, &zv TSRMLS_CC); ++#endif ++#endif ++ continue; ++ } ++ ++ zend_ini_alter_master(name, name_len + 1, value, value_len, PHP_INI_STAGE_ACTIVATE TSRMLS_CC); ++ ++ if (!strcmp(name, "disable_functions") && *value) { ++ char *v = strdup(value); ++#if (PHP_MAJOR_VERSION >= 5) ++ PG(disable_functions) = v; ++#endif ++ fpm_php_disable(v, zend_disable_function TSRMLS_CC); ++ } ++ else if (!strcmp(name, "disable_classes") && *value) { ++ char *v = strdup(value); ++#if (PHP_MAJOR_VERSION >= 5) ++ PG(disable_classes) = v; ++#endif ++ fpm_php_disable(v, zend_disable_class TSRMLS_CC); ++ } ++ } ++ ++ return 0; ++} ++ ++static int fpm_php_set_allowed_clients(struct fpm_worker_pool_s *wp) ++{ ++ if (wp->listen_address_domain == FPM_AF_INET) { ++ fcgi_set_allowed_clients(wp->config->allowed_clients); ++ } ++ ++ return 0; ++} ++ ++static int fpm_php_set_fcgi_mgmt_vars(struct fpm_worker_pool_s *wp) ++{ ++ char max_workers[10 + 1]; /* 4294967295 */ ++ int len; ++ ++ len = sprintf(max_workers, "%u", (unsigned int) wp->config->pm->max_children); ++ ++ fcgi_set_mgmt_var("FCGI_MAX_CONNS", sizeof("FCGI_MAX_CONNS")-1, max_workers, len); ++ fcgi_set_mgmt_var("FCGI_MAX_REQS", sizeof("FCGI_MAX_REQS")-1, max_workers, len); ++ ++ return 0; ++} ++ ++char *fpm_php_script_filename(TSRMLS_D) ++{ ++ return SG(request_info).path_translated; ++} ++ ++char *fpm_php_request_method(TSRMLS_D) ++{ ++ return (char *) SG(request_info).request_method; ++} ++ ++size_t fpm_php_content_length(TSRMLS_D) ++{ ++ return SG(request_info).content_length; ++} ++ ++static void fpm_php_cleanup(int which, void *arg) ++{ ++ TSRMLS_FETCH(); ++ php_module_shutdown(TSRMLS_C); ++ sapi_shutdown(); ++} ++ ++void fpm_php_soft_quit() ++{ ++ fcgi_set_in_shutdown(1); ++} ++ ++int fpm_php_init_main() ++{ ++ if (0 > fpm_cleanup_add(FPM_CLEANUP_PARENT, fpm_php_cleanup, 0)) { ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_php_init_child(struct fpm_worker_pool_s *wp) ++{ ++ if (0 > fpm_php_apply_defines(wp) || ++ 0 > fpm_php_set_allowed_clients(wp) || ++ 0 > fpm_php_set_fcgi_mgmt_vars(wp)) { ++ return -1; ++ } ++ ++ return 0; ++} +diff --git a/sapi/cgi/fpm/fpm_php.h b/sapi/cgi/fpm/fpm_php.h +new file mode 100644 +index 0000000..a05464f +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_php.h +@@ -0,0 +1,22 @@ ++ ++ /* $Id: fpm_php.h,v 1.10.2.1 2008/11/15 00:57:24 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_PHP_H ++#define FPM_PHP_H 1 ++ ++#include ++ ++#include "build-defs.h" /* for PHP_ defines */ ++ ++struct fpm_worker_pool_s; ++ ++int fpm_php_init_child(struct fpm_worker_pool_s *wp); ++char *fpm_php_script_filename(TSRMLS_D); ++char *fpm_php_request_method(TSRMLS_D); ++size_t fpm_php_content_length(TSRMLS_D); ++void fpm_php_soft_quit(); ++int fpm_php_init_main(); ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_php_trace.c b/sapi/cgi/fpm/fpm_php_trace.c +new file mode 100644 +index 0000000..25a0d71 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_php_trace.c +@@ -0,0 +1,171 @@ ++ ++ /* $Id: fpm_php_trace.c,v 1.27.2.1 2008/11/15 00:57:24 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#if HAVE_FPM_TRACE ++ ++#include "php.h" ++#include "php_main.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "fpm_trace.h" ++#include "fpm_php_trace.h" ++#include "fpm_children.h" ++#include "fpm_worker_pool.h" ++#include "fpm_process_ctl.h" ++ ++#include "zlog.h" ++ ++ ++#define valid_ptr(p) ((p) && 0 == ((p) & (sizeof(long) - 1))) ++ ++#if SIZEOF_LONG == 4 ++#define PTR_FMT "08" ++#elif SIZEOF_LONG == 8 ++#define PTR_FMT "016" ++#endif ++ ++ ++static int fpm_php_trace_dump(struct fpm_child_s *child, FILE *slowlog TSRMLS_DC) ++{ ++ int callers_limit = 20; ++ pid_t pid = child->pid; ++ struct timeval tv; ++ static const int buf_size = 1024; ++ char buf[buf_size]; ++ long execute_data; ++ long l; ++ ++ gettimeofday(&tv, 0); ++ ++ zlog_print_time(&tv, buf, buf_size); ++ ++ fprintf(slowlog, "\n%s pid %d (pool %s)\n", buf, (int) pid, child->wp->config->name); ++ ++ if (0 > fpm_trace_get_strz(buf, buf_size, (long) &SG(request_info).path_translated)) { ++ return -1; ++ } ++ ++ fprintf(slowlog, "script_filename = %s\n", buf); ++ ++ if (0 > fpm_trace_get_long((long) &EG(current_execute_data), &l)) { ++ return -1; ++ } ++ ++ execute_data = l; ++ ++ while (execute_data) { ++ long function; ++ uint lineno = 0; ++ ++ fprintf(slowlog, "[0x%" PTR_FMT "lx] ", execute_data); ++ ++ if (0 > fpm_trace_get_long(execute_data + offsetof(zend_execute_data, function_state.function), &l)) { ++ return -1; ++ } ++ ++ function = l; ++ ++ if (valid_ptr(function)) { ++ if (0 > fpm_trace_get_strz(buf, buf_size, function + offsetof(zend_function, common.function_name))) { ++ return -1; ++ } ++ ++ fprintf(slowlog, "%s()", buf); ++ } ++ else { ++ fprintf(slowlog, "???"); ++ } ++ ++ if (0 > fpm_trace_get_long(execute_data + offsetof(zend_execute_data, op_array), &l)) { ++ return -1; ++ } ++ ++ *buf = '\0'; ++ ++ if (valid_ptr(l)) { ++ long op_array = l; ++ ++ if (0 > fpm_trace_get_strz(buf, buf_size, op_array + offsetof(zend_op_array, filename))) { ++ return -1; ++ } ++ } ++ ++ if (0 > fpm_trace_get_long(execute_data + offsetof(zend_execute_data, opline), &l)) { ++ return -1; ++ } ++ ++ if (valid_ptr(l)) { ++ long opline = l; ++ uint *lu = (uint *) &l; ++ ++ if (0 > fpm_trace_get_long(opline + offsetof(struct _zend_op, lineno), &l)) { ++ return -1; ++ } ++ ++ lineno = *lu; ++ } ++ ++ fprintf(slowlog, " %s:%u\n", *buf ? buf : "unknown", lineno); ++ ++ if (0 > fpm_trace_get_long(execute_data + offsetof(zend_execute_data, prev_execute_data), &l)) { ++ return -1; ++ } ++ ++ execute_data = l; ++ ++ if (0 == --callers_limit) { ++ break; ++ } ++ } ++ ++ return 0; ++} ++ ++void fpm_php_trace(struct fpm_child_s *child) ++{ ++ TSRMLS_FETCH(); ++ FILE *slowlog; ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "about to trace %d", (int) child->pid); ++ ++ slowlog = fopen(child->wp->config->slowlog, "a+"); ++ ++ if (!slowlog) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "fopen(%s) failed", child->wp->config->slowlog); ++ goto done0; ++ } ++ ++ if (0 > fpm_trace_ready(child->pid)) { ++ goto done1; ++ } ++ ++ if (0 > fpm_php_trace_dump(child, slowlog TSRMLS_CC)) { ++ fprintf(slowlog, "+++ dump failed\n"); ++ } ++ ++ if (0 > fpm_trace_close(child->pid)) { ++ goto done1; ++ } ++ ++done1: ++ fclose(slowlog); ++ ++done0: ++ fpm_pctl_kill(child->pid, FPM_PCTL_CONT); ++ child->tracer = 0; ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "finished trace of %d", (int) child->pid); ++} ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_php_trace.h b/sapi/cgi/fpm/fpm_php_trace.h +new file mode 100644 +index 0000000..af5e456 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_php_trace.h +@@ -0,0 +1,13 @@ ++ ++ /* $Id: fpm_php_trace.h,v 1.2 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_PHP_TRACE_H ++#define FPM_PHP_TRACE_H 1 ++ ++struct fpm_child_s; ++ ++void fpm_php_trace(struct fpm_child_s *); ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_process_ctl.c b/sapi/cgi/fpm/fpm_process_ctl.c +new file mode 100644 +index 0000000..c9b69eb +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_process_ctl.c +@@ -0,0 +1,354 @@ ++ ++ /* $Id: fpm_process_ctl.c,v 1.19.2.2 2008/12/13 03:21:18 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++#include ++ ++#include "fpm.h" ++#include "fpm_clock.h" ++#include "fpm_children.h" ++#include "fpm_signals.h" ++#include "fpm_events.h" ++#include "fpm_process_ctl.h" ++#include "fpm_cleanup.h" ++#include "fpm_request.h" ++#include "fpm_worker_pool.h" ++#include "zlog.h" ++ ++ ++static int fpm_state = FPM_PCTL_STATE_NORMAL; ++static int fpm_signal_sent = 0; ++ ++ ++static const char *fpm_state_names[] = { ++ [FPM_PCTL_STATE_NORMAL] = "normal", ++ [FPM_PCTL_STATE_RELOADING] = "reloading", ++ [FPM_PCTL_STATE_TERMINATING] = "terminating", ++ [FPM_PCTL_STATE_FINISHING] = "finishing" ++}; ++ ++static int saved_argc; ++static char **saved_argv; ++ ++static void fpm_pctl_cleanup(int which, void *arg) ++{ ++ int i; ++ ++ if (which != FPM_CLEANUP_PARENT_EXEC) { ++ ++ for (i = 0; i < saved_argc; i++) { ++ free(saved_argv[i]); ++ } ++ ++ free(saved_argv); ++ ++ } ++} ++ ++static struct event pctl_event; ++ ++static void fpm_pctl_action(int fd, short which, void *arg) ++{ ++ evtimer_del(&pctl_event); ++ ++ memset(&pctl_event, 0, sizeof(pctl_event)); ++ ++ fpm_pctl(FPM_PCTL_STATE_UNSPECIFIED, FPM_PCTL_ACTION_TIMEOUT); ++} ++ ++static int fpm_pctl_timeout_set(int sec) ++{ ++ struct timeval tv = { .tv_sec = sec, .tv_usec = 0 }; ++ ++ if (evtimer_initialized(&pctl_event)) { ++ evtimer_del(&pctl_event); ++ } ++ ++ evtimer_set(&pctl_event, &fpm_pctl_action, 0); ++ ++ evtimer_add(&pctl_event, &tv); ++ ++ return 0; ++} ++ ++static void fpm_pctl_exit() ++{ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "exiting, bye-bye!"); ++ ++ fpm_conf_unlink_pid(); ++ ++ fpm_cleanups_run(FPM_CLEANUP_PARENT_EXIT_MAIN); ++ ++ exit(0); ++} ++ ++#define optional_arg(c) (saved_argc > c ? ", \"" : ""), (saved_argc > c ? saved_argv[c] : ""), (saved_argc > c ? "\"" : "") ++ ++static void fpm_pctl_exec() ++{ ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "reloading: execvp(\"%s\", {\"%s\"" ++ "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" ++ "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" "%s%s%s" ++ "})", ++ saved_argv[0], saved_argv[0], ++ optional_arg(1), ++ optional_arg(2), ++ optional_arg(3), ++ optional_arg(4), ++ optional_arg(5), ++ optional_arg(6), ++ optional_arg(7), ++ optional_arg(8), ++ optional_arg(9), ++ optional_arg(10) ++ ); ++ ++ fpm_cleanups_run(FPM_CLEANUP_PARENT_EXEC); ++ ++ execvp(saved_argv[0], saved_argv); ++ ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "execvp() failed"); ++ ++ exit(1); ++} ++ ++static void fpm_pctl_action_last() ++{ ++ switch (fpm_state) { ++ ++ case FPM_PCTL_STATE_RELOADING : ++ ++ fpm_pctl_exec(); ++ break; ++ ++ case FPM_PCTL_STATE_FINISHING : ++ ++ case FPM_PCTL_STATE_TERMINATING : ++ ++ fpm_pctl_exit(); ++ break; ++ } ++} ++ ++int fpm_pctl_kill(pid_t pid, int how) ++{ ++ int s = 0; ++ ++ switch (how) { ++ case FPM_PCTL_TERM : ++ s = SIGTERM; ++ break; ++ case FPM_PCTL_STOP : ++ s = SIGSTOP; ++ break; ++ case FPM_PCTL_CONT : ++ s = SIGCONT; ++ break; ++ default : ++ break; ++ } ++ ++ return kill(pid, s); ++} ++ ++static void fpm_pctl_kill_all(int signo) ++{ ++ struct fpm_worker_pool_s *wp; ++ int alive_children = 0; ++ ++ for (wp = fpm_worker_all_pools; wp; wp = wp->next) { ++ struct fpm_child_s *child; ++ ++ for (child = wp->children; child; child = child->next) { ++ ++ int res = kill(child->pid, signo); ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "sending signal %d %s to child %d (pool %s)", signo, ++ fpm_signal_names[signo] ? fpm_signal_names[signo] : "", ++ (int) child->pid, child->wp->config->name); ++ ++ if (res == 0) ++alive_children; ++ } ++ } ++ ++ if (alive_children) { ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "%d %s still alive", alive_children, alive_children == 1 ? "child is" : "children are"); ++ } ++} ++ ++static void fpm_pctl_action_next() ++{ ++ int sig, timeout; ++ ++ if (!fpm_globals.running_children) fpm_pctl_action_last(); ++ ++ if (fpm_signal_sent == 0) { ++ if (fpm_state == FPM_PCTL_STATE_TERMINATING) { ++ sig = SIGTERM; ++ } ++ else { ++ sig = SIGQUIT; ++ } ++ timeout = fpm_global_config.process_control_timeout; ++ } ++ else { ++ if (fpm_signal_sent == SIGQUIT) { ++ sig = SIGTERM; ++ } ++ else { ++ sig = SIGKILL; ++ } ++ timeout = 1; ++ } ++ ++ fpm_pctl_kill_all(sig); ++ ++ fpm_signal_sent = sig; ++ ++ fpm_pctl_timeout_set(timeout); ++} ++ ++void fpm_pctl(int new_state, int action) ++{ ++ switch (action) { ++ ++ case FPM_PCTL_ACTION_SET : ++ ++ if (fpm_state == new_state) { /* already in progress - just ignore duplicate signal */ ++ return; ++ } ++ ++ switch (fpm_state) { /* check which states can be overridden */ ++ ++ case FPM_PCTL_STATE_NORMAL : ++ ++ /* 'normal' can be overridden by any other state */ ++ break; ++ ++ case FPM_PCTL_STATE_RELOADING : ++ ++ /* 'reloading' can be overridden by 'finishing' */ ++ if (new_state == FPM_PCTL_STATE_FINISHING) break; ++ ++ case FPM_PCTL_STATE_FINISHING : ++ ++ /* 'reloading' and 'finishing' can be overridden by 'terminating' */ ++ if (new_state == FPM_PCTL_STATE_TERMINATING) break; ++ ++ case FPM_PCTL_STATE_TERMINATING : ++ ++ /* nothing can override 'terminating' state */ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "not switching to '%s' state, because already in '%s' state", ++ fpm_state_names[new_state], fpm_state_names[fpm_state]); ++ ++ return; ++ } ++ ++ fpm_signal_sent = 0; ++ fpm_state = new_state; ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "switching to '%s' state", fpm_state_names[fpm_state]); ++ ++ /* fall down */ ++ ++ case FPM_PCTL_ACTION_TIMEOUT : ++ ++ fpm_pctl_action_next(); ++ ++ break; ++ ++ case FPM_PCTL_ACTION_LAST_CHILD_EXITED : ++ ++ fpm_pctl_action_last(); ++ ++ break; ++ ++ } ++} ++ ++int fpm_pctl_can_spawn_children() ++{ ++ return fpm_state == FPM_PCTL_STATE_NORMAL; ++} ++ ++int fpm_pctl_child_exited() ++{ ++ if (fpm_state == FPM_PCTL_STATE_NORMAL) return 0; ++ ++ if (!fpm_globals.running_children) { ++ fpm_pctl(FPM_PCTL_STATE_UNSPECIFIED, FPM_PCTL_ACTION_LAST_CHILD_EXITED); ++ } ++ ++ return 0; ++} ++ ++int fpm_pctl_init_main() ++{ ++ int i; ++ ++ saved_argc = fpm_globals.argc; ++ ++ saved_argv = malloc(sizeof(char *) * (saved_argc + 1)); ++ ++ if (!saved_argv) { ++ return -1; ++ } ++ ++ for (i = 0; i < saved_argc; i++) { ++ saved_argv[i] = strdup(fpm_globals.argv[i]); ++ ++ if (!saved_argv[i]) { ++ return -1; ++ } ++ } ++ ++ saved_argv[i] = 0; ++ ++ if (0 > fpm_cleanup_add(FPM_CLEANUP_ALL, fpm_pctl_cleanup, 0)) { ++ return -1; ++ } ++ ++ return 0; ++} ++ ++static void fpm_pctl_check_request_timeout(struct timeval *now) ++{ ++ struct fpm_worker_pool_s *wp; ++ ++ for (wp = fpm_worker_all_pools; wp; wp = wp->next) { ++ int terminate_timeout = wp->config->request_terminate_timeout; ++ int slowlog_timeout = wp->config->request_slowlog_timeout; ++ struct fpm_child_s *child; ++ ++ if (terminate_timeout || slowlog_timeout) { ++ for (child = wp->children; child; child = child->next) { ++ fpm_request_check_timed_out(child, now, terminate_timeout, slowlog_timeout); ++ } ++ } ++ } ++ ++} ++ ++void fpm_pctl_heartbeat(int fd, short which, void *arg) ++{ ++ static struct event heartbeat; ++ struct timeval tv = { .tv_sec = 0, .tv_usec = 130000 }; ++ struct timeval now; ++ ++ if (which == EV_TIMEOUT) { ++ evtimer_del(&heartbeat); ++ fpm_clock_get(&now); ++ fpm_pctl_check_request_timeout(&now); ++ } ++ ++ evtimer_set(&heartbeat, &fpm_pctl_heartbeat, 0); ++ ++ evtimer_add(&heartbeat, &tv); ++} ++ +diff --git a/sapi/cgi/fpm/fpm_process_ctl.h b/sapi/cgi/fpm/fpm_process_ctl.h +new file mode 100644 +index 0000000..8424f10 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_process_ctl.h +@@ -0,0 +1,39 @@ ++ ++ /* $Id: fpm_process_ctl.h,v 1.6 2008/07/20 21:33:10 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_PROCESS_CTL_H ++#define FPM_PROCESS_CTL_H 1 ++ ++struct fpm_child_s; ++ ++void fpm_pctl(int new_state, int action); ++int fpm_pctl_can_spawn_children(); ++int fpm_pctl_kill(pid_t pid, int how); ++void fpm_pctl_heartbeat(int fd, short which, void *arg); ++int fpm_pctl_child_exited(); ++int fpm_pctl_init_main(); ++ ++ ++enum { ++ FPM_PCTL_STATE_UNSPECIFIED, ++ FPM_PCTL_STATE_NORMAL, ++ FPM_PCTL_STATE_RELOADING, ++ FPM_PCTL_STATE_TERMINATING, ++ FPM_PCTL_STATE_FINISHING ++}; ++ ++enum { ++ FPM_PCTL_ACTION_SET, ++ FPM_PCTL_ACTION_TIMEOUT, ++ FPM_PCTL_ACTION_LAST_CHILD_EXITED ++}; ++ ++enum { ++ FPM_PCTL_TERM, ++ FPM_PCTL_STOP, ++ FPM_PCTL_CONT ++}; ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_request.c b/sapi/cgi/fpm/fpm_request.c +new file mode 100644 +index 0000000..3faf77d +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_request.c +@@ -0,0 +1,164 @@ ++ ++ /* $Id: fpm_request.c,v 1.9.2.1 2008/11/15 00:57:24 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include "fpm_php.h" ++#include "fpm_str.h" ++#include "fpm_clock.h" ++#include "fpm_conf.h" ++#include "fpm_trace.h" ++#include "fpm_php_trace.h" ++#include "fpm_process_ctl.h" ++#include "fpm_children.h" ++#include "fpm_shm_slots.h" ++#include "fpm_request.h" ++ ++#include "zlog.h" ++ ++void fpm_request_accepting() ++{ ++ struct fpm_shm_slot_s *slot; ++ ++ slot = fpm_shm_slots_acquire(0, 0); ++ ++ slot->request_stage = FPM_REQUEST_ACCEPTING; ++ ++ fpm_clock_get(&slot->tv); ++ memset(slot->request_method, 0, sizeof(slot->request_method)); ++ slot->content_length = 0; ++ memset(slot->script_filename, 0, sizeof(slot->script_filename)); ++ ++ fpm_shm_slots_release(slot); ++} ++ ++void fpm_request_reading_headers() ++{ ++ struct fpm_shm_slot_s *slot; ++ ++ slot = fpm_shm_slots_acquire(0, 0); ++ ++ slot->request_stage = FPM_REQUEST_READING_HEADERS; ++ ++ fpm_clock_get(&slot->tv); ++ slot->accepted = slot->tv; ++ ++ fpm_shm_slots_release(slot); ++} ++ ++void fpm_request_info() ++{ ++ TSRMLS_FETCH(); ++ struct fpm_shm_slot_s *slot; ++ char *request_method = fpm_php_request_method(TSRMLS_C); ++ char *script_filename = fpm_php_script_filename(TSRMLS_C); ++ ++ slot = fpm_shm_slots_acquire(0, 0); ++ ++ slot->request_stage = FPM_REQUEST_INFO; ++ ++ fpm_clock_get(&slot->tv); ++ ++ if (request_method) { ++ cpystrn(slot->request_method, request_method, sizeof(slot->request_method)); ++ } ++ ++ slot->content_length = fpm_php_content_length(TSRMLS_C); ++ ++ /* if cgi.fix_pathinfo is set to "1" and script cannot be found (404) ++ the sapi_globals.request_info.path_translated is set to NULL */ ++ if (script_filename) { ++ cpystrn(slot->script_filename, script_filename, sizeof(slot->script_filename)); ++ } ++ ++ fpm_shm_slots_release(slot); ++} ++ ++void fpm_request_executing() ++{ ++ struct fpm_shm_slot_s *slot; ++ ++ slot = fpm_shm_slots_acquire(0, 0); ++ ++ slot->request_stage = FPM_REQUEST_EXECUTING; ++ ++ fpm_clock_get(&slot->tv); ++ ++ fpm_shm_slots_release(slot); ++} ++ ++void fpm_request_finished() ++{ ++ struct fpm_shm_slot_s *slot; ++ ++ slot = fpm_shm_slots_acquire(0, 0); ++ ++ slot->request_stage = FPM_REQUEST_FINISHED; ++ ++ fpm_clock_get(&slot->tv); ++ memset(&slot->accepted, 0, sizeof(slot->accepted)); ++ ++ fpm_shm_slots_release(slot); ++} ++ ++void fpm_request_check_timed_out(struct fpm_child_s *child, struct timeval *now, int terminate_timeout, int slowlog_timeout) ++{ ++ struct fpm_shm_slot_s *slot; ++ struct fpm_shm_slot_s slot_c; ++ ++ slot = fpm_shm_slot(child); ++ ++ if (!fpm_shm_slots_acquire(slot, 1)) { ++ return; ++ } ++ ++ slot_c = *slot; ++ ++ fpm_shm_slots_release(slot); ++ ++#if HAVE_FPM_TRACE ++ if (child->slow_logged.tv_sec) { ++ if (child->slow_logged.tv_sec != slot_c.accepted.tv_sec || child->slow_logged.tv_usec != slot_c.accepted.tv_usec) { ++ child->slow_logged.tv_sec = 0; ++ child->slow_logged.tv_usec = 0; ++ } ++ } ++#endif ++ ++ if (slot_c.request_stage > FPM_REQUEST_ACCEPTING && slot_c.request_stage < FPM_REQUEST_FINISHED) { ++ char purified_script_filename[sizeof(slot_c.script_filename)]; ++ struct timeval tv; ++ ++ timersub(now, &slot_c.accepted, &tv); ++ ++#if HAVE_FPM_TRACE ++ if (child->slow_logged.tv_sec == 0 && slowlog_timeout && ++ slot_c.request_stage == FPM_REQUEST_EXECUTING && tv.tv_sec >= slowlog_timeout) { ++ ++ str_purify_filename(purified_script_filename, slot_c.script_filename, sizeof(slot_c.script_filename)); ++ ++ child->slow_logged = slot_c.accepted; ++ child->tracer = fpm_php_trace; ++ ++ fpm_trace_signal(child->pid); ++ ++ zlog(ZLOG_STUFF, ZLOG_WARNING, "child %d, script '%s' (pool %s) executing too slow (%d.%06d sec), logging", ++ (int) child->pid, purified_script_filename, child->wp->config->name, (int) tv.tv_sec, (int) tv.tv_usec); ++ } ++ ++ else ++#endif ++ if (terminate_timeout && tv.tv_sec >= terminate_timeout) { ++ ++ str_purify_filename(purified_script_filename, slot_c.script_filename, sizeof(slot_c.script_filename)); ++ ++ fpm_pctl_kill(child->pid, FPM_PCTL_TERM); ++ ++ zlog(ZLOG_STUFF, ZLOG_WARNING, "child %d, script '%s' (pool %s) execution timed out (%d.%06d sec), terminating", ++ (int) child->pid, purified_script_filename, child->wp->config->name, (int) tv.tv_sec, (int) tv.tv_usec); ++ } ++ } ++ ++} ++ +diff --git a/sapi/cgi/fpm/fpm_request.h b/sapi/cgi/fpm/fpm_request.h +new file mode 100644 +index 0000000..d768db6 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_request.h +@@ -0,0 +1,27 @@ ++ ++ /* $Id: fpm_request.h,v 1.4 2008/07/20 01:47:16 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_REQUEST_H ++#define FPM_REQUEST_H 1 ++ ++void fpm_request_accepting(); /* hanging in accept() */ ++void fpm_request_reading_headers(); /* start reading fastcgi request from very first byte */ ++void fpm_request_info(); /* not a stage really but a point in the php code, where all request params have become known to sapi */ ++void fpm_request_executing(); /* the script is executing */ ++void fpm_request_finished(); /* request processed: script response have been sent to web server */ ++ ++struct fpm_child_s; ++struct timeval; ++ ++void fpm_request_check_timed_out(struct fpm_child_s *child, struct timeval *tv, int terminate_timeout, int slowlog_timeout); ++ ++enum fpm_request_stage_e { ++ FPM_REQUEST_ACCEPTING = 1, ++ FPM_REQUEST_READING_HEADERS, ++ FPM_REQUEST_INFO, ++ FPM_REQUEST_EXECUTING, ++ FPM_REQUEST_FINISHED ++}; ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_shm.c b/sapi/cgi/fpm/fpm_shm.c +new file mode 100644 +index 0000000..21c3d75 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_shm.c +@@ -0,0 +1,100 @@ ++ ++ /* $Id: fpm_shm.c,v 1.3 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++ ++#include "fpm_shm.h" ++#include "zlog.h" ++ ++ ++/* MAP_ANON is depricated, but not in macosx */ ++#if defined(MAP_ANON) && !defined(MAP_ANONYMOUS) ++#define MAP_ANONYMOUS MAP_ANON ++#endif ++ ++ ++struct fpm_shm_s *fpm_shm_alloc(size_t sz) ++{ ++ struct fpm_shm_s *shm; ++ ++ shm = malloc(sizeof(*shm)); ++ ++ if (!shm) { ++ return 0; ++ } ++ ++ shm->mem = mmap(0, sz, PROT_READ | PROT_WRITE, MAP_ANONYMOUS | MAP_SHARED, -1, 0); ++ ++ if (!shm->mem) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "mmap(MAP_ANONYMOUS | MAP_SHARED) failed"); ++ free(shm); ++ return 0; ++ } ++ ++ shm->used = 0; ++ shm->sz = sz; ++ ++ return shm; ++} ++ ++static void fpm_shm_free(struct fpm_shm_s *shm, int do_unmap) ++{ ++ if (do_unmap) { ++ munmap(shm->mem, shm->sz); ++ } ++ ++ free(shm); ++} ++ ++void fpm_shm_free_list(struct fpm_shm_s *shm, void *mem) ++{ ++ struct fpm_shm_s *next; ++ ++ for (; shm; shm = next) { ++ next = shm->next; ++ ++ fpm_shm_free(shm, mem != shm->mem); ++ } ++} ++ ++void *fpm_shm_alloc_chunk(struct fpm_shm_s **head, size_t sz, void **mem) ++{ ++ size_t pagesize = getpagesize(); ++ static const size_t cache_line_size = 16; ++ size_t aligned_sz; ++ struct fpm_shm_s *shm; ++ void *ret; ++ ++ sz = (sz + cache_line_size - 1) & -cache_line_size; ++ ++ shm = *head; ++ ++ if (0 == shm || shm->sz - shm->used < sz) { ++ /* allocate one more shm segment */ ++ ++ aligned_sz = (sz + pagesize - 1) & -pagesize; ++ ++ shm = fpm_shm_alloc(aligned_sz); ++ ++ if (!shm) { ++ return 0; ++ } ++ ++ shm->next = *head; ++ if (shm->next) shm->next->prev = shm; ++ shm->prev = 0; ++ *head = shm; ++ } ++ ++ *mem = shm->mem; ++ ret = (char *) shm->mem + shm->used; ++ shm->used += sz; ++ ++ return ret; ++} ++ +diff --git a/sapi/cgi/fpm/fpm_shm.h b/sapi/cgi/fpm/fpm_shm.h +new file mode 100644 +index 0000000..f3f0be0 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_shm.h +@@ -0,0 +1,22 @@ ++ ++ /* $Id: fpm_shm.h,v 1.3 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_SHM_H ++#define FPM_SHM_H 1 ++ ++struct fpm_shm_s; ++ ++struct fpm_shm_s { ++ struct fpm_shm_s *prev, *next; ++ void *mem; ++ size_t sz; ++ size_t used; ++}; ++ ++struct fpm_shm_s *fpm_shm_alloc(size_t sz); ++void fpm_shm_free_list(struct fpm_shm_s *, void *); ++void *fpm_shm_alloc_chunk(struct fpm_shm_s **head, size_t sz, void **mem); ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_shm_slots.c b/sapi/cgi/fpm/fpm_shm_slots.c +new file mode 100644 +index 0000000..efa3707 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_shm_slots.c +@@ -0,0 +1,127 @@ ++ ++ /* $Id: fpm_shm_slots.c,v 1.2 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include "fpm_atomic.h" ++#include "fpm_worker_pool.h" ++#include "fpm_children.h" ++#include "fpm_shm.h" ++#include "fpm_shm_slots.h" ++#include "zlog.h" ++ ++static void *shm_mem; ++static struct fpm_shm_slot_s *shm_slot; ++ ++int fpm_shm_slots_prepare_slot(struct fpm_child_s *child) ++{ ++ struct fpm_worker_pool_s *wp = child->wp; ++ struct fpm_shm_slot_ptr_s *shm_slot_ptr; ++ ++ child->shm_slot_i = wp->slots_used.used; ++ ++ shm_slot_ptr = fpm_array_push(&wp->slots_used); ++ ++ if (0 == shm_slot_ptr) { ++ return -1; ++ } ++ ++ if (0 == wp->slots_free.used) { ++ shm_slot_ptr->shm_slot = fpm_shm_alloc_chunk(&wp->shm_list, sizeof(struct fpm_shm_slot_s), &shm_slot_ptr->mem); ++ ++ if (!shm_slot_ptr->shm_slot) { ++ return -1; ++ } ++ } ++ else { ++ *shm_slot_ptr = *(struct fpm_shm_slot_ptr_s *) fpm_array_item_last(&wp->slots_free); ++ ++ --wp->slots_free.used; ++ } ++ ++ memset(shm_slot_ptr->shm_slot, 0, sizeof(struct fpm_shm_slot_s)); ++ ++ shm_slot_ptr->child = child; ++ ++ return 0; ++} ++ ++void fpm_shm_slots_discard_slot(struct fpm_child_s *child) ++{ ++ struct fpm_shm_slot_ptr_s *shm_slot_ptr; ++ struct fpm_worker_pool_s *wp = child->wp; ++ int n; ++ ++ shm_slot_ptr = fpm_array_push(&wp->slots_free); ++ ++ if (shm_slot_ptr) { ++ ++ struct fpm_shm_slot_ptr_s *shm_slot_ptr_used; ++ ++ shm_slot_ptr_used = fpm_array_item(&wp->slots_used, child->shm_slot_i); ++ ++ *shm_slot_ptr = *shm_slot_ptr_used; ++ ++ shm_slot_ptr->child = 0; ++ ++ } ++ ++ n = fpm_array_item_remove(&wp->slots_used, child->shm_slot_i); ++ ++ if (n > -1) { ++ shm_slot_ptr = fpm_array_item(&wp->slots_used, n); ++ ++ shm_slot_ptr->child->shm_slot_i = n; ++ } ++} ++ ++void fpm_shm_slots_child_use_slot(struct fpm_child_s *child) ++{ ++ struct fpm_shm_slot_ptr_s *shm_slot_ptr; ++ struct fpm_worker_pool_s *wp = child->wp; ++ ++ shm_slot_ptr = fpm_array_item(&wp->slots_used, child->shm_slot_i); ++ ++ shm_slot = shm_slot_ptr->shm_slot; ++ shm_mem = shm_slot_ptr->mem; ++} ++ ++void fpm_shm_slots_parent_use_slot(struct fpm_child_s *child) ++{ ++ /* nothing to do */ ++} ++ ++void *fpm_shm_slots_mem() ++{ ++ return shm_mem; ++} ++ ++struct fpm_shm_slot_s *fpm_shm_slot(struct fpm_child_s *child) ++{ ++ struct fpm_shm_slot_ptr_s *shm_slot_ptr; ++ struct fpm_worker_pool_s *wp = child->wp; ++ ++ shm_slot_ptr = fpm_array_item(&wp->slots_used, child->shm_slot_i); ++ ++ return shm_slot_ptr->shm_slot; ++} ++ ++struct fpm_shm_slot_s *fpm_shm_slots_acquire(struct fpm_shm_slot_s *s, int nohang) ++{ ++ if (s == 0) { ++ s = shm_slot; ++ } ++ ++ if (0 > fpm_spinlock(&s->lock, nohang)) { ++ return 0; ++ } ++ ++ return s; ++} ++ ++void fpm_shm_slots_release(struct fpm_shm_slot_s *s) ++{ ++ s->lock = 0; ++} ++ +diff --git a/sapi/cgi/fpm/fpm_shm_slots.h b/sapi/cgi/fpm/fpm_shm_slots.h +new file mode 100644 +index 0000000..4596c6f +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_shm_slots.h +@@ -0,0 +1,43 @@ ++ ++ /* $Id: fpm_shm_slots.h,v 1.2 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_SHM_SLOTS_H ++#define FPM_SHM_SLOTS_H 1 ++ ++#include "fpm_atomic.h" ++#include "fpm_worker_pool.h" ++#include "fpm_request.h" ++ ++struct fpm_child_s; ++ ++struct fpm_shm_slot_s { ++ union { ++ atomic_t lock; ++ char dummy[16]; ++ }; ++ enum fpm_request_stage_e request_stage; ++ struct timeval accepted; ++ struct timeval tv; ++ char request_method[16]; ++ size_t content_length; /* used with POST only */ ++ char script_filename[256]; ++}; ++ ++struct fpm_shm_slot_ptr_s { ++ void *mem; ++ struct fpm_shm_slot_s *shm_slot; ++ struct fpm_child_s *child; ++}; ++ ++int fpm_shm_slots_prepare_slot(struct fpm_child_s *child); ++void fpm_shm_slots_discard_slot(struct fpm_child_s *child); ++void fpm_shm_slots_child_use_slot(struct fpm_child_s *child); ++void fpm_shm_slots_parent_use_slot(struct fpm_child_s *child); ++void *fpm_shm_slots_mem(); ++struct fpm_shm_slot_s *fpm_shm_slot(struct fpm_child_s *child); ++struct fpm_shm_slot_s *fpm_shm_slots_acquire(struct fpm_shm_slot_s *, int nohang); ++void fpm_shm_slots_release(struct fpm_shm_slot_s *); ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_signals.c b/sapi/cgi/fpm/fpm_signals.c +new file mode 100644 +index 0000000..2cf878d +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_signals.c +@@ -0,0 +1,252 @@ ++ ++ /* $Id: fpm_signals.c,v 1.24 2008/08/26 15:09:15 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "fpm.h" ++#include "fpm_signals.h" ++#include "fpm_sockets.h" ++#include "fpm_php.h" ++#include "zlog.h" ++ ++static int sp[2]; ++ ++const char *fpm_signal_names[NSIG + 1] = { ++#ifdef SIGHUP ++ [SIGHUP] = "SIGHUP", ++#endif ++#ifdef SIGINT ++ [SIGINT] = "SIGINT", ++#endif ++#ifdef SIGQUIT ++ [SIGQUIT] = "SIGQUIT", ++#endif ++#ifdef SIGILL ++ [SIGILL] = "SIGILL", ++#endif ++#ifdef SIGTRAP ++ [SIGTRAP] = "SIGTRAP", ++#endif ++#ifdef SIGABRT ++ [SIGABRT] = "SIGABRT", ++#endif ++#ifdef SIGEMT ++ [SIGEMT] = "SIGEMT", ++#endif ++#ifdef SIGBUS ++ [SIGBUS] = "SIGBUS", ++#endif ++#ifdef SIGFPE ++ [SIGFPE] = "SIGFPE", ++#endif ++#ifdef SIGKILL ++ [SIGKILL] = "SIGKILL", ++#endif ++#ifdef SIGUSR1 ++ [SIGUSR1] = "SIGUSR1", ++#endif ++#ifdef SIGSEGV ++ [SIGSEGV] = "SIGSEGV", ++#endif ++#ifdef SIGUSR2 ++ [SIGUSR2] = "SIGUSR2", ++#endif ++#ifdef SIGPIPE ++ [SIGPIPE] = "SIGPIPE", ++#endif ++#ifdef SIGALRM ++ [SIGALRM] = "SIGALRM", ++#endif ++#ifdef SIGTERM ++ [SIGTERM] = "SIGTERM", ++#endif ++#ifdef SIGCHLD ++ [SIGCHLD] = "SIGCHLD", ++#endif ++#ifdef SIGCONT ++ [SIGCONT] = "SIGCONT", ++#endif ++#ifdef SIGSTOP ++ [SIGSTOP] = "SIGSTOP", ++#endif ++#ifdef SIGTSTP ++ [SIGTSTP] = "SIGTSTP", ++#endif ++#ifdef SIGTTIN ++ [SIGTTIN] = "SIGTTIN", ++#endif ++#ifdef SIGTTOU ++ [SIGTTOU] = "SIGTTOU", ++#endif ++#ifdef SIGURG ++ [SIGURG] = "SIGURG", ++#endif ++#ifdef SIGXCPU ++ [SIGXCPU] = "SIGXCPU", ++#endif ++#ifdef SIGXFSZ ++ [SIGXFSZ] = "SIGXFSZ", ++#endif ++#ifdef SIGVTALRM ++ [SIGVTALRM] = "SIGVTALRM", ++#endif ++#ifdef SIGPROF ++ [SIGPROF] = "SIGPROF", ++#endif ++#ifdef SIGWINCH ++ [SIGWINCH] = "SIGWINCH", ++#endif ++#ifdef SIGINFO ++ [SIGINFO] = "SIGINFO", ++#endif ++#ifdef SIGIO ++ [SIGIO] = "SIGIO", ++#endif ++#ifdef SIGPWR ++ [SIGPWR] = "SIGPWR", ++#endif ++#ifdef SIGSYS ++ [SIGSYS] = "SIGSYS", ++#endif ++#ifdef SIGWAITING ++ [SIGWAITING] = "SIGWAITING", ++#endif ++#ifdef SIGLWP ++ [SIGLWP] = "SIGLWP", ++#endif ++#ifdef SIGFREEZE ++ [SIGFREEZE] = "SIGFREEZE", ++#endif ++#ifdef SIGTHAW ++ [SIGTHAW] = "SIGTHAW", ++#endif ++#ifdef SIGCANCEL ++ [SIGCANCEL] = "SIGCANCEL", ++#endif ++#ifdef SIGLOST ++ [SIGLOST] = "SIGLOST", ++#endif ++}; ++ ++static void sig_soft_quit(int signo) ++{ ++ int saved_errno = errno; ++ ++ /* closing fastcgi listening socket will force fcgi_accept() exit immediately */ ++ close(0); ++ socket(AF_UNIX, SOCK_STREAM, 0); ++ ++ fpm_php_soft_quit(); ++ ++ errno = saved_errno; ++} ++ ++static void sig_handler(int signo) ++{ ++ static const char sig_chars[NSIG + 1] = { ++ [SIGTERM] = 'T', ++ [SIGINT] = 'I', ++ [SIGUSR1] = '1', ++ [SIGUSR2] = '2', ++ [SIGQUIT] = 'Q', ++ [SIGCHLD] = 'C' ++ }; ++ char s; ++ int saved_errno; ++ ++ if (fpm_globals.parent_pid != getpid()) { ++ /* prevent a signal race condition when child process ++ have not set up it's own signal handler yet */ ++ return; ++ } ++ ++ saved_errno = errno; ++ ++ s = sig_chars[signo]; ++ ++ write(sp[1], &s, sizeof(s)); ++ ++ errno = saved_errno; ++} ++ ++int fpm_signals_init_main() ++{ ++ struct sigaction act; ++ ++ if (0 > socketpair(AF_UNIX, SOCK_STREAM, 0, sp)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "socketpair() failed"); ++ return -1; ++ } ++ ++ if (0 > fd_set_blocked(sp[0], 0) || 0 > fd_set_blocked(sp[1], 0)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "fd_set_blocked() failed"); ++ return -1; ++ } ++ ++ if (0 > fcntl(sp[0], F_SETFD, FD_CLOEXEC) || 0 > fcntl(sp[1], F_SETFD, FD_CLOEXEC)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "fcntl(F_SETFD, FD_CLOEXEC) failed"); ++ return -1; ++ } ++ ++ memset(&act, 0, sizeof(act)); ++ act.sa_handler = sig_handler; ++ sigfillset(&act.sa_mask); ++ ++ if (0 > sigaction(SIGTERM, &act, 0) || ++ 0 > sigaction(SIGINT, &act, 0) || ++ 0 > sigaction(SIGUSR1, &act, 0) || ++ 0 > sigaction(SIGUSR2, &act, 0) || ++ 0 > sigaction(SIGCHLD, &act, 0) || ++ 0 > sigaction(SIGQUIT, &act, 0)) { ++ ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "sigaction() failed"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_signals_init_child() ++{ ++ struct sigaction act, act_dfl; ++ ++ memset(&act, 0, sizeof(act)); ++ memset(&act_dfl, 0, sizeof(act_dfl)); ++ ++ act.sa_handler = &sig_soft_quit; ++ act.sa_flags |= SA_RESTART; ++ ++ act_dfl.sa_handler = SIG_DFL; ++ ++ close(sp[0]); ++ close(sp[1]); ++ ++ if (0 > sigaction(SIGTERM, &act_dfl, 0) || ++ 0 > sigaction(SIGINT, &act_dfl, 0) || ++ 0 > sigaction(SIGUSR1, &act_dfl, 0) || ++ 0 > sigaction(SIGUSR2, &act_dfl, 0) || ++ 0 > sigaction(SIGCHLD, &act_dfl, 0) || ++ 0 > sigaction(SIGQUIT, &act, 0)) { ++ ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "sigaction() failed"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_signals_get_fd() ++{ ++ return sp[0]; ++} +diff --git a/sapi/cgi/fpm/fpm_signals.h b/sapi/cgi/fpm/fpm_signals.h +new file mode 100644 +index 0000000..eb80fae +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_signals.h +@@ -0,0 +1,16 @@ ++ ++ /* $Id: fpm_signals.h,v 1.5 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_SIGNALS_H ++#define FPM_SIGNALS_H 1 ++ ++#include ++ ++int fpm_signals_init_main(); ++int fpm_signals_init_child(); ++int fpm_signals_get_fd(); ++ ++extern const char *fpm_signal_names[NSIG + 1]; ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_sockets.c b/sapi/cgi/fpm/fpm_sockets.c +new file mode 100644 +index 0000000..5acb559 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_sockets.c +@@ -0,0 +1,427 @@ ++ ++ /* $Id: fpm_sockets.c,v 1.20.2.1 2008/12/13 03:21:18 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#ifdef HAVE_ALLOCA_H ++#include ++#endif ++#include ++#include /* for chmod(2) */ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "zlog.h" ++#include "fpm_arrays.h" ++#include "fpm_sockets.h" ++#include "fpm_worker_pool.h" ++#include "fpm_unix.h" ++#include "fpm_str.h" ++#include "fpm_env.h" ++#include "fpm_cleanup.h" ++ ++struct listening_socket_s { ++ int refcount; ++ int sock; ++ int type; ++ char *key; ++}; ++ ++static struct fpm_array_s sockets_list; ++ ++static int fpm_sockets_resolve_af_inet(char *node, char *service, struct sockaddr_in *addr) ++{ ++ struct addrinfo *res; ++ struct addrinfo hints; ++ int ret; ++ ++ memset(&hints, 0, sizeof(hints)); ++ ++ hints.ai_family = AF_INET; ++ ++ ret = getaddrinfo(node, service, &hints, &res); ++ ++ if (ret != 0) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "can't resolve hostname '%s%s%s': getaddrinfo said: %s%s%s\n", ++ node, service ? ":" : "", service ? service : "", ++ gai_strerror(ret), ret == EAI_SYSTEM ? ", system error: " : "", ret == EAI_SYSTEM ? strerror(errno) : ""); ++ return -1; ++ } ++ ++ *addr = *(struct sockaddr_in *) res->ai_addr; ++ ++ freeaddrinfo(res); ++ ++ return 0; ++} ++ ++enum { FPM_GET_USE_SOCKET = 1, FPM_STORE_SOCKET = 2, FPM_STORE_USE_SOCKET = 3 }; ++ ++static void fpm_sockets_cleanup(int which, void *arg) ++{ ++ int i; ++ char *env_value = 0; ++ int p = 0; ++ struct listening_socket_s *ls = sockets_list.data; ++ ++ for (i = 0; i < sockets_list.used; i++, ls++) { ++ ++ if (which != FPM_CLEANUP_PARENT_EXEC) { ++ ++ close(ls->sock); ++ ++ } ++ else { /* on PARENT EXEC we want socket fds to be inherited through environment variable */ ++ char fd[32]; ++ sprintf(fd, "%d", ls->sock); ++ env_value = realloc(env_value, p + (p ? 1 : 0) + strlen(ls->key) + 1 + strlen(fd) + 1); ++ p += sprintf(env_value + p, "%s%s=%s", p ? "," : "", ls->key, fd); ++ } ++ ++ if (which == FPM_CLEANUP_PARENT_EXIT_MAIN) { ++ ++ if (ls->type == FPM_AF_UNIX) { ++ unlink(ls->key); ++ } ++ ++ } ++ ++ free(ls->key); ++ } ++ ++ if (env_value) { ++ setenv("FPM_SOCKETS", env_value, 1); ++ free(env_value); ++ } ++ ++ fpm_array_free(&sockets_list); ++} ++ ++static int fpm_sockets_hash_op(int sock, struct sockaddr *sa, char *key, int type, int op) ++{ ++ ++ if (key == NULL) { ++ ++ switch (type) { ++ ++ case FPM_AF_INET : { ++ struct sockaddr_in *sa_in = (struct sockaddr_in *) sa; ++ ++ key = alloca(sizeof("xxx.xxx.xxx.xxx:ppppp")); ++ ++ sprintf(key, "%u.%u.%u.%u:%u", IPQUAD(&sa_in->sin_addr), (unsigned int) ntohs(sa_in->sin_port)); ++ ++ break; ++ } ++ ++ case FPM_AF_UNIX : { ++ struct sockaddr_un *sa_un = (struct sockaddr_un *) sa; ++ ++ key = alloca(strlen(sa_un->sun_path) + 1); ++ ++ strcpy(key, sa_un->sun_path); ++ ++ break; ++ } ++ ++ default : ++ ++ return -1; ++ } ++ ++ } ++ ++ switch (op) { ++ ++ case FPM_GET_USE_SOCKET : ++ { ++ ++ int i; ++ struct listening_socket_s *ls = sockets_list.data; ++ ++ for (i = 0; i < sockets_list.used; i++, ls++) { ++ ++ if (!strcmp(ls->key, key)) { ++ ++ls->refcount; ++ return ls->sock; ++ } ++ } ++ ++ break; ++ } ++ ++ case FPM_STORE_SOCKET : /* inherited socket */ ++ case FPM_STORE_USE_SOCKET : /* just created */ ++ { ++ ++ struct listening_socket_s *ls; ++ ++ ls = fpm_array_push(&sockets_list); ++ ++ if (!ls) { ++ break; ++ } ++ ++ if (op == FPM_STORE_SOCKET) { ++ ls->refcount = 0; ++ } ++ else { ++ ls->refcount = 1; ++ } ++ ls->type = type; ++ ls->sock = sock; ++ ls->key = strdup(key); ++ ++ return 0; ++ ++ } ++ } ++ ++ return -1; ++ ++} ++ ++static int fpm_sockets_new_listening_socket(struct fpm_worker_pool_s *wp, struct sockaddr *sa, int socklen) ++{ ++ int backlog = -1; ++ int flags = 1; ++ int sock; ++ mode_t saved_umask; ++ ++ /* we have custom backlog value */ ++ if (wp->config->listen_options) { ++ backlog = wp->config->listen_options->backlog; ++ } ++ ++ sock = socket(sa->sa_family, SOCK_STREAM, 0); ++ ++ if (0 > sock) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "socket() failed"); ++ return -1; ++ } ++ ++ setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &flags, sizeof(flags)); ++ ++ if (wp->listen_address_domain == FPM_AF_UNIX) { ++ unlink( ((struct sockaddr_un *) sa)->sun_path); ++ } ++ ++ saved_umask = umask(0777 ^ wp->socket_mode); ++ ++ if (0 > bind(sock, sa, socklen)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "bind() for address '%s' failed", wp->config->listen_address); ++ return -1; ++ } ++ ++ if (wp->listen_address_domain == FPM_AF_UNIX) { ++ ++ char *path = ((struct sockaddr_un *) sa)->sun_path; ++ ++ if (wp->socket_uid != -1 || wp->socket_gid != -1) { ++ ++ if (0 > chown(path, wp->socket_uid, wp->socket_gid)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "chown() for address '%s' failed", wp->config->listen_address); ++ return -1; ++ } ++ ++ } ++ ++ } ++ ++ umask(saved_umask); ++ ++ if (0 > listen(sock, backlog)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "listen() for address '%s' failed", wp->config->listen_address); ++ return -1; ++ } ++ ++ return sock; ++} ++ ++static int fpm_sockets_get_listening_socket(struct fpm_worker_pool_s *wp, struct sockaddr *sa, int socklen) ++{ ++ int sock; ++ ++ sock = fpm_sockets_hash_op(0, sa, 0, wp->listen_address_domain, FPM_GET_USE_SOCKET); ++ ++ if (sock >= 0) return sock; ++ ++ sock = fpm_sockets_new_listening_socket(wp, sa, socklen); ++ ++ fpm_sockets_hash_op(sock, sa, 0, wp->listen_address_domain, FPM_STORE_USE_SOCKET); ++ ++ return sock; ++} ++ ++enum fpm_address_domain fpm_sockets_domain_from_address(char *address) ++{ ++ if (strchr(address, ':')) return FPM_AF_INET; ++ ++ if (strlen(address) == strspn(address, "0123456789")) return FPM_AF_INET; ++ ++ return FPM_AF_UNIX; ++} ++ ++static int fpm_socket_af_inet_listening_socket(struct fpm_worker_pool_s *wp) ++{ ++ struct sockaddr_in sa_in; ++ char *dup_address = strdup(wp->config->listen_address); ++ char *port_str = strchr(dup_address, ':'); ++ char *addr = NULL; ++ int port = 0; ++ ++ if (port_str) { /* this is host:port pair */ ++ *port_str++ = '\0'; ++ port = atoi(port_str); ++ addr = dup_address; ++ } ++ else if (strlen(dup_address) == strspn(dup_address, "0123456789")) { /* this is port */ ++ port = atoi(dup_address); ++ port_str = dup_address; ++ } ++ ++ if (port == 0) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "invalid port value '%s'", port_str); ++ return -1; ++ } ++ ++ memset(&sa_in, 0, sizeof(sa_in)); ++ ++ if (addr) { ++ ++ sa_in.sin_addr.s_addr = inet_addr(addr); ++ ++ if (sa_in.sin_addr.s_addr == INADDR_NONE) { /* do resolve */ ++ if (0 > fpm_sockets_resolve_af_inet(addr, NULL, &sa_in)) { ++ return -1; ++ } ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "address '%s' resolved as %u.%u.%u.%u", addr, IPQUAD(&sa_in.sin_addr)); ++ } ++ } ++ else { ++ ++ sa_in.sin_addr.s_addr = htonl(INADDR_ANY); ++ ++ } ++ ++ sa_in.sin_family = AF_INET; ++ sa_in.sin_port = htons(port); ++ ++ free(dup_address); ++ ++ return fpm_sockets_get_listening_socket(wp, (struct sockaddr *) &sa_in, sizeof(struct sockaddr_in)); ++} ++ ++static int fpm_socket_af_unix_listening_socket(struct fpm_worker_pool_s *wp) ++{ ++ struct sockaddr_un sa_un; ++ ++ memset(&sa_un, 0, sizeof(sa_un)); ++ ++ cpystrn(sa_un.sun_path, wp->config->listen_address, sizeof(sa_un.sun_path)); ++ sa_un.sun_family = AF_UNIX; ++ ++ return fpm_sockets_get_listening_socket(wp, (struct sockaddr *) &sa_un, sizeof(struct sockaddr_un)); ++} ++ ++int fpm_sockets_init_main() ++{ ++ int i; ++ struct fpm_worker_pool_s *wp; ++ char *inherited = getenv("FPM_SOCKETS"); ++ struct listening_socket_s *ls; ++ ++ if (0 == fpm_array_init(&sockets_list, sizeof(struct listening_socket_s), 10)) { ++ return -1; ++ } ++ ++ /* import inherited sockets */ ++ while (inherited && *inherited) { ++ char *comma = strchr(inherited, ','); ++ int type, fd_no; ++ char *eq; ++ ++ if (comma) *comma = '\0'; ++ ++ eq = strchr(inherited, '='); ++ ++ if (eq) { ++ *eq = '\0'; ++ ++ fd_no = atoi(eq + 1); ++ ++ type = fpm_sockets_domain_from_address(inherited); ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "using inherited socket fd=%d, \"%s\"", fd_no, inherited); ++ ++ fpm_sockets_hash_op(fd_no, 0, inherited, type, FPM_STORE_SOCKET); ++ } ++ ++ if (comma) inherited = comma + 1; ++ else inherited = 0; ++ } ++ ++ /* create all required sockets */ ++ for (wp = fpm_worker_all_pools; wp; wp = wp->next) { ++ ++ if (!wp->is_template) { ++ ++ switch (wp->listen_address_domain) { ++ ++ case FPM_AF_INET : ++ ++ wp->listening_socket = fpm_socket_af_inet_listening_socket(wp); ++ break; ++ ++ case FPM_AF_UNIX : ++ ++ if (0 > fpm_unix_resolve_socket_premissions(wp)) { ++ return -1; ++ } ++ ++ wp->listening_socket = fpm_socket_af_unix_listening_socket(wp); ++ break; ++ ++ } ++ ++ if (wp->listening_socket == -1) { ++ return -1; ++ } ++ } ++ ++ } ++ ++ /* close unused sockets that was inherited */ ++ ls = sockets_list.data; ++ ++ for (i = 0; i < sockets_list.used; ) { ++ ++ if (ls->refcount == 0) { ++ close(ls->sock); ++ if (ls->type == FPM_AF_UNIX) { ++ unlink(ls->key); ++ } ++ free(ls->key); ++ fpm_array_item_remove(&sockets_list, i); ++ } ++ else { ++ ++i; ++ ++ls; ++ } ++ } ++ ++ if (0 > fpm_cleanup_add(FPM_CLEANUP_ALL, fpm_sockets_cleanup, 0)) { ++ return -1; ++ } ++ ++ return 0; ++} +diff --git a/sapi/cgi/fpm/fpm_sockets.h b/sapi/cgi/fpm/fpm_sockets.h +new file mode 100644 +index 0000000..d5433e3 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_sockets.h +@@ -0,0 +1,37 @@ ++ ++ /* $Id: fpm_sockets.h,v 1.12 2008/08/26 15:09:15 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_MISC_H ++#define FPM_MISC_H 1 ++ ++#include ++#include ++ ++#include "fpm_worker_pool.h" ++ ++enum fpm_address_domain fpm_sockets_domain_from_address(char *addr); ++int fpm_sockets_init_main(); ++ ++ ++static inline int fd_set_blocked(int fd, int blocked) ++{ ++ int flags = fcntl(fd, F_GETFL); ++ ++ if (flags < 0) return -1; ++ ++ if (blocked) ++ flags &= ~O_NONBLOCK; ++ else ++ flags |= O_NONBLOCK; ++ ++ return fcntl(fd, F_SETFL, flags); ++} ++ ++#define IPQUAD(sin_addr) \ ++ (unsigned int) ((unsigned char *) &(sin_addr)->s_addr)[0], \ ++ (unsigned int) ((unsigned char *) &(sin_addr)->s_addr)[1], \ ++ (unsigned int) ((unsigned char *) &(sin_addr)->s_addr)[2], \ ++ (unsigned int) ((unsigned char *) &(sin_addr)->s_addr)[3] ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_stdio.c b/sapi/cgi/fpm/fpm_stdio.c +new file mode 100644 +index 0000000..a6818d7 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_stdio.c +@@ -0,0 +1,286 @@ ++ ++ /* $Id: fpm_stdio.c,v 1.22.2.2 2008/12/13 03:32:24 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "fpm.h" ++#include "fpm_children.h" ++#include "fpm_events.h" ++#include "fpm_sockets.h" ++#include "fpm_stdio.h" ++#include "zlog.h" ++ ++static int fd_stdout[2]; ++static int fd_stderr[2]; ++ ++int fpm_stdio_init_main() ++{ ++ int fd = open("/dev/null", O_RDWR); ++ ++ if (0 > fd) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "open(\"/dev/null\") failed"); ++ return -1; ++ } ++ ++ if (0 > dup2(fd, STDIN_FILENO) || 0 > dup2(fd, STDOUT_FILENO)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "dup2() failed"); ++ return -1; ++ } ++ ++ close(fd); ++ ++ return 0; ++} ++ ++int fpm_stdio_init_final() ++{ ++ if (fpm_global_config.daemonize) { ++ ++ if (fpm_globals.error_log_fd != STDERR_FILENO) { ++ /* there might be messages to stderr from libevent, we need to log them all */ ++ if (0 > dup2(fpm_globals.error_log_fd, STDERR_FILENO)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "dup2() failed"); ++ return -1; ++ } ++ } ++ ++ zlog_set_level(fpm_globals.log_level); ++ ++ zlog_set_fd(fpm_globals.error_log_fd); ++ } ++ ++ return 0; ++} ++ ++int fpm_stdio_init_child(struct fpm_worker_pool_s *wp) ++{ ++ close(fpm_globals.error_log_fd); ++ fpm_globals.error_log_fd = -1; ++ zlog_set_fd(-1); ++ ++ if (wp->listening_socket != STDIN_FILENO) { ++ if (0 > dup2(wp->listening_socket, STDIN_FILENO)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "dup2() failed"); ++ return -1; ++ } ++ } ++ ++ return 0; ++} ++ ++static void fpm_stdio_child_said(int fd, short which, void *arg) ++{ ++ static const int max_buf_size = 1024; ++ char buf[max_buf_size]; ++ struct fpm_child_s *child = arg; ++ int is_stdout = fd == child->fd_stdout; ++ struct event *ev = is_stdout ? &child->ev_stdout : &child->ev_stderr; ++ int fifo_in = 1, fifo_out = 1; ++ int is_last_message = 0; ++ int in_buf = 0; ++ int res; ++ ++#if 0 ++ zlog(ZLOG_STUFF, ZLOG_DEBUG, "child %d said %s", (int) child->pid, is_stdout ? "stdout" : "stderr"); ++#endif ++ ++ while (fifo_in || fifo_out) { ++ ++ if (fifo_in) { ++ ++ res = read(fd, buf + in_buf, max_buf_size - 1 - in_buf); ++ ++ if (res <= 0) { /* no data */ ++ fifo_in = 0; ++ ++ if (res < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) { ++ /* just no more data ready */ ++ } ++ else { /* error or pipe is closed */ ++ ++ if (res < 0) { /* error */ ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "read() failed"); ++ } ++ ++ fpm_event_del(ev); ++ is_last_message = 1; ++ ++ if (is_stdout) { ++ close(child->fd_stdout); ++ child->fd_stdout = -1; ++ } ++ else { ++ close(child->fd_stderr); ++ child->fd_stderr = -1; ++ } ++ ++#if 0 ++ if (in_buf == 0 && !fpm_globals.is_child) { ++ zlog(ZLOG_STUFF, ZLOG_DEBUG, "child %d (pool %s) %s pipe is closed", (int) child->pid, ++ child->wp->config->name, is_stdout ? "stdout" : "stderr"); ++ } ++#endif ++ } ++ } ++ else { ++ in_buf += res; ++ } ++ } ++ ++ if (fifo_out) { ++ if (in_buf == 0) { ++ fifo_out = 0; ++ } ++ else { ++ char *nl; ++ int should_print = 0; ++ buf[in_buf] = '\0'; ++ ++ /* FIXME: there might be binary data */ ++ ++ /* we should print if no more space in the buffer */ ++ if (in_buf == max_buf_size - 1) { ++ should_print = 1; ++ } ++ ++ /* we should print if no more data to come */ ++ if (!fifo_in) { ++ should_print = 1; ++ } ++ ++ nl = strchr(buf, '\n'); ++ ++ if (nl || should_print) { ++ ++ if (nl) { ++ *nl = '\0'; ++ } ++ ++ zlog(ZLOG_STUFF, ZLOG_WARNING, "child %d (pool %s) said into %s: \"%s\"%s", (int) child->pid, ++ child->wp->config->name, is_stdout ? "stdout" : "stderr", buf, is_last_message ? ", pipe is closed" : ""); ++ ++ if (nl) { ++ int out_buf = 1 + nl - buf; ++ memmove(buf, buf + out_buf, in_buf - out_buf); ++ in_buf -= out_buf; ++ } ++ else { ++ in_buf = 0; ++ } ++ } ++ } ++ } ++ } ++ ++} ++ ++int fpm_stdio_prepare_pipes(struct fpm_child_s *child) ++{ ++ if (0 == child->wp->config->catch_workers_output) { /* not required */ ++ return 0; ++ } ++ ++ if (0 > pipe(fd_stdout)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "pipe() failed"); ++ return -1; ++ } ++ ++ if (0 > pipe(fd_stderr)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "pipe() failed"); ++ close(fd_stdout[0]); close(fd_stdout[1]); ++ return -1; ++ } ++ ++ if (0 > fd_set_blocked(fd_stdout[0], 0) || 0 > fd_set_blocked(fd_stderr[0], 0)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "fd_set_blocked() failed"); ++ close(fd_stdout[0]); close(fd_stdout[1]); ++ close(fd_stderr[0]); close(fd_stderr[1]); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_stdio_parent_use_pipes(struct fpm_child_s *child) ++{ ++ if (0 == child->wp->config->catch_workers_output) { /* not required */ ++ return 0; ++ } ++ ++ close(fd_stdout[1]); ++ close(fd_stderr[1]); ++ ++ child->fd_stdout = fd_stdout[0]; ++ child->fd_stderr = fd_stderr[0]; ++ ++ fpm_event_add(child->fd_stdout, &child->ev_stdout, fpm_stdio_child_said, child); ++ fpm_event_add(child->fd_stderr, &child->ev_stderr, fpm_stdio_child_said, child); ++ ++ return 0; ++} ++ ++int fpm_stdio_discard_pipes(struct fpm_child_s *child) ++{ ++ if (0 == child->wp->config->catch_workers_output) { /* not required */ ++ return 0; ++ } ++ ++ close(fd_stdout[1]); ++ close(fd_stderr[1]); ++ ++ close(fd_stdout[0]); ++ close(fd_stderr[0]); ++ ++ return 0; ++} ++ ++void fpm_stdio_child_use_pipes(struct fpm_child_s *child) ++{ ++ if (child->wp->config->catch_workers_output) { ++ dup2(fd_stdout[1], STDOUT_FILENO); ++ dup2(fd_stderr[1], STDERR_FILENO); ++ close(fd_stdout[0]); close(fd_stdout[1]); ++ close(fd_stderr[0]); close(fd_stderr[1]); ++ } ++ else { ++ /* stdout of parent is always /dev/null */ ++ dup2(STDOUT_FILENO, STDERR_FILENO); ++ } ++} ++ ++int fpm_stdio_open_error_log(int reopen) ++{ ++ int fd; ++ ++ fd = open(fpm_global_config.error_log, O_WRONLY | O_APPEND | O_CREAT, S_IRUSR | S_IWUSR); ++ ++ if (0 > fd) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "open(\"%s\") failed", fpm_global_config.error_log); ++ return -1; ++ } ++ ++ if (reopen) { ++ if (fpm_global_config.daemonize) { ++ dup2(fd, STDERR_FILENO); ++ } ++ ++ dup2(fd, fpm_globals.error_log_fd); ++ close(fd); ++ fd = fpm_globals.error_log_fd; /* for FD_CLOSEXEC to work */ ++ } ++ else { ++ fpm_globals.error_log_fd = fd; ++ } ++ ++ fcntl(fd, F_SETFD, fcntl(fd, F_GETFD) | FD_CLOEXEC); ++ ++ return 0; ++} +diff --git a/sapi/cgi/fpm/fpm_stdio.h b/sapi/cgi/fpm/fpm_stdio.h +new file mode 100644 +index 0000000..d3d61e4 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_stdio.h +@@ -0,0 +1,20 @@ ++ ++ /* $Id: fpm_stdio.h,v 1.9 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_STDIO_H ++#define FPM_STDIO_H 1 ++ ++#include "fpm_worker_pool.h" ++ ++int fpm_stdio_init_main(); ++int fpm_stdio_init_final(); ++int fpm_stdio_init_child(struct fpm_worker_pool_s *wp); ++int fpm_stdio_prepare_pipes(struct fpm_child_s *child); ++void fpm_stdio_child_use_pipes(struct fpm_child_s *child); ++int fpm_stdio_parent_use_pipes(struct fpm_child_s *child); ++int fpm_stdio_discard_pipes(struct fpm_child_s *child); ++int fpm_stdio_open_error_log(int reopen); ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_str.h b/sapi/cgi/fpm/fpm_str.h +new file mode 100644 +index 0000000..19e2055 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_str.h +@@ -0,0 +1,49 @@ ++ ++ /* $Id: fpm_str.h,v 1.3 2008/05/24 17:38:47 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_STR_H ++#define FPM_STR_H 1 ++ ++static inline char *cpystrn(char *dst, const char *src, size_t dst_size) ++{ ++ char *d, *end; ++ ++ if (!dst_size) return dst; ++ ++ d = dst; ++ end = dst + dst_size - 1; ++ ++ for (; d < end; ++d, ++src) { ++ if (!(*d = *src)) { ++ return d; ++ } ++ } ++ ++ *d = '\0'; ++ ++ return d; ++} ++ ++static inline char *str_purify_filename(char *dst, char *src, size_t size) ++{ ++ char *d, *end; ++ ++ d = dst; ++ end = dst + size - 1; ++ ++ for (; d < end && *src; ++d, ++src) { ++ if (* (unsigned char *) src < ' ' || * (unsigned char *) src > '\x7f') { ++ *d = '.'; ++ } ++ else { ++ *d = *src; ++ } ++ } ++ ++ *d = '\0'; ++ ++ return d; ++} ++ ++#endif +diff --git a/sapi/cgi/fpm/fpm_trace.c b/sapi/cgi/fpm/fpm_trace.c +new file mode 100644 +index 0000000..7996355 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_trace.c +@@ -0,0 +1,46 @@ ++ ++ /* $Id: fpm_trace.c,v 1.1 2008/07/20 20:59:00 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++ ++#include "fpm_trace.h" ++ ++int fpm_trace_get_strz(char *buf, size_t sz, long addr) ++{ ++ int i; ++ long l; ++ char *lc = (char *) &l; ++ ++ if (0 > fpm_trace_get_long(addr, &l)) { ++ return -1; ++ } ++ ++ i = l % SIZEOF_LONG; ++ ++ l -= i; ++ ++ for (addr = l; ; addr += SIZEOF_LONG) { ++ ++ if (0 > fpm_trace_get_long(addr, &l)) { ++ return -1; ++ } ++ ++ for ( ; i < SIZEOF_LONG; i++) { ++ --sz; ++ ++ if (sz && lc[i]) { ++ *buf++ = lc[i]; ++ continue; ++ } ++ ++ *buf = '\0'; ++ return 0; ++ } ++ ++ i = 0; ++ } ++} ++ +diff --git a/sapi/cgi/fpm/fpm_trace.h b/sapi/cgi/fpm/fpm_trace.h +new file mode 100644 +index 0000000..b421172 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_trace.h +@@ -0,0 +1,17 @@ ++ ++ /* $Id: fpm_trace.h,v 1.3 2008/07/20 22:43:39 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_TRACE_H ++#define FPM_TRACE_H 1 ++ ++#include ++ ++int fpm_trace_signal(pid_t pid); ++int fpm_trace_ready(pid_t pid); ++int fpm_trace_close(pid_t pid); ++int fpm_trace_get_long(long addr, long *data); ++int fpm_trace_get_strz(char *buf, size_t sz, long addr); ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_trace_mach.c b/sapi/cgi/fpm/fpm_trace_mach.c +new file mode 100644 +index 0000000..11cb9cf +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_trace_mach.c +@@ -0,0 +1,102 @@ ++ ++ /* $Id: fpm_trace_mach.c,v 1.4 2008/08/26 15:09:15 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++ ++#include ++ ++#include "fpm_trace.h" ++#include "fpm_process_ctl.h" ++#include "fpm_unix.h" ++#include "zlog.h" ++ ++ ++static mach_port_name_t target; ++static vm_offset_t target_page_base; ++static vm_offset_t local_page; ++static mach_msg_type_number_t local_size; ++ ++static void fpm_mach_vm_deallocate() ++{ ++ if (local_page) { ++ mach_vm_deallocate(mach_task_self(), local_page, local_size); ++ target_page_base = 0; ++ local_page = 0; ++ local_size = 0; ++ } ++} ++ ++static int fpm_mach_vm_read_page(vm_offset_t page) ++{ ++ kern_return_t kr; ++ ++ kr = mach_vm_read(target, page, fpm_pagesize, &local_page, &local_size); ++ ++ if (kr != KERN_SUCCESS) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "mach_vm_read() failed: %s (%d)", mach_error_string(kr), kr); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_trace_signal(pid_t pid) ++{ ++ if (0 > fpm_pctl_kill(pid, FPM_PCTL_STOP)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "kill(SIGSTOP) failed"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_trace_ready(pid_t pid) ++{ ++ kern_return_t kr; ++ ++ kr = task_for_pid(mach_task_self(), pid, &target); ++ ++ if (kr != KERN_SUCCESS) { ++ char *msg = ""; ++ ++ if (kr == KERN_FAILURE) { ++ msg = " It seems that master process does not have enough privileges to trace processes."; ++ } ++ ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "task_for_pid() failed: %s (%d)%s", mach_error_string(kr), kr, msg); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_trace_close(pid_t pid) ++{ ++ fpm_mach_vm_deallocate(); ++ ++ target = 0; ++ ++ return 0; ++} ++ ++int fpm_trace_get_long(long addr, long *data) ++{ ++ size_t offset = ((uintptr_t) (addr) % fpm_pagesize); ++ vm_offset_t base = (uintptr_t) (addr) - offset; ++ ++ if (base != target_page_base) { ++ fpm_mach_vm_deallocate(); ++ if (0 > fpm_mach_vm_read_page(base)) { ++ return -1; ++ } ++ } ++ ++ *data = * (long *) (local_page + offset); ++ ++ return 0; ++} ++ +diff --git a/sapi/cgi/fpm/fpm_trace_pread.c b/sapi/cgi/fpm/fpm_trace_pread.c +new file mode 100644 +index 0000000..f41bb91 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_trace_pread.c +@@ -0,0 +1,67 @@ ++ ++ /* $Id: fpm_trace_pread.c,v 1.7 2008/08/26 15:09:15 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#define _GNU_SOURCE ++#define _FILE_OFFSET_BITS 64 ++ ++#include "fpm_config.h" ++ ++#include ++ ++#include ++#include ++#include ++ ++#include "fpm_trace.h" ++#include "fpm_process_ctl.h" ++#include "zlog.h" ++ ++ ++static int mem_file = -1; ++ ++int fpm_trace_signal(pid_t pid) ++{ ++ if (0 > fpm_pctl_kill(pid, FPM_PCTL_STOP)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "kill(SIGSTOP) failed"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_trace_ready(pid_t pid) ++{ ++ char buf[128]; ++ ++ sprintf(buf, "/proc/%d/" PROC_MEM_FILE, (int) pid); ++ ++ mem_file = open(buf, O_RDONLY); ++ ++ if (0 > mem_file) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "open(%s) failed", buf); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_trace_close(pid_t pid) ++{ ++ close(mem_file); ++ ++ mem_file = -1; ++ ++ return 0; ++} ++ ++int fpm_trace_get_long(long addr, long *data) ++{ ++ if (sizeof(*data) != pread(mem_file, (void *) data, sizeof(*data), (uintptr_t) addr)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "pread() failed"); ++ return -1; ++ } ++ ++ return 0; ++} ++ +diff --git a/sapi/cgi/fpm/fpm_trace_ptrace.c b/sapi/cgi/fpm/fpm_trace_ptrace.c +new file mode 100644 +index 0000000..11e2081 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_trace_ptrace.c +@@ -0,0 +1,85 @@ ++ ++ /* $Id: fpm_trace_ptrace.c,v 1.7 2008/09/18 23:34:11 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++#include ++ ++#if defined(PT_ATTACH) && !defined(PTRACE_ATTACH) ++#define PTRACE_ATTACH PT_ATTACH ++#endif ++ ++#if defined(PT_DETACH) && !defined(PTRACE_DETACH) ++#define PTRACE_DETACH PT_DETACH ++#endif ++ ++#if defined(PT_READ_D) && !defined(PTRACE_PEEKDATA) ++#define PTRACE_PEEKDATA PT_READ_D ++#endif ++ ++#include "fpm_trace.h" ++#include "zlog.h" ++ ++static pid_t traced_pid; ++ ++int fpm_trace_signal(pid_t pid) ++{ ++ if (0 > ptrace(PTRACE_ATTACH, pid, 0, 0)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "ptrace(ATTACH) failed"); ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_trace_ready(pid_t pid) ++{ ++ traced_pid = pid; ++ ++ return 0; ++} ++ ++int fpm_trace_close(pid_t pid) ++{ ++ if (0 > ptrace(PTRACE_DETACH, pid, (void *) 1, 0)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "ptrace(DETACH) failed"); ++ return -1; ++ } ++ ++ traced_pid = 0; ++ ++ return 0; ++} ++ ++int fpm_trace_get_long(long addr, long *data) ++{ ++#ifdef PT_IO ++ struct ptrace_io_desc ptio = { ++ .piod_op = PIOD_READ_D, ++ .piod_offs = (void *) addr, ++ .piod_addr = (void *) data, ++ .piod_len = sizeof(long) ++ }; ++ ++ if (0 > ptrace(PT_IO, traced_pid, (void *) &ptio, 0)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "ptrace(PT_IO) failed"); ++ return -1; ++ } ++#else ++ errno = 0; ++ ++ *data = ptrace(PTRACE_PEEKDATA, traced_pid, (void *) addr, 0); ++ ++ if (errno) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "ptrace(PEEKDATA) failed"); ++ return -1; ++ } ++#endif ++ ++ return 0; ++} ++ +diff --git a/sapi/cgi/fpm/fpm_unix.c b/sapi/cgi/fpm/fpm_unix.c +new file mode 100644 +index 0000000..4d5eecc +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_unix.c +@@ -0,0 +1,289 @@ ++ ++ /* $Id: fpm_unix.c,v 1.25.2.1 2008/12/13 03:18:23 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef HAVE_PRCTL ++#include ++#endif ++ ++#include "fpm.h" ++#include "fpm_conf.h" ++#include "fpm_cleanup.h" ++#include "fpm_clock.h" ++#include "fpm_stdio.h" ++#include "fpm_unix.h" ++#include "zlog.h" ++ ++size_t fpm_pagesize; ++ ++int fpm_unix_resolve_socket_premissions(struct fpm_worker_pool_s *wp) ++{ ++ struct fpm_listen_options_s *lo = wp->config->listen_options; ++ ++ /* uninitialized */ ++ wp->socket_uid = -1; ++ wp->socket_gid = -1; ++ wp->socket_mode = 0666; ++ ++ if (!lo) return 0; ++ ++ if (lo->owner && *lo->owner) { ++ struct passwd *pwd; ++ ++ pwd = getpwnam(lo->owner); ++ ++ if (!pwd) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "cannot get uid for user '%s', pool '%s'", lo->owner, wp->config->name); ++ return -1; ++ } ++ ++ wp->socket_uid = pwd->pw_uid; ++ wp->socket_gid = pwd->pw_gid; ++ } ++ ++ if (lo->group && *lo->group) { ++ struct group *grp; ++ ++ grp = getgrnam(lo->group); ++ ++ if (!grp) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "cannot get gid for group '%s', pool '%s'", lo->group, wp->config->name); ++ return -1; ++ } ++ ++ wp->socket_gid = grp->gr_gid; ++ } ++ ++ if (lo->mode && *lo->mode) { ++ wp->socket_mode = strtoul(lo->mode, 0, 8); ++ } ++ ++ return 0; ++} ++ ++static int fpm_unix_conf_wp(struct fpm_worker_pool_s *wp) ++{ ++ int is_root = !geteuid(); ++ ++ if (is_root) { ++ if (wp->config->user && *wp->config->user) { ++ ++ if (strlen(wp->config->user) == strspn(wp->config->user, "0123456789")) { ++ wp->set_uid = strtoul(wp->config->user, 0, 10); ++ } ++ else { ++ struct passwd *pwd; ++ ++ pwd = getpwnam(wp->config->user); ++ ++ if (!pwd) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "cannot get uid for user '%s', pool '%s'", wp->config->user, wp->config->name); ++ return -1; ++ } ++ ++ wp->set_uid = pwd->pw_uid; ++ wp->set_gid = pwd->pw_gid; ++ ++ wp->user = strdup(pwd->pw_name); ++ wp->home = strdup(pwd->pw_dir); ++ } ++ } ++ ++ if (wp->config->group && *wp->config->group) { ++ ++ if (strlen(wp->config->group) == strspn(wp->config->group, "0123456789")) { ++ wp->set_gid = strtoul(wp->config->group, 0, 10); ++ } ++ else { ++ struct group *grp; ++ ++ grp = getgrnam(wp->config->group); ++ ++ if (!grp) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "cannot get gid for group '%s', pool '%s'", wp->config->group, wp->config->name); ++ return -1; ++ } ++ ++ wp->set_gid = grp->gr_gid; ++ } ++ } ++ ++#ifndef I_REALLY_WANT_ROOT_PHP ++ if (wp->set_uid == 0 || wp->set_gid == 0) { ++ zlog(ZLOG_STUFF, ZLOG_ERROR, "please specify user and group other than root, pool '%s'", wp->config->name); ++ return -1; ++ } ++#endif ++ } ++ else { /* not root */ ++ if (wp->config->user && *wp->config->user) { ++ zlog(ZLOG_STUFF, ZLOG_WARNING, "'user' directive is ignored, pool '%s'", wp->config->name); ++ } ++ if (wp->config->group && *wp->config->group) { ++ zlog(ZLOG_STUFF, ZLOG_WARNING, "'group' directive is ignored, pool '%s'", wp->config->name); ++ } ++ if (wp->config->chroot && *wp->config->chroot) { ++ zlog(ZLOG_STUFF, ZLOG_WARNING, "'chroot' directive is ignored, pool '%s'", wp->config->name); ++ } ++ ++ { /* set up HOME and USER anyway */ ++ struct passwd *pwd; ++ ++ pwd = getpwuid(getuid()); ++ ++ if (pwd) { ++ wp->user = strdup(pwd->pw_name); ++ wp->home = strdup(pwd->pw_dir); ++ } ++ } ++ } ++ ++ return 0; ++} ++ ++int fpm_unix_init_child(struct fpm_worker_pool_s *wp) ++{ ++ int is_root = !geteuid(); ++ int made_chroot = 0; ++ ++ if (wp->config->rlimit_files) { ++ struct rlimit r; ++ ++ getrlimit(RLIMIT_NOFILE, &r); ++ ++ r.rlim_cur = (rlim_t) wp->config->rlimit_files; ++ r.rlim_max = r.rlim_cur; ++ if (0 > setrlimit(RLIMIT_NOFILE, &r)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "setrlimit(RLIMIT_NOFILE) failed"); ++ } ++ } ++ ++ if (wp->config->rlimit_core) { ++ struct rlimit r; ++ ++ getrlimit(RLIMIT_CORE, &r); ++ ++ r.rlim_cur = wp->config->rlimit_core == -1 ? (rlim_t) RLIM_INFINITY : (rlim_t) wp->config->rlimit_core; ++ r.rlim_max = r.rlim_cur; ++ if (0 > setrlimit(RLIMIT_CORE, &r)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "setrlimit(RLIMIT_CORE) failed"); ++ } ++ } ++ ++ if (is_root && wp->config->chroot && *wp->config->chroot) { ++ if (0 > chroot(wp->config->chroot)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "chroot(%s) failed", wp->config->chroot); ++ return -1; ++ } ++ made_chroot = 1; ++ } ++ ++ if (wp->config->chdir && *wp->config->chdir) { ++ if (0 > chdir(wp->config->chdir)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "chdir(%s) failed", wp->config->chdir); ++ return -1; ++ } ++ } ++ else if (made_chroot) { ++ chdir("/"); ++ } ++ ++ if (is_root) { ++ if (wp->set_gid) { ++ if (0 > setgid(wp->set_gid)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "setgid(%d) failed", wp->set_gid); ++ return -1; ++ } ++ } ++ if (wp->set_uid) { ++ if (0 > initgroups(wp->config->user, wp->set_gid)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "initgroups(%s, %d) failed", wp->config->user, wp->set_gid); ++ return -1; ++ } ++ if (0 > setuid(wp->set_uid)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "setuid(%d) failed", wp->set_uid); ++ return -1; ++ } ++ } ++ } ++ ++#ifdef HAVE_PRCTL ++ if (0 > prctl(PR_SET_DUMPABLE, 1, 0, 0, 0)) { ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "prctl(PR_SET_DUMPABLE) failed"); ++ } ++#endif ++ ++ if (0 > fpm_clock_init()) { ++ return -1; ++ } ++ ++ return 0; ++} ++ ++int fpm_unix_init_main() ++{ ++ struct fpm_worker_pool_s *wp; ++ ++ fpm_pagesize = getpagesize(); ++ ++ if (fpm_global_config.daemonize) { ++ ++ switch (fork()) { ++ ++ case -1 : ++ ++ zlog(ZLOG_STUFF, ZLOG_SYSERROR, "fork() failed"); ++ return -1; ++ ++ case 0 : ++ ++ break; ++ ++ default : ++ ++ fpm_cleanups_run(FPM_CLEANUP_PARENT_EXIT); ++ exit(0); ++ ++ } ++ ++ } ++ ++ setsid(); ++ ++ if (0 > fpm_clock_init()) { ++ return -1; ++ } ++ ++ fpm_globals.parent_pid = getpid(); ++ ++ for (wp = fpm_worker_all_pools; wp; wp = wp->next) { ++ ++ if (0 > fpm_unix_conf_wp(wp)) { ++ return -1; ++ } ++ ++ } ++ ++ fpm_stdio_init_final(); ++ ++ { ++ struct rlimit r; ++ getrlimit(RLIMIT_NOFILE, &r); ++ ++ zlog(ZLOG_STUFF, ZLOG_NOTICE, "getrlimit(nofile): max:%lld, cur:%lld", ++ (long long) r.rlim_max, (long long) r.rlim_cur); ++ } ++ ++ return 0; ++} +diff --git a/sapi/cgi/fpm/fpm_unix.h b/sapi/cgi/fpm/fpm_unix.h +new file mode 100644 +index 0000000..3451db1 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_unix.h +@@ -0,0 +1,17 @@ ++ ++ /* $Id: fpm_unix.h,v 1.8 2008/05/25 13:21:13 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_UNIX_H ++#define FPM_UNIX_H 1 ++ ++#include "fpm_worker_pool.h" ++ ++int fpm_unix_resolve_socket_premissions(struct fpm_worker_pool_s *wp); ++int fpm_unix_init_child(struct fpm_worker_pool_s *wp); ++int fpm_unix_init_main(); ++ ++extern size_t fpm_pagesize; ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/fpm_worker_pool.c b/sapi/cgi/fpm/fpm_worker_pool.c +new file mode 100644 +index 0000000..49dd5a8 +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_worker_pool.c +@@ -0,0 +1,69 @@ ++ ++ /* $Id: fpm_worker_pool.c,v 1.15.2.1 2008/12/13 03:21:18 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++ ++#include "fpm_worker_pool.h" ++#include "fpm_cleanup.h" ++#include "fpm_children.h" ++#include "fpm_shm.h" ++#include "fpm_shm_slots.h" ++#include "fpm_conf.h" ++ ++struct fpm_worker_pool_s *fpm_worker_all_pools; ++ ++static void fpm_worker_pool_cleanup(int which, void *arg) ++{ ++ struct fpm_worker_pool_s *wp, *wp_next; ++ ++ for (wp = fpm_worker_all_pools; wp; wp = wp_next) { ++ wp_next = wp->next; ++ fpm_worker_pool_config_free(wp->config); ++ fpm_children_free(wp->children); ++ fpm_array_free(&wp->slots_used); ++ fpm_array_free(&wp->slots_free); ++ fpm_shm_free_list(wp->shm_list, which == FPM_CLEANUP_CHILD ? fpm_shm_slots_mem() : 0); ++ free(wp->config); ++ free(wp->user); ++ free(wp->home); ++ free(wp); ++ } ++ ++ fpm_worker_all_pools = 0; ++} ++ ++struct fpm_worker_pool_s *fpm_worker_pool_alloc() ++{ ++ struct fpm_worker_pool_s *ret; ++ ++ ret = malloc(sizeof(struct fpm_worker_pool_s)); ++ ++ if (!ret) { ++ return 0; ++ } ++ ++ memset(ret, 0, sizeof(struct fpm_worker_pool_s)); ++ ++ if (!fpm_worker_all_pools) { ++ fpm_worker_all_pools = ret; ++ } ++ ++ fpm_array_init(&ret->slots_used, sizeof(struct fpm_shm_slot_ptr_s), 50); ++ fpm_array_init(&ret->slots_free, sizeof(struct fpm_shm_slot_ptr_s), 50); ++ ++ return ret; ++} ++ ++int fpm_worker_pool_init_main() ++{ ++ if (0 > fpm_cleanup_add(FPM_CLEANUP_ALL, fpm_worker_pool_cleanup, 0)) { ++ return -1; ++ } ++ ++ return 0; ++} +diff --git a/sapi/cgi/fpm/fpm_worker_pool.h b/sapi/cgi/fpm/fpm_worker_pool.h +new file mode 100644 +index 0000000..cc0dbbd +--- /dev/null ++++ b/sapi/cgi/fpm/fpm_worker_pool.h +@@ -0,0 +1,46 @@ ++ ++ /* $Id: fpm_worker_pool.h,v 1.13 2008/08/26 15:09:15 anight Exp $ */ ++ /* (c) 2007,2008 Andrei Nigmatulin */ ++ ++#ifndef FPM_WORKER_POOL_H ++#define FPM_WORKER_POOL_H 1 ++ ++#include "fpm_conf.h" ++#include "fpm_arrays.h" ++ ++struct fpm_worker_pool_s; ++struct fpm_child_s; ++struct fpm_child_stat_s; ++struct fpm_shm_s; ++ ++enum fpm_address_domain { ++ FPM_AF_UNIX = 1, ++ FPM_AF_INET = 2 ++}; ++ ++struct fpm_worker_pool_s { ++ struct fpm_worker_pool_s *next; ++ struct fpm_worker_pool_config_s *config; ++ char *user, *home; /* for setting env USER and HOME */ ++ enum fpm_address_domain listen_address_domain; ++ int listening_socket; ++ int set_uid, set_gid; /* config uid and gid */ ++ unsigned is_template:1; /* just config template, no processes will be created */ ++ int socket_uid, socket_gid, socket_mode; ++ ++ struct fpm_shm_s *shm_list; ++ struct fpm_array_s slots_used; ++ struct fpm_array_s slots_free; ++ ++ /* runtime */ ++ struct fpm_child_s *children; ++ int running_children; ++}; ++ ++struct fpm_worker_pool_s *fpm_worker_pool_alloc(); ++int fpm_worker_pool_init_main(); ++ ++extern struct fpm_worker_pool_s *fpm_worker_all_pools; ++ ++#endif ++ +diff --git a/sapi/cgi/fpm/init.d/php-fpm.in b/sapi/cgi/fpm/init.d/php-fpm.in +new file mode 100644 +index 0000000..0befa52 +--- /dev/null ++++ b/sapi/cgi/fpm/init.d/php-fpm.in +@@ -0,0 +1,139 @@ ++#! /bin/sh ++ ++php_fpm_BIN=@prefix@/bin/php-cgi ++php_fpm_CONF=@php_fpm_conf_path@ ++php_fpm_PID=@php_fpm_pid_path@ ++ ++ ++php_opts="--fpm-config $php_fpm_CONF" ++ ++ ++wait_for_pid () { ++ try=0 ++ ++ while test $try -lt 35 ; do ++ ++ case "$1" in ++ 'created') ++ if [ -f "$2" ] ; then ++ try='' ++ break ++ fi ++ ;; ++ ++ 'removed') ++ if [ ! -f "$2" ] ; then ++ try='' ++ break ++ fi ++ ;; ++ esac ++ ++ echo -n . ++ try=`expr $try + 1` ++ sleep 1 ++ ++ done ++ ++} ++ ++case "$1" in ++ start) ++ echo -n "Starting php_fpm " ++ ++ $php_fpm_BIN --fpm $php_opts ++ ++ if [ "$?" != 0 ] ; then ++ echo " failed" ++ exit 1 ++ fi ++ ++ wait_for_pid created $php_fpm_PID ++ ++ if [ -n "$try" ] ; then ++ echo " failed" ++ exit 1 ++ else ++ echo " done" ++ fi ++ ;; ++ ++ stop) ++ echo -n "Shutting down php_fpm " ++ ++ if [ ! -r $php_fpm_PID ] ; then ++ echo "warning, no pid file found - php-fpm is not running ?" ++ exit 1 ++ fi ++ ++ kill -TERM `cat $php_fpm_PID` ++ ++ wait_for_pid removed $php_fpm_PID ++ ++ if [ -n "$try" ] ; then ++ echo " failed" ++ exit 1 ++ else ++ echo " done" ++ fi ++ ;; ++ ++ quit) ++ echo -n "Gracefully shutting down php_fpm " ++ ++ if [ ! -r $php_fpm_PID ] ; then ++ echo "warning, no pid file found - php-fpm is not running ?" ++ exit 1 ++ fi ++ ++ kill -QUIT `cat $php_fpm_PID` ++ ++ wait_for_pid removed $php_fpm_PID ++ ++ if [ -n "$try" ] ; then ++ echo " failed" ++ exit 1 ++ else ++ echo " done" ++ fi ++ ;; ++ ++ restart) ++ $0 stop ++ $0 start ++ ;; ++ ++ reload) ++ ++ echo -n "Reload service php-fpm " ++ ++ if [ ! -r $php_fpm_PID ] ; then ++ echo "warning, no pid file found - php-fpm is not running ?" ++ exit 1 ++ fi ++ ++ kill -USR2 `cat $php_fpm_PID` ++ ++ echo " done" ++ ;; ++ ++ logrotate) ++ ++ echo -n "Re-opening php-fpm log file " ++ ++ if [ ! -r $php_fpm_PID ] ; then ++ echo "warning, no pid file found - php-fpm is not running ?" ++ exit 1 ++ fi ++ ++ kill -USR1 `cat $php_fpm_PID` ++ ++ echo " done" ++ ;; ++ ++ *) ++ echo "Usage: $0 {start|stop|quit|restart|reload|logrotate}" ++ exit 1 ++ ;; ++ ++esac +diff --git a/sapi/cgi/fpm/xml_config.c b/sapi/cgi/fpm/xml_config.c +new file mode 100644 +index 0000000..10eb77e +--- /dev/null ++++ b/sapi/cgi/fpm/xml_config.c +@@ -0,0 +1,278 @@ ++ ++ /* $Id: xml_config.c,v 1.9 2008/08/26 15:09:15 anight Exp $ */ ++ /* (c) 2004-2007 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#ifdef HAVE_ALLOCA_H ++#include ++#endif ++#include ++#include ++#include ++#include ++ ++#include ++#include ++ ++#include "xml_config.h" ++ ++static struct xml_conf_section **xml_conf_sections = 0; ++static int xml_conf_sections_allocated = 0; ++static int xml_conf_sections_used = 0; ++ ++char *xml_conf_set_slot_boolean(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ char *value = vv; ++ long value_y = !strcasecmp(value, "yes") || !strcmp(value, "1") || !strcasecmp(value, "on"); ++ long value_n = !strcasecmp(value, "no") || !strcmp(value, "0") || !strcasecmp(value, "off"); ++ ++ if (!value_y && !value_n) { ++ return "xml_conf_set_slot(): invalid boolean value"; ++ } ++ ++#ifdef XML_CONF_DEBUG ++ fprintf(stderr, "setting boolean '%s' => %s\n", name, value_y ? "TRUE" : "FALSE"); ++#endif ++ ++ * (int *) ((char *) *conf + offset) = value_y ? 1 : 0; ++ ++ return NULL; ++} ++ ++char *xml_conf_set_slot_string(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ char *value = vv; ++ char *v = strdup(value); ++ ++ if (!v) return "xml_conf_set_slot_string(): strdup() failed"; ++ ++#ifdef XML_CONF_DEBUG ++ fprintf(stderr, "setting string '%s' => '%s'\n", name, v); ++#endif ++ ++ * (char **) ((char *) *conf + offset) = v; ++ ++ return NULL; ++} ++ ++char *xml_conf_set_slot_integer(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ char *value = vv; ++ int v = atoi(value); ++ ++ * (int *) ((char *) *conf + offset) = v; ++ ++#ifdef XML_CONF_DEBUG ++ fprintf(stderr, "setting integer '%s' => %d\n", name, v); ++#endif ++ ++ return NULL; ++} ++ ++char *xml_conf_set_slot_time(void **conf, char *name, void *vv, intptr_t offset) ++{ ++ char *value = vv; ++ int len = strlen(value); ++ char suffix; ++ int seconds; ++ ++ if (!len) return "xml_conf_set_slot_timeval(): invalid timeval value"; ++ ++ suffix = value[len-1]; ++ ++ value[len-1] = '\0'; ++ ++ switch (suffix) { ++ case 's' : ++ seconds = atoi(value); ++ break; ++ case 'm' : ++ seconds = 60 * atoi(value); ++ break; ++ case 'h' : ++ seconds = 60 * 60 * atoi(value); ++ break; ++ case 'd' : ++ seconds = 24 * 60 * 60 * atoi(value); ++ break; ++ default : ++ return "xml_conf_set_slot_timeval(): unknown suffix used in timeval value"; ++ } ++ ++ * (int *) ((char *) *conf + offset) = seconds; ++ ++#ifdef XML_CONF_DEBUG ++ fprintf(stderr, "setting time '%s' => %d:%02d:%02d:%02d\n", name, expand_dhms(seconds)); ++#endif ++ ++ return NULL; ++} ++ ++char *xml_conf_parse_section(void **conf, struct xml_conf_section *section, void *xml_node) ++{ ++ xmlNode *element = xml_node; ++ char *ret = 0; ++ ++#ifdef XML_CONF_DEBUG ++ fprintf(stderr, "processing a section %s\n", section->path); ++#endif ++ ++ for ( ; element; element = element->next) { ++ if (element->type == XML_ELEMENT_NODE && !strcmp((const char *) element->name, "value") && element->children) { ++ xmlChar *name = xmlGetProp(element, (unsigned char *) "name"); ++ ++ if (name) { ++ int i; ++ ++#ifdef XML_CONF_DEBUG ++ fprintf(stderr, "found a value: %s\n", name); ++#endif ++ for (i = 0; section->parsers[i].parser; i++) { ++ if (!section->parsers[i].name || !strcmp(section->parsers[i].name, (char *) name)) { ++ break; ++ } ++ } ++ ++ if (section->parsers[i].parser) { ++ if (section->parsers[i].type == XML_CONF_SCALAR) { ++ if (element->children->type == XML_TEXT_NODE) { ++ ret = section->parsers[i].parser(conf, (char *) name, element->children->content, section->parsers[i].offset); ++ } ++ else { ++ ret = "XML_TEXT_NODE is expected, something different is given"; ++ } ++ } ++ else { ++ ret = section->parsers[i].parser(conf, (char *) name, element->children, section->parsers[i].offset); ++ } ++ ++ xmlFree(name); ++ if (ret) return ret; ++ else continue; ++ } ++ ++ fprintf(stderr, "Warning, unknown setting '%s' in section '%s'\n", (char *) name, section->path); ++ ++ xmlFree(name); ++ } ++ } ++ } ++ ++ return NULL; ++} ++ ++static char *xml_conf_parse_file(xmlNode *element) ++{ ++ char *ret = 0; ++ ++ for ( ; element; element = element->next) { ++ ++ if (element->parent && element->type == XML_ELEMENT_NODE && !strcmp((const char *) element->name, "section")) { ++ xmlChar *name = xmlGetProp(element, (unsigned char *) "name"); ++ ++ if (name) { ++ char *parent_name = (char *) xmlGetNodePath(element->parent); ++ char *full_name; ++ int i; ++ struct xml_conf_section *section = NULL; ++ ++#ifdef XML_CONF_DEBUG ++ fprintf(stderr, "got a section: %s/%s\n", parent_name, name); ++#endif ++ full_name = alloca(strlen(parent_name) + strlen((char *) name) + 1 + 1); ++ ++ sprintf(full_name, "%s/%s", parent_name, (char *) name); ++ ++ xmlFree(parent_name); ++ xmlFree(name); ++ ++ for (i = 0; i < xml_conf_sections_used; i++) { ++ if (!strcmp(xml_conf_sections[i]->path, full_name)) { ++ section = xml_conf_sections[i]; ++ } ++ } ++ ++ if (section) { /* found a registered section */ ++ void *conf = section->conf(); ++ ret = xml_conf_parse_section(&conf, section, element->children); ++ if (ret) break; ++ } ++ ++ } ++ } ++ ++ if (element->children) { ++ ret = xml_conf_parse_file(element->children); ++ if (ret) break; ++ } ++ } ++ ++ return ret; ++} ++ ++char *xml_conf_load_file(char *file) ++{ ++ char *ret = 0; ++ xmlDoc *doc; ++ ++ LIBXML_TEST_VERSION ++ ++ doc = xmlParseFile(file); ++ ++ if (doc) { ++ ret = xml_conf_parse_file(doc->children); ++ xmlFreeDoc(doc); ++ } ++ else { ++ ret = "failed to parse conf file"; ++ } ++ ++ xmlCleanupParser(); ++ return ret; ++} ++ ++int xml_conf_init() ++{ ++ return 0; ++} ++ ++void xml_conf_clean() ++{ ++ if (xml_conf_sections) { ++ free(xml_conf_sections); ++ } ++} ++ ++int xml_conf_section_register(struct xml_conf_section *section) ++{ ++ if (xml_conf_sections_allocated == xml_conf_sections_used) { ++ int new_size = xml_conf_sections_used + 10; ++ void *new_ptr = realloc(xml_conf_sections, sizeof(struct xml_conf_section *) * new_size); ++ ++ if (new_ptr) { ++ xml_conf_sections = new_ptr; ++ xml_conf_sections_allocated = new_size; ++ } ++ else { ++ fprintf(stderr, "xml_conf_section_register(): out of memory\n"); ++ return -1; ++ } ++ } ++ ++ xml_conf_sections[xml_conf_sections_used++] = section; ++ ++ return 0; ++} ++ ++int xml_conf_sections_register(struct xml_conf_section *sections[]) ++{ ++ for ( ; sections && *sections; sections++) { ++ if (0 > xml_conf_section_register(*sections)) { ++ return -1; ++ } ++ } ++ ++ return 0; ++} ++ +diff --git a/sapi/cgi/fpm/xml_config.h b/sapi/cgi/fpm/xml_config.h +new file mode 100644 +index 0000000..b6169cd +--- /dev/null ++++ b/sapi/cgi/fpm/xml_config.h +@@ -0,0 +1,43 @@ ++ ++ /* $Id: xml_config.h,v 1.3 2008/09/18 23:02:58 anight Exp $ */ ++ /* (c) 2004-2007 Andrei Nigmatulin */ ++ ++#ifndef XML_CONFIG_H ++#define XML_CONFIG_H 1 ++ ++#include ++ ++struct xml_value_parser; ++ ++struct xml_value_parser { ++ int type; ++ char *name; ++ char *(*parser)(void **, char *, void *, intptr_t offset); ++ intptr_t offset; ++}; ++ ++struct xml_conf_section { ++ void *(*conf)(); ++ char *path; ++ struct xml_value_parser *parsers; ++}; ++ ++char *xml_conf_set_slot_boolean(void **conf, char *name, void *value, intptr_t offset); ++char *xml_conf_set_slot_string(void **conf, char *name, void *value, intptr_t offset); ++char *xml_conf_set_slot_integer(void **conf, char *name, void *value, intptr_t offset); ++char *xml_conf_set_slot_time(void **conf, char *name, void *value, intptr_t offset); ++ ++int xml_conf_init(); ++void xml_conf_clean(); ++char *xml_conf_load_file(char *file); ++char *xml_conf_parse_section(void **conf, struct xml_conf_section *section, void *ve); ++int xml_conf_section_register(struct xml_conf_section *section); ++int xml_conf_sections_register(struct xml_conf_section *sections[]); ++ ++#define expand_hms(value) (value) / 3600, ((value) % 3600) / 60, (value) % 60 ++ ++#define expand_dhms(value) (value) / 86400, ((value) % 86400) / 3600, ((value) % 3600) / 60, (value) % 60 ++ ++enum { XML_CONF_SCALAR = 1, XML_CONF_SUBSECTION = 2 }; ++ ++#endif +diff --git a/sapi/cgi/fpm/zlog.c b/sapi/cgi/fpm/zlog.c +new file mode 100644 +index 0000000..2fb6c45 +--- /dev/null ++++ b/sapi/cgi/fpm/zlog.c +@@ -0,0 +1,113 @@ ++ ++ /* $Id: zlog.c,v 1.7 2008/05/22 21:08:32 anight Exp $ */ ++ /* (c) 2004-2007 Andrei Nigmatulin */ ++ ++#include "fpm_config.h" ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#include "zlog.h" ++ ++#define MAX_LINE_LENGTH 1024 ++ ++static int zlog_fd = -1; ++static int zlog_level = ZLOG_NOTICE; ++ ++static const char *level_names[] = { ++ [ZLOG_DEBUG] = "DEBUG", ++ [ZLOG_NOTICE] = "NOTICE", ++ [ZLOG_WARNING] = "WARNING", ++ [ZLOG_ERROR] = "ERROR", ++ [ZLOG_ALERT] = "ALERT", ++}; ++ ++size_t zlog_print_time(struct timeval *tv, char *timebuf, size_t timebuf_len) ++{ ++ struct tm t; ++ size_t len; ++ ++ len = strftime(timebuf, timebuf_len, "%b %d %H:%M:%S", localtime_r((const time_t *) &tv->tv_sec, &t)); ++ len += snprintf(timebuf + len, timebuf_len - len, ".%06d", (int) tv->tv_usec); ++ ++ return len; ++} ++ ++int zlog_set_fd(int new_fd) ++{ ++ int old_fd = zlog_fd; ++ zlog_fd = new_fd; ++ ++ return old_fd; ++} ++ ++int zlog_set_level(int new_value) ++{ ++ int old_value = zlog_level; ++ ++ zlog_level = new_value; ++ ++ return old_value; ++} ++ ++void zlog(const char *function, int line, int flags, const char *fmt, ...) ++{ ++ struct timeval tv; ++ char buf[MAX_LINE_LENGTH]; ++ const size_t buf_size = MAX_LINE_LENGTH; ++ va_list args; ++ size_t len; ++ int truncated = 0; ++ int saved_errno; ++ ++ if ((flags & ZLOG_LEVEL_MASK) < zlog_level) { ++ return; ++ } ++ ++ saved_errno = errno; ++ ++ gettimeofday(&tv, 0); ++ ++ len = zlog_print_time(&tv, buf, buf_size); ++ ++ len += snprintf(buf + len, buf_size - len, " [%s] %s(), line %d: ", level_names[flags & ZLOG_LEVEL_MASK], function, line); ++ ++ if (len > buf_size - 1) { ++ truncated = 1; ++ } ++ ++ if (!truncated) { ++ va_start(args, fmt); ++ ++ len += vsnprintf(buf + len, buf_size - len, fmt, args); ++ ++ va_end(args); ++ ++ if (len >= buf_size) { ++ truncated = 1; ++ } ++ } ++ ++ if (!truncated) { ++ if (flags & ZLOG_HAVE_ERRNO) { ++ len += snprintf(buf + len, buf_size - len, ": %s (%d)", strerror(saved_errno), saved_errno); ++ if (len >= buf_size) { ++ truncated = 1; ++ } ++ } ++ } ++ ++ if (truncated) { ++ memcpy(buf + buf_size - sizeof("..."), "...", sizeof("...") - 1); ++ len = buf_size - 1; ++ } ++ ++ buf[len++] = '\n'; ++ ++ write(zlog_fd > -1 ? zlog_fd : STDERR_FILENO, buf, len); ++} +diff --git a/sapi/cgi/fpm/zlog.h b/sapi/cgi/fpm/zlog.h +new file mode 100644 +index 0000000..b5ac3d9 +--- /dev/null ++++ b/sapi/cgi/fpm/zlog.h +@@ -0,0 +1,34 @@ ++ ++ /* $Id: zlog.h,v 1.7 2008/05/22 21:08:32 anight Exp $ */ ++ /* (c) 2004-2007 Andrei Nigmatulin */ ++ ++#ifndef ZLOG_H ++#define ZLOG_H 1 ++ ++#define ZLOG_STUFF __func__, __LINE__ ++ ++struct timeval; ++ ++int zlog_set_fd(int new_fd); ++int zlog_set_level(int new_value); ++ ++size_t zlog_print_time(struct timeval *tv, char *timebuf, size_t timebuf_len); ++ ++void zlog(const char *function, int line, int flags, const char *fmt, ...) ++ __attribute__ ((format(printf,4,5))); ++ ++enum { ++ ZLOG_DEBUG = 1, ++ ZLOG_NOTICE = 2, ++ ZLOG_WARNING = 3, ++ ZLOG_ERROR = 4, ++ ZLOG_ALERT = 5, ++}; ++ ++#define ZLOG_LEVEL_MASK 7 ++ ++#define ZLOG_HAVE_ERRNO 0x100 ++ ++#define ZLOG_SYSERROR (ZLOG_ERROR | ZLOG_HAVE_ERRNO) ++ ++#endif diff --git a/php-5.2.17.tar.bz2 b/php-5.2.17.tar.bz2 new file mode 100644 index 0000000000000000000000000000000000000000..3b09e16ea9f587f4f18ac72aeec66c6c661d7389 GIT binary patch literal 9092312 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 z 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

FO|x=_bS@IlyD5)3;tAQ}^h-4zBzl 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\YME3(oL8 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

=z;z?&^cUlU(d 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 z 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%0DlJ4<0!656x)`$R1uS3;tfq=5V5Iyq8yOAXXl%nB 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±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

q(%hjI8jr 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/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�! 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íYDJDZ}@tY`qr<5^l1g{ije z(=c~6*2i>U-EFdDN^oZFTWu4!T`MhodsTEhJmf9rq+4}!m3UtDrRV|KnL zQtNi6?J&nqsag$imSs^*j*fRLySbg+M((q3S8>s9+UlKdn(Br3WI60KzRd#db(}0L zZLz(LbjOc(JwtkTHW-|;tFv8oT*lY7(yhAaTy3n54L(^=1%E&%vmr99z*{^J^ za0qnn8516}lWC~K&|*w`!S3{; z000000000001{~uA_x#6FpNzp>9tSPYHSi?RP_w>r>cHa)Y5p$o@$<&GG#W^Hh>7o z(V!ln0kjZg$izKNk5CLuOic`oOh!*ZC#q6N3Na_CwLJu3RR1KxPf6;S+McFU)Y(U* zGfhL(&^<0000D000ppAc6p+02IwMX&49%Df*b0jWpFiNr;}B zo7Bk~jio)Ng!MH&s0p<^paz4~X!SHS!~vnSho~Af000^fP(+ag4G1&@29pTH1i=jh zNr|SK6DHAA{i&*c5$LC-Kh;O6w2y0xQ=xbgu&WCcY(ekv-te($65TG=pEQCA=3{NKOgug~4a>hb&JAg0K~!}vjBF9^-u z$dn9OS%_H;Tor(rjojRc#eon_1jO2*#TpqEQWOPQRfS>A(2$H-h|QT10nM4&Tu2yP z2!&CR(M$;h&<)WUh{%}@z|oLdL6}{b7=VEt$VAP^h|CE~y}j=_d#`6%hkWLLqz`la zh92weER=}G9|R=KKgsmiW{{}J6@>aEvSeBm0-6V+?hPP|Xpsb7Vk6EXEJ5!3KK$JH zY16yWFH-gK-0!f&yVJ@$h8MSc@2+*Xdh2I=H%@f-!5ug|amNnPajy?9#=)>_mQBb~ zi<0GsxfSW<2F~Nxu zx&ony5VQ$9xSFFQs)?bah_DKYn%AB1?8@}=^z}|BOsHbDK%beT$Nhq82Av5=K*01!~Hn%gEFd(EdfGM>$NCr6R#y& zLIB7ld7)HFkfj*_vP3HiNT4Ab3Iz_BQcMy?2t}(HNn!zMB%#XXwaZ6smg?8Y*noirU!-DI_HZN6hTFQ_+h%rkO^vNBX3~se6silQb53R|ad~7m zhB?@bWLt{}0T{ssMH8G>i4CBBq8UvfX{&EW+HIp7YgS6bS+Z?fq|jAtCaI>{)(U6+ zjtzhuAOISGK?pDis7Rp53V%HSYywFH84%=E3MqjC1t5`8TY{xTK>WBVZ5XTKinRno zF$#jXLIR!ufA7JtZ4?6tC;)W`

    Y!NGdFf1r=K=%BibKt46Z@R>3c|`;3AK= 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