├── .buildtest_dpdk.sh ├── .buildtest_netmap.sh ├── .buildtest_psio.sh ├── .check_hyperthreading.sh ├── .gitignore ├── .gitmodules ├── .travis.yml ├── CHANGELOG ├── LICENSE ├── Makefile.am ├── Makefile.in ├── README ├── README.config ├── README.devel ├── README.md ├── README.netmap ├── TODOS ├── aclocal.m4 ├── apps ├── apache_benchmark │ ├── ABOUT_APACHE │ ├── Apache.dsw │ ├── BuildAll.dsp │ ├── BuildBin.dsp │ ├── CHANGES │ ├── INSTALL │ ├── InstallBin.dsp │ ├── LAYOUT │ ├── LICENSE │ ├── Makefile.in │ ├── Makefile.win │ ├── NOTICE │ ├── NWGNUmakefile │ ├── README │ ├── README-mtcp │ ├── README-win32.txt │ ├── README.platforms │ ├── ROADMAP │ ├── VERSIONING │ ├── acinclude.m4 │ ├── build │ │ ├── NWGNUenvironment.inc │ │ ├── NWGNUhead.inc │ │ ├── NWGNUmakefile │ │ ├── NWGNUscripts.inc │ │ ├── NWGNUtail.inc │ │ ├── PrintPath │ │ ├── aix │ │ │ ├── README │ │ │ ├── aixinfo │ │ │ ├── buildaix.ksh │ │ │ └── mkinstallp.ksh │ │ ├── apr_common.m4 │ │ ├── binbuild.sh │ │ ├── bsd_makefile │ │ ├── build-modules-c.awk │ │ ├── buildinfo.sh │ │ ├── config-stubs │ │ ├── config.guess │ │ ├── config.sub │ │ ├── config_vars.sh.in │ │ ├── default.pl │ │ ├── fastgen.sh │ │ ├── find_apr.m4 │ │ ├── find_apu.m4 │ │ ├── get-version.sh │ │ ├── install-bindist.sh.in │ │ ├── install.sh │ │ ├── installwinconf.awk │ │ ├── instdso.sh │ │ ├── library.mk │ │ ├── ltlib.mk │ │ ├── ltmain.sh │ │ ├── make_exports.awk │ │ ├── make_nw_export.awk │ │ ├── make_var_export.awk │ │ ├── mkconfNW.awk │ │ ├── mkdep.perl │ │ ├── mkdir.sh │ │ ├── nw_export.inc │ │ ├── nw_ver.awk │ │ ├── pkg │ │ │ ├── README │ │ │ ├── buildpkg.sh │ │ │ └── pkginfo.in │ │ ├── program.mk │ │ ├── rpm │ │ │ ├── htcacheclean.init │ │ │ ├── httpd.init │ │ │ ├── httpd.logrotate │ │ │ └── httpd.spec.in │ │ ├── rules.mk.in │ │ ├── special.mk │ │ ├── sysv_makefile │ │ └── win32 │ │ │ ├── apache.ico │ │ │ ├── httpd.rc │ │ │ └── win32ver.awk │ ├── buildconf │ ├── config.layout │ ├── configure │ ├── configure.in │ ├── emacs-style │ ├── include │ │ ├── .indent.pro │ │ ├── ap_compat.h │ │ ├── ap_config.h │ │ ├── ap_config_auto.h.in │ │ ├── ap_config_layout.h.in │ │ ├── ap_listen.h │ │ ├── ap_mmn.h │ │ ├── ap_mpm.h │ │ ├── ap_provider.h │ │ ├── ap_regex.h │ │ ├── ap_regkey.h │ │ ├── ap_release.h │ │ ├── http_config.h │ │ ├── http_connection.h │ │ ├── http_core.h │ │ ├── http_log.h │ │ ├── http_main.h │ │ ├── http_protocol.h │ │ ├── http_request.h │ │ ├── http_vhost.h │ │ ├── httpd.h │ │ ├── mpm_common.h │ │ ├── scoreboard.h │ │ ├── util_cfgtree.h │ │ ├── util_charset.h │ │ ├── util_ebcdic.h │ │ ├── util_filter.h │ │ ├── util_ldap.h │ │ ├── util_md5.h │ │ ├── util_script.h │ │ ├── util_time.h │ │ └── util_xml.h │ ├── modules │ │ ├── .deps │ │ ├── aaa │ │ │ └── modules.mk │ │ ├── arch │ │ │ └── win32 │ │ │ │ └── modules.mk │ │ ├── cache │ │ │ └── modules.mk │ │ ├── database │ │ │ └── modules.mk │ │ ├── debug │ │ │ └── modules.mk │ │ ├── echo │ │ │ └── modules.mk │ │ ├── experimental │ │ │ └── modules.mk │ │ ├── filters │ │ │ └── modules.mk │ │ ├── ldap │ │ │ └── modules.mk │ │ ├── loggers │ │ │ └── modules.mk │ │ ├── metadata │ │ │ └── modules.mk │ │ ├── proxy │ │ │ └── modules.mk │ │ ├── ssl │ │ │ └── modules.mk │ │ └── test │ │ │ └── modules.mk │ ├── os │ │ ├── .deps │ │ ├── .indent.pro │ │ ├── Makefile.in │ │ ├── beos │ │ │ ├── Makefile.in │ │ │ ├── beosd.c │ │ │ ├── beosd.h │ │ │ ├── config.m4 │ │ │ ├── os.c │ │ │ └── os.h │ │ ├── bs2000 │ │ │ ├── ebcdic.c │ │ │ ├── ebcdic.h │ │ │ ├── os.c │ │ │ └── os.h │ │ ├── config.m4 │ │ ├── netware │ │ │ ├── Apache.def │ │ │ ├── apache.xdc │ │ │ ├── modules.c │ │ │ ├── os.h │ │ │ ├── pre_nw.h │ │ │ └── util_nw.c │ │ ├── os2 │ │ │ ├── Makefile.in │ │ │ ├── config.m4 │ │ │ ├── core.mk │ │ │ ├── core_header.def │ │ │ ├── os.h │ │ │ └── util_os2.c │ │ ├── tpf │ │ │ ├── TPFExport │ │ │ ├── ebcdic.c │ │ │ ├── ebcdic.h │ │ │ ├── os.c │ │ │ ├── os.h │ │ │ └── samples │ │ │ │ ├── linkdll.jcl │ │ │ │ └── loadset.jcl │ │ ├── unix │ │ │ ├── .deps │ │ │ ├── Makefile.in │ │ │ ├── config.m4 │ │ │ ├── os.h │ │ │ ├── unixd.c │ │ │ └── unixd.h │ │ └── win32 │ │ │ ├── BaseAddr.ref │ │ │ ├── Makefile.in │ │ │ ├── ap_regkey.c │ │ │ ├── modules.c │ │ │ ├── os.h │ │ │ └── util_win32.c │ ├── srclib │ │ ├── Makefile.in │ │ ├── apr-util │ │ │ ├── CHANGES │ │ │ ├── LICENSE │ │ │ ├── Makefile.in │ │ │ ├── Makefile.win │ │ │ ├── NOTICE │ │ │ ├── NWGNUmakefile │ │ │ ├── README │ │ │ ├── apr-util.pc.in │ │ │ ├── aprutil.dsp │ │ │ ├── aprutil.dsw │ │ │ ├── apu-config.in │ │ │ ├── buckets │ │ │ │ ├── apr_brigade.c │ │ │ │ ├── apr_buckets.c │ │ │ │ ├── apr_buckets_alloc.c │ │ │ │ ├── apr_buckets_eos.c │ │ │ │ ├── apr_buckets_file.c │ │ │ │ ├── apr_buckets_flush.c │ │ │ │ ├── apr_buckets_heap.c │ │ │ │ ├── apr_buckets_mmap.c │ │ │ │ ├── apr_buckets_pipe.c │ │ │ │ ├── apr_buckets_pool.c │ │ │ │ ├── apr_buckets_refcount.c │ │ │ │ ├── apr_buckets_simple.c │ │ │ │ └── apr_buckets_socket.c │ │ │ ├── build-outputs.mk │ │ │ ├── build.conf │ │ │ ├── build │ │ │ │ ├── apr_common.m4 │ │ │ │ ├── apu-conf.m4 │ │ │ │ ├── apu-hints.m4 │ │ │ │ ├── apu-iconv.m4 │ │ │ │ ├── config.guess │ │ │ │ ├── config.sub │ │ │ │ ├── crypto.m4 │ │ │ │ ├── dbd.m4 │ │ │ │ ├── dbm.m4 │ │ │ │ ├── dso.m4 │ │ │ │ ├── find_apr.m4 │ │ │ │ ├── find_apu.m4 │ │ │ │ ├── get-version.sh │ │ │ │ ├── install.sh │ │ │ │ ├── mkdir.sh │ │ │ │ ├── nw_apu_export.inc │ │ │ │ ├── pkg │ │ │ │ │ ├── README │ │ │ │ │ ├── buildpkg.sh │ │ │ │ │ └── pkginfo.in │ │ │ │ ├── preaprutil.dsp │ │ │ │ ├── rpm │ │ │ │ │ └── apr-util.spec.in │ │ │ │ └── w32locatedb.pl │ │ │ ├── buildconf │ │ │ ├── config.layout │ │ │ ├── configure │ │ │ ├── configure.in │ │ │ ├── crypto │ │ │ │ ├── apr_crypto.c │ │ │ │ ├── apr_crypto_nss.c │ │ │ │ ├── apr_crypto_nss.dsp │ │ │ │ ├── apr_crypto_openssl.c │ │ │ │ ├── apr_crypto_openssl.dsp │ │ │ │ ├── apr_md4.c │ │ │ │ ├── apr_md5.c │ │ │ │ ├── apr_sha1.c │ │ │ │ ├── getuuid.c │ │ │ │ └── uuid.c │ │ │ ├── dbd │ │ │ │ ├── NWGNUdbdfreetds │ │ │ │ ├── NWGNUdbdmysql │ │ │ │ ├── NWGNUdbdpgsql │ │ │ │ ├── NWGNUdbdsqli2 │ │ │ │ ├── NWGNUdbdsqli3 │ │ │ │ ├── NWGNUmakefile │ │ │ │ ├── apr_dbd.c │ │ │ │ ├── apr_dbd_freetds.c │ │ │ │ ├── apr_dbd_freetds.dsp │ │ │ │ ├── apr_dbd_mysql.c │ │ │ │ ├── apr_dbd_mysql.dsp │ │ │ │ ├── apr_dbd_odbc.c │ │ │ │ ├── apr_dbd_odbc.dsp │ │ │ │ ├── apr_dbd_oracle.c │ │ │ │ ├── apr_dbd_oracle.dsp │ │ │ │ ├── apr_dbd_pgsql.c │ │ │ │ ├── apr_dbd_pgsql.dsp │ │ │ │ ├── apr_dbd_sqlite2.c │ │ │ │ ├── apr_dbd_sqlite2.dsp │ │ │ │ ├── apr_dbd_sqlite3.c │ │ │ │ └── apr_dbd_sqlite3.dsp │ │ │ ├── dbm │ │ │ │ ├── NWGNUdbmdb │ │ │ │ ├── NWGNUdbmgdbm │ │ │ │ ├── NWGNUmakefile │ │ │ │ ├── apr_dbm.c │ │ │ │ ├── apr_dbm_berkeleydb.c │ │ │ │ ├── apr_dbm_db.dsp │ │ │ │ ├── apr_dbm_gdbm.c │ │ │ │ ├── apr_dbm_gdbm.dsp │ │ │ │ ├── apr_dbm_ndbm.c │ │ │ │ ├── apr_dbm_sdbm.c │ │ │ │ └── sdbm │ │ │ │ │ ├── sdbm.c │ │ │ │ │ ├── sdbm_hash.c │ │ │ │ │ ├── sdbm_lock.c │ │ │ │ │ ├── sdbm_pair.c │ │ │ │ │ ├── sdbm_pair.h │ │ │ │ │ ├── sdbm_private.h │ │ │ │ │ └── sdbm_tune.h │ │ │ ├── docs │ │ │ │ └── doxygen.conf │ │ │ ├── encoding │ │ │ │ └── apr_base64.c │ │ │ ├── export_vars.sh.in │ │ │ ├── hooks │ │ │ │ └── apr_hooks.c │ │ │ ├── include │ │ │ │ ├── apr_anylock.h │ │ │ │ ├── apr_base64.h │ │ │ │ ├── apr_buckets.h │ │ │ │ ├── apr_crypto.h │ │ │ │ ├── apr_date.h │ │ │ │ ├── apr_dbd.h │ │ │ │ ├── apr_dbm.h │ │ │ │ ├── apr_hooks.h │ │ │ │ ├── apr_ldap.h.in │ │ │ │ ├── apr_ldap.hnw │ │ │ │ ├── apr_ldap.hw │ │ │ │ ├── apr_ldap_init.h │ │ │ │ ├── apr_ldap_option.h │ │ │ │ ├── apr_ldap_rebind.h │ │ │ │ ├── apr_ldap_url.h │ │ │ │ ├── apr_md4.h │ │ │ │ ├── apr_md5.h │ │ │ │ ├── apr_memcache.h │ │ │ │ ├── apr_optional.h │ │ │ │ ├── apr_optional_hooks.h │ │ │ │ ├── apr_queue.h │ │ │ │ ├── apr_reslist.h │ │ │ │ ├── apr_rmm.h │ │ │ │ ├── apr_sdbm.h │ │ │ │ ├── apr_sha1.h │ │ │ │ ├── apr_strmatch.h │ │ │ │ ├── apr_thread_pool.h │ │ │ │ ├── apr_uri.h │ │ │ │ ├── apr_uuid.h │ │ │ │ ├── apr_xlate.h │ │ │ │ ├── apr_xml.h │ │ │ │ ├── apu.h.in │ │ │ │ ├── apu.hnw │ │ │ │ ├── apu.hw │ │ │ │ ├── apu_errno.h │ │ │ │ ├── apu_version.h │ │ │ │ ├── apu_want.h.in │ │ │ │ ├── apu_want.hnw │ │ │ │ ├── apu_want.hw │ │ │ │ └── private │ │ │ │ │ ├── apr_crypto_internal.h │ │ │ │ │ ├── apr_dbd_internal.h │ │ │ │ │ ├── apr_dbd_odbc_v2.h │ │ │ │ │ ├── apr_dbm_private.h │ │ │ │ │ ├── apu_config.h.in │ │ │ │ │ ├── apu_config.hnw │ │ │ │ │ ├── apu_config.hw │ │ │ │ │ ├── apu_internal.h │ │ │ │ │ ├── apu_select_dbm.h.in │ │ │ │ │ └── apu_select_dbm.hw │ │ │ ├── ldap │ │ │ │ ├── NWGNUmakefile │ │ │ │ ├── apr_ldap.dsp │ │ │ │ ├── apr_ldap_init.c │ │ │ │ ├── apr_ldap_option.c │ │ │ │ ├── apr_ldap_rebind.c │ │ │ │ ├── apr_ldap_stub.c │ │ │ │ └── apr_ldap_url.c │ │ │ ├── libaprutil.dsp │ │ │ ├── libaprutil.rc │ │ │ ├── memcache │ │ │ │ └── apr_memcache.c │ │ │ ├── misc │ │ │ │ ├── apr_date.c │ │ │ │ ├── apr_queue.c │ │ │ │ ├── apr_reslist.c │ │ │ │ ├── apr_rmm.c │ │ │ │ ├── apr_thread_pool.c │ │ │ │ ├── apu_dso.c │ │ │ │ └── apu_version.c │ │ │ ├── renames_pending │ │ │ ├── strmatch │ │ │ │ └── apr_strmatch.c │ │ │ ├── test │ │ │ │ ├── Makefile.in │ │ │ │ ├── Makefile.win │ │ │ │ ├── NWGNUaputest │ │ │ │ ├── NWGNUmakefile │ │ │ │ ├── abts.c │ │ │ │ ├── abts.h │ │ │ │ ├── abts_tests.h │ │ │ │ ├── data │ │ │ │ │ └── billion-laughs.xml │ │ │ │ ├── dbd.c │ │ │ │ ├── nw_misc.c │ │ │ │ ├── test_apu.h │ │ │ │ ├── testall.dsw │ │ │ │ ├── testbuckets.c │ │ │ │ ├── testcrypto.c │ │ │ │ ├── testdate.c │ │ │ │ ├── testdbd.c │ │ │ │ ├── testdbm.c │ │ │ │ ├── testldap.c │ │ │ │ ├── testmd4.c │ │ │ │ ├── testmd5.c │ │ │ │ ├── testmemcache.c │ │ │ │ ├── testpass.c │ │ │ │ ├── testqueue.c │ │ │ │ ├── testreslist.c │ │ │ │ ├── testrmm.c │ │ │ │ ├── testssl.c │ │ │ │ ├── teststrmatch.c │ │ │ │ ├── testuri.c │ │ │ │ ├── testutil.c │ │ │ │ ├── testutil.h │ │ │ │ ├── testutildll.dsp │ │ │ │ ├── testutillib.dsp │ │ │ │ ├── testuuid.c │ │ │ │ ├── testxlate.c │ │ │ │ └── testxml.c │ │ │ ├── uri │ │ │ │ └── apr_uri.c │ │ │ ├── xlate │ │ │ │ └── xlate.c │ │ │ └── xml │ │ │ │ ├── NWGNUmakefile │ │ │ │ ├── apr_xml.c │ │ │ │ └── expat │ │ │ │ ├── COPYING │ │ │ │ ├── Makefile.in │ │ │ │ ├── README │ │ │ │ ├── buildconf.sh │ │ │ │ ├── configure │ │ │ │ ├── configure.in │ │ │ │ ├── conftools │ │ │ │ ├── PrintPath │ │ │ │ ├── ac_c_bigendian_cross.m4 │ │ │ │ ├── config.guess │ │ │ │ ├── config.sub │ │ │ │ ├── install-sh │ │ │ │ ├── libtool.m4 │ │ │ │ ├── ltmain.sh │ │ │ │ └── mkinstalldirs │ │ │ │ ├── expat_config.h.in │ │ │ │ ├── lib │ │ │ │ ├── ascii.h │ │ │ │ ├── asciitab.h │ │ │ │ ├── expat.dsp │ │ │ │ ├── expat.h │ │ │ │ ├── expat_config.hnw │ │ │ │ ├── iasciitab.h │ │ │ │ ├── internal.h │ │ │ │ ├── latin1tab.h │ │ │ │ ├── map_osd_ebcdic_df04_1.h │ │ │ │ ├── nametab.h │ │ │ │ ├── osd_ebcdic_df04_1.h │ │ │ │ ├── utf8tab.h │ │ │ │ ├── winconfig.h │ │ │ │ ├── xml.dsp │ │ │ │ ├── xmlparse.c │ │ │ │ ├── xmlrole.c │ │ │ │ ├── xmlrole.h │ │ │ │ ├── xmltok.c │ │ │ │ ├── xmltok.h │ │ │ │ ├── xmltok_impl.c │ │ │ │ ├── xmltok_impl.h │ │ │ │ └── xmltok_ns.c │ │ │ │ └── win32 │ │ │ │ ├── MANIFEST.txt │ │ │ │ └── expat.iss │ │ ├── apr │ │ │ ├── CHANGES │ │ │ ├── LICENSE │ │ │ ├── Makefile.in │ │ │ ├── Makefile.win │ │ │ ├── NOTICE │ │ │ ├── NWGNUmakefile │ │ │ ├── README │ │ │ ├── apr-config.in │ │ │ ├── apr.dep │ │ │ ├── apr.dsp │ │ │ ├── apr.dsw │ │ │ ├── apr.mak │ │ │ ├── apr.pc.in │ │ │ ├── atomic │ │ │ │ ├── netware │ │ │ │ │ └── apr_atomic.c │ │ │ │ ├── os390 │ │ │ │ │ └── atomic.c │ │ │ │ ├── unix │ │ │ │ │ ├── builtins.c │ │ │ │ │ ├── ia32.c │ │ │ │ │ ├── mutex.c │ │ │ │ │ ├── ppc.c │ │ │ │ │ ├── s390.c │ │ │ │ │ └── solaris.c │ │ │ │ └── win32 │ │ │ │ │ └── apr_atomic.c │ │ │ ├── build-outputs.mk │ │ │ ├── build.conf │ │ │ ├── build │ │ │ │ ├── MakeEtags │ │ │ │ ├── NWGNUenvironment.inc │ │ │ │ ├── NWGNUhead.inc │ │ │ │ ├── NWGNUmakefile │ │ │ │ ├── NWGNUtail.inc │ │ │ │ ├── PrintPath │ │ │ │ ├── aplibtool.c │ │ │ │ ├── apr_common.m4 │ │ │ │ ├── apr_hints.m4 │ │ │ │ ├── apr_network.m4 │ │ │ │ ├── apr_rules.mk.in │ │ │ │ ├── apr_threads.m4 │ │ │ │ ├── apr_win32.m4 │ │ │ │ ├── aprapp.dep │ │ │ │ ├── aprapp.dsp │ │ │ │ ├── aprapp.mak │ │ │ │ ├── buildcheck.sh │ │ │ │ ├── config.guess │ │ │ │ ├── config.sub │ │ │ │ ├── cvtdsp.pl │ │ │ │ ├── find_apr.m4 │ │ │ │ ├── fixwin32mak.pl │ │ │ │ ├── gen-build.py │ │ │ │ ├── get-version.sh │ │ │ │ ├── install.sh │ │ │ │ ├── jlibtool.c │ │ │ │ ├── libaprapp.dep │ │ │ │ ├── libaprapp.dsp │ │ │ │ ├── libaprapp.mak │ │ │ │ ├── libtool.m4 │ │ │ │ ├── lineends.pl │ │ │ │ ├── ltmain.sh │ │ │ │ ├── make_exports.awk │ │ │ │ ├── make_nw_export.awk │ │ │ │ ├── make_var_export.awk │ │ │ │ ├── mkdir.sh │ │ │ │ ├── nw_export.inc │ │ │ │ ├── nw_ver.awk │ │ │ │ ├── pkg │ │ │ │ │ ├── README │ │ │ │ │ ├── buildpkg.sh │ │ │ │ │ └── pkginfo.in │ │ │ │ ├── preaprapp.dsp │ │ │ │ ├── prelibaprapp.dsp │ │ │ │ ├── rpm │ │ │ │ │ └── apr.spec.in │ │ │ │ ├── run-gcov.sh │ │ │ │ └── win32ver.awk │ │ │ ├── buildconf │ │ │ ├── config.layout │ │ │ ├── configure │ │ │ ├── configure.in │ │ │ ├── docs │ │ │ │ ├── APRDesign.html │ │ │ │ ├── canonical_filenames.html │ │ │ │ ├── doxygen.conf │ │ │ │ ├── incomplete_types │ │ │ │ ├── non_apr_programs │ │ │ │ ├── pool-design.html │ │ │ │ └── win32_builds.html │ │ │ ├── dso │ │ │ │ ├── aix │ │ │ │ │ └── dso.c │ │ │ │ ├── beos │ │ │ │ │ └── dso.c │ │ │ │ ├── netware │ │ │ │ │ └── dso.c │ │ │ │ ├── os2 │ │ │ │ │ └── dso.c │ │ │ │ ├── os390 │ │ │ │ │ └── dso.c │ │ │ │ ├── unix │ │ │ │ │ └── dso.c │ │ │ │ └── win32 │ │ │ │ │ └── dso.c │ │ │ ├── emacs-mode │ │ │ ├── file_io │ │ │ │ ├── netware │ │ │ │ │ ├── filepath.c │ │ │ │ │ ├── filestat.c │ │ │ │ │ ├── filesys.c │ │ │ │ │ ├── flock.c │ │ │ │ │ ├── mktemp.c │ │ │ │ │ └── pipe.c │ │ │ │ ├── os2 │ │ │ │ │ ├── buffer.c │ │ │ │ │ ├── copy.c │ │ │ │ │ ├── dir.c │ │ │ │ │ ├── dir_make_recurse.c │ │ │ │ │ ├── fileacc.c │ │ │ │ │ ├── filedup.c │ │ │ │ │ ├── filepath.c │ │ │ │ │ ├── filepath_util.c │ │ │ │ │ ├── filestat.c │ │ │ │ │ ├── filesys.c │ │ │ │ │ ├── flock.c │ │ │ │ │ ├── fullrw.c │ │ │ │ │ ├── maperrorcode.c │ │ │ │ │ ├── mktemp.c │ │ │ │ │ ├── open.c │ │ │ │ │ ├── pipe.c │ │ │ │ │ ├── readwrite.c │ │ │ │ │ ├── seek.c │ │ │ │ │ └── tempdir.c │ │ │ │ ├── unix │ │ │ │ │ ├── buffer.c │ │ │ │ │ ├── copy.c │ │ │ │ │ ├── dir.c │ │ │ │ │ ├── fileacc.c │ │ │ │ │ ├── filedup.c │ │ │ │ │ ├── filepath.c │ │ │ │ │ ├── filepath_util.c │ │ │ │ │ ├── filestat.c │ │ │ │ │ ├── flock.c │ │ │ │ │ ├── fullrw.c │ │ │ │ │ ├── mktemp.c │ │ │ │ │ ├── open.c │ │ │ │ │ ├── pipe.c │ │ │ │ │ ├── readwrite.c │ │ │ │ │ ├── seek.c │ │ │ │ │ └── tempdir.c │ │ │ │ └── win32 │ │ │ │ │ ├── buffer.c │ │ │ │ │ ├── dir.c │ │ │ │ │ ├── filedup.c │ │ │ │ │ ├── filepath.c │ │ │ │ │ ├── filestat.c │ │ │ │ │ ├── filesys.c │ │ │ │ │ ├── flock.c │ │ │ │ │ ├── open.c │ │ │ │ │ ├── pipe.c │ │ │ │ │ ├── readwrite.c │ │ │ │ │ └── seek.c │ │ │ ├── helpers │ │ │ │ └── apr_rename.pl │ │ │ ├── include │ │ │ │ ├── apr.h.in │ │ │ │ ├── apr.hnw │ │ │ │ ├── apr.hw │ │ │ │ ├── apr_allocator.h │ │ │ │ ├── apr_atomic.h │ │ │ │ ├── apr_dso.h │ │ │ │ ├── apr_env.h │ │ │ │ ├── apr_errno.h │ │ │ │ ├── apr_file_info.h │ │ │ │ ├── apr_file_io.h │ │ │ │ ├── apr_fnmatch.h │ │ │ │ ├── apr_general.h │ │ │ │ ├── apr_getopt.h │ │ │ │ ├── apr_global_mutex.h │ │ │ │ ├── apr_hash.h │ │ │ │ ├── apr_inherit.h │ │ │ │ ├── apr_lib.h │ │ │ │ ├── apr_mmap.h │ │ │ │ ├── apr_mtcp.h │ │ │ │ ├── apr_network_io.h │ │ │ │ ├── apr_poll.h │ │ │ │ ├── apr_pools.h │ │ │ │ ├── apr_portable.h │ │ │ │ ├── apr_proc_mutex.h │ │ │ │ ├── apr_random.h │ │ │ │ ├── apr_ring.h │ │ │ │ ├── apr_shm.h │ │ │ │ ├── apr_signal.h │ │ │ │ ├── apr_strings.h │ │ │ │ ├── apr_support.h │ │ │ │ ├── apr_tables.h │ │ │ │ ├── apr_thread_cond.h │ │ │ │ ├── apr_thread_mutex.h │ │ │ │ ├── apr_thread_proc.h │ │ │ │ ├── apr_thread_rwlock.h │ │ │ │ ├── apr_time.h │ │ │ │ ├── apr_user.h │ │ │ │ ├── apr_version.h │ │ │ │ ├── apr_want.h │ │ │ │ └── arch │ │ │ │ │ ├── aix │ │ │ │ │ └── apr_arch_dso.h │ │ │ │ │ ├── apr_private_common.h │ │ │ │ │ ├── beos │ │ │ │ │ ├── apr_arch_dso.h │ │ │ │ │ ├── apr_arch_proc_mutex.h │ │ │ │ │ ├── apr_arch_thread_cond.h │ │ │ │ │ ├── apr_arch_thread_mutex.h │ │ │ │ │ ├── apr_arch_thread_rwlock.h │ │ │ │ │ └── apr_arch_threadproc.h │ │ │ │ │ ├── netware │ │ │ │ │ ├── apr_arch_dso.h │ │ │ │ │ ├── apr_arch_file_io.h │ │ │ │ │ ├── apr_arch_global_mutex.h │ │ │ │ │ ├── apr_arch_internal_time.h │ │ │ │ │ ├── apr_arch_networkio.h │ │ │ │ │ ├── apr_arch_pre_nw.h │ │ │ │ │ ├── apr_arch_proc_mutex.h │ │ │ │ │ ├── apr_arch_thread_cond.h │ │ │ │ │ ├── apr_arch_thread_mutex.h │ │ │ │ │ ├── apr_arch_thread_rwlock.h │ │ │ │ │ ├── apr_arch_threadproc.h │ │ │ │ │ └── apr_private.h │ │ │ │ │ ├── os2 │ │ │ │ │ ├── apr_arch_dso.h │ │ │ │ │ ├── apr_arch_file_io.h │ │ │ │ │ ├── apr_arch_inherit.h │ │ │ │ │ ├── apr_arch_networkio.h │ │ │ │ │ ├── apr_arch_os2calls.h │ │ │ │ │ ├── apr_arch_proc_mutex.h │ │ │ │ │ ├── apr_arch_thread_cond.h │ │ │ │ │ ├── apr_arch_thread_mutex.h │ │ │ │ │ ├── apr_arch_thread_rwlock.h │ │ │ │ │ └── apr_arch_threadproc.h │ │ │ │ │ ├── os390 │ │ │ │ │ └── apr_arch_dso.h │ │ │ │ │ ├── unix │ │ │ │ │ ├── apr_arch_atomic.h │ │ │ │ │ ├── apr_arch_dso.h │ │ │ │ │ ├── apr_arch_file_io.h │ │ │ │ │ ├── apr_arch_global_mutex.h │ │ │ │ │ ├── apr_arch_inherit.h │ │ │ │ │ ├── apr_arch_internal_time.h │ │ │ │ │ ├── apr_arch_misc.h │ │ │ │ │ ├── apr_arch_networkio.h │ │ │ │ │ ├── apr_arch_poll_private.h │ │ │ │ │ ├── apr_arch_proc_mutex.h │ │ │ │ │ ├── apr_arch_shm.h │ │ │ │ │ ├── apr_arch_thread_cond.h │ │ │ │ │ ├── apr_arch_thread_mutex.h │ │ │ │ │ ├── apr_arch_thread_rwlock.h │ │ │ │ │ ├── apr_arch_threadproc.h │ │ │ │ │ └── apr_private.h.in │ │ │ │ │ └── win32 │ │ │ │ │ ├── apr_arch_atime.h │ │ │ │ │ ├── apr_arch_dso.h │ │ │ │ │ ├── apr_arch_file_io.h │ │ │ │ │ ├── apr_arch_inherit.h │ │ │ │ │ ├── apr_arch_misc.h │ │ │ │ │ ├── apr_arch_networkio.h │ │ │ │ │ ├── apr_arch_proc_mutex.h │ │ │ │ │ ├── apr_arch_thread_cond.h │ │ │ │ │ ├── apr_arch_thread_mutex.h │ │ │ │ │ ├── apr_arch_thread_rwlock.h │ │ │ │ │ ├── apr_arch_threadproc.h │ │ │ │ │ ├── apr_arch_utf8.h │ │ │ │ │ ├── apr_dbg_win32_handles.h │ │ │ │ │ └── apr_private.h │ │ │ ├── libapr.dep │ │ │ ├── libapr.dsp │ │ │ ├── libapr.mak │ │ │ ├── libapr.rc │ │ │ ├── locks │ │ │ │ ├── beos │ │ │ │ │ ├── proc_mutex.c │ │ │ │ │ ├── thread_cond.c │ │ │ │ │ ├── thread_mutex.c │ │ │ │ │ └── thread_rwlock.c │ │ │ │ ├── netware │ │ │ │ │ ├── proc_mutex.c │ │ │ │ │ ├── thread_cond.c │ │ │ │ │ ├── thread_mutex.c │ │ │ │ │ └── thread_rwlock.c │ │ │ │ ├── os2 │ │ │ │ │ ├── proc_mutex.c │ │ │ │ │ ├── thread_cond.c │ │ │ │ │ ├── thread_mutex.c │ │ │ │ │ └── thread_rwlock.c │ │ │ │ ├── unix │ │ │ │ │ ├── global_mutex.c │ │ │ │ │ ├── proc_mutex.c │ │ │ │ │ ├── thread_cond.c │ │ │ │ │ ├── thread_mutex.c │ │ │ │ │ └── thread_rwlock.c │ │ │ │ └── win32 │ │ │ │ │ ├── proc_mutex.c │ │ │ │ │ ├── thread_cond.c │ │ │ │ │ ├── thread_mutex.c │ │ │ │ │ └── thread_rwlock.c │ │ │ ├── memory │ │ │ │ └── unix │ │ │ │ │ └── apr_pools.c │ │ │ ├── misc │ │ │ │ ├── netware │ │ │ │ │ ├── apr.xdc │ │ │ │ │ ├── aprlib.def │ │ │ │ │ ├── charset.c │ │ │ │ │ ├── libprews.c │ │ │ │ │ ├── rand.c │ │ │ │ │ └── start.c │ │ │ │ ├── unix │ │ │ │ │ ├── charset.c │ │ │ │ │ ├── env.c │ │ │ │ │ ├── errorcodes.c │ │ │ │ │ ├── getopt.c │ │ │ │ │ ├── otherchild.c │ │ │ │ │ ├── rand.c │ │ │ │ │ ├── randbyte_os2.inc │ │ │ │ │ ├── start.c │ │ │ │ │ └── version.c │ │ │ │ └── win32 │ │ │ │ │ ├── apr_app.c │ │ │ │ │ ├── charset.c │ │ │ │ │ ├── env.c │ │ │ │ │ ├── internal.c │ │ │ │ │ ├── misc.c │ │ │ │ │ ├── rand.c │ │ │ │ │ ├── start.c │ │ │ │ │ └── utf8.c │ │ │ ├── mmap │ │ │ │ ├── unix │ │ │ │ │ ├── common.c │ │ │ │ │ └── mmap.c │ │ │ │ └── win32 │ │ │ │ │ └── mmap.c │ │ │ ├── network_io │ │ │ │ ├── beos │ │ │ │ │ ├── sendrecv.c │ │ │ │ │ └── socketcommon.c │ │ │ │ ├── os2 │ │ │ │ │ ├── inet_ntop.c │ │ │ │ │ ├── inet_pton.c │ │ │ │ │ ├── os2calls.c │ │ │ │ │ ├── sendrecv.c │ │ │ │ │ ├── sendrecv_udp.c │ │ │ │ │ ├── sockaddr.c │ │ │ │ │ ├── socket_util.c │ │ │ │ │ ├── sockets.c │ │ │ │ │ └── sockopt.c │ │ │ │ ├── unix │ │ │ │ │ ├── inet_ntop.c │ │ │ │ │ ├── inet_pton.c │ │ │ │ │ ├── multicast.c │ │ │ │ │ ├── sendrecv.c │ │ │ │ │ ├── sockaddr.c │ │ │ │ │ ├── socket_util.c │ │ │ │ │ ├── sockets.c │ │ │ │ │ └── sockopt.c │ │ │ │ └── win32 │ │ │ │ │ ├── sendrecv.c │ │ │ │ │ ├── sockets.c │ │ │ │ │ └── sockopt.c │ │ │ ├── passwd │ │ │ │ └── apr_getpass.c │ │ │ ├── poll │ │ │ │ ├── os2 │ │ │ │ │ ├── poll.c │ │ │ │ │ └── pollset.c │ │ │ │ └── unix │ │ │ │ │ ├── epoll.c │ │ │ │ │ ├── kqueue.c │ │ │ │ │ ├── poll.c │ │ │ │ │ ├── pollcb.c │ │ │ │ │ ├── pollset.c │ │ │ │ │ ├── port.c │ │ │ │ │ └── select.c │ │ │ ├── random │ │ │ │ └── unix │ │ │ │ │ ├── apr_random.c │ │ │ │ │ ├── sha2.c │ │ │ │ │ ├── sha2.h │ │ │ │ │ └── sha2_glue.c │ │ │ ├── shmem │ │ │ │ ├── beos │ │ │ │ │ └── shm.c │ │ │ │ ├── os2 │ │ │ │ │ └── shm.c │ │ │ │ ├── unix │ │ │ │ │ └── shm.c │ │ │ │ └── win32 │ │ │ │ │ └── shm.c │ │ │ ├── strings │ │ │ │ ├── apr_cpystrn.c │ │ │ │ ├── apr_fnmatch.c │ │ │ │ ├── apr_snprintf.c │ │ │ │ ├── apr_strings.c │ │ │ │ ├── apr_strnatcmp.c │ │ │ │ └── apr_strtok.c │ │ │ ├── support │ │ │ │ └── unix │ │ │ │ │ └── waitio.c │ │ │ ├── tables │ │ │ │ ├── apr_hash.c │ │ │ │ └── apr_tables.c │ │ │ ├── test │ │ │ │ ├── Makefile.in │ │ │ │ ├── Makefile.win │ │ │ │ ├── NWGNUaprtest │ │ │ │ ├── NWGNUechod │ │ │ │ ├── NWGNUglobalmutexchild │ │ │ │ ├── NWGNUmakefile │ │ │ │ ├── NWGNUmod_test │ │ │ │ ├── NWGNUproc_child │ │ │ │ ├── NWGNUreadchild │ │ │ │ ├── NWGNUsockchild │ │ │ │ ├── NWGNUsockperf │ │ │ │ ├── NWGNUtestatmc │ │ │ │ ├── NWGNUtryread │ │ │ │ ├── README │ │ │ │ ├── abts.c │ │ │ │ ├── abts.h │ │ │ │ ├── abts_tests.h │ │ │ │ ├── data │ │ │ │ │ ├── file_datafile.txt │ │ │ │ │ └── mmap_datafile.txt │ │ │ │ ├── echod.c │ │ │ │ ├── globalmutexchild.c │ │ │ │ ├── internal │ │ │ │ │ ├── Makefile.in │ │ │ │ │ ├── Makefile.win │ │ │ │ │ ├── testregex.c │ │ │ │ │ └── testucs.c │ │ │ │ ├── mod_test.c │ │ │ │ ├── nw_misc.c │ │ │ │ ├── occhild.c │ │ │ │ ├── proc_child.c │ │ │ │ ├── readchild.c │ │ │ │ ├── sendfile.c │ │ │ │ ├── sockchild.c │ │ │ │ ├── sockperf.c │ │ │ │ ├── testall.dsw │ │ │ │ ├── testapp.c │ │ │ │ ├── testargs.c │ │ │ │ ├── testatomic.c │ │ │ │ ├── testcond.c │ │ │ │ ├── testdir.c │ │ │ │ ├── testdll.dsp │ │ │ │ ├── testdso.c │ │ │ │ ├── testdup.c │ │ │ │ ├── testenv.c │ │ │ │ ├── testfile.c │ │ │ │ ├── testfilecopy.c │ │ │ │ ├── testfileinfo.c │ │ │ │ ├── testflock.c │ │ │ │ ├── testflock.h │ │ │ │ ├── testfmt.c │ │ │ │ ├── testfnmatch.c │ │ │ │ ├── testglobalmutex.c │ │ │ │ ├── testglobalmutex.h │ │ │ │ ├── testhash.c │ │ │ │ ├── testipsub.c │ │ │ │ ├── testlfs.c │ │ │ │ ├── testlib.dsp │ │ │ │ ├── testlock.c │ │ │ │ ├── testlockperf.c │ │ │ │ ├── testmmap.c │ │ │ │ ├── testmutexscope.c │ │ │ │ ├── testnames.c │ │ │ │ ├── testoc.c │ │ │ │ ├── testpath.c │ │ │ │ ├── testpipe.c │ │ │ │ ├── testpoll.c │ │ │ │ ├── testpools.c │ │ │ │ ├── testproc.c │ │ │ │ ├── testprocmutex.c │ │ │ │ ├── testrand.c │ │ │ │ ├── testshm.c │ │ │ │ ├── testshm.h │ │ │ │ ├── testshmconsumer.c │ │ │ │ ├── testshmproducer.c │ │ │ │ ├── testsleep.c │ │ │ │ ├── testsock.c │ │ │ │ ├── testsock.h │ │ │ │ ├── testsockets.c │ │ │ │ ├── testsockopt.c │ │ │ │ ├── teststr.c │ │ │ │ ├── teststrnatcmp.c │ │ │ │ ├── testtable.c │ │ │ │ ├── testtemp.c │ │ │ │ ├── testthread.c │ │ │ │ ├── testtime.c │ │ │ │ ├── testud.c │ │ │ │ ├── testuser.c │ │ │ │ ├── testutil.c │ │ │ │ ├── testutil.h │ │ │ │ ├── testvsn.c │ │ │ │ └── tryread.c │ │ │ ├── threadproc │ │ │ │ ├── beos │ │ │ │ │ ├── apr_proc_stub.c │ │ │ │ │ ├── proc.c │ │ │ │ │ ├── thread.c │ │ │ │ │ ├── threadpriv.c │ │ │ │ │ └── threadproc_common.c │ │ │ │ ├── netware │ │ │ │ │ ├── proc.c │ │ │ │ │ ├── procsup.c │ │ │ │ │ ├── signals.c │ │ │ │ │ ├── thread.c │ │ │ │ │ └── threadpriv.c │ │ │ │ ├── os2 │ │ │ │ │ ├── proc.c │ │ │ │ │ ├── signals.c │ │ │ │ │ ├── thread.c │ │ │ │ │ └── threadpriv.c │ │ │ │ ├── unix │ │ │ │ │ ├── proc.c │ │ │ │ │ ├── procsup.c │ │ │ │ │ ├── signals.c │ │ │ │ │ ├── thread.c │ │ │ │ │ └── threadpriv.c │ │ │ │ └── win32 │ │ │ │ │ ├── proc.c │ │ │ │ │ ├── signals.c │ │ │ │ │ ├── thread.c │ │ │ │ │ └── threadpriv.c │ │ │ ├── time │ │ │ │ ├── unix │ │ │ │ │ ├── time.c │ │ │ │ │ └── timestr.c │ │ │ │ └── win32 │ │ │ │ │ ├── time.c │ │ │ │ │ └── timestr.c │ │ │ └── user │ │ │ │ ├── netware │ │ │ │ ├── groupinfo.c │ │ │ │ └── userinfo.c │ │ │ │ ├── unix │ │ │ │ ├── groupinfo.c │ │ │ │ └── userinfo.c │ │ │ │ └── win32 │ │ │ │ ├── groupinfo.c │ │ │ │ └── userinfo.c │ │ └── pcre │ │ │ ├── AUTHORS │ │ │ ├── COPYING │ │ │ ├── ChangeLog │ │ │ ├── INSTALL │ │ │ ├── LICENCE │ │ │ ├── Makefile.in │ │ │ ├── NEWS │ │ │ ├── NON-UNIX-USE │ │ │ ├── NWGNUmakefile │ │ │ ├── README │ │ │ ├── RunTest.in │ │ │ ├── config.hw │ │ │ ├── config.in │ │ │ ├── configure │ │ │ ├── configure.in │ │ │ ├── dftables.c │ │ │ ├── dftables.dep │ │ │ ├── dftables.dsp │ │ │ ├── dftables.mak │ │ │ ├── dll.mk │ │ │ ├── doc │ │ │ └── README_httpd │ │ │ ├── get.c │ │ │ ├── install-sh │ │ │ ├── internal.h │ │ │ ├── libpcre.def │ │ │ ├── libpcre.pc.in │ │ │ ├── libpcreposix.def │ │ │ ├── maketables.c │ │ │ ├── makevp.bat │ │ │ ├── mkinstalldirs │ │ │ ├── pcre-config.in │ │ │ ├── pcre.c │ │ │ ├── pcre.def │ │ │ ├── pcre.dep │ │ │ ├── pcre.dsp │ │ │ ├── pcre.hw │ │ │ ├── pcre.in │ │ │ ├── pcre.mak │ │ │ ├── pcredemo.c │ │ │ ├── pcregrep.c │ │ │ ├── pcreposix.c │ │ │ ├── pcreposix.dsp │ │ │ ├── pcretest.c │ │ │ ├── perltest │ │ │ ├── perltest8 │ │ │ ├── pgrep.c │ │ │ ├── printint.c │ │ │ ├── study.c │ │ │ ├── testdata │ │ │ ├── testinput1 │ │ │ ├── testinput2 │ │ │ ├── testinput3 │ │ │ ├── testinput4 │ │ │ ├── testinput5 │ │ │ ├── testinput6 │ │ │ ├── testoutput1 │ │ │ ├── testoutput2 │ │ │ ├── testoutput3 │ │ │ ├── testoutput4 │ │ │ ├── testoutput5 │ │ │ └── testoutput6 │ │ │ ├── ucp.c │ │ │ ├── ucp.h │ │ │ ├── ucpinternal.h │ │ │ ├── ucptable.c │ │ │ └── ucptypetable.c │ └── support │ │ ├── .indent.pro │ │ ├── Makefile.in │ │ ├── NWGNUab │ │ ├── NWGNUhtcacheclean │ │ ├── NWGNUhtdbm │ │ ├── NWGNUhtdigest │ │ ├── NWGNUhtpasswd │ │ ├── NWGNUhttxt2dbm │ │ ├── NWGNUlogres │ │ ├── NWGNUmakefile │ │ ├── NWGNUrotlogs │ │ ├── README │ │ ├── SHA1 │ │ ├── README.sha1 │ │ ├── convert-sha1.pl │ │ ├── htpasswd-sha1.pl │ │ └── ldif-sha1.example │ │ ├── ab-multiple-files.c │ │ ├── ab.c │ │ ├── ab.dep │ │ ├── ab.dsp │ │ ├── ab.mak │ │ ├── abs.dep │ │ ├── abs.dsp │ │ ├── abs.mak │ │ ├── apachectl.in │ │ ├── apxs.in │ │ ├── check_forensic │ │ ├── checkgid.c │ │ ├── config.m4 │ │ ├── config │ │ ├── arp.conf │ │ └── mtcp.conf │ │ ├── dbmmanage.in │ │ ├── envvars-std.in │ │ ├── list_hooks.pl │ │ ├── logresolve.pl.in │ │ ├── phf_abuse_log.cgi.in │ │ ├── split-logfile.in │ │ ├── suexec.c │ │ ├── suexec.h │ │ └── win32 │ │ ├── ApacheMonitor.c │ │ ├── ApacheMonitor.dep │ │ ├── ApacheMonitor.dsp │ │ ├── ApacheMonitor.h │ │ ├── ApacheMonitor.ico │ │ ├── ApacheMonitor.mak │ │ ├── ApacheMonitor.rc │ │ ├── apache_header.bmp │ │ ├── aprun.ico │ │ ├── apstop.ico │ │ ├── srun.bmp │ │ ├── sstop.bmp │ │ ├── wintty.c │ │ ├── wintty.dep │ │ ├── wintty.dsp │ │ └── wintty.mak ├── example │ ├── .gitignore │ ├── Makefile.in │ ├── Makefile.old │ ├── README │ ├── epserver-multiprocess.conf │ ├── epserver.c │ ├── epserver.conf │ ├── epwget-multiprocess.conf │ ├── epwget.c │ └── epwget.conf ├── lighttpd-1.4.32 │ ├── AUTHORS │ ├── COPYING │ ├── INSTALL │ ├── Makefile.am │ ├── Makefile.in │ ├── NEWS │ ├── README │ ├── SConstruct │ ├── [config.h].in │ ├── aclocal.m4 │ ├── ar-lib │ ├── autogen.sh │ ├── compile │ ├── config.guess │ ├── config.h.in │ ├── config.sub │ ├── configure │ ├── configure.ac │ ├── depcomp │ ├── distribute.sh.in │ ├── doc │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── config │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── conf.d │ │ │ │ ├── Makefile.am │ │ │ │ ├── Makefile.in │ │ │ │ ├── access_log.conf │ │ │ │ ├── auth.conf │ │ │ │ ├── cgi.conf │ │ │ │ ├── cml.conf │ │ │ │ ├── compress.conf │ │ │ │ ├── debug.conf │ │ │ │ ├── dirlisting.conf │ │ │ │ ├── evhost.conf │ │ │ │ ├── expire.conf │ │ │ │ ├── fastcgi.conf │ │ │ │ ├── geoip.conf │ │ │ │ ├── magnet.conf │ │ │ │ ├── mime.conf │ │ │ │ ├── mod.template │ │ │ │ ├── mysql_vhost.conf │ │ │ │ ├── proxy.conf │ │ │ │ ├── rrdtool.conf │ │ │ │ ├── scgi.conf │ │ │ │ ├── secdownload.conf │ │ │ │ ├── simple_vhost.conf │ │ │ │ ├── ssi.conf │ │ │ │ ├── status.conf │ │ │ │ ├── trigger_b4_dl.conf │ │ │ │ ├── userdir.conf │ │ │ │ └── webdav.conf │ │ │ ├── lighttpd.conf │ │ │ ├── lighttpd.orig.conf │ │ │ ├── m-lighttpd.conf │ │ │ ├── modules.conf │ │ │ └── vhosts.d │ │ │ │ ├── Makefile.am │ │ │ │ ├── Makefile.in │ │ │ │ └── vhosts.template │ │ ├── initscripts │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── rc.lighttpd │ │ │ ├── rc.lighttpd.redhat │ │ │ └── sysconfig.lighttpd │ │ ├── lighttpd.8 │ │ ├── newstyle.css │ │ ├── oldstyle.css │ │ ├── outdated │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── access.txt │ │ │ ├── accesslog.txt │ │ │ ├── alias.txt │ │ │ ├── authentication.txt │ │ │ ├── cgi.txt │ │ │ ├── cml.txt │ │ │ ├── compress.txt │ │ │ ├── configuration.txt │ │ │ ├── dirlisting.txt │ │ │ ├── evhost.txt │ │ │ ├── expire.txt │ │ │ ├── extforward.txt │ │ │ ├── fastcgi-state.dot │ │ │ ├── fastcgi-state.txt │ │ │ ├── fastcgi.txt │ │ │ ├── features.txt │ │ │ ├── magnet.txt │ │ │ ├── mysqlvhost.txt │ │ │ ├── performance.txt │ │ │ ├── plugins.txt │ │ │ ├── proxy.txt │ │ │ ├── redirect.txt │ │ │ ├── rewrite.txt │ │ │ ├── rrdtool.txt │ │ │ ├── scgi.txt │ │ │ ├── secdownload.txt │ │ │ ├── security.txt │ │ │ ├── setenv.txt │ │ │ ├── simple-vhost.txt │ │ │ ├── skeleton.txt │ │ │ ├── ssi.txt │ │ │ ├── ssl.txt │ │ │ ├── state.dot │ │ │ ├── state.txt │ │ │ ├── status.txt │ │ │ ├── traffic-shaping.txt │ │ │ ├── trigger_b4_dl.txt │ │ │ ├── userdir.txt │ │ │ └── webdav.txt │ │ ├── scripts │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── rrdtool-graph.sh │ │ │ └── spawn-php.sh │ │ └── systemd │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ └── lighttpd.service │ ├── install-sh │ ├── ltmain.sh │ ├── m4 │ │ ├── libtool.m4 │ │ ├── ltoptions.m4 │ │ ├── ltsugar.m4 │ │ ├── ltversion.m4 │ │ └── lt~obsolete.m4 │ ├── missing │ ├── src │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── SConscript │ │ ├── array.c │ │ ├── array.h │ │ ├── base.h │ │ ├── bitset.c │ │ ├── bitset.h │ │ ├── buffer.c │ │ ├── buffer.h │ │ ├── chunk.c │ │ ├── chunk.h │ │ ├── configfile-glue.c │ │ ├── configfile.c │ │ ├── configfile.h │ │ ├── configparser.c │ │ ├── configparser.h │ │ ├── configparser.y │ │ ├── connections-glue.c │ │ ├── connections.c │ │ ├── connections.h │ │ ├── crc32.c │ │ ├── crc32.h │ │ ├── data_array.c │ │ ├── data_config.c │ │ ├── data_count.c │ │ ├── data_fastcgi.c │ │ ├── data_integer.c │ │ ├── data_string.c │ │ ├── etag.c │ │ ├── etag.h │ │ ├── fastcgi.h │ │ ├── fdevent.c │ │ ├── fdevent.h │ │ ├── fdevent_freebsd_kqueue.c │ │ ├── fdevent_libev.c │ │ ├── fdevent_libmtcp.c │ │ ├── fdevent_linux_sysepoll.c │ │ ├── fdevent_poll.c │ │ ├── fdevent_select.c │ │ ├── fdevent_solaris_devpoll.c │ │ ├── fdevent_solaris_port.c │ │ ├── http-header-glue.c │ │ ├── http_auth.c │ │ ├── http_auth.h │ │ ├── http_chunk.c │ │ ├── http_chunk.h │ │ ├── inet_ntop_cache.c │ │ ├── inet_ntop_cache.h │ │ ├── joblist.c │ │ ├── joblist.h │ │ ├── keyvalue.c │ │ ├── keyvalue.h │ │ ├── lemon.c │ │ ├── lempar.c │ │ ├── lighttpd-angel.c │ │ ├── log.c │ │ ├── log.h │ │ ├── md5.c │ │ ├── md5.h │ │ ├── mod_access.c │ │ ├── mod_accesslog.c │ │ ├── mod_alias.c │ │ ├── mod_auth.c │ │ ├── mod_auth.h │ │ ├── mod_cgi.c │ │ ├── mod_cml.c │ │ ├── mod_cml.h │ │ ├── mod_cml_funcs.c │ │ ├── mod_cml_funcs.h │ │ ├── mod_cml_lua.c │ │ ├── mod_compress.c │ │ ├── mod_dirlisting.c │ │ ├── mod_evasive.c │ │ ├── mod_evhost.c │ │ ├── mod_expire.c │ │ ├── mod_extforward.c │ │ ├── mod_fastcgi.c │ │ ├── mod_flv_streaming.c │ │ ├── mod_indexfile.c │ │ ├── mod_magnet.c │ │ ├── mod_magnet_cache.c │ │ ├── mod_magnet_cache.h │ │ ├── mod_mysql_vhost.c │ │ ├── mod_proxy.c │ │ ├── mod_redirect.c │ │ ├── mod_rewrite.c │ │ ├── mod_rrdtool.c │ │ ├── mod_scgi.c │ │ ├── mod_secure_download.c │ │ ├── mod_setenv.c │ │ ├── mod_simple_vhost.c │ │ ├── mod_skeleton.c │ │ ├── mod_ssi.c │ │ ├── mod_ssi.h │ │ ├── mod_ssi_expr.c │ │ ├── mod_ssi_expr.h │ │ ├── mod_ssi_exprparser.c │ │ ├── mod_ssi_exprparser.h │ │ ├── mod_ssi_exprparser.y │ │ ├── mod_staticfile.c │ │ ├── mod_status.c │ │ ├── mod_trigger_b4_dl.c │ │ ├── mod_userdir.c │ │ ├── mod_usertrack.c │ │ ├── mod_webdav.c │ │ ├── mtcp.conf │ │ ├── network.c │ │ ├── network.h │ │ ├── network_backends.h │ │ ├── network_freebsd_sendfile.c │ │ ├── network_linux_sendfile.c │ │ ├── network_mtcp_writev.c │ │ ├── network_openssl.c │ │ ├── network_solaris_sendfilev.c │ │ ├── network_write.c │ │ ├── network_writev.c │ │ ├── plugin.c │ │ ├── plugin.h │ │ ├── proc_open.c │ │ ├── proc_open.h │ │ ├── request.c │ │ ├── request.h │ │ ├── response.c │ │ ├── response.h │ │ ├── server.c │ │ ├── server.h │ │ ├── settings.h │ │ ├── splaytree.c │ │ ├── splaytree.h │ │ ├── stat_cache.c │ │ ├── stat_cache.h │ │ ├── status_counter.c │ │ ├── status_counter.h │ │ ├── stream.c │ │ ├── stream.h │ │ ├── sys-mmap.h │ │ ├── sys-socket.h │ │ └── version.h │ └── tests │ │ ├── 404-handler.conf │ │ ├── LightyTest.pm │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ ├── SConscript │ │ ├── bug-06.conf │ │ ├── bug-12.conf │ │ ├── cachable.t │ │ ├── cleanup.sh │ │ ├── condition.conf │ │ ├── core-404-handler.t │ │ ├── core-condition.t │ │ ├── core-keepalive.t │ │ ├── core-request.t │ │ ├── core-response.t │ │ ├── core-var-include.t │ │ ├── core.t │ │ ├── docroot │ │ ├── 123 │ │ │ ├── 12345.html │ │ │ ├── 12345.txt │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── dummyfile.bla │ │ │ └── phpinfo.php │ │ ├── Makefile.am │ │ ├── Makefile.in │ │ └── www │ │ │ ├── 404.fcgi │ │ │ ├── 404.html │ │ │ ├── 404.pl │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── cgi-pathinfo.pl │ │ │ ├── cgi.php │ │ │ ├── cgi.pl │ │ │ ├── crlfcrash.pl │ │ │ ├── exec-date.shtml │ │ │ ├── expire │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── access.txt │ │ │ └── modification.txt │ │ │ ├── get-env.php │ │ │ ├── get-header.pl │ │ │ ├── get-post-len.pl │ │ │ ├── get-server-env.php │ │ │ ├── go │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ └── cgi.php │ │ │ ├── index.html │ │ │ ├── index.txt │ │ │ ├── indexfile │ │ │ ├── Makefile.am │ │ │ ├── Makefile.in │ │ │ ├── index.php │ │ │ ├── return-404.php │ │ │ └── rewrite.php │ │ │ ├── nph-status.pl │ │ │ ├── phpinfo.php │ │ │ ├── prefix.fcgi │ │ │ ├── redirect.php │ │ │ ├── send404.pl │ │ │ ├── sendfile.php │ │ │ └── ssi.shtml │ │ ├── fastcgi-10.conf │ │ ├── fastcgi-13.conf │ │ ├── fastcgi-auth.conf │ │ ├── fastcgi-responder.conf │ │ ├── fcgi-auth.c │ │ ├── fcgi-responder.c │ │ ├── lighttpd.conf │ │ ├── lighttpd.htpasswd │ │ ├── lighttpd.user │ │ ├── lowercase.conf │ │ ├── lowercase.t │ │ ├── mod-access.t │ │ ├── mod-auth.t │ │ ├── mod-cgi.t │ │ ├── mod-compress.conf │ │ ├── mod-compress.t │ │ ├── mod-fastcgi.t │ │ ├── mod-proxy.t │ │ ├── mod-redirect.t │ │ ├── mod-rewrite.t │ │ ├── mod-secdownload.t │ │ ├── mod-setenv.t │ │ ├── mod-ssi.t │ │ ├── mod-userdir.t │ │ ├── prepare.sh │ │ ├── proxy.conf │ │ ├── request.t │ │ ├── run-tests.pl │ │ ├── symlink.t │ │ ├── var-include-sub.conf │ │ ├── var-include.conf │ │ └── wrapper.sh └── perf │ ├── .gitignore │ ├── Makefile.in │ ├── README.md │ ├── add-delay-bw.sh │ ├── add-delay.sh │ ├── client.c │ ├── client.conf │ ├── recv.py │ └── rm-delay.sh ├── compile ├── config.guess ├── config.h.in ├── config.sub ├── config ├── affinity-netmap.py ├── sample_arp.conf ├── sample_mtcp.conf └── sample_route.conf ├── configure ├── configure.ac ├── docs ├── html │ ├── mtcp_accept.html │ ├── mtcp_bind.html │ ├── mtcp_close.html │ ├── mtcp_connect.html │ ├── mtcp_create_context.html │ ├── mtcp_destroy.html │ ├── mtcp_destroy_context.html │ ├── mtcp_getpeername.html │ ├── mtcp_getsockname.html │ ├── mtcp_getsockopt.html │ ├── mtcp_init.html │ ├── mtcp_init_rss.html │ ├── mtcp_listen.html │ ├── mtcp_read.html │ ├── mtcp_recv.html │ ├── mtcp_setsockopt.html │ ├── mtcp_socket.html │ └── mtcp_write.html └── man │ ├── mtcp_accept │ ├── mtcp_bind │ ├── mtcp_close │ ├── mtcp_connect │ ├── mtcp_create_context │ ├── mtcp_destroy │ ├── mtcp_destroy_context │ ├── mtcp_getpeername │ ├── mtcp_getsockname │ ├── mtcp_getsockopt │ ├── mtcp_init │ ├── mtcp_init_rss │ ├── mtcp_listen │ ├── mtcp_read │ ├── mtcp_recv │ ├── mtcp_setsockopt │ ├── mtcp_socket │ └── mtcp_write ├── dpdk-iface-kmod ├── Makefile ├── dpdk_iface.c ├── dpdk_iface.h ├── dpdk_iface_common.h └── dpdk_iface_main.c ├── install-sh ├── io_engine ├── COPYING ├── driver │ ├── Makefile │ ├── affinity.py │ ├── affinity_numa0.py │ ├── affinity_numa1.py │ ├── install.py │ ├── ixgbe.h │ ├── ixgbe_82598.c │ ├── ixgbe_82599.c │ ├── ixgbe_api.c │ ├── ixgbe_api.h │ ├── ixgbe_common.c │ ├── ixgbe_common.h │ ├── ixgbe_dcb.c │ ├── ixgbe_dcb.h │ ├── ixgbe_dcb_82598.c │ ├── ixgbe_dcb_82598.h │ ├── ixgbe_dcb_82599.c │ ├── ixgbe_dcb_82599.h │ ├── ixgbe_dcb_nl.c │ ├── ixgbe_ethtool.c │ ├── ixgbe_fcoe.c │ ├── ixgbe_fcoe.h │ ├── ixgbe_main.c │ ├── ixgbe_osdep.h │ ├── ixgbe_param.c │ ├── ixgbe_phy.c │ ├── ixgbe_phy.h │ ├── ixgbe_sysfs.c │ ├── ixgbe_type.h │ ├── kcompat.c │ ├── kcompat.h │ └── kcompat_ethtool.c ├── include │ └── ps.h ├── lib │ ├── Makefile.in │ └── pslib.c └── samples │ ├── echo │ ├── Makefile │ ├── echo.c │ └── echo_new.c │ ├── list_devices │ ├── Makefile │ └── list_devices.c │ ├── packet_generator │ ├── Makefile │ └── packet_generator.c │ └── rxdump │ ├── Makefile │ └── rxdump.c ├── missing ├── mtcp ├── include │ └── .gitignore ├── lib │ └── .gitignore └── src │ ├── Makefile.in │ ├── Makefile.old │ ├── addr_pool.c │ ├── api.c │ ├── arp.c │ ├── ccp.c │ ├── clock.c │ ├── config.c │ ├── core.c │ ├── cpu.c │ ├── debug.c │ ├── dpdk_module.c │ ├── eth_in.c │ ├── eth_out.c │ ├── eventpoll.c │ ├── fhash.c │ ├── icmp.c │ ├── include │ ├── addr_pool.h │ ├── arp.h │ ├── ccp.h │ ├── clock.h │ ├── config.h │ ├── cpu.h │ ├── debug.h │ ├── dpdk_iface_common.h │ ├── eth_in.h │ ├── eth_out.h │ ├── eventpoll.h │ ├── fhash.h │ ├── icmp.h │ ├── io_module.h │ ├── ip_in.h │ ├── ip_out.h │ ├── logger.h │ ├── memory_mgt.h │ ├── mtcp.h │ ├── mtcp_api.h │ ├── mtcp_epoll.h │ ├── netmap.h │ ├── netmap_user.h │ ├── pacing.h │ ├── pipe.h │ ├── rss.h │ ├── socket.h │ ├── stat.h │ ├── tcp_in.h │ ├── tcp_out.h │ ├── tcp_rb_frag_queue.h │ ├── tcp_ring_buffer.h │ ├── tcp_sb_queue.h │ ├── tcp_send_buffer.h │ ├── tcp_stream.h │ ├── tcp_stream_queue.h │ ├── tcp_util.h │ └── timer.h │ ├── io_module.c │ ├── ip_in.c │ ├── ip_out.c │ ├── logger.c │ ├── memory_mgt.c │ ├── netmap_module.c │ ├── onvm_module.c │ ├── pacing.c │ ├── pipe.c │ ├── psio_module.c │ ├── rss.c │ ├── socket.c │ ├── tcp_in.c │ ├── tcp_out.c │ ├── tcp_rb_frag_queue.c │ ├── tcp_ring_buffer.c │ ├── tcp_sb_queue.c │ ├── tcp_send_buffer.c │ ├── tcp_stream.c │ ├── tcp_stream_queue.c │ ├── tcp_util.c │ └── timer.c ├── setup_linux_env.sh ├── setup_mtcp_dpdk_env.sh ├── setup_mtcp_onvm_env.sh └── util ├── Makefile.in ├── cpu.c ├── http_parsing.c ├── include ├── cpu.h ├── debug.h ├── http_parsing.h ├── netlib.h ├── ring_buffer.h ├── rss.h └── tdate_parse.h ├── netlib.c ├── ring_buffer.c ├── rss.c └── tdate_parse.c /.buildtest_dpdk.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | git submodule init 3 | git submodule update 4 | export RTE_SDK=`echo $PWD`/dpdk 5 | export RTE_TARGET=x86_64-native-linuxapp-gcc 6 | export MTCP_TARGET=`echo $PWD`/mtcp 7 | sed -i -e 's/O_TO_EXE_STR =/\$(shell if [ \! -d \${RTE_SDK}\/\${RTE_TARGET}\/lib ]\; then mkdir \${RTE_SDK}\/\${RTE_TARGET}\/lib\; fi)\nLINKER_FLAGS = \$(call linkerprefix,\$(LDLIBS))\n\$(shell echo \${LINKER_FLAGS} \> \${RTE_SDK}\/\${RTE_TARGET}\/lib\/ldflags\.txt)\nO_TO_EXE_STR =/g' $RTE_SDK/mk/rte.app.mk 8 | cd dpdk/ 9 | make install T=x86_64-native-linuxapp-gcc 10 | cd .. 11 | cd dpdk-iface-kmod 12 | make 13 | cd .. 14 | autoreconf -ivf 15 | ./configure --with-dpdk-lib=$RTE_SDK/$RTE_TARGET 16 | make 17 | cd apps/lighttpd-1.4.32/ 18 | autoreconf -ivf 19 | ./configure --without-bzip2 CFLAGS="-g -O3" --with-libmtcp=$MTCP_TARGET --with-libdpdk=$RTE_SDK/$RTE_TARGET 20 | make 21 | cd ../apache_benchmark 22 | ./configure --with-libmtcp=$MTCP_TARGET --with-libdpdk=$RTE_SDK/$RTE_TARGET 23 | make 24 | 25 | -------------------------------------------------------------------------------- /.buildtest_netmap.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export MTCP_TARGET=`echo $PWD`/mtcp 3 | autoreconf -ivf 4 | ./configure --enable-netmap 5 | make 6 | cd apps/lighttpd-1.4.32/ 7 | autoreconf -ivf 8 | ./configure --without-bzip2 CFLAGS="-g -O3" --with-libmtcp=$MTCP_TARGET --enable-netmap 9 | make 10 | cd ../apache_benchmark 11 | ./configure --with-libmtcp=$MTCP_TARGET --enable-netmap 12 | make 13 | -------------------------------------------------------------------------------- /.buildtest_psio.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | export PSIO_TARGET=`echo $PWD`/io_engine 3 | export MTCP_TARGET=`echo $PWD`/mtcp 4 | autoreconf -ivf 5 | ./configure --with-psio-lib=`echo $PWD`/io_engine 6 | make 7 | cd apps/lighttpd-1.4.32/ 8 | autoreconf -ivf 9 | ./configure --without-bzip2 CFLAGS="-g -O3" --with-libmtcp=$MTCP_TARGET --with-libpsio=$PSIO_TARGET 10 | make 11 | cd ../apache_benchmark 12 | ./configure --with-libmtcp=$MTCP_TARGET --with-libpsio=$PSIO_TARGET 13 | make 14 | -------------------------------------------------------------------------------- /.check_hyperthreading.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | RED='\033[0;31m' 4 | CYAN='\033[0;36m' 5 | YELLOW='\033[1;33m' 6 | LIGHTRED='\033[1;31m' 7 | NC='\033[0m' # No Color 8 | #str=$(grep -o '^flags\b.*: .*\bht\b' /proc/cpuinfo | tail -1) 9 | nproc=$(grep -i "processor" /proc/cpuinfo | sort -u | wc -l) 10 | phycore=$(cat /proc/cpuinfo | egrep "core id|physical id" | tr -d "\n" | sed s/physical/\\nphysical/g | grep -v ^$ | sort | uniq | wc -l) 11 | 12 | if [ -z "$(echo "$phycore *2" | bc | grep $nproc)" ] 13 | then 14 | str="" 15 | else 16 | str="ht-enabled" 17 | fi 18 | 19 | 20 | if [ "$str" ] 21 | then 22 | printf "${RED}mTCP works best when hyperthreading is DISABLED. Please disable this feature from BIOS.${NC}\n" 23 | fi 24 | 25 | printf "${CYAN}Type ${YELLOW}make${CYAN} to compile mTCP ${LIGHTRED}src/${CYAN} and ${LIGHTRED}apps/${CYAN}.${NC}\n" 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # mtcp-specific files 2 | Makefile 3 | autom4te.cache/ 4 | config.h 5 | config.log 6 | config.status 7 | dpdk-iface-kmod/dpdk_iface_main 8 | io_engine/lib/Makefile 9 | mtcp/src/Makefile 10 | util/Makefile 11 | stamp-h1 12 | 13 | # editors' temporary files 14 | .vscode/ 15 | 16 | # Prerequisites 17 | *.d 18 | 19 | # Object files 20 | *.o 21 | *.ko 22 | *.obj 23 | *.elf 24 | 25 | # Linker output 26 | *.ilk 27 | *.map 28 | *.exp 29 | 30 | # Precompiled Headers 31 | *.gch 32 | *.pch 33 | 34 | # Libraries 35 | *.lib 36 | *.a 37 | *.la 38 | *.lo 39 | 40 | # Shared objects (inc. Windows DLLs) 41 | *.dll 42 | *.so 43 | *.so.* 44 | *.dylib 45 | 46 | # Executables 47 | *.exe 48 | *.out 49 | *.app 50 | *.i*86 51 | *.x86_64 52 | *.hex 53 | 54 | # Debug files 55 | *.dSYM/ 56 | *.su 57 | *.idb 58 | *.pdb 59 | 60 | # Kernel Module Compile Results 61 | *.mod* 62 | *.cmd 63 | .tmp_versions/ 64 | modules.order 65 | Module.symvers 66 | Mkfile.old 67 | dkms.conf 68 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "dpdk"] 2 | path = dpdk 3 | url = https://dpdk.org/git/dpdk 4 | branch = master 5 | commit = 0da7f445df445630c794897347ee360d6fe6348b 6 | # commit = 92924b207b124c156f7b6dff75110d6af83d971f 7 | 8 | [submodule "mtcp/src/libccp"] 9 | path = mtcp/src/libccp 10 | url = https://github.com/ccp-project/libccp.git 11 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: required 2 | dist: trusty 3 | language: c 4 | 5 | notifications: 6 | email: 7 | on_success: change 8 | on_failure: change 9 | 10 | matrix: 11 | include: 12 | - env: COMPILER=gcc VERSION=6 13 | - env: COMPILER=gcc VERSION=5 14 | - env: COMPILER=gcc VERSION=4.8 15 | 16 | before_install: 17 | - sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test 18 | - sudo apt-get update -qq 19 | - | 20 | if [ "$VERSION" = "6" ]; then 21 | sudo apt-get install -qq -y gcc-6 22 | elif [ "$VERSION" = "5" ]; then 23 | sudo apt-get install -qq -y gcc-5 24 | elif [ "$VERSION" = "4.8" ]; then 25 | sudo apt-get install -qq -y gcc-4.8 26 | fi 27 | 28 | before_script: 29 | - | 30 | if [ "$VERSION" = "6" ]; then 31 | export CC=gcc-6 32 | elif [ "$VERSION" = "5" ]; then 33 | export CC=gcc-5 34 | elif [ "$VERSION" = "4.8" ]; then 35 | export CC=gcc-4.8 36 | fi 37 | 38 | install: 39 | - sudo apt-get -qq update 40 | - sudo apt-get install -y linux-headers-$(uname -r) 41 | - sudo apt-get install libnuma-dev 42 | - sudo apt-get install bash 43 | - sudo apt-get install libgmp3-dev 44 | 45 | script: 46 | - bash .buildtest_dpdk.sh 47 | - bash .buildtest_psio.sh 48 | - bash .buildtest_netmap.sh -------------------------------------------------------------------------------- /CHANGELOG: -------------------------------------------------------------------------------- 1 | 2015-02-04 Muhammad Asim Jamshed 2 | mTCPv3 3 | * Updated the I/O abstraction layer. 4 | * Added DPDK support 5 | 6 | 7 | 2014-02-04 Eunyoung Jeong 8 | mTCPv2 9 | * First stable version of mTCP released 10 | 11 | * Please see README & http://shader.kaist.edu/mtcp/ 12 | for more details. 13 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | AUTOMAKE_OPTIONS = foreign 2 | SUBDIRS = mtcp/src util io_engine/lib apps/example 3 | -------------------------------------------------------------------------------- /README.devel: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | README for mTCP development 3 | ======================================================================== 4 | 5 | This file will be updated in coming revisions. In the mean time please 6 | have a look @: 7 | 8 | 1 - http://www.ndsl.kaist.edu/~kyoungsoo/papers/mtcp.pdf 9 | 10 | 2 - apps/example/epserver.c OR apps/example/epwget.c example 11 | applications 12 | 13 | to see how to use mTCP API. 14 | 15 | ======================================================================== 16 | 17 | Contact: mtcp-user at list.ndsl.kaist.edu 18 | April 2, 2015. 19 | EunYoung Jeong 20 | M. Asim Jamshed -------------------------------------------------------------------------------- /TODOS: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | TODOs list for mTCP 3 | ======================================================================== 4 | 5 | See https://github.com/eunyoung14/mtcp/wiki/Supported-Features for details. 6 | 7 | ** This is only a small list of ideas that we have in our mind. Please 8 | contact the authors if you want to help develop mTCP even further. 9 | 10 | ======================================================================== 11 | 12 | Contact: mtcp-user at list.ndsl.kaist.edu 13 | April 2, 2015. 14 | EunYoung Jeong 15 | M. Asim Jamshed -------------------------------------------------------------------------------- /apps/apache_benchmark/NOTICE: -------------------------------------------------------------------------------- 1 | Apache HTTP Server 2 | Copyright 2013 The Apache Software Foundation. 3 | 4 | This product includes software developed at 5 | The Apache Software Foundation (http://www.apache.org/). 6 | 7 | Portions of this software were developed at the National Center 8 | for Supercomputing Applications (NCSA) at the University of 9 | Illinois at Urbana-Champaign. 10 | 11 | This software contains code derived from the RSA Data Security 12 | Inc. MD5 Message-Digest Algorithm, including various 13 | modifications by Spyglass Inc., Carnegie Mellon University, and 14 | Bell Communications Research, Inc (Bellcore). 15 | 16 | Regular expression support is provided by the PCRE library package, 17 | which is open source software, written by Philip Hazel, and copyright 18 | by the University of Cambridge, England. The original software is 19 | available from 20 | ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/ 21 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/aix/aixinfo: -------------------------------------------------------------------------------- 1 | 2 | PKG="ASF" 3 | NAME="httpd" 4 | ARCH="powerpc" 5 | VERSION="2.2.22" 6 | CATEGORY="application" 7 | VENDOR="Apache Software Foundation" 8 | EMAIL="dev@httpd.apache.org" 9 | VMMN=`build/get-version.sh mmn include/ap_mmn.h MODULE_MAGIC_NUMBER` 10 | REVISION=`build/get-version.sh all include/ap_release.h AP_SERVER` 11 | VERSION=`echo $REVISION | cut -d- -s -f1` 12 | RELEASE=`echo $REVISION | cut -d- -s -f2` 13 | if [ "x$VERSION" = "x" ]; then 14 | VERSION=$REVISION 15 | RELEASE=0 16 | fi 17 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/config-stubs: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # 4 | # Find all config files (config*.m4) and map them into lines with the 5 | # form: NUM? '0' ' ' PATH 6 | # 7 | # For example: 8 | # 9 | # 50 ./modules/generators/config5.m4 10 | # 0 ./modules/aaa/config.m4 11 | # 10 ./example/config1.m4 12 | # 13 | # These lines are sorted, then the first field is removed. Thus, we 14 | # have a set of paths sorted on the config-number (if present). All 15 | # config files without a number are sorted before those with a number. 16 | # 17 | 18 | configfiles=`find . -name "config*.m4" | \ 19 | sed 's#\(.*/config\)\(.*\).m4#\20 \1\2.m4#' | \ 20 | sort | \ 21 | sed 's#.* ##'` 22 | 23 | for configfile in $configfiles; do 24 | if [ -r $configfile ]; then 25 | echo "sinclude($configfile)" 26 | fi 27 | done 28 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/library.mk: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # 17 | # The build environment was provided by Sascha Schumann. 18 | 19 | LTLIBRARY_OBJECTS = $(LTLIBRARY_SOURCES:.c=.lo) $(LTLIBRARY_OBJECTS_X) 20 | 21 | $(LTLIBRARY_NAME): $(LTLIBRARY_OBJECTS) $(LTLIBRARY_DEPENDENCIES) 22 | $(LINK) -static $(LTLIBRARY_LDFLAGS) $(LTLIBRARY_OBJECTS) $(LTLIBRARY_LIBADD) 23 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/ltlib.mk: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # 17 | # The build environment was provided by Sascha Schumann. 18 | 19 | TARGETS = $(LTLIBRARY_NAME) 20 | 21 | include $(top_builddir)/build/rules.mk 22 | include $(top_srcdir)/build/library.mk 23 | 24 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/pkg/README: -------------------------------------------------------------------------------- 1 | The script in this directory will attempt to build a Solaris package 2 | out of a source tree for httpd. 3 | 4 | To build a package, make sure you are in the root of the source tree, 5 | and run: 6 | 7 | build/pkg/buildpkg.sh 8 | 9 | A Solaris package called httpd---local.gz will be 10 | created in the root of the source tree. 11 | 12 | By default, the script will attempt to find a system installed version of 13 | APR and APR-util v1. You may override the location of apr or apr-util like so: 14 | 15 | build/pkg/buildpkg.sh --with-apr=some/other/path --with-apr-util=some/other/path 16 | 17 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/pkg/pkginfo.in: -------------------------------------------------------------------------------- 1 | PKG="ASFhttpd" 2 | NAME="httpd" 3 | ARCH="@target_cpu@" 4 | VERSION="@HTTPD_VERSION@" 5 | CATEGORY="application" 6 | VENDOR="Apache Software Foundation" 7 | EMAIL="dev@httpd.apache.org" 8 | PSTAMP="dev@httpd.apache.org" 9 | BASEDIR="@prefix@" 10 | CLASSES="none" 11 | 12 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/program.mk: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # 17 | # The build environment was provided by Sascha Schumann. 18 | 19 | PROGRAM_OBJECTS = $(PROGRAM_SOURCES:.c=.lo) 20 | 21 | $(PROGRAM_NAME): $(PROGRAM_DEPENDENCIES) $(PROGRAM_OBJECTS) 22 | $(PROGRAM_PRELINK) 23 | $(LINK) $(PROGRAM_LDFLAGS) $(PROGRAM_OBJECTS) $(PROGRAM_LDADD) 24 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/rpm/httpd.logrotate: -------------------------------------------------------------------------------- 1 | /var/log/httpd/*log { 2 | missingok 3 | notifempty 4 | sharedscripts 5 | postrotate 6 | /sbin/service httpd graceful 2> /dev/null || true 7 | endscript 8 | } 9 | -------------------------------------------------------------------------------- /apps/apache_benchmark/build/win32/apache.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/build/win32/apache.ico -------------------------------------------------------------------------------- /apps/apache_benchmark/emacs-style: -------------------------------------------------------------------------------- 1 | (add-hook 'c-mode-hook 2 | (function (lambda () 3 | (c-set-offset 'inclass' ++) 4 | (c-set-offset 'defun-block-intro' ++) 5 | (c-set-offset 'statement-block-intro' ++) 6 | (c-set-offset 'substatement' ++) 7 | (c-set-offset 'brace-list-intro' ++) 8 | (c-set-offset 'statement-case-intro' ++) 9 | (c-set-offset 'inextern-lang' 0) 10 | ))) 11 | (setq c++-mode-hook c-mode-hook) 12 | (setq-default indent-tabs-mode nil) 13 | -------------------------------------------------------------------------------- /apps/apache_benchmark/include/.indent.pro: -------------------------------------------------------------------------------- 1 | -i4 -npsl -di0 -br -nce -d0 -cli0 -npcs -nfc1 2 | -TBUFF 3 | -TFILE 4 | -TTRANS 5 | -TUINT4 6 | -T_trans 7 | -Tallow_options_t 8 | -Tapache_sfio 9 | -Tarray_header 10 | -Tbool_int 11 | -Tbuf_area 12 | -Tbuff_struct 13 | -Tbuffy 14 | -Tcmd_how 15 | -Tcmd_parms 16 | -Tcommand_rec 17 | -Tcommand_struct 18 | -Tconn_rec 19 | -Tcore_dir_config 20 | -Tcore_server_config 21 | -Tdir_maker_func 22 | -Tevent 23 | -Tglobals_s 24 | -Thandler_func 25 | -Thandler_rec 26 | -Tjoblist_s 27 | -Tlisten_rec 28 | -Tmerger_func 29 | -Tmode_t 30 | -Tmodule 31 | -Tmodule_struct 32 | -Tmutex 33 | -Tn_long 34 | -Tother_child_rec 35 | -Toverrides_t 36 | -Tparent_score 37 | -Tpid_t 38 | -Tpiped_log 39 | -Tpool 40 | -Trequest_rec 41 | -Trequire_line 42 | -Trlim_t 43 | -Tscoreboard 44 | -Tsemaphore 45 | -Tserver_addr_rec 46 | -Tserver_rec 47 | -Tserver_rec_chain 48 | -Tshort_score 49 | -Ttable 50 | -Ttable_entry 51 | -Tthread 52 | -Tu_wide_int 53 | -Tvtime_t 54 | -Twide_int 55 | -------------------------------------------------------------------------------- /apps/apache_benchmark/include/ap_compat.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /** 18 | * @file ap_compat.h 19 | * @brief Redefine Apache 1.3 symbols 20 | */ 21 | 22 | #ifndef AP_COMPAT_H 23 | #define AP_COMPAT_H 24 | 25 | /* redefine 1.3.x symbols to the new symbol names */ 26 | 27 | #define MODULE_VAR_EXPORT AP_MODULE_DECLARE_DATA 28 | #define ap_send_http_header(r) ; 29 | 30 | #endif /* AP_COMPAT_H */ 31 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/.deps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/modules/.deps -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/aaa/modules.mk: -------------------------------------------------------------------------------- 1 | libmod_authn_file.la: mod_authn_file.lo 2 | $(MOD_LINK) mod_authn_file.lo $(MOD_AUTHN_FILE_LDADD) 3 | libmod_authn_default.la: mod_authn_default.lo 4 | $(MOD_LINK) mod_authn_default.lo $(MOD_AUTHN_DEFAULT_LDADD) 5 | libmod_authz_host.la: mod_authz_host.lo 6 | $(MOD_LINK) mod_authz_host.lo $(MOD_AUTHZ_HOST_LDADD) 7 | libmod_authz_groupfile.la: mod_authz_groupfile.lo 8 | $(MOD_LINK) mod_authz_groupfile.lo $(MOD_AUTHZ_GROUPFILE_LDADD) 9 | libmod_authz_user.la: mod_authz_user.lo 10 | $(MOD_LINK) mod_authz_user.lo $(MOD_AUTHZ_USER_LDADD) 11 | libmod_authz_default.la: mod_authz_default.lo 12 | $(MOD_LINK) mod_authz_default.lo $(MOD_AUTHZ_DEFAULT_LDADD) 13 | libmod_auth_basic.la: mod_auth_basic.lo 14 | $(MOD_LINK) mod_auth_basic.lo $(MOD_AUTH_BASIC_LDADD) 15 | DISTCLEAN_TARGETS = modules.mk 16 | static = libmod_authn_file.la libmod_authn_default.la libmod_authz_host.la libmod_authz_groupfile.la libmod_authz_user.la libmod_authz_default.la libmod_auth_basic.la 17 | shared = 18 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/arch/win32/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/cache/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/database/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/debug/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/echo/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/experimental/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/filters/modules.mk: -------------------------------------------------------------------------------- 1 | libmod_include.la: mod_include.lo 2 | $(MOD_LINK) mod_include.lo $(MOD_INCLUDE_LDADD) 3 | libmod_filter.la: mod_filter.lo 4 | $(MOD_LINK) mod_filter.lo $(MOD_FILTER_LDADD) 5 | DISTCLEAN_TARGETS = modules.mk 6 | static = libmod_include.la libmod_filter.la 7 | shared = 8 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/ldap/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/loggers/modules.mk: -------------------------------------------------------------------------------- 1 | libmod_log_config.la: mod_log_config.lo 2 | $(MOD_LINK) mod_log_config.lo $(MOD_LOG_CONFIG_LDADD) 3 | DISTCLEAN_TARGETS = modules.mk 4 | static = libmod_log_config.la 5 | shared = 6 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/metadata/modules.mk: -------------------------------------------------------------------------------- 1 | libmod_env.la: mod_env.lo 2 | $(MOD_LINK) mod_env.lo $(MOD_ENV_LDADD) 3 | libmod_setenvif.la: mod_setenvif.lo 4 | $(MOD_LINK) mod_setenvif.lo $(MOD_SETENVIF_LDADD) 5 | libmod_version.la: mod_version.lo 6 | $(MOD_LINK) mod_version.lo $(MOD_VERSION_LDADD) 7 | DISTCLEAN_TARGETS = modules.mk 8 | static = libmod_env.la libmod_setenvif.la libmod_version.la 9 | shared = 10 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/proxy/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/ssl/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/modules/test/modules.mk: -------------------------------------------------------------------------------- 1 | DISTCLEAN_TARGETS = modules.mk 2 | static = 3 | shared = 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/.deps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/os/.deps -------------------------------------------------------------------------------- /apps/apache_benchmark/os/.indent.pro: -------------------------------------------------------------------------------- 1 | -i4 -npsl -di0 -br -nce -d0 -cli0 -npcs -nfc1 2 | -TBUFF 3 | -TFILE 4 | -TTRANS 5 | -TUINT4 6 | -T_trans 7 | -Tallow_options_t 8 | -Tapache_sfio 9 | -Tarray_header 10 | -Tbool_int 11 | -Tbuf_area 12 | -Tbuff_struct 13 | -Tbuffy 14 | -Tcmd_how 15 | -Tcmd_parms 16 | -Tcommand_rec 17 | -Tcommand_struct 18 | -Tconn_rec 19 | -Tcore_dir_config 20 | -Tcore_server_config 21 | -Tdir_maker_func 22 | -Tevent 23 | -Tglobals_s 24 | -Thandler_func 25 | -Thandler_rec 26 | -Tjoblist_s 27 | -Tlisten_rec 28 | -Tmerger_func 29 | -Tmode_t 30 | -Tmodule 31 | -Tmodule_struct 32 | -Tmutex 33 | -Tn_long 34 | -Tother_child_rec 35 | -Toverrides_t 36 | -Tparent_score 37 | -Tpid_t 38 | -Tpiped_log 39 | -Tpool 40 | -Trequest_rec 41 | -Trequire_line 42 | -Trlim_t 43 | -Tscoreboard 44 | -Tsemaphore 45 | -Tserver_addr_rec 46 | -Tserver_rec 47 | -Tserver_rec_chain 48 | -Tshort_score 49 | -Ttable 50 | -Ttable_entry 51 | -Tthread 52 | -Tu_wide_int 53 | -Tvtime_t 54 | -Twide_int 55 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/Makefile.in: -------------------------------------------------------------------------------- 1 | 2 | SUBDIRS = $(OS_DIR) 3 | 4 | include $(top_builddir)/build/rules.mk 5 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/beos/Makefile.in: -------------------------------------------------------------------------------- 1 | 2 | LTLIBRARY_NAME = libos.la 3 | LTLIBRARY_SOURCES = os.c beosd.c 4 | 5 | include $(top_srcdir)/build/ltlib.mk 6 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/beos/config.m4: -------------------------------------------------------------------------------- 1 | if test "$OS" = "beos" ; then 2 | APR_ADDTO(CFLAGS,-DBEOS) 3 | fi 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/config.m4: -------------------------------------------------------------------------------- 1 | AC_MSG_CHECKING(for target platform) 2 | 3 | case $host in 4 | *beos*) 5 | OS="beos" 6 | OS_DIR=$OS 7 | ;; 8 | *pc-os2-emx*) 9 | OS="os2" 10 | OS_DIR=$OS 11 | ;; 12 | bs2000*) 13 | OS="unix" 14 | OS_DIR=$OS 15 | ;; 16 | *cygwin*) 17 | OS="cygwin" 18 | OS_DIR="unix" 19 | ;; 20 | *mingw32*) 21 | OS="win32" 22 | OS_DIR=$OS 23 | ;; 24 | *) 25 | OS="unix" 26 | OS_DIR=$OS;; 27 | esac 28 | 29 | AC_MSG_RESULT($OS) 30 | APACHE_FAST_OUTPUT(os/${OS_DIR}/Makefile) 31 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/netware/Apache.def: -------------------------------------------------------------------------------- 1 | MODULE APRLIB.NLM 2 | MODULE LIBC.NLM 3 | MODULE WS2_32.NLM 4 | EXPORT @HTTPD.IMP 5 | IMPORT GetCurrentAddressSpace 6 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/netware/apache.xdc: -------------------------------------------------------------------------------- 1 | BAGFMPK_Bag MT Safe NLM -------------------------------------------------------------------------------- /apps/apache_benchmark/os/os2/Makefile.in: -------------------------------------------------------------------------------- 1 | 2 | LTLIBRARY_NAME = libos.la 3 | LTLIBRARY_SOURCES = util_os2.c 4 | 5 | include $(top_srcdir)/build/ltlib.mk 6 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/os2/config.m4: -------------------------------------------------------------------------------- 1 | if test "$OS" = "os2" ; then 2 | APR_ADDTO(CFLAGS, [-DOS2 -O2]) 3 | fi 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/os2/core.mk: -------------------------------------------------------------------------------- 1 | # Some rules for making a shared core dll on OS/2 2 | 3 | os2core: httpd.dll $(CORE_IMPLIB) 4 | $(LIBTOOL) --mode=link gcc -Zstack 512 $(LDFLAGS) $(EXTRA_LDFLAGS) -o httpd $(CORE_IMPLIB) 5 | 6 | httpd.dll: $(PROGRAM_DEPENDENCIES) $(CORE_IMPLIB) 7 | $(LINK) -Zdll $(EXTRA_LDFLAGS) -s -o $@ server/exports.lo modules.lo $(PROGRAM_DEPENDENCIES) $(AP_LIBS) server/ApacheCoreOS2.def 8 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/os2/core_header.def: -------------------------------------------------------------------------------- 1 | LIBRARY httpd INITINSTANCE 2 | DESCRIPTION "Apache Server Core" 3 | DATA NONSHARED 4 | 5 | EXPORTS 6 | "main" 7 | 8 | ; One for mod_dav from socket library 9 | "_swaps" 10 | 11 | ; And some more for mod_unique_id 12 | "gethostname" 13 | "gethostbyname" 14 | "_swapl" 15 | "h_errno" 16 | "inet_ntoa" 17 | 18 | ; mod_proxy needs this one 19 | "inet_addr" 20 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/tpf/TPFExport: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo " Setting TPF/c89 environment variables" 3 | export _C89_CCMODE=1 4 | # replace the following with the location of your TPF include files 5 | export _C89_INCDIRS="/u/tpf41/currentmaint/include /u/tpf41/currentmaint/include/oco" 6 | export TPF=YES 7 | echo "Done" 8 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/unix/.deps: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/os/unix/.deps -------------------------------------------------------------------------------- /apps/apache_benchmark/os/unix/Makefile.in: -------------------------------------------------------------------------------- 1 | 2 | LTLIBRARY_NAME = libos.la 3 | LTLIBRARY_SOURCES = unixd.c 4 | 5 | include $(top_srcdir)/build/ltlib.mk 6 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/unix/config.m4: -------------------------------------------------------------------------------- 1 | if test "$OS" = "unix" ; then 2 | APACHE_TYPE_RLIM_T 3 | 4 | AC_CHECK_HEADERS(sys/time.h sys/resource.h sys/sem.h sys/ipc.h) 5 | 6 | AC_CHECK_FUNCS(setsid killpg) 7 | fi 8 | -------------------------------------------------------------------------------- /apps/apache_benchmark/os/win32/Makefile.in: -------------------------------------------------------------------------------- 1 | 2 | LTLIBRARY_NAME = libos.la 3 | LTLIBRARY_SOURCES = util_win32.c ap_regkey.c modules.c 4 | 5 | include $(top_srcdir)/build/ltlib.mk 6 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/Makefile.in: -------------------------------------------------------------------------------- 1 | 2 | BUILD_SUBDIRS = $(AP_BUILD_SRCLIB_DIRS) 3 | CLEAN_SUBDIRS = $(AP_CLEAN_SRCLIB_DIRS) 4 | 5 | include $(top_builddir)/build/rules.mk 6 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/NOTICE: -------------------------------------------------------------------------------- 1 | Apache Portable Runtime Utility Library 2 | Copyright (c) 2011 The Apache Software Foundation. 3 | 4 | This product includes software developed by 5 | The Apache Software Foundation (http://www.apache.org/). 6 | 7 | Portions of this software were developed at the National Center 8 | for Supercomputing Applications (NCSA) at the University of 9 | Illinois at Urbana-Champaign. 10 | 11 | This software contains code derived from the RSA Data Security 12 | Inc. MD5 Message-Digest Algorithm, including various 13 | modifications by Spyglass Inc., Carnegie Mellon University, and 14 | Bell Communications Research, Inc (Bellcore). 15 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/apr-util.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | APRUTIL_MAJOR_VERSION=@APRUTIL_MAJOR_VERSION@ 5 | includedir=@includedir@ 6 | 7 | Name: APR Utils 8 | Description: Companion library for APR 9 | Version: @APRUTIL_DOTTED_VERSION@ 10 | # assume that apr-util requires libapr of same major version 11 | Requires: apr-@APRUTIL_MAJOR_VERSION@ 12 | Libs: -L${libdir} -l@APRUTIL_LIBNAME@ @LDADD_ldap@ @APRUTIL_EXPORT_LIBS@ 13 | Cflags: -I${includedir} 14 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/build/mkdir.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | ## 3 | ## mkdir.sh -- make directory hierarchy 4 | ## 5 | ## Based on `mkinstalldirs' from Noah Friedman 6 | ## as of 1994-03-25, which was placed in the Public Domain. 7 | ## Cleaned up for Apache's Autoconf-style Interface (APACI) 8 | ## by Ralf S. Engelschall 9 | ## 10 | # 11 | # This script falls under the Apache License. 12 | # See http://www.apache.org/docs/LICENSE 13 | 14 | 15 | umask 022 16 | errstatus=0 17 | for file in ${1+"$@"} ; do 18 | set fnord `echo ":$file" |\ 19 | sed -e 's/^:\//%/' -e 's/^://' -e 's/\// /g' -e 's/^%/\//'` 20 | shift 21 | pathcomp= 22 | for d in ${1+"$@"}; do 23 | pathcomp="$pathcomp$d" 24 | case "$pathcomp" in 25 | -* ) pathcomp=./$pathcomp ;; 26 | ?: ) pathcomp="$pathcomp/" 27 | continue ;; 28 | esac 29 | if test ! -d "$pathcomp"; then 30 | echo "mkdir $pathcomp" 1>&2 31 | mkdir "$pathcomp" || errstatus=$? 32 | fi 33 | pathcomp="$pathcomp/" 34 | done 35 | done 36 | exit $errstatus 37 | 38 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/build/nw_apu_export.inc: -------------------------------------------------------------------------------- 1 | 2 | /* Must include apu.h first so that we can undefine 3 | the standard prototypes macros after it messes with 4 | them. */ 5 | #include "apu.h" 6 | 7 | #undef APU_DECLARE 8 | #undef APU_DECLARE_NONSTD 9 | #undef APU_DECLARE_DATA 10 | 11 | /* Preprocess all of the standard APR headers. */ 12 | #include "apr_anylock.h" 13 | #include "apr_base64.h" 14 | #include "apr_buckets.h" 15 | #include "apr_crypto.h" 16 | #include "apr_date.h" 17 | #include "apr_dbd.h" 18 | #include "apr_dbm.h" 19 | #include "apr_dbm_private.h" 20 | #include "apr_hooks.h" 21 | #include "apr_ldap.h" 22 | #include "apr_ldap_init.h" 23 | #include "apr_ldap_option.h" 24 | #include "apr_ldap_rebind.h" 25 | #include "apr_ldap_url.h" 26 | #include "apr_md4.h" 27 | #include "apr_md5.h" 28 | #include "apr_memcache.h" 29 | #include "apr_optional.h" 30 | #include "apr_optional_hooks.h" 31 | #include "apr_queue.h" 32 | #include "apr_reslist.h" 33 | #include "apr_rmm.h" 34 | #include "apr_sdbm.h" 35 | #include "apr_sha1.h" 36 | #include "apr_strmatch.h" 37 | #include "apr_thread_pool.h" 38 | #include "apr_uri.h" 39 | #include "apr_uuid.h" 40 | #include "apr_xlate.h" 41 | #include "apr_xml.h" 42 | #include "apu_version.h" 43 | #include "apu_want.h" 44 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/build/pkg/README: -------------------------------------------------------------------------------- 1 | The script in this directory will attempt to build a Solaris package 2 | out of a source tree for APR-util. 3 | 4 | To build a package, make sure you are in the root of the source tree, 5 | and run: 6 | 7 | build/pkg/buildpkg.sh 8 | 9 | A Solaris package called apr-util---local.gz will be 10 | created in the root of the source tree. 11 | 12 | By default, if you attempt to build packages for apr-util, it will 13 | search for the sources for apr in: 14 | 15 | ../apr 16 | 17 | You may override the location of apr like so: 18 | 19 | build/pkg/buildpkg.sh --with-apr=some/other/path 20 | 21 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/build/pkg/pkginfo.in: -------------------------------------------------------------------------------- 1 | PKG="ASFapu-1" 2 | NAME="apr-util" 3 | ARCH="@target_cpu@" 4 | VERSION="@APRUTIL_DOTTED_VERSION@" 5 | CATEGORY="application" 6 | VENDOR="Apache Software Foundation" 7 | EMAIL="dev@apr.apache.org" 8 | PSTAMP="dev@apr.apache.org" 9 | BASEDIR="@prefix@" 10 | CLASSES="none" 11 | 12 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/docs/doxygen.conf: -------------------------------------------------------------------------------- 1 | PROJECT_NAME="Apache Portable Runtime Utility Library" 2 | 3 | INPUT=. 4 | QUIET=YES 5 | RECURSIVE=YES 6 | FILE_PATTERNS=*.h 7 | 8 | OUTPUT_DIRECTORY=docs/dox 9 | 10 | MACRO_EXPANSION=YES 11 | EXPAND_ONLY_PREDEF=YES 12 | #EXPAND_AS_DEFINED= 13 | # not sure why this doesn't work as EXPAND_AS_DEFINED, it should! 14 | PREDEFINED="APU_DECLARE(x)=x" \ 15 | "APU_DECLARE_NONSTD(x)=x" \ 16 | "APU_DECLARE_DATA" \ 17 | "APU_MODULE_DECLARE_DATA" \ 18 | "APU_DECLARE_LDAP(x)=x" \ 19 | "APR_HAS_MMAP" \ 20 | "APR_HAS_THREADS" \ 21 | "APR_HAS_XLATE" \ 22 | "__attribute__(x)=" \ 23 | DOXYGEN= 24 | 25 | OPTIMIZE_OUTPUT_FOR_C=YES 26 | 27 | FULL_PATH_NAMES=YES 28 | CASE_SENSE_NAMES=NO 29 | # some autoconf guru needs to make configure set this correctly... 30 | #STRIP_FROM_PATH=/root/apache/httpd-2.0-8/srclib/apr-util 31 | 32 | GENERATE_TAGFILE=docs/dox/apu.tag 33 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/export_vars.sh.in: -------------------------------------------------------------------------------- 1 | # 2 | # export_vars.sh 3 | # 4 | # This shell script is used to export vars to the application using the 5 | # APRUTIL library. This script should be "sourced" to ensure the variable 6 | # values are set within the calling script's context. For example: 7 | # 8 | # $ . path/to/apr-util/export_vars.sh 9 | # 10 | 11 | APRUTIL_EXPORT_INCLUDES="@APRUTIL_INCLUDES@" 12 | APRUTIL_EXPORT_LIBS="@APRUTIL_EXPORT_LIBS@" 13 | APRUTIL_LDFLAGS="@APRUTIL_LDFLAGS@" 14 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/include/private/apu_select_dbm.h.in: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef APU_SELECT_DBM_H 18 | #define APU_SELECT_DBM_H 19 | 20 | /* 21 | ** The following macros control what features APRUTIL will use 22 | */ 23 | #define APU_USE_SDBM @apu_use_sdbm@ 24 | #define APU_USE_NDBM @apu_use_ndbm@ 25 | #define APU_USE_GDBM @apu_use_gdbm@ 26 | #define APU_USE_DB @apu_use_db@ 27 | 28 | #endif /* !APU_SELECT_DBM_H */ 29 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/include/private/apu_select_dbm.hw: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef APU_SELECT_DBM_H 18 | #define APU_SELECT_DBM_H 19 | 20 | /* 21 | ** The following macros control what features APRUTIL will use 22 | */ 23 | #define APU_USE_SDBM 1 24 | #define APU_USE_GDBM 0 25 | #define APU_USE_NDBM 0 26 | #define APU_USE_DB 0 27 | 28 | #endif /* !APU_SELECT_DBM_H */ 29 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/renames_pending: -------------------------------------------------------------------------------- 1 | Symbol renames pending for apr-util (keep ordered and complete, please!) 2 | 3 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/test/nw_misc.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | /* 5 | #include "testutil.h" 6 | */ 7 | 8 | /* function to keep the screen open if not launched from bash */ 9 | void _NonAppStop( void ) 10 | { 11 | if (getenv("_IN_NETWARE_BASH_") == NULL) { 12 | printf("\r\n "); 13 | getcharacter(); 14 | } 15 | } 16 | 17 | /* 18 | static void test_not_impl(CuTest *tc) 19 | { 20 | CuNotImpl(tc, "Test not implemented on this platform yet"); 21 | } 22 | */ 23 | 24 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/xml/expat/COPYING: -------------------------------------------------------------------------------- 1 | Copyright (c) 1998, 1999, 2000 Thai Open Source Software Center Ltd 2 | and Clark Cooper 3 | Copyright (c) 2001, 2002 Expat maintainers. 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining 6 | a copy of this software and associated documentation files (the 7 | "Software"), to deal in the Software without restriction, including 8 | without limitation the rights to use, copy, modify, merge, publish, 9 | distribute, sublicense, and/or sell copies of the Software, and to 10 | permit persons to whom the Software is furnished to do so, subject to 11 | the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included 14 | in all copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 17 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 18 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 19 | IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 20 | CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, 21 | TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE 22 | SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/xml/expat/conftools/mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | # $Id: mkinstalldirs 106501 2004-11-24 23:41:24Z nd $ 8 | 9 | errstatus=0 10 | 11 | for file 12 | do 13 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 14 | shift 15 | 16 | pathcomp= 17 | for d 18 | do 19 | pathcomp="$pathcomp$d" 20 | case "$pathcomp" in 21 | -* ) pathcomp=./$pathcomp ;; 22 | esac 23 | 24 | if test ! -d "$pathcomp"; then 25 | echo "mkdir $pathcomp" 26 | 27 | mkdir "$pathcomp" || lasterr=$? 28 | 29 | if test ! -d "$pathcomp"; then 30 | errstatus=$lasterr 31 | fi 32 | fi 33 | 34 | pathcomp="$pathcomp/" 35 | done 36 | done 37 | 38 | exit $errstatus 39 | 40 | # mkinstalldirs ends here 41 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/xml/expat/lib/expat_config.hnw: -------------------------------------------------------------------------------- 1 | /*================================================================ 2 | ** Copyright 2000, Clark Cooper 3 | ** All rights reserved. 4 | ** 5 | ** This is free software. You are permitted to copy, distribute, or modify 6 | ** it under the terms of the MIT/X license (contained in the COPYING file 7 | ** with this distribution.) 8 | ** 9 | ** 10 | */ 11 | 12 | #ifndef EXPAT_CONFIG_HNW 13 | #define EXPAT_CONFIG_HNW 14 | 15 | #include 16 | 17 | #define HAVE_MEMMOVE 18 | 19 | #define XML_NS 1 20 | #define XML_DTD 1 21 | #define XML_BYTE_ORDER 12 22 | #define XML_CONTEXT_BYTES 1024 23 | 24 | #endif /* ndef EXPAT_CONFIG_HNW */ 25 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/xml/expat/lib/winconfig.h: -------------------------------------------------------------------------------- 1 | /*================================================================ 2 | ** Copyright 2000, Clark Cooper 3 | ** All rights reserved. 4 | ** 5 | ** This is free software. You are permitted to copy, distribute, or modify 6 | ** it under the terms of the MIT/X license (contained in the COPYING file 7 | ** with this distribution.) 8 | */ 9 | 10 | #ifndef WINCONFIG_H 11 | #define WINCONFIG_H 12 | 13 | #define WIN32_LEAN_AND_MEAN 14 | #include 15 | #undef WIN32_LEAN_AND_MEAN 16 | 17 | #include 18 | #include 19 | 20 | #define XML_NS 1 21 | #define XML_DTD 1 22 | #define XML_CONTEXT_BYTES 1024 23 | 24 | /* we will assume all Windows platforms are little endian */ 25 | #define BYTEORDER 1234 26 | 27 | /* Windows has memmove() available. */ 28 | #define HAVE_MEMMOVE 29 | 30 | #endif /* ndef WINCONFIG_H */ 31 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/xml/expat/lib/xmltok_impl.h: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 1998, 1999 Thai Open Source Software Center Ltd 3 | See the file COPYING for copying permission. 4 | */ 5 | 6 | enum { 7 | BT_NONXML, 8 | BT_MALFORM, 9 | BT_LT, 10 | BT_AMP, 11 | BT_RSQB, 12 | BT_LEAD2, 13 | BT_LEAD3, 14 | BT_LEAD4, 15 | BT_TRAIL, 16 | BT_CR, 17 | BT_LF, 18 | BT_GT, 19 | BT_QUOT, 20 | BT_APOS, 21 | BT_EQUALS, 22 | BT_QUEST, 23 | BT_EXCL, 24 | BT_SOL, 25 | BT_SEMI, 26 | BT_NUM, 27 | BT_LSQB, 28 | BT_S, 29 | BT_NMSTRT, 30 | BT_COLON, 31 | BT_HEX, 32 | BT_DIGIT, 33 | BT_NAME, 34 | BT_MINUS, 35 | BT_OTHER, /* known not to be a name or name start character */ 36 | BT_NONASCII, /* might be a name or name start character */ 37 | BT_PERCNT, 38 | BT_LPAR, 39 | BT_RPAR, 40 | BT_AST, 41 | BT_PLUS, 42 | BT_COMMA, 43 | BT_VERBAR 44 | }; 45 | 46 | #include 47 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr-util/xml/expat/win32/expat.iss: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/srclib/apr-util/xml/expat/win32/expat.iss -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/NOTICE: -------------------------------------------------------------------------------- 1 | Apache Portable Runtime 2 | Copyright (c) 2011 The Apache Software Foundation. 3 | 4 | This product includes software developed by 5 | The Apache Software Foundation (http://www.apache.org/). 6 | 7 | Portions of this software were developed at the National Center 8 | for Supercomputing Applications (NCSA) at the University of 9 | Illinois at Urbana-Champaign. 10 | 11 | This software contains code derived from the RSA Data Security 12 | Inc. MD5 Message-Digest Algorithm. 13 | 14 | This software contains code derived from UNIX V7, Copyright(C) 15 | Caldera International Inc. 16 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/apr.pc.in: -------------------------------------------------------------------------------- 1 | prefix=@prefix@ 2 | exec_prefix=@exec_prefix@ 3 | libdir=@libdir@ 4 | APR_MAJOR_VERSION=@APR_MAJOR_VERSION@ 5 | includedir=@includedir@ 6 | 7 | Name: APR 8 | Description: The Apache Portable Runtime library 9 | Version: @APR_DOTTED_VERSION@ 10 | Libs: -L${libdir} -l@APR_LIBNAME@ @EXTRA_LIBS@ 11 | Cflags: @EXTRA_CPPFLAGS@ @EXTRA_CFLAGS@ -I${includedir} 12 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/build.conf: -------------------------------------------------------------------------------- 1 | # 2 | # Configuration file for APR. Used by APR/build/gen-build.py 3 | # 4 | 5 | [options] 6 | 7 | # paths to platform-independent .c files to build 8 | paths = 9 | passwd/*.c 10 | strings/*.c 11 | tables/*.c 12 | 13 | # directories that have platform-specific code in them. the resulting 14 | # pattern will be: SUBDIR/PLATFORM/*.c 15 | platform_dirs = 16 | dso file_io locks memory misc mmap network_io poll random 17 | shmem support threadproc time user atomic 18 | 19 | # all the public headers 20 | headers = include/*.h 21 | 22 | # aplibtool is manually built by the configure process 23 | # build/aplibtool.c 24 | 25 | # we have a recursive makefile for the test files (for now) 26 | # test/*.c 27 | 28 | dsp = libapr.dsp 29 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/build/apr_win32.m4: -------------------------------------------------------------------------------- 1 | 2 | dnl if $2 contains '@dd', links against mingw symbols 3 | dnl otherwise calls AC_CHECK_LIB 4 | AC_DEFUN([APR_CHECK_DLL_FUNC],[ 5 | m4_define($1_function_name,m4_substr($2,0,m4_index($2,[@]))) 6 | m4_define($1_function_arglength,m4_substr($2,m4_incr(m4_index($2,[@])))) 7 | m4_define($1_[function_name]_arglength,m4_substr($2,m4_incr(m4_index($2,[@])))) 8 | dnl m4_define(apr_check_dll_id,$1_m4_defn($1_function_name)) 9 | 10 | AC_CACHE_CHECK([for $2 in $1],[ac_cv_lib_$1_]$1_function_name,[ 11 | 12 | ac_func_search_save_LIBS=$LIBS 13 | LIBS="$LIBS -l$1" 14 | 15 | AC_TRY_LINK([ 16 | #pragma pack(1) 17 | struct x { 18 | ]m4_for([byte_id], 1, m4_defn([$1_function_name_arglength]), 1,[[ char c]]byte_id; 19 | )[}; 20 | __stdcall ]$1_function_name[(]struct x[);],[ 21 | struct x s = {0}; 22 | ]$1_function_name[(s)], 23 | [ac_cv_lib_$1_]$1_function_name[=yes],[ac_cv_lib_$1_]$1_function_name[=no]) 24 | LIBS=$ac_func_search_save_LIBS 25 | ])dnl AC_CACHE_CHECK 26 | 27 | AS_IF([test $ac_cv_lib_$1_]$1_function_name[ = yes], 28 | [m4_default([$3], [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$1),,Enable if this library is available) 29 | LIBS="-l$1 $LIBS" 30 | ])], 31 | [$4])dnl 32 | ]) 33 | 34 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/build/aprapp.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by aprapp.mak 2 | 3 | ..\misc\win32\apr_app.c : \ 4 | "..\include\apr_getopt.h"\ 5 | "..\include\apr_lib.h"\ 6 | "..\include\apr_poll.h"\ 7 | "..\include\apr_portable.h"\ 8 | "..\include\arch\win32\apr_arch_file_io.h"\ 9 | "..\include\arch\win32\apr_arch_utf8.h"\ 10 | 11 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/build/libaprapp.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by libaprapp.mak 2 | 3 | ..\misc\win32\apr_app.c : \ 4 | "..\include\apr_getopt.h"\ 5 | "..\include\apr_lib.h"\ 6 | "..\include\apr_poll.h"\ 7 | "..\include\apr_portable.h"\ 8 | "..\include\arch\win32\apr_arch_file_io.h"\ 9 | "..\include\arch\win32\apr_arch_utf8.h"\ 10 | 11 | 12 | ..\misc\win32\internal.c : \ 13 | "..\include\apr_getopt.h"\ 14 | "..\include\apr_lib.h"\ 15 | "..\include\apr_poll.h"\ 16 | "..\include\apr_portable.h"\ 17 | "..\include\arch\win32\apr_arch_file_io.h"\ 18 | "..\include\arch\win32\apr_arch_utf8.h"\ 19 | 20 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/build/pkg/README: -------------------------------------------------------------------------------- 1 | The script in this directory will attempt to build a Solaris package 2 | out of a source tree for APR. 3 | 4 | To build a package, make sure you are in the root of the source tree, 5 | and run: 6 | 7 | build/pkg/buildpkg.sh 8 | 9 | A Solaris package called apr---local.gz will be 10 | created in the root of the source tree. 11 | 12 | By default, if you attempt to build packages for apr-util, it will 13 | search for the sources for apr in: 14 | 15 | ../apr 16 | 17 | You may override the location of apr like so: 18 | 19 | build/pkg/buildpkg.sh --with-apr=some/other/path 20 | 21 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/build/pkg/pkginfo.in: -------------------------------------------------------------------------------- 1 | PKG="ASFapr-1" 2 | NAME="apr" 3 | ARCH="@target_cpu@" 4 | VERSION="@APR_DOTTED_VERSION@" 5 | CATEGORY="application" 6 | VENDOR="Apache Software Foundation" 7 | EMAIL="dev@apr.apache.org" 8 | PSTAMP="dev@apr.apache.org" 9 | BASEDIR="@prefix@" 10 | CLASSES="none" 11 | 12 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/docs/doxygen.conf: -------------------------------------------------------------------------------- 1 | PROJECT_NAME="Apache Portable Runtime" 2 | 3 | INPUT=. 4 | QUIET=YES 5 | RECURSIVE=YES 6 | FILE_PATTERNS=*.h 7 | 8 | OUTPUT_DIRECTORY=docs/dox 9 | 10 | MACRO_EXPANSION=YES 11 | EXPAND_ONLY_PREDEF=YES 12 | #EXPAND_AS_DEFINED= 13 | # not sure why this doesn't work as EXPAND_AS_DEFINED, it should! 14 | PREDEFINED="APR_DECLARE(x)=x" \ 15 | "APR_DECLARE_NONSTD(x)=x" \ 16 | "APR_DECLARE_DATA" \ 17 | "APR_POOL_DECLARE_ACCESSOR(x)=apr_pool_t* apr_##x##_pool_get (const apr_##x##_t *the##x)" \ 18 | "APR_DECLARE_INHERIT_SET(x)=apr_status_t apr_##x##_inherit_set(apr_##x##_t *the##x)" \ 19 | "APR_DECLARE_INHERIT_UNSET(x)=apr_status_t apr_##x##_inherit_unset(apr_##x##_t *the##x)" \ 20 | "APR_HAS_THREADS" \ 21 | "__attribute__(x)=" \ 22 | DOXYGEN= 23 | 24 | OPTIMIZE_OUTPUT_FOR_C=YES 25 | STRIP_CODE_COMMENTS=NO 26 | 27 | FULL_PATH_NAMES=NO 28 | CASE_SENSE_NAMES=NO 29 | # some autoconf guru needs to make configure set this correctly... 30 | # in the meantime, simply listing the headers should be alright 31 | #STRIP_FROM_PATH=/buildpath/apr 32 | 33 | EXCLUDE_PATTERNS="*/acconfig.h" \ 34 | "*/test/*" \ 35 | "*/arch/*" 36 | 37 | GENERATE_TAGFILE=docs/dox/apr.tag 38 | 39 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/emacs-mode: -------------------------------------------------------------------------------- 1 | ;; M-x load-file 2 | ;; or emacs -l 3 | ;; to use this style: C-c . apache 4 | (c-add-style "apache" 5 | '((inclass . ++) 6 | (defun-block-intro . ++) 7 | (statement-block-intro . ++) 8 | (substatement . ++) 9 | (brace-list-intro . ++) 10 | (statement-case-intro . ++) 11 | (inextern-lang . 0) 12 | )) 13 | (setq-default indent-tabs-mode nil) 14 | ;; if you forgot to do this at startup, then M-x eval-expression 15 | ;; (setq indent-tabs-mode nil) on each buffer 16 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/file_io/netware/filepath.c: -------------------------------------------------------------------------------- 1 | /* NetWare & Win32 have much in common with regards to file names (both are 2 | * DOSish) so it makes sense to share some code 3 | */ 4 | #include "../win32/filepath.c" 5 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/file_io/os2/copy.c: -------------------------------------------------------------------------------- 1 | #include "../unix/copy.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/file_io/os2/fileacc.c: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include "../unix/fileacc.c" 18 | 19 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/file_io/os2/filepath.c: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | #include "../win32/filepath.c" 17 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/file_io/os2/filepath_util.c: -------------------------------------------------------------------------------- 1 | #include "../unix/filepath_util.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/file_io/os2/fullrw.c: -------------------------------------------------------------------------------- 1 | #include "../unix/fullrw.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/file_io/os2/mktemp.c: -------------------------------------------------------------------------------- 1 | #include "../unix/mktemp.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/file_io/os2/tempdir.c: -------------------------------------------------------------------------------- 1 | #include "../unix/tempdir.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/apr_mtcp.h: -------------------------------------------------------------------------------- 1 | #include 2 | #define MAX_CPUS 16 3 | 4 | mctx_t g_mctx[MAX_CPUS]; 5 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/netware/apr_arch_global_mutex.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef GLOBAL_MUTEX_H 18 | #define GLOBAL_MUTEX_H 19 | 20 | #include "apr_global_mutex.h" 21 | #include "apr_thread_mutex.h" 22 | 23 | struct apr_global_mutex_t { 24 | apr_pool_t *pool; 25 | apr_thread_mutex_t *mutex; 26 | }; 27 | 28 | #endif /* GLOBAL_MUTEX_H */ 29 | 30 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/netware/apr_arch_internal_time.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef TIME_INTERNAL_H 18 | #define TIME_INTERNAL_H 19 | 20 | #include "apr.h" 21 | 22 | #define TZONE (*___timezone()) 23 | 24 | void apr_netware_setup_time(void); 25 | 26 | #endif /* TIME_INTERNAL_H */ 27 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/netware/apr_arch_proc_mutex.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef PROC_MUTEX_H 18 | #define PROC_MUTEX_H 19 | 20 | #include "apr_proc_mutex.h" 21 | #include "apr_thread_mutex.h" 22 | 23 | struct apr_proc_mutex_t { 24 | apr_pool_t *pool; 25 | apr_thread_mutex_t *mutex; 26 | }; 27 | 28 | #endif /* PROC_MUTEX_H */ 29 | 30 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/netware/apr_arch_thread_cond.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THREAD_COND_H 18 | #define THREAD_COND_H 19 | 20 | #include "apr_thread_cond.h" 21 | #include 22 | 23 | struct apr_thread_cond_t { 24 | apr_pool_t *pool; 25 | NXCond_t *cond; 26 | }; 27 | 28 | #endif /* THREAD_COND_H */ 29 | 30 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/netware/apr_arch_thread_mutex.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THREAD_MUTEX_H 18 | #define THREAD_MUTEX_H 19 | 20 | #include "apr_thread_mutex.h" 21 | #include 22 | 23 | struct apr_thread_mutex_t { 24 | apr_pool_t *pool; 25 | NXMutex_t *mutex; 26 | }; 27 | 28 | #endif /* THREAD_MUTEX_H */ 29 | 30 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/netware/apr_arch_thread_rwlock.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THREAD_RWLOCK_H 18 | #define THREAD_RWLOCK_H 19 | 20 | #include "apr_thread_rwlock.h" 21 | #include 22 | 23 | struct apr_thread_rwlock_t { 24 | apr_pool_t *pool; 25 | NXRwLock_t *rwlock; 26 | }; 27 | 28 | #endif /* THREAD_RWLOCK_H */ 29 | 30 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/os2/apr_arch_proc_mutex.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef PROC_MUTEX_H 18 | #define PROC_MUTEX_H 19 | 20 | #include "apr_proc_mutex.h" 21 | #include "apr_file_io.h" 22 | 23 | struct apr_proc_mutex_t { 24 | apr_pool_t *pool; 25 | HMTX hMutex; 26 | TID owner; 27 | int lock_count; 28 | }; 29 | 30 | #endif /* PROC_MUTEX_H */ 31 | 32 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/os2/apr_arch_thread_cond.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THREAD_COND_H 18 | #define THREAD_COND_H 19 | 20 | #include "apr_thread_cond.h" 21 | #include "apr_file_io.h" 22 | 23 | struct apr_thread_cond_t { 24 | apr_pool_t *pool; 25 | }; 26 | 27 | #endif /* THREAD_COND_H */ 28 | 29 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/os2/apr_arch_thread_mutex.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THREAD_MUTEX_H 18 | #define THREAD_MUTEX_H 19 | 20 | #include "apr_thread_mutex.h" 21 | #include "apr_file_io.h" 22 | 23 | struct apr_thread_mutex_t { 24 | apr_pool_t *pool; 25 | HMTX hMutex; 26 | }; 27 | 28 | #endif /* THREAD_MUTEX_H */ 29 | 30 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/os2/apr_arch_thread_rwlock.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THREAD_RWLOCK_H 18 | #define THREAD_RWLOCK_H 19 | 20 | #include "apr_thread_rwlock.h" 21 | #include "apr_file_io.h" 22 | 23 | struct apr_thread_rwlock_t { 24 | apr_pool_t *pool; 25 | int readers; 26 | HMTX write_lock; 27 | HEV read_done; 28 | }; 29 | 30 | #endif /* THREAD_RWLOCK_H */ 31 | 32 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/unix/apr_arch_internal_time.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef TIME_INTERNAL_H 18 | #define TIME_INTERNAL_H 19 | 20 | #include "apr.h" 21 | 22 | void apr_unix_setup_time(void); 23 | 24 | #endif /* TIME_INTERNAL_H */ 25 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/win32/apr_arch_dso.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef DSO_H 18 | #define DSO_H 19 | 20 | #include "apr_private.h" 21 | #include "apr_general.h" 22 | #include "apr_pools.h" 23 | #include "apr_dso.h" 24 | #include "apr.h" 25 | 26 | #if APR_HAS_DSO 27 | 28 | struct apr_dso_handle_t { 29 | apr_pool_t *cont; 30 | void *handle; 31 | apr_status_t load_error; 32 | }; 33 | 34 | #endif 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/win32/apr_arch_proc_mutex.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef PROC_MUTEX_H 18 | #define PROC_MUTEX_H 19 | 20 | #include "apr_proc_mutex.h" 21 | 22 | struct apr_proc_mutex_t { 23 | apr_pool_t *pool; 24 | HANDLE handle; 25 | const char *fname; 26 | }; 27 | 28 | #endif /* PROC_MUTEX_H */ 29 | 30 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/win32/apr_arch_thread_cond.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THREAD_COND_H 18 | #define THREAD_COND_H 19 | 20 | #include "apr_thread_cond.h" 21 | 22 | struct apr_thread_cond_t { 23 | apr_pool_t *pool; 24 | HANDLE semaphore; 25 | CRITICAL_SECTION csection; 26 | unsigned long num_waiting; 27 | unsigned long num_wake; 28 | unsigned long generation; 29 | }; 30 | 31 | #endif /* THREAD_COND_H */ 32 | 33 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/include/arch/win32/apr_arch_thread_rwlock.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef THREAD_RWLOCK_H 18 | #define THREAD_RWLOCK_H 19 | 20 | #include "apr_thread_rwlock.h" 21 | 22 | struct apr_thread_rwlock_t { 23 | apr_pool_t *pool; 24 | HANDLE write_mutex; 25 | HANDLE read_event; 26 | LONG readers; 27 | }; 28 | 29 | #endif /* THREAD_RWLOCK_H */ 30 | 31 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/misc/netware/apr.xdc: -------------------------------------------------------------------------------- 1 | BAGFMPK_Bag MT Safe NLM -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/misc/netware/aprlib.def: -------------------------------------------------------------------------------- 1 | MODULE LIBC.NLM 2 | MODULE WS2_32.NLM 3 | EXPORT @aprlib.imp 4 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/network_io/beos/socketcommon.c: -------------------------------------------------------------------------------- 1 | #include "../unix/inet_ntop.c" 2 | #include "../unix/inet_pton.c" 3 | #include "../unix/sockets.c" 4 | #include "../unix/sockaddr.c" 5 | #include "../unix/sockopt.c" 6 | #include "../unix/socket_util.c" 7 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/network_io/os2/inet_ntop.c: -------------------------------------------------------------------------------- 1 | #include "../unix/inet_ntop.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/network_io/os2/inet_pton.c: -------------------------------------------------------------------------------- 1 | #include "../unix/inet_pton.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/network_io/os2/sockaddr.c: -------------------------------------------------------------------------------- 1 | #include "../unix/sockaddr.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/network_io/os2/socket_util.c: -------------------------------------------------------------------------------- 1 | #include "../unix/socket_util.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/data/file_datafile.txt: -------------------------------------------------------------------------------- 1 | This is the file data file. -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/data/mmap_datafile.txt: -------------------------------------------------------------------------------- 1 | This is the MMAP data file. 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/internal/Makefile.in: -------------------------------------------------------------------------------- 1 | srcdir = @srcdir@ 2 | VPATH = @srcdir@ 3 | 4 | NONPORTABLE = \ 5 | testregex@EXEEXT@ 6 | 7 | PROGRAMS = \ 8 | 9 | TARGETS = $(PROGRAMS) $(NONPORTABLE) 10 | 11 | # bring in rules.mk for standard functionality 12 | @INCLUDE_RULES@ 13 | 14 | LOCAL_LIBS=../../lib@APR_LIBNAME@.la 15 | 16 | CLEAN_TARGETS = testregex@EXEEXT@ 17 | 18 | INCDIR=../../include 19 | INCLUDES=-I$(INCDIR) 20 | 21 | CFLAGS=$(MY_CFLAGS) 22 | 23 | all: $(PROGRAMS) $(NONPORTABLE) 24 | 25 | check: $(PROGRAMS) $(NONPORTABLE) 26 | for prog in $(PROGRAMS) $(NONPORTABLE); do \ 27 | ./$$prog; \ 28 | if test $$i = 255; then \ 29 | echo "$$prog failed"; \ 30 | break; \ 31 | fi \ 32 | done 33 | 34 | testregex@EXEEXT@: testregex.lo $(LOCAL_LIBS) 35 | $(LINK) testregex.lo $(LOCAL_LIBS) $(ALL_LIBS) 36 | 37 | # DO NOT REMOVE 38 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/mod_test.c: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #include "apr_strings.h" 18 | 19 | void print_hello(char str[256]); 20 | int count_reps(int reps); 21 | 22 | void print_hello(char str[256]) 23 | { 24 | apr_cpystrn(str, "Hello - I'm a DSO!\n", strlen("Hello - I'm a DSO!\n") + 1); 25 | } 26 | 27 | int count_reps(int reps) 28 | { 29 | int i = 0; 30 | for (i = 0;i < reps; i++); 31 | return i; 32 | } 33 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/nw_misc.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | /* 5 | #include "testutil.h" 6 | */ 7 | 8 | /* function to keep the screen open if not launched from bash */ 9 | void _NonAppStop( void ) 10 | { 11 | if (getenv("_IN_NETWARE_BASH_") == NULL) { 12 | printf("\r\n "); 13 | getcharacter(); 14 | } 15 | } 16 | 17 | /* 18 | static void test_not_impl(CuTest *tc) 19 | { 20 | CuNotImpl(tc, "Test not implemented on this platform yet"); 21 | } 22 | */ 23 | 24 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/occhild.c: -------------------------------------------------------------------------------- 1 | #include "apr.h" 2 | #include "apr_file_io.h" 3 | #include "apr.h" 4 | 5 | #if APR_HAVE_STDLIB_H 6 | #include 7 | #endif 8 | 9 | int main(void) 10 | { 11 | char buf[256]; 12 | apr_file_t *err; 13 | apr_pool_t *p; 14 | 15 | apr_initialize(); 16 | atexit(apr_terminate); 17 | 18 | apr_pool_create(&p, NULL); 19 | apr_file_open_stdin(&err, p); 20 | 21 | while (1) { 22 | apr_size_t length = 256; 23 | apr_file_read(err, buf, &length); 24 | } 25 | exit(0); /* just to keep the compiler happy */ 26 | } 27 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/proc_child.c: -------------------------------------------------------------------------------- 1 | #include "apr.h" 2 | #include 3 | #if APR_HAVE_UNISTD_H 4 | #include 5 | #endif 6 | #if APR_HAVE_IO_H 7 | #include 8 | #endif 9 | #include 10 | 11 | int main(void) 12 | { 13 | char buf[256]; 14 | int bytes; 15 | 16 | bytes = (int)read(STDIN_FILENO, buf, 256); 17 | if (bytes > 0) 18 | write(STDOUT_FILENO, buf, (unsigned int)bytes); 19 | 20 | return 0; /* just to keep the compiler happy */ 21 | } 22 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/testapp.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | 4 | int main(int argc, const char * const * argv, const char * const *env) 5 | { 6 | apr_app_initialize(&argc, &argv, &env); 7 | 8 | 9 | apr_terminate(); 10 | } 11 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/testflock.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef TESTFLOCK 18 | #define TESTFLOCK 19 | 20 | #define TESTFILE "data/testfile.lock" 21 | 22 | #define FAILED_READ 0 23 | #define SUCCESSFUL_READ 1 24 | #define UNEXPECTED_ERROR 2 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/testglobalmutex.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef TESTGLOBALMUTEX_H 18 | #define TESTGLOBALMUTEX_H 19 | 20 | /* set this to 255 so that the child processes can return it successfully. */ 21 | #define MAX_ITER 255 22 | #define MAX_COUNTER (MAX_ITER * 4) 23 | 24 | #define LOCKNAME "data/apr_globalmutex.lock" 25 | 26 | #endif 27 | 28 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/test/testshm.h: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | #ifndef TESTSHM_H 18 | #define TESTSHM_H 19 | 20 | typedef struct mbox { 21 | char msg[1024]; 22 | int msgavail; 23 | } mbox; 24 | mbox *boxes; 25 | 26 | #define N_BOXES 10 27 | #define SHARED_SIZE (apr_size_t)(N_BOXES * sizeof(mbox)) 28 | #define SHARED_FILENAME "data/apr.testshm.shm" 29 | #define N_MESSAGES 100 30 | #define MSG "Sending a message" 31 | 32 | #endif 33 | 34 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/threadproc/beos/threadproc_common.c: -------------------------------------------------------------------------------- 1 | /* Licensed to the Apache Software Foundation (ASF) under one or more 2 | * contributor license agreements. See the NOTICE file distributed with 3 | * this work for additional information regarding copyright ownership. 4 | * The ASF licenses this file to You under the Apache License, Version 2.0 5 | * (the "License"); you may not use this file except in compliance with 6 | * the License. You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | 17 | /* As the signal code is identical, use the unix version to reduce 18 | code duplication */ 19 | #include "../unix/signals.c" 20 | #include "../unix/procsup.c" 21 | 22 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/apr/threadproc/os2/signals.c: -------------------------------------------------------------------------------- 1 | #include "../unix/signals.c" 2 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/AUTHORS: -------------------------------------------------------------------------------- 1 | Written by: Philip Hazel 2 | 3 | University of Cambridge Computing Service, 4 | Cambridge, England. Phone: +44 1223 334714. 5 | 6 | Copyright (c) 1997-2004 University of Cambridge 7 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/Makefile.in: -------------------------------------------------------------------------------- 1 | LTLIBRARY_NAME = libpcre.la 2 | LTLIBRARY_SOURCES = maketables.c get.c study.c pcre.c 3 | 4 | CLEAN_TARGETS = dftables chartables.c 5 | DISTCLEAN_TARGETS = pcre.h pcre-config config.h config.log config.status $(CLEAN_TARGETS) 6 | 7 | include $(top_srcdir)/build/ltlib.mk 8 | 9 | config.h: 10 | touch $@ 11 | 12 | $(LTLIBRARY_OBJECTS) dftables.lo: config.h 13 | 14 | dftables: dftables.lo 15 | $(LINK) $(EXTRA_LDFLAGS) dftables.lo $(EXTRA_LIBS) 16 | 17 | $(srcdir)/chartables.c: dftables 18 | ./dftables $@ 19 | 20 | pcre.lo: $(srcdir)/chartables.c 21 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/dftables.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by dftables.mak 2 | 3 | .\dftables.c : \ 4 | ".\config.h"\ 5 | ".\internal.h"\ 6 | ".\maketables.c"\ 7 | ".\pcre.h"\ 8 | 9 | 10 | !IF "$(CFG)" == "dftables - Win32 Release" 11 | 12 | !ELSEIF "$(CFG)" == "dftables - Win32 Debug" 13 | 14 | !ENDIF 15 | 16 | !IF "$(CFG)" == "dftables - Win32 Release" 17 | 18 | !ELSEIF "$(CFG)" == "dftables - Win32 Debug" 19 | 20 | !ENDIF 21 | 22 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/doc/README_httpd: -------------------------------------------------------------------------------- 1 | The documentation directory has been omitted from this copy of PCRE 2 | inside the httpd codebase because it's huge--over a megabyte of PCRE docs. 3 | 4 | The PCRE documentation directory is available in unmodified form in the 5 | vendor branch. You can access it via web browser or Subversion checkout at 6 | http://svn.apache.org/repos/asf/httpd/httpd/vendor/pcre/current/doc/ 7 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/libpcre.def: -------------------------------------------------------------------------------- 1 | LIBRARY libpcre 2 | EXPORTS 3 | pcre_malloc 4 | pcre_free 5 | pcre_config 6 | pcre_callout 7 | pcre_compile 8 | pcre_copy_substring 9 | pcre_exec 10 | pcre_get_substring 11 | pcre_get_stringnumber 12 | pcre_get_substring_list 13 | pcre_free_substring 14 | pcre_free_substring_list 15 | pcre_info 16 | pcre_fullinfo 17 | pcre_maketables 18 | pcre_study 19 | pcre_version 20 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/libpcre.pc.in: -------------------------------------------------------------------------------- 1 | # Package Information for pkg-config 2 | 3 | prefix=@prefix@ 4 | exec_prefix=@exec_prefix@ 5 | libdir=@libdir@ 6 | includedir=@includedir@ 7 | 8 | Name: libpcre 9 | Description: PCRE - Perl compatible regular expressions C library 10 | Version: @PCRE_VERSION@ 11 | Libs: -L${libdir} -lpcre 12 | Cflags: -I${includedir} 13 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/libpcreposix.def: -------------------------------------------------------------------------------- 1 | LIBRARY libpcreposix 2 | EXPORTS 3 | pcre_malloc 4 | pcre_free 5 | pcre_config 6 | pcre_callout 7 | pcre_compile 8 | pcre_copy_substring 9 | pcre_exec 10 | pcre_get_substring 11 | pcre_get_stringnumber 12 | pcre_get_substring_list 13 | pcre_free_substring 14 | pcre_free_substring_list 15 | pcre_info 16 | pcre_fullinfo 17 | pcre_maketables 18 | pcre_study 19 | pcre_version 20 | 21 | regcomp 22 | regexec 23 | regerror 24 | regfree 25 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/makevp.bat: -------------------------------------------------------------------------------- 1 | @echo off 2 | 3 | REM This file was contributed by Alexander Tokarev for building PCRE for use 4 | REM with Virtual Pascal. It has not been tested with the latest PCRE release. 5 | 6 | REM CHANGE THIS FOR YOUR BORLAND C++ COMPILER PATH 7 | 8 | SET BORLAND=c:\usr\apps\bcc55 9 | 10 | sh configure 11 | 12 | bcc32 -DDFTABLES -DSTATIC -DVPCOMPAT -I%BORLAND%\include -L%BORLAND%\lib dftables.c 13 | 14 | dftables > chartables.c 15 | 16 | bcc32 -c -RT- -y- -v- -u- -P- -O2 -5 -DSTATIC -DVPCOMPAT -UDFTABLES -I%BORLAND%\include get.c maketables.c pcre.c study.c 17 | 18 | tlib %BORLAND%\lib\cw32.lib *calloc *del *strncmp *memcpy *memmove *memset 19 | tlib pcre.lib +get.obj +maketables.obj +pcre.obj +study.obj +calloc.obj +del.obj +strncmp.obj +memcpy.obj +memmove.obj +memset.obj 20 | 21 | del *.obj *.exe *.tds *.bak >nul 2>nul 22 | 23 | echo --- 24 | echo Now the library should be complete. Please check all messages above. 25 | echo Don't care for warnings, it's OK. 26 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | # $Id: mkinstalldirs 106103 2004-11-21 18:50:36Z nd $ 8 | 9 | errstatus=0 10 | 11 | for file 12 | do 13 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 14 | shift 15 | 16 | pathcomp= 17 | for d 18 | do 19 | pathcomp="$pathcomp$d" 20 | case "$pathcomp" in 21 | -* ) pathcomp=./$pathcomp ;; 22 | esac 23 | 24 | if test ! -d "$pathcomp"; then 25 | echo "mkdir $pathcomp" 26 | 27 | mkdir "$pathcomp" || lasterr=$? 28 | 29 | if test ! -d "$pathcomp"; then 30 | errstatus=$lasterr 31 | fi 32 | fi 33 | 34 | pathcomp="$pathcomp/" 35 | done 36 | done 37 | 38 | exit $errstatus 39 | 40 | # mkinstalldirs ends here 41 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/pcre.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/srclib/pcre/pcre.c -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/pcre.def: -------------------------------------------------------------------------------- 1 | EXPORTS 2 | 3 | pcre_malloc DATA 4 | pcre_free DATA 5 | 6 | pcre_compile 7 | pcre_copy_substring 8 | pcre_exec 9 | pcre_get_substring 10 | pcre_get_substring_list 11 | pcre_free_substring 12 | pcre_free_substring_list 13 | pcre_info 14 | pcre_fullinfo 15 | pcre_maketables 16 | pcre_study 17 | pcre_version 18 | 19 | regcomp 20 | regexec 21 | regerror 22 | regfree 23 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/pcre.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by pcre.mak 2 | 3 | !IF "$(CFG)" == "pcre - Win32 Release" 4 | 5 | !ELSEIF "$(CFG)" == "pcre - Win32 Debug" 6 | 7 | !ENDIF 8 | 9 | .\get.c : \ 10 | ".\config.h"\ 11 | ".\internal.h"\ 12 | ".\pcre.h"\ 13 | 14 | 15 | .\maketables.c : \ 16 | ".\config.h"\ 17 | ".\internal.h"\ 18 | ".\pcre.h"\ 19 | 20 | 21 | .\pcre.c : \ 22 | ".\chartables.c"\ 23 | ".\config.h"\ 24 | ".\internal.h"\ 25 | ".\pcre.h"\ 26 | ".\printint.c"\ 27 | ".\ucp.c"\ 28 | ".\ucp.h"\ 29 | ".\ucpinternal.h"\ 30 | ".\ucptable.c"\ 31 | ".\ucptypetable.c"\ 32 | 33 | 34 | .\study.c : \ 35 | ".\config.h"\ 36 | ".\internal.h"\ 37 | ".\pcre.h"\ 38 | 39 | 40 | !IF "$(CFG)" == "pcre - Win32 Release" 41 | 42 | !ELSEIF "$(CFG)" == "pcre - Win32 Debug" 43 | 44 | !ENDIF 45 | 46 | !IF "$(CFG)" == "pcre - Win32 Release" 47 | 48 | !ELSEIF "$(CFG)" == "pcre - Win32 Debug" 49 | 50 | !ENDIF 51 | 52 | -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/testdata/testinput1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/srclib/pcre/testdata/testinput1 -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/testdata/testinput3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/srclib/pcre/testdata/testinput3 -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/testdata/testinput5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/srclib/pcre/testdata/testinput5 -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/testdata/testoutput1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/srclib/pcre/testdata/testoutput1 -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/testdata/testoutput3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/srclib/pcre/testdata/testoutput3 -------------------------------------------------------------------------------- /apps/apache_benchmark/srclib/pcre/testdata/testoutput5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/srclib/pcre/testdata/testoutput5 -------------------------------------------------------------------------------- /apps/apache_benchmark/support/.indent.pro: -------------------------------------------------------------------------------- 1 | -i4 -npsl -di0 -br -nce -d0 -cli0 -npcs -nfc1 2 | -TBUFF 3 | -TFILE 4 | -TTRANS 5 | -TUINT4 6 | -T_trans 7 | -Tallow_options_t 8 | -Tapache_sfio 9 | -Tarray_header 10 | -Tbool_int 11 | -Tbuf_area 12 | -Tbuff_struct 13 | -Tbuffy 14 | -Tcmd_how 15 | -Tcmd_parms 16 | -Tcommand_rec 17 | -Tcommand_struct 18 | -Tconn_rec 19 | -Tcore_dir_config 20 | -Tcore_server_config 21 | -Tdir_maker_func 22 | -Tevent 23 | -Tglobals_s 24 | -Thandler_func 25 | -Thandler_rec 26 | -Tjoblist_s 27 | -Tlisten_rec 28 | -Tmerger_func 29 | -Tmode_t 30 | -Tmodule 31 | -Tmodule_struct 32 | -Tmutex 33 | -Tn_long 34 | -Tother_child_rec 35 | -Toverrides_t 36 | -Tparent_score 37 | -Tpid_t 38 | -Tpiped_log 39 | -Tpool 40 | -Trequest_rec 41 | -Trequire_line 42 | -Trlim_t 43 | -Tscoreboard 44 | -Tsemaphore 45 | -Tserver_addr_rec 46 | -Tserver_rec 47 | -Tserver_rec_chain 48 | -Tshort_score 49 | -Ttable 50 | -Ttable_entry 51 | -Tthread 52 | -Tu_wide_int 53 | -Tvtime_t 54 | -Twide_int 55 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/SHA1/convert-sha1.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | use strict; 3 | 4 | # This is public domain code. Do whatever you want with it. 5 | # It was originally included in Clinton Wong's Apache 1.3.6 SHA1/ldif 6 | # patch distribution as sample code for converting accounts from 7 | # ldif format (as used by Netscape web servers) to Apache password format. 8 | 9 | my $uid=''; 10 | my $passwd=''; 11 | 12 | while (my $line = <>) { 13 | chomp $line; 14 | if ( $line =~ /uid:\s*(.+)/) { $uid = $1 } 15 | if ( $line =~ /userpassword:\s*(\{\w+\}.+)/) { 16 | $passwd = $1; 17 | $passwd =~ s/^\{crypt\}//i; # Apache stores crypt without a magic string 18 | } 19 | 20 | if (length($line)==0) { 21 | 22 | if (length $uid and length $passwd) { 23 | print $uid, ':', $passwd, "\n"; 24 | } # output if we have something to print 25 | 26 | $uid = ''; 27 | $passwd = ''; 28 | 29 | } # if newline 30 | } # while something to read 31 | 32 | # handle last entry if there isn't a newline before EOF 33 | if (length $uid and length $passwd) { 34 | print $uid, ':', $passwd, "\n"; 35 | } 36 | 37 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/SHA1/htpasswd-sha1.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | use strict; 3 | # 4 | # Utility which takes a username and password 5 | # on the command line and generates a username 6 | # sha1-encrytped password on the stdout. 7 | # 8 | # Typical useage: 9 | # ./htpasswd-sha1.pl dirkx MySecret >> sha1-passwd 10 | # 11 | # This is public domain code. Do whatever you want with it. 12 | # It was originally included in Clinton Wong's Apache 1.3.6 SHA1/ldif 13 | # patch distribution as sample code for generating entries for 14 | # Apache password files using SHA1. 15 | 16 | use MIME::Base64; # http://www.cpan.org/modules/by-module/MIME/ 17 | use Digest::SHA1; # http://www.cpan.org/modules/by-module/MD5/ 18 | 19 | if ($#ARGV!=1) { die "Usage $0: user password\n" } 20 | 21 | print $ARGV[0], ':{SHA}', encode_base64( Digest::SHA1::sha1($ARGV[1]) ); 22 | 23 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/SHA1/ldif-sha1.example: -------------------------------------------------------------------------------- 1 | dn: cn=someuser 2 | cn: someuser 3 | sn: someuser 4 | objectclass: top 5 | objectclass: person 6 | objectclass: organizationalPerson 7 | objectclass: inetOrgPerson 8 | uid: someuser 9 | userpassword: {SHA}GvF+c3IdvgxAARuC7Uuxp9vjzik= 10 | 11 | dn: cn=anotheruser 12 | cn: anotheruser 13 | sn: anotheruser 14 | objectclass: top 15 | objectclass: person 16 | objectclass: organizationalPerson 17 | objectclass: inetOrgPerson 18 | uid: anotheruser 19 | userpassword: {crypt}eFnp.4sz5XnH6 20 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/ab.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by ab.mak 2 | 3 | .\ab.c : \ 4 | "..\include\ap_release.h"\ 5 | "..\srclib\apr-util\include\apr_base64.h"\ 6 | "..\srclib\apr\include\apr_getopt.h"\ 7 | "..\srclib\apr\include\apr_lib.h"\ 8 | "..\srclib\apr\include\apr_poll.h"\ 9 | "..\srclib\apr\include\apr_portable.h"\ 10 | "..\srclib\apr\include\apr_signal.h"\ 11 | "..\srclib\apr\include\apr_strings.h"\ 12 | 13 | 14 | ..\build\win32\httpd.rc : \ 15 | "..\include\ap_release.h"\ 16 | 17 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/abs.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by abs.mak 2 | 3 | .\ab.c : \ 4 | "..\include\ap_release.h"\ 5 | "..\srclib\apr-util\include\apr_base64.h"\ 6 | "..\srclib\apr\include\apr_getopt.h"\ 7 | "..\srclib\apr\include\apr_lib.h"\ 8 | "..\srclib\apr\include\apr_poll.h"\ 9 | "..\srclib\apr\include\apr_portable.h"\ 10 | "..\srclib\apr\include\apr_signal.h"\ 11 | "..\srclib\apr\include\apr_strings.h"\ 12 | 13 | 14 | ..\build\win32\httpd.rc : \ 15 | "..\include\ap_release.h"\ 16 | 17 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/check_forensic: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # check_forensic 4 | 5 | # check the forensic log for requests that did not complete 6 | # output the request log for each one 7 | 8 | F=$1 9 | 10 | temp_create_method=file 11 | if test -f `which mktemp`; then 12 | temp_create_method=mktemp 13 | elif test -f `which tempfile`; then 14 | temp_create_method=tempfile 15 | fi 16 | 17 | create_temp() 18 | { 19 | prefix=$1 20 | case "$temp_create_method" in 21 | file) 22 | name="/tmp/$1.$$" 23 | ;; 24 | mktemp) 25 | name=`mktemp -t $1.XXXXXX` 26 | ;; 27 | tempfile) 28 | name=`tempfile --prefix=$1` 29 | ;; 30 | *) 31 | echo "$0: Cannot create temporary file" 32 | exit 1 33 | ;; 34 | esac 35 | } 36 | 37 | create_temp fcall 38 | all=$name 39 | create_temp fcin 40 | in=$name 41 | create_temp fcout 42 | out=$name 43 | trap "rm -f -- \"$all\" \"$in\" \"$out\";" 0 1 2 3 13 15 44 | 45 | cut -f 1 -d '|' $F > $all 46 | grep + < $all | cut -c2- | sort > $in 47 | grep -- - < $all | cut -c2- | sort > $out 48 | 49 | # use -i instead of -I for GNU xargs 50 | join -v 1 $in $out | xargs -I xx egrep "^\\+xx" $F 51 | exit 0 52 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/config/arp.conf: -------------------------------------------------------------------------------- 1 | ARP_ENTRY 1 2 | 10.1.0.21/32 00:1b:21:8f:1c:d8 #ice2 3 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/envvars-std.in: -------------------------------------------------------------------------------- 1 | # Licensed to the Apache Software Foundation (ASF) under one or more 2 | # contributor license agreements. See the NOTICE file distributed with 3 | # this work for additional information regarding copyright ownership. 4 | # The ASF licenses this file to You under the Apache License, Version 2.0 5 | # (the "License"); you may not use this file except in compliance with 6 | # the License. You may obtain a copy of the License at 7 | # 8 | # http://www.apache.org/licenses/LICENSE-2.0 9 | # 10 | # Unless required by applicable law or agreed to in writing, software 11 | # distributed under the License is distributed on an "AS IS" BASIS, 12 | # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | # See the License for the specific language governing permissions and 14 | # limitations under the License. 15 | # 16 | # 17 | # envvars-std - default environment variables for apachectl 18 | # 19 | # This file is generated from envvars-std.in 20 | # 21 | if test "x$@SHLIBPATH_VAR@" != "x" ; then 22 | @SHLIBPATH_VAR@="@exp_libdir@:$@SHLIBPATH_VAR@" 23 | else 24 | @SHLIBPATH_VAR@="@exp_libdir@" 25 | fi 26 | export @SHLIBPATH_VAR@ 27 | # 28 | @OS_SPECIFIC_VARS@ 29 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/win32/ApacheMonitor.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by ApacheMonitor.mak 2 | 3 | .\ApacheMonitor.c : \ 4 | ".\ApacheMonitor.h"\ 5 | 6 | 7 | .\ApacheMonitor.rc : \ 8 | "..\..\build\win32\httpd.rc"\ 9 | "..\..\include\ap_release.h"\ 10 | ".\apache_header.bmp"\ 11 | ".\ApacheMonitor.h"\ 12 | ".\ApacheMonitor.ico"\ 13 | ".\aprun.ico"\ 14 | ".\apstop.ico"\ 15 | ".\srun.bmp"\ 16 | ".\sstop.bmp"\ 17 | 18 | -------------------------------------------------------------------------------- /apps/apache_benchmark/support/win32/ApacheMonitor.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/support/win32/ApacheMonitor.ico -------------------------------------------------------------------------------- /apps/apache_benchmark/support/win32/apache_header.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/support/win32/apache_header.bmp -------------------------------------------------------------------------------- /apps/apache_benchmark/support/win32/aprun.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/support/win32/aprun.ico -------------------------------------------------------------------------------- /apps/apache_benchmark/support/win32/apstop.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/support/win32/apstop.ico -------------------------------------------------------------------------------- /apps/apache_benchmark/support/win32/srun.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/support/win32/srun.bmp -------------------------------------------------------------------------------- /apps/apache_benchmark/support/win32/sstop.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/apache_benchmark/support/win32/sstop.bmp -------------------------------------------------------------------------------- /apps/apache_benchmark/support/win32/wintty.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by wintty.mak 2 | 3 | ..\..\build\win32\httpd.rc : \ 4 | "..\..\include\ap_release.h"\ 5 | 6 | -------------------------------------------------------------------------------- /apps/example/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | epserver 3 | epwget 4 | log_* 5 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/AUTHORS: -------------------------------------------------------------------------------- 1 | Jan Kneschke 2 | Elan Ruusamäe 3 | Marcus Rückert 4 | mOo 5 | Robert Jakabosky 6 | Stefan Bühler 7 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS=src doc tests 2 | 3 | EXTRA_DIST=autogen.sh SConstruct 4 | 5 | ACLOCAL_AMFLAGS = -I m4 6 | 7 | distcleancheck_listfiles = find -type f -exec sh -c 'test -f $(srcdir)/{} || echo {}' ';' 8 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/NEWS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/lighttpd-1.4.32/NEWS -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/[config.h].in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/lighttpd-1.4.32/[config.h].in -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS=config scripts initscripts systemd outdated 2 | dist_man8_MANS=lighttpd.8 3 | 4 | EXTRA_DIST= \ 5 | newstyle.css \ 6 | oldstyle.css 7 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS=conf.d vhosts.d 2 | EXTRA_DIST=lighttpd.conf modules.conf 3 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=access_log.conf \ 2 | auth.conf \ 3 | cgi.conf \ 4 | cml.conf \ 5 | compress.conf \ 6 | debug.conf \ 7 | dirlisting.conf \ 8 | evhost.conf \ 9 | expire.conf \ 10 | fastcgi.conf \ 11 | geoip.conf \ 12 | magnet.conf \ 13 | mime.conf \ 14 | mod.template \ 15 | mysql_vhost.conf \ 16 | proxy.conf \ 17 | rrdtool.conf \ 18 | scgi.conf \ 19 | secdownload.conf \ 20 | simple_vhost.conf \ 21 | ssi.conf \ 22 | status.conf \ 23 | trigger_b4_dl.conf \ 24 | userdir.conf \ 25 | webdav.conf 26 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/access_log.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Corresponding documentation: 4 | ## 5 | ## http://www.lighttpd.net/documentation/access.html 6 | ## 7 | server.modules += ( "mod_accesslog" ) 8 | 9 | ## 10 | ## Default access log. 11 | ## 12 | accesslog.filename = log_root + "/access.log" 13 | 14 | ## 15 | ## The default format produces CLF compatible output. 16 | ## For available parameters see access.txt 17 | ## 18 | #accesslog.format = "%h %l %u %t \"%r\" %b %>s \"%{User-Agent}i\" \"%{Referer}i\"" 19 | 20 | ## 21 | ## If you want to log to syslog you have to unset the 22 | ## accesslog.use-syslog setting and uncomment the next line. 23 | ## 24 | #accesslog.use-syslog = "enable" 25 | 26 | # 27 | ####################################################################### 28 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/auth.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Authentication Module 4 | ## ----------------------- 5 | ## 6 | ## See http://www.lighttpd.net/documentation/authentification.html 7 | ## for more info. 8 | ## 9 | 10 | #auth.backend = "plain" 11 | #auth.backend.plain.userfile = "/etc/lighttpd/lighttpd.user" 12 | #auth.backend.plain.groupfile = "/etc/lighttpd/lighttpd.group" 13 | 14 | #auth.backend.ldap.hostname = "localhost" 15 | #auth.backend.ldap.base-dn = "dc=my-domain,dc=com" 16 | #auth.backend.ldap.filter = "(uid=$)" 17 | 18 | #auth.require = ( "/server-status" => 19 | # ( 20 | # "method" => "digest", 21 | # "realm" => "Server Status", 22 | # "require" => "valid-user" 23 | # ), 24 | # ) 25 | 26 | ## 27 | ####################################################################### 28 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/cgi.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## CGI modules 4 | ## --------------- 5 | ## 6 | ## http://www.lighttpd.net/documentation/cgi.html 7 | ## 8 | server.modules += ( "mod_cgi" ) 9 | 10 | ## 11 | ## Plain old CGI handling 12 | ## 13 | ## For PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini. 14 | ## 15 | cgi.assign = ( ".pl" => "/usr/bin/perl", 16 | ".cgi" => "/usr/bin/perl", 17 | ".rb" => "/usr/bin/ruby", 18 | ".erb" => "/usr/bin/eruby", 19 | ".py" => "/usr/bin/python" ) 20 | 21 | ## 22 | ## to get the old cgi-bin behavior of apache 23 | ## 24 | ## Note: make sure that mod_alias is loaded if you uncomment the 25 | ## next line. (see modules.conf) 26 | ## 27 | #alias.url += ( "/cgi-bin" => server_root + "/cgi-bin" ) 28 | #$HTTP["url"] =~ "^/cgi-bin" { 29 | # cgi.assign = ( "" => "" ) 30 | #} 31 | 32 | ## 33 | ####################################################################### 34 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/cml.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## CML Module 4 | ## --------------- 5 | ## 6 | ## see http://www.lighttpd.net/documentation/cml.html 7 | ## 8 | server.modules += ( "mod_cml" ) 9 | index-file.names += ( "index.cml" ) 10 | 11 | ## 12 | ## The file extension that is bound to the cml-module. 13 | ## 14 | cml.extension = ".cml" 15 | 16 | ## 17 | ## Memcached hosts used for memcache* functions. 18 | ## 19 | #cml.memcache-hosts = ( "127.0.0.1:11211" ) 20 | 21 | ## 22 | ## A cml file that is executed for each request. 23 | ## 24 | #cml.power-magnet = server_root + "/htdocs/powermagnet.cml" 25 | 26 | ## 27 | ####################################################################### 28 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/compress.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Output Compression 4 | ## -------------------- 5 | ## 6 | ## see http://www.lighttpd.net/documentation/compress.html 7 | ## 8 | server.modules += ( "mod_compress" ) 9 | 10 | ## 11 | ## where should the compressed files be cached? 12 | ## see the base config for the declaration of the variable. 13 | ## 14 | ## This directory should be changed per vhost otherwise you can 15 | ## run into trouble with overlapping filenames 16 | ## 17 | compress.cache-dir = cache_dir + "/compress" 18 | 19 | ## 20 | ## FileTypes to compress. 21 | ## 22 | compress.filetype = ("text/plain", "text/html") 23 | 24 | ## 25 | ## Maximum filesize that will be compressed. 26 | ## Default is 0, which means unlimited file size. 27 | ## 28 | #compress.max-filesize = 0 29 | 30 | ## 31 | ####################################################################### 32 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/debug.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Debug options 4 | ## --------------- 5 | ## 6 | ## Enable those options for debugging the behavior 7 | ## 8 | ## The settings can be set per location/vhost. 9 | ## 10 | 11 | ## 12 | ## log-request-handling allows you to track the request 13 | ## handing inside lighttpd. 14 | ## 15 | #debug.log-request-handling = "enable" 16 | 17 | ## 18 | ## log all request headers. 19 | ## 20 | #debug.log-request-header = "enable" 21 | 22 | ## 23 | ## similar to log-request-header. 24 | ## but only logs if we encountered an error. 25 | ## (return codes 400 and 5xx) 26 | ## 27 | #debug.log-request-header-on-error = "enable" 28 | 29 | ## 30 | ## log the header we send out to the client. 31 | ## 32 | #debug.log-response-header = "enable" 33 | 34 | ## 35 | ## log if a file wasnt found in the error log. 36 | ## 37 | #debug.log-file-not-found = "enable" 38 | 39 | ## 40 | ## debug conditionals handling 41 | ## 42 | #debug.log-condition-handling = "enable" 43 | 44 | # 45 | ####################################################################### 46 | 47 | 48 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/evhost.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Enhanced virtual hosting 4 | ## -------------------------- 5 | ## 6 | ## See http://www.lighttpd.net/documentation/evhost.html 7 | ## 8 | server.modules += ( "mod_evhost" ) 9 | 10 | ## 11 | ## define a pattern for the host url finding 12 | ## %% => % sign 13 | ## %0 => domain name + tld 14 | ## %1 => tld 15 | ## %2 => domain name without tld 16 | ## %3 => subdomain 1 name 17 | ## %4 => subdomain 2 name 18 | ## 19 | evhost.path-pattern = vhosts_dir + "/%3/htdocs/" 20 | 21 | ## 22 | ####################################################################### 23 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/expire.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Expire Module 4 | ## --------------- 5 | ## 6 | ## See http://www.lighttpd.net/documentation/expire.html 7 | ## 8 | server.modules += ( "mod_expire" ) 9 | 10 | ## 11 | ## assignes a expiration to all files below the specified path. The 12 | ## specification of the time is made up of: 13 | ## 14 | ## 15 | ## 16 | #expire.url = ( 17 | # "/buggy/" => "access 2 hours", 18 | # "/images/" => "access plus 1 seconds 2 minutes" 19 | #) 20 | 21 | ## 22 | ####################################################################### 23 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/geoip.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## GeoIP Module 4 | ## --------------- 5 | ## 6 | ## mod_geoip is a module for fast ip/location lookups. It uses MaxMind 7 | ## GeoIP / GeoCity databases. If the ip was found in the database the 8 | ## module sets the appropriate environments variables to the request, 9 | ## thus making other modules/fcgi be informed. 10 | ## 11 | server.modules += ( "mod_geoip" ) 12 | 13 | ## 14 | ## mod_geoip will determine the database type automatically so if you 15 | ## enter GeoCity databse path it will load GeoCity Env. 16 | ## 17 | #geoip.db-filename = "/path/to/GeoCityLite.dat" 18 | 19 | ## 20 | ## If enabled, mod_geoip will load the database binary file to memory 21 | ## for very fast lookups. The only penalty is memory usage. 22 | ## 23 | #geoip.memory-cache = "disable" 24 | 25 | ## 26 | ####################################################################### 27 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/magnet.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Magnet Module 4 | ## --------------- 5 | ## 6 | ## see http://trac.lighttpd.net/trac/wiki/Docs%3AModMagnet 7 | ## 8 | server.modules += ( "mod_magnet" ) 9 | 10 | ## 11 | ## 12 | ## 13 | #magnet.attract-raw-url-to = ( ) 14 | 15 | ## 16 | ## as an example for that see the mod_magnet docs and 17 | ## http://pixel.global-banlist.de./ 18 | ## 19 | #magnet.attract-physical-path-to = ( conf_dir + "/cleanurl.lua" ) 20 | 21 | ## 22 | ####################################################################### 23 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/mod.template: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Foo Module 4 | ## --------------- 5 | ## 6 | ## http://www.lighttpd.net/documentation/Foo.html 7 | ## 8 | server.modules += ( "mod_Foo" ) 9 | 10 | ## 11 | ## foo 12 | ## 13 | #foo.bar = 1 14 | 15 | ## 16 | ####################################################################### 17 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/mysql_vhost.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Virtual hosting with MySQL 4 | ## ---------------------------- 5 | ## 6 | ## http://www.lighttpd.net/documentation/mysqlvhost.html 7 | ## 8 | server.modules += ( "mod_mysql_vhost" ) 9 | 10 | ## 11 | ## Either set the the socket or host (and port) 12 | ## 13 | ## Local path to the mysql socket 14 | ## 15 | #mysql-vhost.sock = "/var/lib/mysql/mysql.sock" 16 | 17 | ## 18 | ## Host of the MySQL server. 19 | ## 20 | #mysql-vhost.hostname = "localhost" 21 | 22 | ## 23 | ## Optional: port to use. 24 | ## 25 | #mysql-vhost.port = 3306 26 | 27 | ## 28 | ## Name of the database 29 | ## 30 | mysql-vhost.db = "lighttpd" 31 | 32 | ## 33 | ## SQL User/Password for the connection 34 | ## 35 | mysql-vhost.user = "lighttpd" 36 | mysql-vhost.pass = "secret" 37 | 38 | ## 39 | ## The query to get the needed informations from the database. 40 | ## 41 | ## It doesnt matter how you name the fields the first field is always used 42 | ## as the document root. 43 | ## 44 | mysql-vhost.sql = "SELECT docroot FROM domains WHERE domain='?'" 45 | 46 | ## 47 | ####################################################################### 48 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/proxy.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Proxy Module 4 | ## --------------- 5 | ## 6 | ## http://www.lighttpd.net/documentation/proxy.html 7 | ## 8 | server.modules += ( "mod_proxy" ) 9 | 10 | ## 11 | ## a value between 0 and 65535 to set the debug-level in the Proxy module. 12 | ## Currently only 0 and 1 are used. Use 1 to enable some debug output, 0 to 13 | ## disable it. 14 | ## 15 | #proxy.debug = 1 16 | 17 | ## 18 | ## might be one of 'hash', 'round-robin' or 'fair' (default). 19 | ## 20 | #proxy.balance = "fair" 21 | 22 | ## 23 | ## Handle all jsp requests via 192.168.0.101 24 | ## 25 | #proxy.server = ( ".jsp" => 26 | # ( "tomcat" => 27 | # ( 28 | # "host" => "192.168.0.101", 29 | # "port" => 80 30 | # ) 31 | # ) 32 | # ) 33 | 34 | ## 35 | ####################################################################### 36 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/rrdtool.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## RRD Tool Module 4 | ## ----------------- 5 | ## 6 | ## see http://www.lighttpd.net/documentation/rrdtool.html 7 | ## 8 | server.modules += ( "mod_rrdtool" ) 9 | 10 | ## 11 | ## Path to the rrdtool binary. 12 | ## 13 | rrdtool.binary = "/usr/bin/rrdtool" 14 | 15 | ## 16 | ## Path to the rrdtool database. You can override this in conditionals. 17 | ## 18 | rrdtool.db-name = "/var/lib/lighttpd/lighttpd.rrd" 19 | 20 | ## 21 | ####################################################################### 22 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/secdownload.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Secure Download Module 4 | ## ------------------------ 5 | ## 6 | ## see http://www.lighttpd.net/documentation/secdownload.html 7 | ## 8 | server.modules += ( "mod_secdownload" ) 9 | 10 | ## 11 | ## Document root for the download area. 12 | ## The directory should not be below your normal 13 | ## document root! 14 | ## 15 | #secdownload.document-root = server_root + "/downloads" 16 | 17 | ## 18 | ## Secret string that will be used for the checksum calculation. 19 | ## 20 | #secdownload.secret = "" 21 | 22 | ## 23 | ## How long is the secret valid? 24 | ## 25 | ## Default: 60 seconds 26 | ## 27 | #secdownload.timeout = 60 28 | 29 | ## 30 | ## Prefix for the download area. 31 | ## 32 | #secdownload.uri-prefix = "/download/" 33 | 34 | ## 35 | ####################################################################### 36 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/simple_vhost.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Simple Virtual hosting 4 | ## ------------------------ 5 | ## 6 | ## http://www.lighttpd.net/documentation/simple-vhost.html 7 | ## 8 | server.modules += ( "mod_simple_vhost" ) 9 | 10 | ## If you want name-based virtual hosting add the next three settings and load 11 | ## mod_simple_vhost 12 | ## 13 | ## document-root = 14 | ## virtual-server-root + virtual-server-default-host + virtual-server-docroot 15 | ## or 16 | ## virtual-server-root + http-host + virtual-server-docroot 17 | ## 18 | simple-vhost.server-root = vhosts_dir + "/" 19 | simple-vhost.default-host = "default.example.com" 20 | simple-vhost.document-root = "/htdocs/" 21 | 22 | ## 23 | ## Print some errors for finding the document-root 24 | ## 25 | #simple-vhost.debug = "enable" 26 | 27 | ## 28 | ####################################################################### 29 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/ssi.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Server Side Includes 4 | ## ----------------------- 5 | ## 6 | ## see /usr/share/doc/packages/lighttpd/ssi.html 7 | ## 8 | server.modules += ( "mod_ssi" ) 9 | 10 | ## 11 | ## which extensions should be ran through mod_ssi. 12 | ## 13 | ssi.extension = ( ".shtml" ) 14 | 15 | ## 16 | ####################################################################### 17 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/status.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Status Module 4 | ## --------------- 5 | ## 6 | ## see http://www.lighttpd.net/documentation/status.html 7 | ## 8 | server.modules += ( "mod_status" ) 9 | 10 | $HTTP["remoteip"] == "127.0.0.0/8" { 11 | ## 12 | ## configure urls for the various parts of the module. 13 | ## 14 | status.status-url = "/server-status" 15 | status.config-url = "/server-config" 16 | status.statistics-url = "/server-statistics" 17 | ## 18 | ## add JavaScript which allows client-side sorting for the connection 19 | ## overview 20 | ## 21 | status.enable-sort = "enable" 22 | } 23 | ## 24 | ####################################################################### 25 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/userdir.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## Userdir Module 4 | ## ---------------- 5 | ## 6 | ## for all details see: 7 | ## http://www.lighttpd.net/documentation/userdir.html 8 | ## 9 | server.modules += ( "mod_userdir" ) 10 | 11 | ## 12 | ## usually it should be set to "public_html" to take ~/public_html/ as 13 | ## the document root 14 | ## Default: empty (document root is the home directory) 15 | ## 16 | userdir.path = "public_html" 17 | 18 | ## 19 | ## If set, don't check /etc/passwd for homedir 20 | ## Default: empty 21 | #userdir.basepath = server_root + "/users/" 22 | 23 | ## 24 | ## list of usernames which may not use this feature 25 | ## Default: empty (all users may use it) 26 | ## 27 | #userdir.exclude-user = ( "root", "postmaster" ) 28 | 29 | ## 30 | ## if set, only users from this list may use the feature 31 | ## Default: empty (all users may use it) 32 | ## 33 | #userdir.include-user = ("user1", "user2") 34 | 35 | ## 36 | ####################################################################### 37 | 38 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/conf.d/webdav.conf: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## WebDAV Module 4 | ## --------------- 5 | ## 6 | ## http://www.lighttpd.net/documentation/webdav.html 7 | ## 8 | server.modules += ( "mod_webdav" ) 9 | 10 | $HTTP["url"] =~ "^/dav($|/)" { 11 | ## 12 | ## enable webdav for this location 13 | ## 14 | webdav.activate = "enable" 15 | 16 | ## 17 | ## By default the webdav url is writable. 18 | ## Uncomment the following line if you want to make it readonly. 19 | ## 20 | #webdav.is-readonly = "enable" 21 | 22 | ## 23 | ## Log the XML Request bodies for debugging 24 | ## 25 | #webdav.log-xml = "disable" 26 | 27 | ## 28 | ## 29 | ## 30 | webdav.sqlite-db-name = home_dir + "/webdav.db" 31 | } 32 | ## 33 | ####################################################################### 34 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/vhosts.d/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=vhosts.template 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/config/vhosts.d/vhosts.template: -------------------------------------------------------------------------------- 1 | ####################################################################### 2 | ## 3 | ## For more examples check: 4 | ## 5 | ## http://www.lighttpd.net/documentation/configuration.html#conditional-configuration 6 | ## 7 | $HTTP["host"] == "download.example.com" { 8 | var.server_name = "download.example.com" 9 | 10 | server.name = server_name 11 | ## 12 | ## use trigger before download 13 | ## 14 | include "conf.d/trigger_b4_dl.conf" 15 | 16 | server.document-root = vhosts_dir + "/example.com/download/htdocs" 17 | ## 18 | ## use a seperate access log file 19 | ## At the moment you cant have different error log files. 20 | ## 21 | accesslog.filename = log_root + "/" + server_name "/access.log" 22 | } 23 | 24 | $SERVER["socket"] == "127.0.0.1:443" { 25 | server.name = "localhost" 26 | ssl.pemfile = "/etc/ssl/private/lighttpd-localhost.pem" 27 | ssl.engine = "enable" 28 | 29 | server.document-root = vhosts_dir + "/ssl-localhost/pages/" 30 | } 31 | 32 | ## 33 | ####################################################################### 34 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/initscripts/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=rc.lighttpd rc.lighttpd.redhat sysconfig.lighttpd 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/initscripts/sysconfig.lighttpd: -------------------------------------------------------------------------------- 1 | LIGHTTPD_CONF_PATH=/etc/lighttpd/lighttpd.conf 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/newstyle.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: #F5F5F5; 3 | } 4 | a, a:active { 5 | text-decoration: none; 6 | color: blue; 7 | } 8 | a:visited { 9 | color: #48468F; 10 | } 11 | a:hover, a:focus { 12 | text-decoration: underline; 13 | color: red; 14 | } 15 | h2 { 16 | margin-bottom: 12px; 17 | } 18 | table { 19 | margin-left: 12px; 20 | } 21 | th, td { 22 | font-family: "Courier New", Courier, monospace; 23 | font-size: 10pt; 24 | text-align: left; 25 | } 26 | th { 27 | font-weight: bold; 28 | padding-right: 14px; 29 | padding-bottom: 3px; 30 | } 31 | td { 32 | padding-right: 14px; 33 | } 34 | td.s, th.s { 35 | text-align: right; 36 | } 37 | div.list { 38 | background-color: white; 39 | border-top: 1px solid #646464; 40 | border-bottom: 1px solid #646464; 41 | padding-top: 10px; 42 | padding-bottom: 14px; 43 | } 44 | div.foot { 45 | font-family: "Courier New", Courier, monospace; 46 | font-size: 10pt; 47 | color: #787878; 48 | padding-top: 4px; 49 | } 50 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/oldstyle.css: -------------------------------------------------------------------------------- 1 | table { 2 | border: 1px solid black; 3 | padding: 1px; 4 | } 5 | th { 6 | background-color: black; 7 | border: 1px solid white; 8 | color: white; 9 | padding-right: 2px; 10 | padding-left: 2px; 11 | } 12 | td { 13 | background-color: #f0f0f0; 14 | border: 1px solid white; 15 | padding-right: 2px; 16 | padding-left: 2px; 17 | } 18 | td.s { 19 | background-color: #f0f0f0; 20 | text-align: right; 21 | padding-left: 14px; 22 | } 23 | div.foot { 24 | margin-top: 4px; 25 | } 26 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/access.txt: -------------------------------------------------------------------------------- 1 | ====== 2 | Access 3 | ====== 4 | 5 | ------------------ 6 | Module: mod_access 7 | ------------------ 8 | 9 | :Author: Allan Wind 10 | :Date: $Date: 2005/01/30 11:34:32 $ 11 | :Revision: $Revision: 1.1 $ 12 | 13 | :abstract: 14 | The access module is used to deny access to files with given trailing path names. 15 | 16 | .. meta:: 17 | :keywords: lighttpd, trailing path access control 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | The access module is used to deny access to files with given trailing path names. 25 | 26 | Options 27 | ======= 28 | 29 | url.access-deny 30 | Denies access to all files with any of given trailing path names. 31 | 32 | Default: empty 33 | 34 | Example: :: 35 | 36 | url.access-deny = ( "~", ".inc") 37 | 38 | will deny access to all files ended with a diacritical mark (~) or .inc 39 | such as example~ or example.inc. A trailing diacritical mark is often 40 | used by editors for backup files. And the .inc extension is often used 41 | for include files with code. 42 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/alias.txt: -------------------------------------------------------------------------------- 1 | ===== 2 | Alias 3 | ===== 4 | 5 | ----------------- 6 | Module: mod_alias 7 | ----------------- 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/08/29 09:43:49 $ 11 | :Revision: $Revision: 1.1 $ 12 | 13 | :abstract: 14 | The alias module ... 15 | 16 | .. meta:: 17 | :keywords: lighttpd, alias 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | The alias module is used to specify a special document-root for a given url-subset. 25 | 26 | Options 27 | ======= 28 | 29 | alias.url 30 | rewrites the document-root for a URL-subset 31 | 32 | Default: empty 33 | 34 | Example: :: 35 | 36 | alias.url = ( "/cgi-bin/" => "/var/www/servers/www.example.org/cgi-bin/" ) 37 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/cgi.txt: -------------------------------------------------------------------------------- 1 | === 2 | CGI 3 | === 4 | 5 | --------------- 6 | Module: mod_cgi 7 | --------------- 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/11/03 22:26:05 $ 11 | :Revision: $Revision: 1.2 $ 12 | 13 | :abstract: 14 | The cgi module provides a CGI-conforming interface. 15 | 16 | .. meta:: 17 | :keywords: lighttpd, cgi 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | CGI programs allow you to enhance the functionality of the server in a very 25 | straight and simple way.. 26 | 27 | Options 28 | ======= 29 | 30 | cgi.assign 31 | 32 | file-extensions that are handled by a CGI program 33 | 34 | e.g.: :: 35 | 36 | cgi.assign = ( ".pl" => "/usr/bin/perl", 37 | ".cgi" => "/usr/bin/perl" ) 38 | 39 | Examples 40 | ======== 41 | 42 | To setup a executable which doesn't need the help of a external program you 43 | just don't specify a handler for the extension. :: 44 | 45 | cgi.assign = ( ".sh" => "" ) 46 | 47 | If the file has no extension keep in mind that lighttpd matches not the 48 | extension itself but the right part of the URL: :: 49 | 50 | cgi.assign = ( "/testfile" => "" ) 51 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/evhost.txt: -------------------------------------------------------------------------------- 1 | ======================== 2 | Enhanced Virtual-Hosting 3 | ======================== 4 | 5 | ------------------ 6 | Module: mod_evhost 7 | ------------------ 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/08/29 09:43:49 $ 11 | :Revision: $Revision: 1.1 $ 12 | 13 | :abstract: 14 | virtual hosting 15 | 16 | .. meta:: 17 | :keywords: lighttpd, virtual hosting 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | mod_evhost builds the document-root based on a pattern which contains 25 | wildcards. Those wildcards can represent parts if the submitted hostname 26 | 27 | 28 | :: 29 | 30 | %% => % sign 31 | %0 => domain name + tld 32 | %1 => tld 33 | %2 => domain name without tld 34 | %3 => subdomain 1 name 35 | %4 => subdomain 2 name 36 | %_ => the complete hostname (without port info) 37 | 38 | evhost.path-pattern = "/home/www/servers/%3/pages/" 39 | 40 | Options 41 | ======= 42 | 43 | evhost.path-pattern 44 | pattern with wildcards to be replace to build a documentroot 45 | 46 | 47 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/expire.txt: -------------------------------------------------------------------------------- 1 | =============================================== 2 | Controlling the Expiration of Content in Caches 3 | =============================================== 4 | 5 | ------------------ 6 | Module: mod_expire 7 | ------------------ 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/11/03 22:26:05 $ 11 | :Revision: $Revision: 1.2 $ 12 | 13 | :abstract: 14 | mod_expire controls the setting of the the Expire Response header 15 | 16 | .. meta:: 17 | :keywords: lighttpd, expire 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | mod_expire controls the Expire header in the Response Header of HTTP/1.0 25 | messages. It is usefull to set it for static files which should be cached 26 | aggressivly like images, stylesheets or similar. 27 | 28 | Options 29 | ======= 30 | 31 | expire.url 32 | assignes a expiration to all files below the specified path. The 33 | specification of the time is made up of: :: 34 | 35 | 36 | 37 | following the syntax used by mod_expire in Apache 1.3.x and later. 38 | 39 | Example: :: 40 | 41 | expire.url = ( "/images/" => "access 1 hour" ) 42 | 43 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/fastcgi-state.dot: -------------------------------------------------------------------------------- 1 | digraph fcgistate { 2 | init -> connect -> prepwrite -> write -> read -> close 3 | write -> write 4 | read -> read 5 | connect -> connect 6 | } 7 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/fastcgi-state.txt: -------------------------------------------------------------------------------- 1 | ================= 2 | FastCGI Internals 3 | ================= 4 | 5 | --------------- 6 | Module: fastcgi 7 | --------------- 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/08/01 07:01:29 $ 11 | :Revision: $Revision: 1.1 $ 12 | 13 | :abstract: 14 | This is a short summary of the state-engine which is driving the FastCGI 15 | module. It describes the basic concepts and the way the different parts 16 | of the module are connected. 17 | 18 | .. meta:: 19 | :keywords: lighttpd, state-engine, fastcgi 20 | 21 | .. contents:: Table of Contents 22 | 23 | Description 24 | =========== 25 | 26 | States 27 | ------ 28 | 29 | The state-engine is currently made of 6 states which are walk-through on 30 | the way each connection. 31 | 32 | :init: 33 | prepare fastcgi-connection 34 | :connect: 35 | waiting for a connection 36 | :prepwrite: 37 | build the fastcgi-request 38 | :write: 39 | write the fastcgi-request to the network 40 | :read: 41 | read fastcgi-response from network and push it to the write-queue 42 | :close: 43 | terminate the connection 44 | 45 | .. image:: fastcgi-state.png 46 | 47 | Delays 48 | ------ 49 | 50 | connect, write and read may need to wait for an fdevent. That's the reason 51 | for the loop in the state-diagram. 52 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/redirect.txt: -------------------------------------------------------------------------------- 1 | =============== 2 | URL Redirection 3 | =============== 4 | 5 | -------------------- 6 | Module: mod_redirect 7 | -------------------- 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/08/29 09:43:49 $ 11 | :Revision: $Revision: 1.1 $ 12 | 13 | :abstract: 14 | url redirection 15 | 16 | .. meta:: 17 | :keywords: lighttpd, redirect 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | ... 25 | 26 | Options 27 | ======= 28 | 29 | url.redirect 30 | redirects a set of URLs externally 31 | 32 | e.g. :: 33 | 34 | url.redirect = ( "^/show/([0-9]+)/([0-9]+)$" => "http://www.example.org/show.php?isdn=$1&page$2", 35 | "^/get/([0-9]+)/([0-9]+)$" => "http://www.example.org/get.php?isdn=$1&page$2" ) 36 | 37 | # make a external redirect 38 | # from any www.host (with www.) to the host (without www.) 39 | $HTTP["host"] =~ "^www\.(.*)" { 40 | url.redirect = ( "^/(.*)" => "http://%1/$1" ) 41 | } 42 | 43 | Warning 44 | ======= 45 | 46 | Do NOT use mod_redirect to protect specific urls, as the original url passed from the client 47 | is matched against your rules, for example strings like "/abc/../xyz%2f/path". 48 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/scgi.txt: -------------------------------------------------------------------------------- 1 | ================== 2 | the SCGI Interface 3 | ================== 4 | 5 | ------------------- 6 | Module: mod_scgi 7 | ------------------- 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/11/03 22:26:05 $ 11 | :Revision: $Revision: 1.3 $ 12 | 13 | :abstract: 14 | SCGI is a fast and simplified CGI interface. It is mostly 15 | used by Python + WSGI. 16 | 17 | .. meta:: 18 | :keywords: lighttpd, FastCGI 19 | 20 | .. contents:: Table of Contents 21 | 22 | Description 23 | =========== 24 | 25 | The SCGI module is heavily based on the FastCGI when it comes 26 | to configuration. Only the internal protocol between server 27 | and client has been replaced. Please check the documentation 28 | of the FastCGI module for more information. 29 | 30 | History 31 | ======= 32 | 33 | Added in lighttpd 1.3.14 as it was really simple to do. 34 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/security.txt: -------------------------------------------------------------------------------- 1 | ================= 2 | Security Features 3 | ================= 4 | 5 | ------------ 6 | Module: core 7 | ------------ 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/08/29 09:44:53 $ 11 | :Revision: $Revision: 1.2 $ 12 | 13 | :abstract: 14 | lighttpd was developed with security in mind ... 15 | 16 | .. meta:: 17 | :keywords: lighttpd, security 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | Limiting POST requests 25 | ---------------------- 26 | 27 | 28 | 29 | :: 30 | 31 | server.max-request-size = 32 | 33 | System Security 34 | --------------- 35 | 36 | Running daemons as root with full privileges is a bad idea in general. 37 | lighttpd runs best without any extra privileges and runs perfectly in chroot. 38 | 39 | Change Root 40 | ``````````` 41 | 42 | server.chroot = "..." 43 | 44 | Drop root privileges 45 | ```````````````````` 46 | 47 | server.username = "..." 48 | server.groupname = "..." 49 | 50 | FastCGI 51 | ``````` 52 | 53 | fastcgi + chroot 54 | 55 | Permissions 56 | ``````````` 57 | 58 | :: 59 | 60 | $ useradd wwwrun ... 61 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/setenv.txt: -------------------------------------------------------------------------------- 1 | =========================== 2 | Conditional Request Headers 3 | =========================== 4 | 5 | ------------------ 6 | Module: mod_setenv 7 | ------------------ 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/11/03 22:26:05 $ 11 | :Revision: $Revision: 1.2 $ 12 | 13 | :abstract: 14 | mod_setenv is used to add request 15 | 16 | .. meta:: 17 | :keywords: lighttpd, skeleton 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | ... 25 | 26 | Options 27 | ======= 28 | 29 | setenv.add-environment 30 | adds a value to the process environment that is passed to the external applications 31 | 32 | 33 | setenv.add-response-header 34 | adds a header to the HTTP response sent to the client 35 | 36 | setenv.add-request-header 37 | adds a header to the HTTP request that was received from the client 38 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/skeleton.txt: -------------------------------------------------------------------------------- 1 | =================== 2 | headline 3 | =================== 4 | 5 | -------------------- 6 | Module: mod_skeleton 7 | -------------------- 8 | 9 | :Author: Jan Kneschke 10 | :Date: $Date: 2004/11/03 22:26:05 $ 11 | :Revision: $Revision: 1.2 $ 12 | 13 | :abstract: 14 | a nice, short abstrace about the module 15 | 16 | .. meta:: 17 | :keywords: lighttpd, skeleton 18 | 19 | .. contents:: Table of Contents 20 | 21 | Description 22 | =========== 23 | 24 | ... 25 | 26 | Options 27 | ======= 28 | 29 | ... 30 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/outdated/state.dot: -------------------------------------------------------------------------------- 1 | digraph state { 2 | edge [color=green]; 3 | connect -> reqstart -> read -> reqend -> handlereq -> respstart -> write -> respend -> connect; 4 | edge [color=grey]; 5 | reqend -> readpost -> handlereq [ label="POST" ]; 6 | edge [ color=blue] 7 | respend -> reqstart [ label="keep-alive" ]; 8 | edge [ color=lightblue] 9 | handlereq -> handlereq [ label="sub-request" ]; 10 | edge [style=dashed, color=red]; 11 | error -> close -> connect; 12 | error -> connect; 13 | handlereq -> error; 14 | read -> error; 15 | readpost -> error; 16 | write -> error; 17 | connect [shape=box]; 18 | } 19 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/scripts/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST= \ 2 | rrdtool-graph.sh \ 3 | spawn-php.sh 4 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/systemd/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=lighttpd.service 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/doc/systemd/lighttpd.service: -------------------------------------------------------------------------------- 1 | [Unit] 2 | Description=Lighttpd Daemon 3 | After=network.target 4 | 5 | [Service] 6 | ExecStartPre=/usr/sbin/lighttpd -t -f /etc/lighttpd/lighttpd.conf 7 | ExecStart=/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf 8 | 9 | [Install] 10 | WantedBy=multi-user.target 11 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/m4/ltversion.m4: -------------------------------------------------------------------------------- 1 | # ltversion.m4 -- version numbers -*- Autoconf -*- 2 | # 3 | # Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. 4 | # Written by Scott James Remnant, 2004 5 | # 6 | # This file is free software; the Free Software Foundation gives 7 | # unlimited permission to copy and/or distribute it, with or without 8 | # modifications, as long as this notice is preserved. 9 | 10 | # @configure_input@ 11 | 12 | # serial 4179 ltversion.m4 13 | # This file is part of GNU Libtool 14 | 15 | m4_define([LT_PACKAGE_VERSION], [2.4.6]) 16 | m4_define([LT_PACKAGE_REVISION], [2.4.6]) 17 | 18 | AC_DEFUN([LTVERSION_VERSION], 19 | [macro_version='2.4.6' 20 | macro_revision='2.4.6' 21 | _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) 22 | _LT_DECL(, macro_revision, 0) 23 | ]) 24 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/bitset.h: -------------------------------------------------------------------------------- 1 | #ifndef _BITSET_H_ 2 | #define _BITSET_H_ 3 | 4 | #include 5 | 6 | typedef struct { 7 | size_t *bits; 8 | size_t nbits; 9 | } bitset; 10 | 11 | bitset *bitset_init(size_t nbits); 12 | void bitset_reset(bitset *set); 13 | void bitset_free(bitset *set); 14 | 15 | void bitset_clear_bit(bitset *set, size_t pos); 16 | void bitset_set_bit(bitset *set, size_t pos); 17 | int bitset_test_bit(bitset *set, size_t pos); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/configfile.h: -------------------------------------------------------------------------------- 1 | #ifndef _CONFIG_PARSER_H_ 2 | #define _CONFIG_PARSER_H_ 3 | 4 | #include "array.h" 5 | #include "buffer.h" 6 | #include "server.h" 7 | 8 | typedef struct { 9 | server *srv; 10 | int ok; 11 | array *all_configs; 12 | array *configs_stack; /* to parse nested block */ 13 | data_config *current; /* current started with { */ 14 | buffer *basedir; 15 | } config_t; 16 | 17 | void *configparserAlloc(void *(*mallocProc)(size_t)); 18 | void configparserFree(void *p, void (*freeProc)(void*)); 19 | void configparser(void *yyp, int yymajor, buffer *yyminor, config_t *ctx); 20 | int config_parse_file(server *srv, config_t *context, const char *fn); 21 | int config_parse_cmd(server *srv, config_t *context, const char *cmd); 22 | data_unset *configparser_merge_data(data_unset *op1, const data_unset *op2); 23 | 24 | void config_cond_cache_reset(server *srv, connection *con); 25 | void config_cond_cache_reset_item(server *srv, connection *con, comp_key_t item); 26 | 27 | #define config_cond_cache_reset_all_items(srv, con) \ 28 | config_cond_cache_reset_item(srv, con, COMP_LAST_ELEMENT); 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/configparser.h: -------------------------------------------------------------------------------- 1 | #define TK_EOL 1 2 | #define TK_ASSIGN 2 3 | #define TK_APPEND 3 4 | #define TK_LKEY 4 5 | #define TK_PLUS 5 6 | #define TK_STRING 6 7 | #define TK_INTEGER 7 8 | #define TK_LPARAN 8 9 | #define TK_RPARAN 9 10 | #define TK_COMMA 10 11 | #define TK_ARRAY_ASSIGN 11 12 | #define TK_GLOBAL 12 13 | #define TK_LCURLY 13 14 | #define TK_RCURLY 14 15 | #define TK_ELSE 15 16 | #define TK_DOLLAR 16 17 | #define TK_SRVVARNAME 17 18 | #define TK_LBRACKET 18 19 | #define TK_RBRACKET 19 20 | #define TK_EQ 20 21 | #define TK_MATCH 21 22 | #define TK_NE 22 23 | #define TK_NOMATCH 23 24 | #define TK_INCLUDE 24 25 | #define TK_INCLUDE_SHELL 25 26 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/connections.h: -------------------------------------------------------------------------------- 1 | #ifndef _CONNECTIONS_H_ 2 | #define _CONNECTIONS_H_ 3 | 4 | #include "server.h" 5 | #include "fdevent.h" 6 | 7 | connection *connection_init(server *srv); 8 | int connection_reset(server *srv, connection *con); 9 | void connections_free(server *srv); 10 | 11 | connection * connection_accept(server *srv, server_socket *srv_sock); 12 | int connection_close(server *srv, connection *con); 13 | 14 | int connection_set_state(server *srv, connection *con, connection_state_t state); 15 | const char * connection_get_state(connection_state_t state); 16 | const char * connection_get_short_state(connection_state_t state); 17 | int connection_state_machine(server *srv, connection *con); 18 | 19 | #endif 20 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/crc32.h: -------------------------------------------------------------------------------- 1 | #ifndef __crc32cr_table_h__ 2 | #define __crc32cr_table_h__ 3 | 4 | #ifdef HAVE_CONFIG_H 5 | # include "config.h" 6 | #endif 7 | 8 | #include 9 | 10 | #if defined HAVE_STDINT_H 11 | # include 12 | #elif defined HAVE_INTTYPES_H 13 | # include 14 | #endif 15 | 16 | uint32_t generate_crc32c(char *string, size_t length); 17 | 18 | #endif 19 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/etag.h: -------------------------------------------------------------------------------- 1 | #ifndef ETAG_H 2 | #define ETAG_H 3 | 4 | #include "buffer.h" 5 | 6 | #include 7 | #include 8 | #include 9 | 10 | typedef enum { ETAG_USE_INODE = 1, ETAG_USE_MTIME = 2, ETAG_USE_SIZE = 4 } etag_flags_t; 11 | 12 | int etag_is_equal(buffer *etag, const char *matches); 13 | int etag_create(buffer *etag, struct stat *st, etag_flags_t flags); 14 | int etag_mutate(buffer *mut, buffer *etag); 15 | 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/http_chunk.h: -------------------------------------------------------------------------------- 1 | #ifndef _HTTP_CHUNK_H_ 2 | #define _HTTP_CHUNK_H_ 3 | 4 | #include "server.h" 5 | #include 6 | 7 | int http_chunk_append_mem(server *srv, connection *con, const char * mem, size_t len); 8 | int http_chunk_append_buffer(server *srv, connection *con, buffer *mem); 9 | int http_chunk_append_file(server *srv, connection *con, buffer *fn, off_t offset, off_t len); 10 | off_t http_chunkqueue_length(server *srv, connection *con); 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/inet_ntop_cache.h: -------------------------------------------------------------------------------- 1 | #ifndef _INET_NTOP_CACHE_H_ 2 | #define _INET_NTOP_CACHE_H_ 3 | 4 | #include "base.h" 5 | const char * inet_ntop_cache_get_ip(server *srv, sock_addr *addr); 6 | 7 | #endif 8 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/joblist.h: -------------------------------------------------------------------------------- 1 | #ifndef _JOB_LIST_H_ 2 | #define _JOB_LIST_H_ 3 | 4 | #include "base.h" 5 | 6 | int joblist_append(server *srv, connection *con); 7 | void joblist_free(server *srv, connections *joblist); 8 | 9 | int fdwaitqueue_append(server *srv, connection *con); 10 | void fdwaitqueue_free(server *srv, connections *fdwaitqueue); 11 | connection *fdwaitqueue_unshift(server *srv, connections *fdwaitqueue); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/log.h: -------------------------------------------------------------------------------- 1 | #ifndef _LOG_H_ 2 | #define _LOG_H_ 3 | 4 | #include "server.h" 5 | 6 | /* Close fd and _try_ to get a /dev/null for it instead. 7 | * Returns 0 on success and -1 on failure (fd gets closed in all cases) 8 | */ 9 | int openDevNull(int fd); 10 | 11 | #define WP() log_error_write(srv, __FILE__, __LINE__, ""); 12 | 13 | int open_logfile_or_pipe(server *srv, const char* logfile); 14 | 15 | int log_error_open(server *srv); 16 | int log_error_close(server *srv); 17 | int log_error_write(server *srv, const char *filename, unsigned int line, const char *fmt, ...); 18 | int log_error_cycle(server *srv); 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/mod_auth.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/lighttpd-1.4.32/src/mod_auth.h -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/mod_cml.h: -------------------------------------------------------------------------------- 1 | #ifndef _MOD_CACHE_H_ 2 | #define _MOD_CACHE_H_ 3 | 4 | #include "buffer.h" 5 | #include "server.h" 6 | #include "response.h" 7 | 8 | #include "stream.h" 9 | #include "plugin.h" 10 | 11 | #if defined(HAVE_MEMCACHE_H) 12 | #include 13 | #endif 14 | 15 | #define plugin_data mod_cache_plugin_data 16 | 17 | typedef struct { 18 | buffer *ext; 19 | 20 | array *mc_hosts; 21 | buffer *mc_namespace; 22 | #if defined(HAVE_MEMCACHE_H) 23 | struct memcache *mc; 24 | #endif 25 | buffer *power_magnet; 26 | } plugin_config; 27 | 28 | typedef struct { 29 | PLUGIN_DATA; 30 | 31 | buffer *basedir; 32 | buffer *baseurl; 33 | 34 | buffer *trigger_handler; 35 | 36 | plugin_config **config_storage; 37 | 38 | plugin_config conf; 39 | } plugin_data; 40 | 41 | int cache_parse_lua(server *srv, connection *con, plugin_data *p, buffer *fn); 42 | 43 | #endif 44 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/mod_cml_funcs.h: -------------------------------------------------------------------------------- 1 | #ifndef _MOD_CML_FUNCS_H_ 2 | #define _MOD_CML_FUNCS_H_ 3 | 4 | #ifdef HAVE_CONFIG_H 5 | # include "config.h" 6 | #endif 7 | 8 | #ifdef HAVE_LUA_H 9 | #include 10 | 11 | int f_crypto_md5(lua_State *L); 12 | int f_file_mtime(lua_State *L); 13 | int f_file_isreg(lua_State *L); 14 | int f_file_isdir(lua_State *L); 15 | int f_dir_files(lua_State *L); 16 | 17 | int f_memcache_exists(lua_State *L); 18 | int f_memcache_get_string(lua_State *L); 19 | int f_memcache_get_long(lua_State *L); 20 | #endif 21 | #endif 22 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/mod_magnet_cache.h: -------------------------------------------------------------------------------- 1 | #ifndef _MOD_MAGNET_CACHE_H_ 2 | #define _MOD_MAGNET_CACHE_H_ 3 | 4 | #include "buffer.h" 5 | #include "base.h" 6 | 7 | #ifdef HAVE_LUA_H 8 | #include 9 | 10 | typedef struct { 11 | buffer *name; 12 | buffer *etag; 13 | 14 | lua_State *L; 15 | 16 | time_t last_used; /* LRU */ 17 | } script; 18 | 19 | typedef struct { 20 | script **ptr; 21 | 22 | size_t used; 23 | size_t size; 24 | } script_cache; 25 | 26 | script_cache *script_cache_init(void); 27 | void script_cache_free(script_cache *cache); 28 | 29 | lua_State *script_cache_get_script(server *srv, connection *con, 30 | script_cache *cache, buffer *name); 31 | 32 | #endif 33 | #endif 34 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/mod_ssi.h: -------------------------------------------------------------------------------- 1 | #ifndef _MOD_SSI_H_ 2 | #define _MOD_SSI_H_ 3 | 4 | #include "base.h" 5 | #include "buffer.h" 6 | #include "array.h" 7 | 8 | #include "plugin.h" 9 | 10 | #ifdef HAVE_PCRE_H 11 | #include 12 | #endif 13 | 14 | /* plugin config for all request/connections */ 15 | 16 | typedef struct { 17 | array *ssi_extension; 18 | buffer *content_type; 19 | } plugin_config; 20 | 21 | typedef struct { 22 | PLUGIN_DATA; 23 | 24 | #ifdef HAVE_PCRE_H 25 | pcre *ssi_regex; 26 | #endif 27 | buffer *timefmt; 28 | int sizefmt; 29 | 30 | buffer *stat_fn; 31 | 32 | array *ssi_vars; 33 | array *ssi_cgi_env; 34 | 35 | int if_level, if_is_false_level, if_is_false, if_is_false_endif; 36 | 37 | plugin_config **config_storage; 38 | 39 | plugin_config conf; 40 | } plugin_data; 41 | 42 | int ssi_eval_expr(server *srv, connection *con, plugin_data *p, const char *expr); 43 | 44 | #endif 45 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/mod_ssi_expr.h: -------------------------------------------------------------------------------- 1 | #ifndef _MOD_SSI_EXPR_H_ 2 | #define _MOD_SSI_EXPR_H_ 3 | 4 | #include "buffer.h" 5 | 6 | typedef struct { 7 | enum { SSI_TYPE_UNSET, SSI_TYPE_BOOL, SSI_TYPE_STRING } type; 8 | 9 | buffer *str; 10 | int bo; 11 | } ssi_val_t; 12 | 13 | typedef struct { 14 | int ok; 15 | 16 | ssi_val_t val; 17 | 18 | void *srv; 19 | } ssi_ctx_t; 20 | 21 | typedef enum { SSI_COND_UNSET, SSI_COND_LE, SSI_COND_GE, SSI_COND_EQ, SSI_COND_NE, SSI_COND_LT, SSI_COND_GT } ssi_expr_cond; 22 | 23 | void *ssiexprparserAlloc(void *(*mallocProc)(size_t)); 24 | void ssiexprparserFree(void *p, void (*freeProc)(void*)); 25 | void ssiexprparser(void *yyp, int yymajor, buffer *yyminor, ssi_ctx_t *ctx); 26 | 27 | int ssi_val_tobool(ssi_val_t *B); 28 | ssi_val_t *ssi_val_init(); 29 | void ssi_val_free(ssi_val_t *s); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/mod_ssi_exprparser.h: -------------------------------------------------------------------------------- 1 | #define TK_AND 1 2 | #define TK_OR 2 3 | #define TK_EQ 3 4 | #define TK_NE 4 5 | #define TK_GT 5 6 | #define TK_GE 6 7 | #define TK_LT 7 8 | #define TK_LE 8 9 | #define TK_NOT 9 10 | #define TK_LPARAN 10 11 | #define TK_RPARAN 11 12 | #define TK_VALUE 12 13 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/network.h: -------------------------------------------------------------------------------- 1 | #ifndef _NETWORK_H_ 2 | #define _NETWORK_H_ 3 | 4 | #include "server.h" 5 | 6 | int network_write_chunkqueue(server *srv, connection *con, chunkqueue *c, off_t max_bytes); 7 | 8 | int network_init(server *srv); 9 | int network_close(server *srv); 10 | 11 | int network_register_fdevents(server *srv); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/proc_open.h: -------------------------------------------------------------------------------- 1 | 2 | #include "buffer.h" 3 | 4 | #ifdef WIN32 5 | #include 6 | typedef HANDLE descriptor_t; 7 | typedef HANDLE proc_pid_t; 8 | #else 9 | typedef int descriptor_t; 10 | typedef pid_t proc_pid_t; 11 | #endif 12 | 13 | typedef struct { 14 | descriptor_t parent, child; 15 | int fd; 16 | } pipe_t; 17 | 18 | typedef struct { 19 | pipe_t in, out, err; 20 | proc_pid_t child; 21 | } proc_handler_t; 22 | 23 | int proc_close(proc_handler_t *ht); 24 | int proc_open(proc_handler_t *ht, const char *command); 25 | int proc_open_buffer(const char *command, buffer *in, buffer *out, buffer *err); 26 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/request.h: -------------------------------------------------------------------------------- 1 | #ifndef _REQUEST_H_ 2 | #define _REQUEST_H_ 3 | 4 | #include "server.h" 5 | 6 | int http_request_parse(server *srv, connection *con); 7 | int http_request_header_finished(server *srv, connection *con); 8 | 9 | #endif 10 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/response.h: -------------------------------------------------------------------------------- 1 | #ifndef _RESPONSE_H_ 2 | #define _RESPONSE_H_ 3 | 4 | #include "server.h" 5 | 6 | #include 7 | 8 | int http_response_parse(server *srv, connection *con); 9 | int http_response_write_header(server *srv, connection *con); 10 | 11 | int response_header_insert(server *srv, connection *con, const char *key, size_t keylen, const char *value, size_t vallen); 12 | int response_header_overwrite(server *srv, connection *con, const char *key, size_t keylen, const char *value, size_t vallen); 13 | int response_header_append(server *srv, connection *con, const char *key, size_t keylen, const char *value, size_t vallen); 14 | 15 | handler_t http_response_prepare(server *srv, connection *con); 16 | int http_response_redirect_to_directory(server *srv, connection *con); 17 | int http_response_handle_cachable(server *srv, connection *con, buffer * mtime); 18 | 19 | buffer * strftime_cache_get(server *srv, time_t last_mod); 20 | #endif 21 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/server.h: -------------------------------------------------------------------------------- 1 | #ifndef _SERVER_H_ 2 | #define _SERVER_H_ 3 | 4 | #include "base.h" 5 | 6 | typedef struct { 7 | char *key; 8 | char *value; 9 | } two_strings; 10 | 11 | typedef enum { CONFIG_UNSET, CONFIG_DOCUMENT_ROOT } config_var_t; 12 | 13 | int config_read(server *srv, const char *fn); 14 | int config_set_defaults(server *srv); 15 | buffer *config_get_value_buffer(server *srv, connection *con, config_var_t field); 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/splaytree.h: -------------------------------------------------------------------------------- 1 | #ifndef _SPLAY_TREE_H_ 2 | #define _SPLAY_TREE_H_ 3 | 4 | typedef struct tree_node { 5 | struct tree_node * left, * right; 6 | int key; 7 | int size; /* maintained to be the number of nodes rooted here */ 8 | 9 | void *data; 10 | } splay_tree; 11 | 12 | 13 | splay_tree * splaytree_splay (splay_tree *t, int key); 14 | splay_tree * splaytree_insert(splay_tree *t, int key, void *data); 15 | splay_tree * splaytree_delete(splay_tree *t, int key); 16 | splay_tree * splaytree_size(splay_tree *t); 17 | 18 | #define splaytree_size(x) (((x)==NULL) ? 0 : ((x)->size)) 19 | /* This macro returns the size of a node. Unlike "x->size", */ 20 | /* it works even if x=NULL. The test could be avoided by using */ 21 | /* a special version of NULL which was a real node with size 0. */ 22 | 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/stat_cache.h: -------------------------------------------------------------------------------- 1 | #ifndef _FILE_CACHE_H_ 2 | #define _FILE_CACHE_H_ 3 | 4 | #include "base.h" 5 | 6 | stat_cache *stat_cache_init(void); 7 | void stat_cache_free(stat_cache *fc); 8 | 9 | handler_t stat_cache_get_entry(server *srv, connection *con, buffer *name, stat_cache_entry **fce); 10 | handler_t stat_cache_handle_fdevent(server *srv, void *_fce, int revent); 11 | 12 | int stat_cache_trigger_cleanup(server *srv); 13 | #endif 14 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/status_counter.h: -------------------------------------------------------------------------------- 1 | #ifndef _STATUS_COUNTER_H_ 2 | #define _STATUS_COUNTER_H_ 3 | 4 | #include "array.h" 5 | #include "base.h" 6 | 7 | #include 8 | 9 | data_integer *status_counter_get_counter(server *srv, const char *s, size_t len); 10 | int status_counter_inc(server *srv, const char *s, size_t len); 11 | int status_counter_dec(server *srv, const char *s, size_t len); 12 | int status_counter_set(server *srv, const char *s, size_t len, int val); 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/stream.h: -------------------------------------------------------------------------------- 1 | #ifndef _STREAM_H_ 2 | #define _STREAM_H_ 3 | 4 | #include "buffer.h" 5 | 6 | typedef struct { 7 | char *start; 8 | off_t size; 9 | } stream; 10 | 11 | int stream_open(stream *f, buffer *fn); 12 | int stream_close(stream *f); 13 | 14 | #endif 15 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/sys-mmap.h: -------------------------------------------------------------------------------- 1 | #ifndef WIN32_MMAP_H 2 | #define WIN32_MMAP_H 3 | 4 | #ifdef __WIN32 5 | 6 | #define MAP_FAILED -1 7 | #define PROT_SHARED 0 8 | #define MAP_SHARED 0 9 | #define PROT_READ 0 10 | 11 | #define mmap(a, b, c, d, e, f) (-1) 12 | #define munmap(a, b) (-1) 13 | 14 | #include 15 | 16 | #else 17 | #include 18 | 19 | #ifndef MAP_FAILED 20 | #define MAP_FAILED -1 21 | #endif 22 | #endif 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/sys-socket.h: -------------------------------------------------------------------------------- 1 | #ifndef WIN32_SOCKET_H 2 | #define WIN32_SOCKET_H 3 | 4 | #ifdef __WIN32 5 | 6 | #include 7 | 8 | #define ECONNRESET WSAECONNRESET 9 | #define EINPROGRESS WSAEINPROGRESS 10 | #define EALREADY WSAEALREADY 11 | #define ECONNABORTED WSAECONNABORTED 12 | #define ioctl ioctlsocket 13 | #define hstrerror(x) "" 14 | #else 15 | #include 16 | #include 17 | #include 18 | #include 19 | #include 20 | #include 21 | 22 | #include 23 | #endif 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/src/version.h: -------------------------------------------------------------------------------- 1 | #ifndef _VERSION_H_ 2 | #define _VERSION_H_ 3 | 4 | #ifdef HAVE_VERSION_H 5 | # include "versionstamp.h" 6 | #else 7 | # define REPO_VERSION "" 8 | #endif 9 | 10 | #define PACKAGE_DESC PACKAGE_NAME "/" PACKAGE_VERSION REPO_VERSION 11 | 12 | #endif 13 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/cleanup.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | if test x$srcdir = x; then 4 | srcdir=. 5 | fi 6 | 7 | tmpdir=$top_builddir/tests/tmp/ 8 | 9 | # remove test-framework 10 | rm -rf $tmpdir 11 | 12 | printf "%-40s" "cleaning up" 13 | 14 | exit 0 15 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/123/12345.html: -------------------------------------------------------------------------------- 1 | 12345 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/123/12345.txt: -------------------------------------------------------------------------------- 1 | 12345 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/123/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=12345.html 12345.txt dummyfile.bla phpinfo.php 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/123/dummyfile.bla: -------------------------------------------------------------------------------- 1 | 12345 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/123/phpinfo.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS=123 www 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/404.fcgi: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | #use CGI qw/:standard/; 3 | use CGI::Fast qw(:standard); 4 | my $cgi = new CGI; 5 | while (new CGI::Fast) { 6 | my $request_uri = $ENV{'REQUEST_URI'}; 7 | print (STDERR "REQUEST_URI: $request_uri\n"); 8 | if ($request_uri =~ m/^\/dynamic\/200\// ) { 9 | print header ( -status => 200, 10 | -type => 'text/plain' ); 11 | print ("found here\n"); 12 | } 13 | elsif ($request_uri =~ m|^/dynamic/302/| ) { 14 | print header( -status=>302, 15 | -location => 'http://www.example.org/'); 16 | } 17 | elsif ($request_uri =~ m/^\/dynamic\/404\// ) { 18 | print header ( -status => 404 19 | -type => 'text/plain' ); 20 | print ("Not found here\n"); 21 | } 22 | else { 23 | print header ( -status => 500, 24 | -type => 'text/plain'); 25 | print ("huh\n"); 26 | }; 27 | }; 28 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/404.html: -------------------------------------------------------------------------------- 1 | static not found 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/404.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | use CGI qw/:standard/; 3 | my $cgi = new CGI; 4 | my $request_uri = $ENV{'REQUEST_URI'}; 5 | print (STDERR "REQUEST_URI: $request_uri\n"); 6 | 7 | if ($request_uri =~ m/^\/dynamic\/200\// ) { 8 | print header ( -status => 200, 9 | -type => 'text/plain' ); 10 | print ("found here\n"); 11 | } 12 | elsif ($request_uri =~ m|^/dynamic/302/| ) { 13 | print header( -status=>302, 14 | -location => 'http://www.example.org/'); 15 | } 16 | elsif ($request_uri =~ m/^\/dynamic\/404\// ) { 17 | print header ( -status => 404 18 | -type => 'text/plain' ); 19 | print ("Not found here\n"); 20 | } 21 | elsif ($request_uri =~ m/^\/send404\.pl/ ) { 22 | print header ( -status => 404 23 | -type => 'text/plain' ); 24 | print ("Not found here (send404)\n"); 25 | } 26 | elsif ($request_uri =~ m/^\/dynamic\/nostatus\// ) { 27 | print ("found here\n"); 28 | } 29 | else { 30 | print header ( -status => 500, 31 | -type => 'text/plain'); 32 | print ("huh\n"); 33 | }; 34 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=cgi.php cgi.pl index.html index.txt phpinfo.php \ 2 | redirect.php cgi-pathinfo.pl get-env.php get-server-env.php \ 3 | nph-status.pl prefix.fcgi get-header.pl ssi.shtml get-post-len.pl \ 4 | exec-date.shtml 404.fcgi 404.html 404.pl send404.pl crlfcrash.pl sendfile.php 5 | SUBDIRS=go indexfile expire 6 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/cgi-pathinfo.pl: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl 2 | 3 | print "Content-Type: text/html\r\n\r\n"; 4 | 5 | print $ENV{"PATH_INFO"}; 6 | 7 | 0; 8 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/cgi.php: -------------------------------------------------------------------------------- 1 | \n"; 5 | #phpinfo(); 6 | #header("Content-Length: ".ob_get_length()); 7 | #ob_end_flush(); 8 | 9 | ?> 10 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/cgi.pl: -------------------------------------------------------------------------------- 1 | #! /usr/bin/perl 2 | 3 | print "Content-Type: text/html\r\n\r\n"; 4 | 5 | print $ENV{"SCRIPT_NAME"}; 6 | 7 | 0; 8 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/crlfcrash.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | # 3 | print "Location: http://www.example.org/\r\n\n\n"; 4 | exit; 5 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/exec-date.shtml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/expire/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=access.txt modification.txt 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/expire/access.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/lighttpd-1.4.32/tests/docroot/www/expire/access.txt -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/expire/modification.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mtcp-stack/mtcp/0463aad5ecb6b5bca85903156ce1e314a58efc19/apps/lighttpd-1.4.32/tests/docroot/www/expire/modification.txt -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/get-env.php: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/get-header.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | my $s = $ENV{$ENV{"QUERY_STRING"}}; 4 | 5 | printf("Content-Length: %d\r\n", length($s)); 6 | print "Content-Type: text/plain\r\n\r\n"; 7 | 8 | print $s; 9 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/get-post-len.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | 4 | print "Content-Type: text/plain\r\n\r\n"; 5 | 6 | if ($ENV{"REQUEST_METHOD"} eq "POST") { 7 | my $l = 0; 8 | while(<>) { 9 | $l += length($_); 10 | } 11 | print $l; 12 | } else { 13 | print "0"; 14 | } 15 | 16 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/get-server-env.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/go/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=cgi.php 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/go/cgi.php: -------------------------------------------------------------------------------- 1 | \n"; 5 | #phpinfo(); 6 | #header("Content-Length: ".ob_get_length()); 7 | #ob_end_flush(); 8 | 9 | ?> 10 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/indexfile/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST=index.php return-404.php rewrite.php 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/indexfile/index.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/indexfile/return-404.php: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/indexfile/rewrite.php: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/nph-status.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | 3 | my $status = 200; 4 | 5 | if (defined $ENV{"QUERY_STRING"}) { 6 | $status = $ENV{"QUERY_STRING"}; 7 | } 8 | 9 | print "HTTP/1.0 ".$status." FooBar\r\n"; 10 | print "\r\n"; 11 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/phpinfo.php: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/prefix.fcgi: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/redirect.php: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/send404.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl 2 | use CGI qw/:standard/; 3 | print header ( -status => 404 4 | -type => 'text/plain' ); 5 | print ("send404\n"); 6 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/sendfile.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/docroot/www/ssi.shtml: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/fcgi-auth.c: -------------------------------------------------------------------------------- 1 | #ifdef HAVE_CONFIG_H 2 | #include "config.h" 3 | #endif 4 | #ifdef HAVE_FASTCGI_FASTCGI_H 5 | #include 6 | #else 7 | #include 8 | #endif 9 | #include 10 | #include 11 | #include 12 | 13 | int main (void) { 14 | char* p; 15 | 16 | while (FCGI_Accept() >= 0) { 17 | /* wait for fastcgi authorizer request */ 18 | 19 | printf("Content-type: text/html\r\n"); 20 | 21 | if (((p = getenv("QUERY_STRING")) == NULL) || 22 | strcmp(p, "ok") != 0) { 23 | printf("Status: 403 Forbidden\r\n\r\n"); 24 | } else { 25 | printf("\r\n"); 26 | /* default Status is 200 - allow access */ 27 | } 28 | 29 | printf("foobar\r\n"); 30 | } 31 | 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/lighttpd.htpasswd: -------------------------------------------------------------------------------- 1 | des:12tMnfw882VDQ 2 | md5:$1$md5$kIa7Juuiv8zja0ILQPR36/ 3 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/lighttpd.user: -------------------------------------------------------------------------------- 1 | jan:jan 2 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/mod-access.t: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | BEGIN { 3 | # add current source dir to the include-path 4 | # we need this for make distcheck 5 | (my $srcdir = $0) =~ s,/[^/]+$,/,; 6 | unshift @INC, $srcdir; 7 | } 8 | 9 | use strict; 10 | use IO::Socket; 11 | use Test::More tests => 4; 12 | use LightyTest; 13 | 14 | my $tf = LightyTest->new(); 15 | my $t; 16 | 17 | ok($tf->start_proc == 0, "Starting lighttpd") or die(); 18 | 19 | $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; 24 | ok($tf->handle_http($t) == 0, 'forbid access to ...~'); 25 | 26 | $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 403 } ]; 31 | ok($tf->handle_http($t) == 0, '#1230 - forbid access to ...~ - trailing slash'); 32 | 33 | ok($tf->stop_proc == 0, "Stopping lighttpd"); 34 | 35 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/mod-compress.conf: -------------------------------------------------------------------------------- 1 | debug.log-request-handling = "enable" 2 | debug.log-response-header = "disable" 3 | debug.log-request-header = "disable" 4 | 5 | server.document-root = env.SRCDIR + "/tmp/lighttpd/servers/www.example.org/pages/" 6 | server.pid-file = env.SRCDIR + "/tmp/lighttpd/lighttpd.pid" 7 | 8 | ## bind to port (default: 80) 9 | server.port = 2048 10 | 11 | ## bind to localhost (default: all interfaces) 12 | server.bind = "localhost" 13 | server.errorlog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.error.log" 14 | server.breakagelog = env.SRCDIR + "/tmp/lighttpd/logs/lighttpd.breakage.log" 15 | server.name = "www.example.org" 16 | 17 | server.modules = ( 18 | "mod_compress" 19 | ) 20 | 21 | ######################## MODULE CONFIG ############################ 22 | 23 | mimetype.assign = ( 24 | ".html" => "text/html", 25 | ".txt" => "text/plain; charset=utf-8", 26 | ) 27 | 28 | $HTTP["host"] == "cache.example.org" { 29 | compress.cache-dir = env.SRCDIR + "/tmp/lighttpd/cache/compress/" 30 | } 31 | compress.filetype = ("text/plain", "text/html") 32 | 33 | compress.allowed-encodings = ( "gzip", "deflate" ) 34 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/mod-ssi.t: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | BEGIN { 3 | # add current source dir to the include-path 4 | # we need this for make distcheck 5 | (my $srcdir = $0) =~ s,/[^/]+$,/,; 6 | unshift @INC, $srcdir; 7 | } 8 | 9 | use strict; 10 | use IO::Socket; 11 | use Test::More tests => 4; 12 | use LightyTest; 13 | 14 | my $tf = LightyTest->new(); 15 | my $t; 16 | 17 | ok($tf->start_proc == 0, "Starting lighttpd") or die(); 18 | 19 | # mod-cgi 20 | # 21 | $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => "/ssi.shtml\n" } ]; 26 | ok($tf->handle_http($t) == 0, 'ssi - echo '); 27 | 28 | 29 | ## bug #280 30 | $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 200, 'HTTP-Content' => "2\n\n" } ]; 35 | ok($tf->handle_http($t) == 0, 'ssi - echo '); 36 | 37 | 38 | ok($tf->stop_proc == 0, "Stopping lighttpd"); 39 | 40 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/mod-userdir.t: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env perl 2 | BEGIN { 3 | # add current source dir to the include-path 4 | # we need this for make distcheck 5 | (my $srcdir = $0) =~ s,/[^/]+$,/,; 6 | unshift @INC, $srcdir; 7 | } 8 | 9 | use strict; 10 | use IO::Socket; 11 | use Test::More tests => 5; 12 | use LightyTest; 13 | 14 | my $tf = LightyTest->new(); 15 | my $t; 16 | 17 | ok($tf->start_proc == 0, "Starting lighttpd") or die(); 18 | 19 | # get current user 20 | 21 | $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 404 } ]; 26 | ok($tf->handle_http($t) == 0, 'valid user'); 27 | 28 | $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => 'http://'.$tf->{HOSTNAME}.':'.$tf->{PORT}.'/~jan/' } ]; 33 | ok($tf->handle_http($t) == 0, 'valid user + redirect'); 34 | 35 | $t->{REQUEST} = ( <{RESPONSE} = [ { 'HTTP-Protocol' => 'HTTP/1.0', 'HTTP-Status' => 301, 'Location' => 'http://www.example.org/~jan/' } ]; 41 | ok($tf->handle_http($t) == 0, 'valid user + redirect'); 42 | 43 | ok($tf->stop_proc == 0, "Stopping lighttpd"); 44 | 45 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/run-tests.pl: -------------------------------------------------------------------------------- 1 | #! /usr/bin/env perl 2 | 3 | use strict; 4 | 5 | use Test::Harness qw(&runtests $verbose); 6 | $verbose = (defined $ENV{'VERBOSE'} ? $ENV{'VERBOSE'} : 0); 7 | my $tests = (defined $ENV{'RUNTESTS'} ? $ENV{'RUNTESTS'} : ''); 8 | 9 | my $srcdir = (defined $ENV{'srcdir'} ? $ENV{'srcdir'} : '.'); 10 | 11 | opendir DIR, $srcdir; 12 | my (@fs, $f); 13 | while ($f = readdir(DIR)) { 14 | if ($f =~ /^(.*)\.t$/) { 15 | next if ($tests ne '' and $tests !~ /(^|\s+)$1(\s+|$)/); 16 | push @fs, $srcdir.'/'.$f; 17 | } 18 | } 19 | closedir DIR; 20 | runtests (sort @fs); 21 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/var-include-sub.conf: -------------------------------------------------------------------------------- 1 | # file to be included 2 | $HTTP["host"] =~ "^" + server.name + "$" { 3 | url.redirect = ( 4 | "^/include$" => "/good_include", 5 | "^/concat$" => "/good_" + "concat", 6 | "^/servername1$" => "/good_" + server.name, 7 | "^/servername2$" => server.name + "/good_", 8 | "^/servername3$" => "/good_" + server.name + "/", 9 | "^/var.myvar$" => "/good_var_myvar" + var.myvar, 10 | "^/myvar$" => "/good_myvar" + myvar, 11 | "^/number1$" => "/good_number" + one, 12 | "^/number2$" => one + "/good_number", 13 | "^/env$" => "/" + env.env_test, 14 | ) 15 | num = 1 16 | num2 = 2 17 | num2 += 1 18 | # without var prefix 19 | mystr = "string" 20 | mystr += "_append" 21 | # from parent 22 | one += 1 23 | url.redirect += ( 24 | "^/array_append$" => "/good_array_append", 25 | "^/string_append$" => "/good_" + mystr, 26 | "^/number_append$" => "/good_" + one, 27 | ) 28 | 29 | cmd = "echo cmd_ok=456" 30 | include_shell cmd 31 | url.redirect += ( 32 | "^/include_shell$" => "/good_include_shell_" + cmd_ok, 33 | ) 34 | } 35 | -------------------------------------------------------------------------------- /apps/lighttpd-1.4.32/tests/wrapper.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ## get some parameters from the makefile 4 | 5 | srcdir=$1 6 | top_builddir=$2 7 | export SHELL srcdir top_builddir 8 | 9 | exec $3 10 | -------------------------------------------------------------------------------- /apps/perf/.gitignore: -------------------------------------------------------------------------------- 1 | logs/ 2 | client 3 | run 4 | log_* 5 | -------------------------------------------------------------------------------- /apps/perf/add-delay-bw.sh: -------------------------------------------------------------------------------- 1 | ETH=10gp1 2 | DELAY=$1 3 | BW=$2 4 | BURST=400 #$2 #`expr $2 \* 5` 5 | #LAT=$5 6 | 7 | sudo modprobe ifb 8 | ip link set dev ifb0 up 9 | sudo tc qdisc add dev ${ETH} ingress 10 | sudo tc filter add dev ${ETH} parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0 11 | 12 | sudo tc qdisc add dev ifb0 root handle 1: netem limit 10000000 delay ${DELAY}ms 13 | sudo tc qdisc add dev ifb0 parent 1: handle 2: tbf rate ${BW}mbit burst ${BURST}kbit latency ${DELAY}ms 14 | 15 | #sudo tc qdisc add dev ifb0 root handle 1: tbf rate ${BW}mbit burst ${BURST}kbit latency 20ms 16 | #sudo tc qdisc add dev ifb0 parent 1: handle 2: netem delay ${DELAY}ms 17 | 18 | echo "Created a" $BW "mbps link with 1BDP buffering and" $DELAY "ms delay." 19 | -------------------------------------------------------------------------------- /apps/perf/add-delay.sh: -------------------------------------------------------------------------------- 1 | ETH=$1 2 | DELAY=$2 3 | 4 | sudo modprobe ifb 5 | ip link set dev ifb0 up 6 | sudo tc qdisc add dev ${ETH} ingress 7 | sudo tc filter add dev ${ETH} parent ffff: protocol ip u32 match u32 0 0 flowid 1:1 action mirred egress redirect dev ifb0 8 | sudo tc qdisc add dev ifb0 root netem delay ${DELAY}ms 9 | 10 | -------------------------------------------------------------------------------- /apps/perf/rm-delay.sh: -------------------------------------------------------------------------------- 1 | ETH=$1 2 | 3 | sudo tc qdisc del dev $ETH ingress 4 | sudo tc qdisc del dev ifb0 parent 1: handle 2: netem 5 | sudo tc qdisc del dev ifb0 root 6 | -------------------------------------------------------------------------------- /config/affinity-netmap.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | #### -NOTE- This script only works for ixgbe driver #### 3 | 4 | import os 5 | import sys 6 | import subprocess 7 | 8 | def execute(cmd): 9 | try: 10 | proc = subprocess.Popen(cmd, shell = True, stdout = subprocess.PIPE) 11 | return proc.communicate()[0] 12 | except: 13 | pass 14 | return None 15 | 16 | if os.getuid() != 0: 17 | print 'You must be root!' 18 | sys.exit(1) 19 | 20 | num_cpus = len(execute('cat /proc/cpuinfo | grep processor').strip().split('\n')) 21 | 22 | if len(sys.argv) < 2: 23 | print 'usage: %s ' % sys.argv[0] 24 | sys.exit(1) 25 | 26 | ifname = sys.argv[1] 27 | 28 | intrmap = execute('cat /proc/interrupts | grep %s-TxRx-' % ifname).strip().split('\n') 29 | 30 | for intr in intrmap: 31 | irq = int(intr.split()[0][:-1]) 32 | name = intr.split()[-1] 33 | queue = int(name[name.rfind('-') + 1:]) 34 | 35 | cpu = queue 36 | 37 | print 'echo %x > /proc/irq/%d/smp_affinity' % (1 << cpu, irq) 38 | execute('echo %x > /proc/irq/%d/smp_affinity' % (1 << cpu, irq)) 39 | -------------------------------------------------------------------------------- /config/sample_arp.conf: -------------------------------------------------------------------------------- 1 | # This file is to configure static arp tables. 2 | # Rename this file to arp.conf and set the appropriate values. 3 | # Please save this file as config/arp.conf. Put the config/ 4 | # directory in the same directory where the binary lies. 5 | # 6 | # (Destination IP address/IP_prefix) (Destination MAC address) 7 | 8 | ARP_ENTRY 2 9 | 10.0.0.1/32 00:00:00:00:00:01 10 | 10.0.1.1/32 00:00:00:00:00:02 -------------------------------------------------------------------------------- /config/sample_route.conf: -------------------------------------------------------------------------------- 1 | # This file is routing table example of our testbed machine 2 | # Copy this file to route.conf and give appropriate routes 3 | # Please save this file as config/route.conf. Put the config/ 4 | # directory in the same directory where the binary lies. 5 | # 6 | # (Destination address)/(Prefix) (Device name) 7 | # 8 | # 9 | # Add entry for default gateway route as: 10 | # w.x.y.z/0 dpdk0 11 | # Always put the default gateway route as the last entry. 12 | # Make sure that the mask (Prefix) is set to 0. For example, 13 | # if the default gateway IP address is 10.0.0.10, then the 14 | # entry will be: 15 | # 10.0.0.10/0 dpdk0 16 | # 17 | 18 | ROUTES 2 19 | 10.0.0.1/24 dpdk0 20 | 10.0.1.1/24 dpdk1 21 | -------------------------------------------------------------------------------- /io_engine/driver/affinity.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import os 4 | import sys 5 | import subprocess 6 | 7 | def execute(cmd): 8 | try: 9 | proc = subprocess.Popen(cmd, shell = True, stdout = subprocess.PIPE) 10 | return proc.communicate()[0] 11 | except: 12 | pass 13 | return None 14 | 15 | if os.getuid() != 0: 16 | print 'You must be root!' 17 | sys.exit(1) 18 | 19 | num_cpus = len(execute('cat /proc/cpuinfo | grep processor').strip().split('\n')) 20 | 21 | if len(sys.argv) < 2: 22 | print 'usage: %s ' % sys.argv[0] 23 | sys.exit(1) 24 | 25 | ifname = sys.argv[1] 26 | 27 | intrmap = execute('cat /proc/interrupts | grep %s-rx-' % ifname).strip().split('\n') 28 | 29 | for intr in intrmap: 30 | irq = int(intr.split()[0][:-1]) 31 | name = intr.split()[-1] 32 | queue = int(name[name.rfind('-') + 1:]) 33 | 34 | cpu = queue 35 | 36 | print 'echo %x > /proc/irq/%d/smp_affinity' % (1 << cpu, irq) 37 | execute('echo %x > /proc/irq/%d/smp_affinity' % (1 << cpu, irq)) 38 | -------------------------------------------------------------------------------- /io_engine/driver/affinity_numa0.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import os 4 | import sys 5 | import subprocess 6 | 7 | def execute(cmd): 8 | try: 9 | proc = subprocess.Popen(cmd, shell = True, stdout = subprocess.PIPE) 10 | return proc.communicate()[0] 11 | except: 12 | pass 13 | return None 14 | 15 | if os.getuid() != 0: 16 | print 'You must be root!' 17 | sys.exit(1) 18 | 19 | num_cpus = len(execute('cat /proc/cpuinfo | grep processor').strip().split('\n')) 20 | 21 | if len(sys.argv) < 2: 22 | print 'usage: %s ' % sys.argv[0] 23 | sys.exit(1) 24 | 25 | ifname = sys.argv[1] 26 | 27 | intrmap = execute('cat /proc/interrupts | grep %s-rx-' % ifname).strip().split('\n') 28 | 29 | for intr in intrmap: 30 | irq = int(intr.split()[0][:-1]) 31 | name = intr.split()[-1] 32 | queue = int(name[name.rfind('-') + 1:]) 33 | 34 | cpu = queue 35 | 36 | print 'echo %x > /proc/irq/%d/smp_affinity' % (1 << cpu, irq) 37 | execute('echo %x > /proc/irq/%d/smp_affinity' % (1 << cpu, irq)) 38 | -------------------------------------------------------------------------------- /io_engine/driver/affinity_numa1.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import os 4 | import sys 5 | import subprocess 6 | 7 | def execute(cmd): 8 | try: 9 | proc = subprocess.Popen(cmd, shell = True, stdout = subprocess.PIPE) 10 | return proc.communicate()[0] 11 | except: 12 | pass 13 | return None 14 | 15 | if os.getuid() != 0: 16 | print 'You must be root!' 17 | sys.exit(1) 18 | 19 | num_cpus = len(execute('cat /proc/cpuinfo | grep processor').strip().split('\n')) 20 | 21 | if len(sys.argv) < 2: 22 | print 'usage: %s ' % sys.argv[0] 23 | sys.exit(1) 24 | 25 | ifname = sys.argv[1] 26 | 27 | intrmap = execute('cat /proc/interrupts | grep %s-rx-' % ifname).strip().split('\n') 28 | 29 | for intr in intrmap: 30 | irq = int(intr.split()[0][:-1]) 31 | name = intr.split()[-1] 32 | queue = int(name[name.rfind('-') + 1:]) 33 | 34 | cpu = queue + 6 35 | 36 | print 'echo %x > /proc/irq/%d/smp_affinity' % (1 << cpu, irq) 37 | execute('echo %x > /proc/irq/%d/smp_affinity' % (1 << cpu, irq)) 38 | -------------------------------------------------------------------------------- /io_engine/driver/ixgbe_fcoe.c: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | 3 | Intel 10 Gigabit PCI Express Linux driver 4 | Copyright(c) 1999 - 2009 Intel Corporation. 5 | 6 | This program is free software; you can redistribute it and/or modify it 7 | under the terms and conditions of the GNU General Public License, 8 | version 2, as published by the Free Software Foundation. 9 | 10 | This program is distributed in the hope it will be useful, but WITHOUT 11 | ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 12 | FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for 13 | more details. 14 | 15 | You should have received a copy of the GNU General Public License along with 16 | this program; if not, write to the Free Software Foundation, Inc., 17 | 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA. 18 | 19 | The full GNU General Public License is included in this distribution in 20 | the file called "COPYING". 21 | 22 | Contact Information: 23 | e1000-devel Mailing List 24 | Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497 25 | 26 | *******************************************************************************/ 27 | 28 | #include "ixgbe.h" 29 | 30 | -------------------------------------------------------------------------------- /io_engine/lib/Makefile.in: -------------------------------------------------------------------------------- 1 | .PHONY: clean 2 | 3 | CC=@CC@ 4 | PS=@PSIO@ 5 | 6 | ifeq ($(PS),1) 7 | all: pslib.a 8 | 9 | pslib.a: pslib.c 10 | $(CC) -O3 -c -g -Wall -fPIC -o pslib.o pslib.c 11 | ar rcs libps.a pslib.o 12 | 13 | clean: 14 | rm -f *.o *.a 15 | else 16 | all: 17 | 18 | clean: 19 | 20 | endif 21 | 22 | distclean: clean 23 | rm -f Makefile 24 | -------------------------------------------------------------------------------- /io_engine/samples/echo/Makefile: -------------------------------------------------------------------------------- 1 | LIBS = -lps -lnuma 2 | LIB_DIR = -L../../lib 3 | 4 | .PHONY: clean 5 | 6 | all: echo echo_new 7 | 8 | echo: echo.c 9 | gcc -O3 -Wall -o echo echo.c $(LIB_DIR) $(LIBS) 10 | 11 | echo_new: echo_new.c 12 | gcc -O3 -Wall -o echo_new echo_new.c $(LIB_DIR) $(LIBS) 13 | 14 | clean: 15 | rm -f echo echo_new 16 | 17 | -------------------------------------------------------------------------------- /io_engine/samples/list_devices/Makefile: -------------------------------------------------------------------------------- 1 | LIBS = -lps 2 | LIB_DIR = -L../../lib 3 | 4 | .PHONY: clean 5 | 6 | all: list_devices 7 | 8 | list_devices: list_devices.c 9 | gcc -O2 -g -Wall -o list_devices list_devices.c $(LIB_DIR) $(LIBS) 10 | 11 | clean: 12 | rm -f list_devices 13 | -------------------------------------------------------------------------------- /io_engine/samples/list_devices/list_devices.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | #include "../../include/ps.h" 4 | 5 | int main() 6 | { 7 | int num_devices; 8 | struct ps_device devices[MAX_DEVICES]; 9 | 10 | int i; 11 | 12 | num_devices = ps_list_devices(devices); 13 | if (num_devices == -1) { 14 | perror("ps_list_devices"); 15 | return 1; 16 | } 17 | 18 | printf("found %d device(s).\n", num_devices); 19 | 20 | for (i = 0; i < num_devices; i++) { 21 | struct ps_device *dev = &devices[i]; 22 | char *t = (char *)&dev->ip_addr; 23 | 24 | printf("%d: %s ", 25 | dev->ifindex, 26 | dev->name); 27 | 28 | printf("(%02hhX:%02hhX:%02hhX:%02hhX:%02hhX:%02hhX) ", 29 | dev->dev_addr[0], 30 | dev->dev_addr[1], 31 | dev->dev_addr[2], 32 | dev->dev_addr[3], 33 | dev->dev_addr[4], 34 | dev->dev_addr[5]); 35 | 36 | printf("%u.%u.%u.%u ", t[0], t[1], t[2], t[3]); 37 | 38 | printf("%d RX, %d TX queues\n", 39 | dev->num_rx_queues, 40 | dev->num_tx_queues); 41 | } 42 | 43 | return 0; 44 | } 45 | -------------------------------------------------------------------------------- /io_engine/samples/packet_generator/Makefile: -------------------------------------------------------------------------------- 1 | LIBS = -lps -lnuma 2 | LIB_DIR = -L../../lib 3 | 4 | .PHONY: clean 5 | 6 | all: packet_generator 7 | 8 | packet_generator: packet_generator.c 9 | gcc -O2 -g -Wall -o packet_generator packet_generator.c $(LIB_DIR) $(LIBS) 10 | 11 | clean: 12 | rm -f packet_generator 13 | -------------------------------------------------------------------------------- /io_engine/samples/rxdump/Makefile: -------------------------------------------------------------------------------- 1 | LIBS = -lps 2 | LIB_DIR = -L../../lib 3 | 4 | .PHONY: clean 5 | 6 | all: rxdump 7 | 8 | rxdump: rxdump.c 9 | gcc -O2 -g -Wall -o rxdump rxdump.c $(LIB_DIR) $(LIBS) 10 | 11 | clean: 12 | rm -f rxdump 13 | -------------------------------------------------------------------------------- /mtcp/include/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | -------------------------------------------------------------------------------- /mtcp/lib/.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore everything in this directory 2 | * 3 | # Except this file 4 | !.gitignore 5 | 6 | -------------------------------------------------------------------------------- /mtcp/src/include/arp.h: -------------------------------------------------------------------------------- 1 | #ifndef ARP_H 2 | #define ARP_H 3 | 4 | #define MAX_ARPENTRY 1024 5 | 6 | int 7 | InitARPTable(); 8 | 9 | unsigned char * 10 | GetHWaddr(uint32_t ip); 11 | 12 | unsigned char * 13 | GetDestinationHWaddr(uint32_t dip, uint8_t is_gateway); 14 | 15 | void 16 | RequestARP(mtcp_manager_t mtcp, uint32_t ip, int nif, uint32_t cur_ts); 17 | 18 | int 19 | ProcessARPPacket(mtcp_manager_t mtcp, uint32_t cur_ts, 20 | const int ifidx, unsigned char* pkt_data, int len); 21 | 22 | void 23 | ARPTimer(mtcp_manager_t mtcp, uint32_t cur_ts); 24 | 25 | void 26 | PrintARPTable(); 27 | 28 | #endif /* ARP_H */ 29 | -------------------------------------------------------------------------------- /mtcp/src/include/clock.h: -------------------------------------------------------------------------------- 1 | #ifndef __CLOCK__H_ 2 | #define __CLOCK__H_ 3 | 4 | #include 5 | #include 6 | #include "tcp_stream.h" 7 | 8 | uint64_t now_usecs(); 9 | uint64_t time_since_usecs(); 10 | uint64_t time_after_usecs(); 11 | void log_cwnd_rtt(void *stream); 12 | 13 | #endif 14 | -------------------------------------------------------------------------------- /mtcp/src/include/config.h: -------------------------------------------------------------------------------- 1 | #ifndef CONFIG_H 2 | #define CONFIG_H 3 | 4 | #include "ps.h" 5 | 6 | extern int num_cpus; 7 | extern int num_queues; 8 | extern int num_devices; 9 | 10 | extern int num_devices_attached; 11 | extern int devices_attached[MAX_DEVICES]; 12 | 13 | int 14 | LoadConfiguration(const char *fname); 15 | 16 | /* set configurations from the setted 17 | interface information */ 18 | int 19 | SetInterfaceInfo(); 20 | 21 | /* set configurations from the files */ 22 | int 23 | SetRoutingTable(); 24 | 25 | int 26 | LoadARPTable(); 27 | 28 | /* print setted configuration */ 29 | void 30 | PrintConfiguration(); 31 | 32 | void 33 | PrintInterfaceInfo(); 34 | 35 | void 36 | PrintRoutingTable(); 37 | 38 | /* fetch mask from prefix */ 39 | uint32_t 40 | MaskFromPrefix(int prefix); 41 | 42 | void 43 | ParseMACAddress(unsigned char *haddr, char *haddr_str); 44 | 45 | int 46 | ParseIPAddress(uint32_t *ip_addr, char *ip_str); 47 | 48 | #endif /* CONFIG_H */ 49 | -------------------------------------------------------------------------------- /mtcp/src/include/cpu.h: -------------------------------------------------------------------------------- 1 | #ifndef CPU_H 2 | #define CPU_H 3 | 4 | inline int GetNumCPUs(); 5 | 6 | inline int whichCoreID(int thread_no); 7 | 8 | #endif /* CPU_H */ 9 | -------------------------------------------------------------------------------- /mtcp/src/include/dpdk_iface_common.h: -------------------------------------------------------------------------------- 1 | ../../../dpdk-iface-kmod/dpdk_iface_common.h -------------------------------------------------------------------------------- /mtcp/src/include/eth_in.h: -------------------------------------------------------------------------------- 1 | #ifndef ETH_IN_H 2 | #define ETH_IN_H 3 | 4 | #include "mtcp.h" 5 | 6 | int 7 | ProcessPacket(mtcp_manager_t mtcp, const int ifidx, 8 | uint32_t cur_ts, unsigned char *pkt_data, int len); 9 | 10 | #endif /* ETH_IN_H */ 11 | -------------------------------------------------------------------------------- /mtcp/src/include/eth_out.h: -------------------------------------------------------------------------------- 1 | #ifndef ETH_OUT_H 2 | #define ETH_OUT_H 3 | 4 | #include 5 | 6 | #include "mtcp.h" 7 | #include "tcp_stream.h" 8 | #include "ps.h" 9 | 10 | #define MAX_SEND_PCK_CHUNK 64 11 | 12 | uint8_t * 13 | EthernetOutput(struct mtcp_manager *mtcp, uint16_t h_proto, 14 | int nif, unsigned char* dst_haddr, uint16_t iplen); 15 | 16 | #endif /* ETH_OUT_H */ 17 | -------------------------------------------------------------------------------- /mtcp/src/include/ip_in.h: -------------------------------------------------------------------------------- 1 | #ifndef IP_IN_H 2 | #define IP_IN_H 3 | 4 | #include "mtcp.h" 5 | 6 | int 7 | ProcessIPv4Packet(mtcp_manager_t mtcp, uint32_t cur_ts, 8 | const int ifidx, unsigned char* pkt_data, int len); 9 | 10 | #endif /* IP_IN_H */ 11 | -------------------------------------------------------------------------------- /mtcp/src/include/ip_out.h: -------------------------------------------------------------------------------- 1 | #ifndef IP_OUT_H 2 | #define IP_OUT_H 3 | 4 | #include 5 | #include "tcp_stream.h" 6 | 7 | extern inline int 8 | GetOutputInterface(uint32_t daddr, uint8_t *is_external); 9 | 10 | void 11 | ForwardIPv4Packet(mtcp_manager_t mtcp, int nif_in, char *buf, int len); 12 | 13 | uint8_t * 14 | IPOutputStandalone(struct mtcp_manager *mtcp, uint8_t protocol, 15 | uint16_t ip_id, uint32_t saddr, uint32_t daddr, uint16_t tcplen); 16 | 17 | uint8_t * 18 | IPOutput(struct mtcp_manager *mtcp, tcp_stream *stream, uint16_t tcplen); 19 | 20 | #endif /* IP_OUT_H */ 21 | -------------------------------------------------------------------------------- /mtcp/src/include/logger.h: -------------------------------------------------------------------------------- 1 | #ifndef LOGGER_H 2 | #define LOGGER_H 3 | 4 | #include 5 | 6 | #define LOG_BUFF_SIZE (256*1024) 7 | #define NUM_LOG_BUFF (100) 8 | 9 | enum { 10 | IDLE_LOGT, 11 | ACTIVE_LOGT 12 | } log_thread_state; 13 | 14 | typedef struct log_buff 15 | { 16 | int tid; 17 | FILE* fid; 18 | int buff_len; 19 | char buff[LOG_BUFF_SIZE]; 20 | TAILQ_ENTRY(log_buff) buff_link; 21 | } log_buff; 22 | 23 | typedef struct log_thread_context { 24 | pthread_t thread; 25 | int cpu; 26 | int done; 27 | int sp_fd; 28 | int pair_sp_fd; 29 | int free_buff_cnt; 30 | int job_buff_cnt; 31 | 32 | uint8_t state; 33 | 34 | pthread_mutex_t mutex; 35 | pthread_mutex_t free_mutex; 36 | 37 | TAILQ_HEAD(, log_buff) working_queue; 38 | TAILQ_HEAD(, log_buff) free_queue; 39 | 40 | } log_thread_context; 41 | 42 | log_buff* DequeueFreeBuffer (log_thread_context *ctx); 43 | void EnqueueJobBuffer(log_thread_context *ctx, log_buff* working_bp); 44 | void InitLogThreadContext (log_thread_context *ctx, int cpu); 45 | void *ThreadLogMain(void* arg); 46 | 47 | #endif /* LOGGER_H */ 48 | -------------------------------------------------------------------------------- /mtcp/src/include/pacing.h: -------------------------------------------------------------------------------- 1 | #ifndef __PACING_H_ 2 | #define __PACING_H_ 3 | 4 | #include "tcp_stream.h" 5 | #include "clock.h" 6 | 7 | #if RATE_LIMIT_ENABLED 8 | typedef struct token_bucket { 9 | double tokens; 10 | uint32_t rate; 11 | uint32_t burst; 12 | uint32_t last_fill_t; 13 | } token_bucket; 14 | 15 | token_bucket* NewTokenBucket(); 16 | int SufficientTokens(token_bucket *bucket, uint64_t new_bits); 17 | void PrintBucket(token_bucket *bucket); 18 | #endif 19 | 20 | #if PACING_ENABLED 21 | typedef struct packet_pacer { 22 | uint32_t rate_bps; 23 | uint32_t extra_packets; 24 | uint32_t next_send_time; 25 | } packet_pacer; 26 | 27 | packet_pacer* NewPacketPacer(); 28 | int CanSendNow(packet_pacer *pacer); 29 | void PrintPacer(packet_pacer *pacer); 30 | #endif 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /mtcp/src/include/pipe.h: -------------------------------------------------------------------------------- 1 | #ifndef MTCP_PIPE_H 2 | #define MTCP_PIPE_H 3 | 4 | #include 5 | 6 | int 7 | PipeRead(mctx_t mctx, int pipeid, char *buf, int len); 8 | 9 | int 10 | PipeWrite(mctx_t mctx, int pipeid, const char *buf, int len); 11 | 12 | int 13 | RaisePendingPipeEvents(mctx_t mctx, int epid, int pipeid); 14 | 15 | int 16 | PipeClose(mctx_t mctx, int pipeid); 17 | 18 | #endif /* MTCP_PIPE_H */ 19 | -------------------------------------------------------------------------------- /mtcp/src/include/rss.h: -------------------------------------------------------------------------------- 1 | #ifndef RSS_H 2 | #define RSS_H 3 | 4 | #include 5 | 6 | /* sip, dip, sp, dp: in network byte order */ 7 | int GetRSSCPUCore(in_addr_t sip, in_addr_t dip, 8 | in_port_t sp, in_port_t dp, int num_queues, 9 | uint8_t endian_check); 10 | 11 | #endif /* RSS_H */ 12 | -------------------------------------------------------------------------------- /mtcp/src/include/tcp_rb_frag_queue.h: -------------------------------------------------------------------------------- 1 | #ifndef TCP_RB_FRAG_QUEUE 2 | #define TCP_RB_FRAG_QUEUE 3 | 4 | #include "tcp_ring_buffer.h" 5 | 6 | /*---------------------------------------------------------------------------*/ 7 | typedef struct rb_frag_queue* rb_frag_queue_t; 8 | /*---------------------------------------------------------------------------*/ 9 | rb_frag_queue_t 10 | CreateRBFragQueue(int capacity); 11 | /*---------------------------------------------------------------------------*/ 12 | void 13 | DestroyRBFragQueue(rb_frag_queue_t rb_fragq); 14 | /*---------------------------------------------------------------------------*/ 15 | int 16 | RBFragEnqueue(rb_frag_queue_t rb_fragq, struct fragment_ctx *frag); 17 | /*---------------------------------------------------------------------------*/ 18 | struct fragment_ctx * 19 | RBFragDequeue(rb_frag_queue_t rb_fragq); 20 | /*---------------------------------------------------------------------------*/ 21 | 22 | #endif /* TCP_RB_FRAG_QUEUE */ 23 | -------------------------------------------------------------------------------- /mtcp/src/include/tcp_sb_queue.h: -------------------------------------------------------------------------------- 1 | #ifndef TCP_SB_QUEUE 2 | #define TCP_SB_QUEUE 3 | 4 | #include "tcp_send_buffer.h" 5 | 6 | /*---------------------------------------------------------------------------*/ 7 | typedef struct sb_queue* sb_queue_t; 8 | /*---------------------------------------------------------------------------*/ 9 | sb_queue_t 10 | CreateSBQueue(int capacity); 11 | /*---------------------------------------------------------------------------*/ 12 | void 13 | DestroySBQueue(sb_queue_t sq); 14 | /*---------------------------------------------------------------------------*/ 15 | int 16 | SBEnqueue(sb_queue_t sq, struct tcp_send_buffer *buf); 17 | /*---------------------------------------------------------------------------*/ 18 | struct tcp_send_buffer * 19 | SBDequeue(sb_queue_t sq); 20 | /*---------------------------------------------------------------------------*/ 21 | 22 | #endif /* TCP_SB_QUEUE */ 23 | -------------------------------------------------------------------------------- /mtcp/src/include/tcp_util.h: -------------------------------------------------------------------------------- 1 | #ifndef TCP_UTIL_H 2 | #define TCP_UTIL_H 3 | 4 | #include "mtcp.h" 5 | #include "tcp_stream.h" 6 | 7 | #define MSS 1448 8 | #define INIT_CWND_PKTS 10 9 | 10 | #define MAX(a, b) ((a)>(b)?(a):(b)) 11 | #define MIN(a, b) ((a)<(b)?(a):(b)) 12 | 13 | #define SECONDS_TO_USECS(seconds) ((seconds) / 1000000.0) 14 | #define USECS_TO_MS(us) ((us) / 1000) 15 | #define BYTES_TO_BITS(bytes) ((bytes) / 8.0) 16 | #define BPS_TO_MBPS(bps) ((bps) / 8000000.0) 17 | #define UNSHIFT_RTT(srtt) ((srtt) * 125.0) 18 | 19 | struct tcp_timestamp 20 | { 21 | uint32_t ts_val; 22 | uint32_t ts_ref; 23 | }; 24 | 25 | void ParseTCPOptions(tcp_stream *cur_stream, 26 | uint32_t cur_ts, uint8_t *tcpopt, int len); 27 | 28 | extern inline int 29 | ParseTCPTimestamp(tcp_stream *cur_stream, 30 | struct tcp_timestamp *ts, uint8_t *tcpopt, int len); 31 | 32 | #if TCP_OPT_SACK_ENABLED 33 | int 34 | SeqIsSacked(tcp_stream *cur_stream, uint32_t seq); 35 | 36 | void 37 | ParseSACKOption(tcp_stream *cur_stream, 38 | uint32_t ack_seq, uint8_t *tcpopt, int len); 39 | #endif 40 | 41 | uint16_t 42 | TCPCalcChecksum(uint16_t *buf, uint16_t len, uint32_t saddr, uint32_t daddr); 43 | 44 | void 45 | PrintTCPOptions(uint8_t *tcpopt, int len); 46 | 47 | #endif /* TCP_UTIL_H */ 48 | -------------------------------------------------------------------------------- /setup_linux_env.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | GREEN='\033[0;32m' 4 | NC='\033[0m' 5 | 6 | # Get to script directory 7 | cd $(dirname ${BASH_SOURCE[0]})/ 8 | 9 | # Remove dpdk_iface.ko module 10 | if [$# -ne 1]; 11 | then 12 | export RTE_SDK=$1 13 | else 14 | export RTE_SDK=$PWD/dpdk 15 | fi 16 | printf "${GREEN}Removing dpdk_iface module...\n $NC" 17 | if lsmod | grep dpdk_iface &> /dev/null ; then 18 | sudo rmmod dpdk_iface.ko 19 | else 20 | : 21 | fi 22 | 23 | # Compile dpdk and configure system 24 | if [ -f $RTE_SDK/usertools/dpdk-setup.sh ]; then 25 | bash $RTE_SDK/usertools/dpdk-setup.sh 26 | else 27 | bash $RTE_SDK/tools/setup.sh 28 | fi 29 | 30 | printf "${GREEN}Goodbye!$NC\n" 31 | 32 | -------------------------------------------------------------------------------- /util/Makefile.in: -------------------------------------------------------------------------------- 1 | ### GCC ### 2 | GCC=@CC@ 3 | 4 | ifeq ($(shell uname -m),x86_64) 5 | GCC_OPT = -m64 6 | else 7 | GCC_OPT = 8 | endif 9 | GCC_OPT += -Wall -fPIC -c 10 | GCC_OPT += -DNDEBUG -O3 -DNETSTAT -DINFO -DDBGERR -DDBGCERR 11 | 12 | 13 | ### LIBRARIES AND INCLUDES ### 14 | CFLAGS = -I./include/ 15 | 16 | ### SOURCE CODE ### 17 | SRCS = tdate_parse.c http_parsing.c netlib.c 18 | 19 | OBJS = $(patsubst %.c,%.o,$(SRCS)) 20 | 21 | ifeq ($V,) # no echo 22 | export MSG=@echo 23 | export HIDE=@ 24 | else 25 | export MSG=@\# 26 | export HIDE= 27 | endif 28 | 29 | ### COMPILE ### 30 | all: default 31 | 32 | default: $(OBJS) 33 | 34 | $(OBJS): %.o: %.c Makefile 35 | $(MSG) " CC $<" 36 | $(HIDE) ${CC} ${GCC_OPT} ${CFLAGS} $< 37 | 38 | clean: 39 | $(MSG) " CC *.o" 40 | $(HIDE) rm -rf *~ *.o 41 | 42 | distclean: clean 43 | rm -f Makefile 44 | -------------------------------------------------------------------------------- /util/cpu.c: -------------------------------------------------------------------------------- 1 | #ifndef _GNU_SOURCE 2 | #define _GNU_SOURCE 3 | #endif 4 | 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | /*----------------------------------------------------------------------------*/ 13 | int GetNumCPUs() 14 | { 15 | return sysconf(_SC_NPROCESSORS_ONLN); 16 | } 17 | /*----------------------------------------------------------------------------*/ 18 | int 19 | CoreAffinitize(int cpu) 20 | { 21 | cpu_set_t *cmask; 22 | struct bitmask *bmask; 23 | size_t n; 24 | int ret; 25 | 26 | n = GetNumCPUs(); 27 | 28 | if (cpu < 0 || cpu >= (int) n) { 29 | errno = -EINVAL; 30 | return -1; 31 | } 32 | 33 | cmask = CPU_ALLOC(n); 34 | if (cmask == NULL) 35 | return -1; 36 | 37 | CPU_ZERO_S(n, cmask); 38 | CPU_SET_S(cpu, n, cmask); 39 | 40 | ret = sched_setaffinity(0, n, cmask); 41 | 42 | CPU_FREE(cmask); 43 | 44 | if (numa_max_node() == 0) 45 | return ret; 46 | 47 | bmask = numa_bitmask_alloc(16); 48 | assert(bmask); 49 | 50 | numa_bitmask_setbit(bmask, cpu %2); 51 | numa_set_membind(bmask); 52 | numa_bitmask_free(bmask); 53 | 54 | return ret; 55 | } 56 | -------------------------------------------------------------------------------- /util/include/cpu.h: -------------------------------------------------------------------------------- 1 | #ifndef __CPU_H_ 2 | #define __CPU_H_ 3 | 4 | int GetNumCPUs(); 5 | int CoreAffinitize(int cpu); 6 | 7 | #endif /* __CPU_H_ */ 8 | -------------------------------------------------------------------------------- /util/include/ring_buffer.h: -------------------------------------------------------------------------------- 1 | #ifndef __APP_RELAYBUFFER 2 | #define __APP_RELAYBUFFER 3 | 4 | #include 5 | 6 | #define MAX_REP_LEN (10*1024) 7 | 8 | typedef struct ring_buffer ring_buffer; 9 | 10 | ring_buffer* InitBuffer(int size); 11 | 12 | int GetTotSizeRBuffer(ring_buffer* r_buff); 13 | int GetDataSizeRBuffer(ring_buffer* r_buff); 14 | int GetCumSizeRBuffer(ring_buffer* r_buff); 15 | int GetRemainBufferSize(ring_buffer *r_buff); 16 | int CheckAvailableSize(ring_buffer *r_buff, int size); 17 | 18 | u_char* GetDataPoint(ring_buffer* r_buff); 19 | u_char* GetInputPoint(ring_buffer *r_buff); 20 | 21 | int RemoveDataFromBuffer(ring_buffer *r_buff, int size); 22 | int AddDataLen(ring_buffer *r_buffer, int size); 23 | 24 | int CopyData(ring_buffer *dest_buff, ring_buffer *src_buff, int len); 25 | int MoveData(ring_buffer *dest_buff, ring_buffer *src_buff, int len); 26 | int MoveToREPData(ring_buffer *dest_buff, ring_buffer *src_buff, int len); 27 | 28 | int MtcpWriteFromBuffer(mctx_t mtcp, int fid, ring_buffer *r_buff); 29 | int MtcpReadFromBuffer(mctx_t mtcp, int fid, ring_buffer *r_buff); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /util/include/rss.h: -------------------------------------------------------------------------------- 1 | #ifndef _RSS_H_ 2 | #define _RSS_H_ 3 | 4 | #include 5 | 6 | /* return RSS hash value (32 bit) based on 4 tuple values */ 7 | uint32_t GetRSSHash(in_addr_t sip, in_addr_t dip, 8 | in_port_t sp, in_port_t dp); 9 | 10 | /* sip, dip, sp, dp: host-byte order */ 11 | int GetRSSCPUCore(in_addr_t sip, in_addr_t dip, 12 | in_port_t sp, in_port_t dp, int num_cpus); 13 | #endif 14 | --------------------------------------------------------------------------------