mirror of
https://github.com/bunkerity/bunkerweb
synced 2026-05-24 09:28:37 +00:00
11ab5315b0Merge commit 'f583d996a108a58166fc986bf4227a3cea432a07' into devf583d996a1Squashed 'src/deps/src/luajit/' changes from 492cfdd0d8..aa038d2599f8429d6e43Update LuaJIT to v2.1-20231021576cb81979Merge commit 'c473aa40807f32438ffe34bdfe07f8f0485a6aa4' into devc473aa4080Squashed 'src/deps/src/lua-resty-openssl/' changes from b23c072a4..89195843c456e6a33dbUpdate lua-resty-openssl to v1.0.111c4fde616Merge commit '805e5c9cee2a72af6b6297b2993109511b42d485' into dev805e5c9ceeSquashed 'src/deps/src/libmaxminddb/' changes from ac4d0d248..93a7e0e56afcf420ee4Update libmaxminddb to v1.8.07aa6affe10Merge commit 'e3f305a953ef5dbf6802090c7013f4c38d762449' into deve3f305a953Squashed 'src/deps/src/ngx_devel_kit/' changes from b4642d6ca..91e30eb05cba20187c9Update Nginx devel kit to v0.3.310a58377b8Fix multiple CVEs related to libpq * CVE-2023-5869 * CVE-2023-5868 * CVE-2023-58707c564e4cb0Update pre-commit hooks to latest versionsbff775f006Fix issues with the Linux integration and external databases71db00281dMerge pull request #759 from bunkerity/dependabot/github_actions/dev/ruby/setup-ruby-1.161.0940eecd062deps/gha: bump ruby/setup-ruby from 1.160.0 to 1.161.042f7ef4862Update user interface demo image in README.mdb2a56a82a4Update BunkerWeb UI demo to use thumbnail image0d0bad79bcUpdate Python version in Dockerfilesb539a97ad9Fix CVE CVE-2023-5678 in Dockerfiles05da26f010Update dependencies to latest versionse153c33aaaUpdate maxminddb and other dependencies versions8d024a0996Merge pull request #751 from bunkerity/dependabot/github_actions/dev/rickstaa/action-create-tag-1.7.1ca6271c60aMerge pull request #750 from bunkerity/dependabot/github_actions/dev/ruby/setup-ruby-1.160.0fbbec2f7f7deps/gha: bump rickstaa/action-create-tag from 1.6.6 to 1.7.19c6f5289d1deps/gha: bump ruby/setup-ruby from 1.159.0 to 1.160.0bcded8f7ceAdd refurb as a pre-commit-config hook and apply pre-commit-config966a78da9eUpdate Git attributes to ignore text and end-of-line settings for vendored filesf111124b34Update dependencies versionsd2b82b29d2Fix CVEs CVE-2023-43787, CVE-2023-43785 and CVE-2023-43786dc5a7b8b2aUpdate mmdb filesc32522ae29Update Certbot module to version 2.7.4 + Update python deps hashes54ead4e49cMerge pull request #744 from bunkerity/dependabot/github_actions/dev/rickstaa/action-create-tag-1.6.6d835369699deps/gha: bump rickstaa/action-create-tag from 1.6.4 to 1.6.6b79b6548b3Merge pull request #741 from bunkerity/dependabot/github_actions/dev/hashicorp/setup-terraform-3.0.0b05b981858docs - update plugins to 1.2e8803e346fcache linux test images, fix linux example of proxy protocol and add more logs to k8s tests7565b2df58Merge branch 'dev' into stagingc817f45abdadd ready checks to limit and redis core tests and fix wrong http port for behind reverse proxy linux testf9f616a66fMerge branch 'dev' into staging4871185dc0Update python deps and pin Flask-Login versioncd773b6e80add ready checks to reversecan and sessions tests898ef2eff0deps/gha: bump hashicorp/setup-terraform from 2.0.3 to 3.0.0fa628cb7d6linux - add default API_LISTEN_IP18d682b5a6linux - add missing API_LISTEN_IP initial setting and perform only hot reload4fbd974d2ftests - set trace verbosity for geckodriver logsa7c343369dMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev7d69b91056tests - fix missing geckodriver log file in ui tests29d7d94b2c[#739] Fix potential issue when fetching docker instances in the web UI84eb947206tests - add geckodriver log file for ui tests40e118a712tests - add more logs to ui linux tests0e3d8e59cctests - retry UI access in case of network exception86875f4863tests - fix misc ready check when using https and add ready checks for linux uid4a2ba5fc8tests - add ready checks to customcert and misc3020c5c8e5tests - add ready check for customcert core testc1562bc896Merge pull request #737 from bunkerity/dependabot/github_actions/dev/github/codeql-action-2.22.5322cfd2179deps/gha: bump github/codeql-action from 2.22.4 to 2.22.5caf732be1dMerge pull request #736 from bunkerity/dependabot/github_actions/dev/ruby/setup-ruby-1.159.0667620b521deps/gha: bump ruby/setup-ruby from 1.158.0 to 1.159.0fb21786b8clinux - fixing nginx service not disabled and fix another missing error log path in UI5887b894f0ui - fix wrong error path when starting nginx4e820f6de2linux - remove sudo command when reloading nginx35d16233cdci/cd - ignore ready conf for db tests and fix linux path for ready conf9775cd5bbdci/cd - fix missing string in /ready endpoint and add /ready endpoint to linux tests274a8cdfb9ci/cd - trying to fix race condition for core testsd73a5d0f45Merge pull request #735 from bunkerity/deved0e156bcbUpdate Werkzeug to version 3.0.1 in web UI8ec9a7df40Fix compatibility issue with Docker Compose v2 2.23.0 in examples and docs72d856abe1Update certbot to version 2.7.3 + regenerate hashes for db and schedulerab76c458efMerge pull request #732 from bunkerity/dependabot/github_actions/dev/ruby/setup-ruby-1.158.06edf97a0d7deps/gha: bump ruby/setup-ruby from 1.157.0 to 1.158.058d6b81423use cap in Linux and add openssf badgea83a74cfadMerge pull request #729 from bunkerity/dev0975de1238[#717] Add a pool_recycle database engine arg to avoid losing connection with database762092e5e9Remove no longer necessary retrying module8963cb4d18Update python depsc2252503d0Merge pull request #721 from bunkerity/dependabot/github_actions/dev/ossf/scorecard-action-2.3.1626f10b4c1Merge pull request #722 from bunkerity/dependabot/github_actions/dev/actions/setup-node-4.0.0f2b9fc0f8fMerge pull request #724 from bunkerity/dependabot/docker/src/autoconf/dev/python-a5d1738c8eae49e5bdeps/autoconf: bump python from `dc2e889` to `a5d1738` in /src/autoconfab320794adMerge pull request #723 from bunkerity/dependabot/docker/src/ui/dev/python-a5d1738572436f208Merge pull request #720 from bunkerity/dependabot/docker/src/scheduler/dev/python-a5d17386f366450bcdeps/ui: bump python from `dc2e889` to `a5d1738` in /src/uif6d2e205cfdeps/scheduler: bump python in /src/scheduler50a60382a1Fix CVE CVE-2023-5363989c14ae73Fix CVE CVE-2023-5363a847f77782deps/gha: bump actions/setup-node from 3.8.1 to 4.0.08708ad70c3deps/gha: bump ossf/scorecard-action from 2.3.0 to 2.3.1eeda7a18c3Update python deps + add retrying module to db5193d6cd19Update docker images09ee050833Merge pull request #719 from bunkerity/dependabot/github_actions/dev/ruby/setup-ruby-1.157.00afed0621cMerge pull request #718 from bunkerity/dependabot/github_actions/dev/github/codeql-action-2.22.48919592f54deps/gha: bump ruby/setup-ruby from 1.156.0 to 1.157.0d253b4438fdeps/gha: bump github/codeql-action from 2.22.3 to 2.22.4f798a9ef9aMerge pull request #715 from bunkerity/devcd902eba30prepare for 1.5.3 🚀029217ff4aFix update-version.sh script10db67b871Merge pull request #714 from bunkerity/devc7543df86aAdd an handler when the ui test is reaching an error page due to a connectionFailure1f5a1beac0[#645] Fix web UI not keeping the data when changing the sub server names + Fix custom cert when the server name have multiple domainsff1fc9280b[#712] Fix custom configuration changes not taking effect immediately838dcb17c0Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into devb18dbddcdfMerge pull request #713 from bunkerity/dependabot/pip/src/scheduler/dev/certbot-2.7.2ca6938dfe4Update ConfigFiles to use the correct name regex in web UI643ea7c214deps/scheduler: bump certbot from 2.7.1 to 2.7.2 in /src/schedulere41ce10e35Merge pull request #711 from bunkerity/devb265cbad54ci/cd - trying to fix azure/kubectl action7e3aad9f09[#645] Fix impossible to edit the server_name of an already existing service if the primary one was unchanged in web UI60d43d0ce0Handle service creation and editing more elegantly in web UI2df85b2c93Updated python:3.12.0-alpine image's sha2563a3255e7b8Merge pull request #709 from bunkerity/staging4c273fe849Merge pull request #708 from bunkerity/dev9964f42e66Fix magento k8s testsb2cf8986f5Tweak magento tests to use latest version back7f219bea07Fix CHANGELOG release date for v1.5.2b9f05ad165Downgrade magento versions to working onesbd6065af86Update python deps and pin urllib3 version to 1.26.18 + Update pre-commit-config to format requirements.in files as well + Apply pre-commit619e5644f0Remove pip caching when setting up python in workflows to avoid errors3c36430212Merge pull request #707 from bunkerity/dev7598dbc54bUpdate python depsf3982367a6Update dependabot script to add reviewers and tweak the scheduled4f65903e7Update dependabot config file to include terraform and other python deps paths38429efac9Merge pull request #705 from bunkerity/dependabot/github_actions/dev/actions/checkout-4.1.1d92e9a07a8Fix k8s terraform script6738b95524deps/gha: bump actions/checkout from 4.1.0 to 4.1.10da22f44b0Update k8s terraform file and update scaleway terraform versiond77f6a72c2Fix README.md links and versions7bf8be3246Try to fix magento k8s tests with static versioningb9c5d32778Fix timeout in ui tests and access_page functionb1b1ab8680Fix wrong values in helm chart values file for elasticsearch in k8s magento example530b8a945dFix allow empty values when saving a config in web UI22552c5b85[#694] Optimize certbot renew script to renew all domains in one commanddb0dd5daee[#694] Fix rare bug where database is lockedf89456cd4fMerge pull request #699 from Crazy3lf/master34d68e8b7cUpdate regex for email476d867067Fix magento k8s tests by removing elasticsearch4a10ec8c30Merge pull request #701 from bunkerity/devc4b873e3f2Fix /etc/bunkerweb dir missing in linux core testsbcaa8faa7bReplace deprecated `set-output` command with the new format08944b901cTweak test-core-linux to fix potential bugs13be6a43c9Add more logs when an url file is in cache and gets deleted2737fe7ce2Update python deps2823fa2abbUpdate plugin.json001246b38fMerge pull request #697 from bunkerity/ui1a43380d2eMerge pull request #696 from bunkerity/dependabot/github_actions/dev/github/codeql-action-2.22.30b319d1aa1Merge pull request #695 from bunkerity/dependabot/github_actions/dev/rickstaa/action-create-tag-1.6.47a15f8a654deps/gha: bump github/codeql-action from 2.22.1 to 2.22.3a4a413eecedeps/gha: bump rickstaa/action-create-tag from 1.6.3 to 1.6.47e3dabc5fdUpdate patch commands in deps.json to skip Reversed warning29737209b1Squashed 'src/deps/src/luajit/' changes from e598aeb74..492cfdd0d8093c61613Merge commit '29737209b138a1485d55c53acf1a6783b6e60167' into dev85913d6b26Update luajit to v2.1-2023100615d3180b64move disabled inp msg522527f0a8Merge pull request #690 from bunkerity/dependabot/github_actions/dev/ruby/setup-ruby-1.156.085ef4e4deaMerge pull request #691 from bunkerity/dev46d8acf7b4Update dummy-plugin to new standards77bfe2697fAdd StyLua and luacheck to precommit config file and apply itda2a1eaa5adeps/gha: bump ruby/setup-ruby from 1.155.0 to 1.156.0cd1f87b9a2Update pre-commit config hooks versione25fab28b8fix disabled msg behaviorc125a9bdd2Merge pull request #689 from bunkerity/dev10fd431fbbTweak update python deps script to make it more elegant309689185eUpdate pythons deps7997561766Merge pull request #684 from bunkerity/dependabot/github_actions/dev/github/codeql-action-2.22.1a12e5ca893Merge pull request #683 from bunkerity/dependabot/github_actions/dev/stefanzweifel/git-auto-commit-action-5.0.015ad3a6250Merge pull request #681 from bunkerity/dependabot/github_actions/dev/ossf/scorecard-action-2.3.0c57d725f44Merge pull request #680 from bunkerity/dependabot/github_actions/dev/ruby/setup-ruby-1.155.095389260a6Merge pull request #688 from bunkerity/dev6e5dd55573Fix CVE CVE-2023-44487565f4e3f7cMerge pull request #687 from bunkerity/devf39adcab5bUpdate CHANGELOG.mda3ec85b576Fix often occurring error with ace script in web uib063ac8a32[#652] Fix error when deleting a service that have custom configs on web UIff85f1c2bbUpdate CHANGELOG.md4a9fdba42d[#645] Fix errors when using a server name with multiple values in web UI47a7e16800Fix secure_scheme_headers shenanigans with web ui453108da94Update mmdb files2cbb10b3a3Revert "Test Aqua security vulnerabilities with BW"d4d9f87451Test Aqua security vulnerabilities with BW899484c381deps/gha: bump github/codeql-action from 2.21.9 to 2.22.1d461f3745bdeps/gha: bump stefanzweifel/git-auto-commit-action from 4.16.0 to 5.0.0cd0ceb48bbdeps/gha: bump ossf/scorecard-action from 2.2.0 to 2.3.0dc92ae825ddeps/gha: bump ruby/setup-ruby from 1.154.0 to 1.155.0f5fe685d42Fix children classes of Testf4ce2c68f2Fix bw api not returning the reason of bansd1a0f66c98Merge pull request #677 from bunkerity/dev6935d1cb84Merge pull request #676 from bunkerity/dev7ac66a6c65Update python deps2aa9f46ef4Fix default values in whitelist job8f456722e0Augment delay in WebDriverWait in ui tests8ae7b8f43bFix redirect tests docker-compose file9b4a9277daAdd libpq as a dependency for the Database to be able to connect with postgres172874d1c3Fix redirect tests on dockera518f47b92Update CHANGELOG.md0cee41867f[#656] Fix ACME renewal fails on redirection enabled Servicee956e03ba0Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into devc08fd07a6bUpdate linguist-vendored to add modsecurity files and non patch deps files466c8e584cMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev27d3ca1cdfautoconf - fix wrong types for dynamic settings410557009aAdd .gitattributes to override linguist-vendored pathse7498279cdRevert Docker image update for testsfe87486f97Merge pull request #673 from bunkerity/devc2db157bb5Update python docker image to 3.12.0eb8088164bTweak Dockerfiles to make the build nicer202698f41fFix python deps conflicts and update them0eb18cb31eMerge branch 'dev' of github.com:bunkerity/bunkerweb into devf12a014104autoconf - update settings from db628068e9aeLint files with prettierf3694f0cc4Add prettier as a precommit hookb56cce63f7Fix codespell typos in README.md87ca176633Fix typos raised by codespelleea5dd9b75Add codespell precommit hook8fbe692618Fix mkdocs.yml file duplicate copyright keycf82e73e97Fix swarm postgres ui integration example6b2df35858Tweak py file to respect flake8 rules508c728b65Tweak pre-commit config and pyproject.toml file + Add flake8 as linter in precommit config75e8c83397Update CHANGELOG.md07676a3d0aUse hashes instead of versions in github workflowsf0761eed2cRevert "Add fuzzing tests in CI/CD"4babce9749Add fuzzing tests in CI/CDa263f1f4f1Update cron for dev-update-mmdb31a8399688Merge pull request #666 from bunkerity/devd8b2561675Merge pull request #665 from bunkerity/dev87d2f04eb8Remove no longer necessary temp fix for Flask-loginc006e5088dUpdate python deps + Update Flask-Login to include the compatibility with Flask 3.0.0df9bf1f561Merge pull request #664 from bunkerity/dev6b0e623e59Update Dockerfiles to install pip and its deps before the project ones85068bfeeaAdd temp fix to support Werkzeug>=3.0.0 with Flask-login5a7f9147faUpdate python deps and update script3589057703Fix bunkerweb-ui.sh script with variables not being exported correctly5ed595be68Fix shellcheck tests failinge21e0c812bAdd shellcheck and gitleaks to pre-commit-config + tweak excluded paths1b7e1840cdFix blacklist core tests' requirements.txt file1f90d3668cAdd a pre-commit-config file and passed all checksf3fc69110eFix typos in Dockerfile when installing python dependencies073e8575e2Updated Dockerfile, python deps and npm package to use pinned dependenciescd4d529d7eMerge pull request #660 from bunkerity/devb4a320afaaMade ui tests better8ed656068fSmall fixes on linux paths creating unnecessary folders8fa7adb615Small refactor on how the autoconf updates the config4ec754143aHandle changes more elegantly with the scheduler0f7df13df3Optimize save_config script48096d711cOptimize the way the UI handles services creation and editionc0816bb119Fix potential cross-site scripting vulnerability in plugins.js in the UI18e5f7bff6Merge pull request #659 from bunkerity/devece5ce1cdfAdd HTML sanitization when injecting code in pages in the UI4d50026744Extract codeQL workflow to have a separate one + Add scorecards analysis workflow file + Add UI tests for the UI branch1c71572f44Update tsparticles in the UI + remove unused static files685cb9809dUpdate README to fix a few links and add the security scorecard badge65d0aa3a8aMerge pull request #658 from bunkerity/dev6e2db59919Add a sleep before changing from cache page to log page to avoid errors in ui tests1db769c321Remove bugged UI tests check in linuxdb99d16874Update the condition that checks the integration in core tests579c80357fUpdate UI starting script and ui tests script on linuxb901d29710Update python depse23f931bd6Replace gevent with gthread in UI for security reasons15eef6ef57Try to fix python deps issues with linux and try to have more logs in linux ui testscc0167f427Fix ui linux tests when waiting for the ui to be readyfd4c147b89Update how the scripts wait for the UI to get ready before starting the tests95afba8792Change how the ui tests waits for the ui to be readyea5cb0db2dTry to fix ui linux test by adding more sleepscb3250e4e7Fix UI linux test (again)153e9fecf1Fix bunkerweb linux scripts81b5e80da6Try to fix deps permissions with linux ui tests (again)6a162d7250Fix linux permissions with ui testsbe5fe2830eTry to fix ui python deps in ui linux tests380e609abdChange ui linux tests command into development mode93006cf5ceFix Firefox installation in core and ui linux tests39f17bce60Try to fix permission issues with Linux and ui python deps94c7c832e6Fix permissions with python deps in ui linux tests42be334e40Fix permissions with ui tests on linuxcad3012e6dTry to fix python dependencies error with test ui linuxa04282d3f8Fix test core redis with linuxc757f5d49dRe generate requirements.txt file for the UI with python3.9052e060222Fix core and ui workflow file for staging testse71b711466Merge pull request #655 from bunkerity/devb90da0f909Add better health check in linux ui tests5c1fafe518Updated CHANGELOG.mdc964d68f99Add more tries when the dnsbl server isn't found78a29e65eaTweak reversescan core test to avoid false negative0e9f29cc52Revert "Fix UI shenanigans with python deps"70ab9740d9Fix UI shenanigans with python deps0303a8f7b9Update staging workflow file to include core and ui linux tests16d4c1133bOptimize the way errors are being checked in linux core tests2ddc8cec72Update dnsbl list regex to accept an empty one6534a429afFix looking for error in the wrong place in test code linux25eb8de01eTry to fix a few shenanigans with linux core tests2065d688f1Fix ui tests with docker checking the wrong containers if healthy87f84d438eAdd a retry on nginx error in linux core tests99b30af8eaFix reverse scan python script1ff2aed68cFix UI docker tests docker compose file48bcb11983Rearrange imports for blacklist init core testae9450d0dcAdd whitelist and greylist linux core tests9a17e92d62Fix typos in dnsbl core test2244f734faAdd dnsbl linux testa29ac80e4bAdd country linux testscff5c77679Fix sessions core test for linux6ae6764f27Fix blacklist core tests docker compose27959e1aa9Fix sessions permissions issues with python requirements47e8f20f83Fix CVE CVE-2023-380396283ce2dd7Add linux tests for blacklist and bunkernetf3d6f860e0Remove old cached files if urls are empty61c8ef73b0Fix permission issues with sessions core test with linuxbe25ae8e05Fix failing linux core tests + add more logs when an error occur in ui tests33e200f652Fix UI using the wrong database when generating the new config57374ecc2fFix tests ui with linux601f0fde62Fix tests ui linux not starting the ui servicefdb9a7c294Fix errors linux tests permission issuesdf12058824Fix tests ui linux executing the wrong filedb404a62c3Fix ui tests misconfigurationa0aced3e53Fix tests ui linux workflow filee378be9a92Fix typo in tests ui linux file name + add more logs in ui docker tests432d1587c7Add linux ui tests2ad8861788Fix selfsigned job with cryptography not being foundda4390b488Fix python modules version conflict with web ui7bd48203aaFix and update python depsce2fa3d360Fix a few core tests for linuxbca36e2966Update self-signed job to regenerate the cert if the subject or the date has changed06da40bf13Added more linux core tests84a27a3fc3Fix DB core test with docker9e34251824Fix path issues with db core test initc90cd7399aFix permission issues in tests core linux91e5528a3fFix already existing tests core linuxaeee38ad32Fix misc problems related to linuxd97326656dFix Database not clearing old services when not using multisite8a6e14d8c8Added linux tests to a few core plugins0ece8fda00Fix permission issues when starting BunkerWeb in antibot linux testse935132242ci/cd Try to fix permission problems with Firefox in test core linux761c01af6eci/cd Fix test core linux shenanigans with Firefox0d9349611eci/cd Try to fix errors with firefox in test core linux094d5d5dfeci/cd Fix a few things with test core linux + finish antibot linux core testsfdae4549ceci/cd Fix permission issues (again) with test core linuxd59cf1835dci/cd fix permissions issue in test core linux + fix shenanigans with antibot linux core tests43b1a038f9ci/cd clear out firefox before reinstalling it in test core linuxd192fbb829ci/cd Install Firefox manually in test core linux0239ca64b4ci/cd test core linux remove dns resolvers override1dd1caeea4ci/cd Fix Firefox installation for test core linuxa0516f773fci/cd Install firefox from apt instead of snap + fix antibot core tests for linux480c680f19ci/cd Fix timeout in geckodriver download for test core linuxa94dab2087ci/cd fix retry job when downloading the geckodriver in test core linuxd0a1aab15cci/cd Fix perms issues (again) and optimize some things in test core linuxdd0c4c93a6ci/cd Install requirements and deps in test core linux294402dbf2ci/cd fix perms issues with test core linuxcd35d35c25ci/cd Fix perms in variables.env for test core linux4cce8385c5ci/cd fix write in /etc/hosts file in test core linux990b6336e2ci/cd Fix test core linux with dpkg versioningccc5eb304aci/cd Fix version error with ubuntu and test core linux6a38390404ci/cd Fix tee command not being ran as sudo in tests core linux453cfc2dccci/cd Fix BunkerWeb installation job with linux core tests0b14f8a5d0ci/cd Fix install command in linux core tests624f4b5bb5ci/cd Fix path of the .deb file61bc8a3b10ci/cd fix .deb fetching in Linux core testsfa91bf6c60ci/cd change needs and logic in test core linuxb54c7eb61aci/cd test secret inherit for ubuntu private test image30cba0a77dci/cd fix dev.yml80d56fcca6ci/cd start working on linux core tests69307fba6fFix issues with GitHub rejecting the requests7c5177bf43[#643] Fix UI clearing configs folder at startupb5bd17d4daMerge pull request #641 from bunkerity/devad65e01a87Update CHANGELOG.md1259fb67d9Merge pull request #634 from bunkerity/dependabot/github_actions/dev/docker/setup-buildx-action-3b9e752f12fMerge pull request #636 from bunkerity/dependabot/github_actions/dev/docker/login-action-3278eb0c8a4Merge pull request #635 from bunkerity/dependabot/github_actions/dev/docker/build-push-action-5dec97c8c3bMerge pull request #637 from bunkerity/dependabot/github_actions/dev/docker/metadata-action-59222420b7a[#640] Fix shenanigans when executing docker compose restart07fb7cf164[#638] When renaming a service in the UI, migrate the custom configurations as wellf83b2278d0Fix versions conflict between greenlet and gevent with UIe51e178357Update python deps3c95971e3eFix CVE CVE-2023-4863bb7ef35aebMerge commit '35d13d7a097dd094cdbe993f18f29de0b08f1f2b' into dev35d13d7a09Squashed 'src/deps/src/zlib/' changes from 04f42ceca..09155eaa2d962538784Merge commit '4430cf47ddc1f3647b3bc129f46fed2d7a145f8c' into dev4430cf47ddSquashed 'src/deps/src/luasec/' changes from fddde111f..4c062870537a2343e24Merge commit 'd8ee65aa70e9737330c8a83301fd66c7dc8a8d7a' into devd8ee65aa70Squashed 'src/deps/src/lua-resty-session/' changes from 8b5f8752f..5f2aed6166752b36471Merge commit 'd7bde18da2a8a81f2d5f256bc975b1fb5b546107' into devd7bde18da2Squashed 'src/deps/src/lua-ffi-zlib/' changes from 1fb69ca50..61e95cb43af902fc4ecMerge commit 'e0a89a2fcd1d0dd4cc103fc054242e8e8b10b7bf' into deve0a89a2fcdSquashed 'src/deps/src/modsecurity/' changes from 205dac0e8..ccc2d9b535ec7eb53a1Squashed 'src/deps/src/luajit/' changes from 04f33ff0..e598aeb726d3d6c6ceMerge commit '5ec7eb53a1fa30beb59d3358f16716483787b02e' into dev0aaede4d61Update core deps955c7e0630deps/gha: bump docker/metadata-action from 4 to 58ea823e061deps/gha: bump docker/login-action from 2 to 3a6efa52051deps/gha: bump docker/build-push-action from 4 to 5a6b30f6a6bdeps/gha: bump docker/setup-buildx-action from 2 to 31144a73813make logs optional in issues, change assignee for dependabot and edit sitemap URL of the docc364e46663ci/cd - disable redirect when pushing docd4f38cc795ci/cd - fix error when parsing ARM typesb6d49865b7ci/cd - get ARM type availabilityd0a8cc3818ci/cd - use volume id instead of index for arm instance30c952e9e4ci/cd - set boot volume for arm instance2382fdd377ci/cd - start arm server after creation05ecf558cbci/cd - use latest scw cli version2b7ce389b7ci/cd - reflect changes on release tf from refactoringd5d7364b1cMerge pull request #632 from bunkerity/dev3adbd8757e[#628] Fix scheduler generating the wrong configuration with Linuxfd79508633Merge pull request #631 from bunkerity/dev3ae9636d5aFix error with the CSP header override of the antibotf993499007Merge pull request #630 from bunkerity/devea6ae52539Update ANTIBOT_HCAPTCHA_SECRET setting's regex to support new format5811dc549cMerge pull request #629 from bunkerity/dev6404b701c0Update changelog2b5654ba3bUpdate coreruleset to version 3.3.5c948e449a0[#622] Handle configs dir more nicely in Linuxfb5a8dc4fb[#622] Fix permissions with folders in linux integrations5f19b3fdabMerge pull request #627 from bunkerity/dev2fce08b727Upgrade issue templates2ed6584dd7Update python deps hashesd6a14b6716Merge pull request #626 from bunkerity/devb3c398cb56Remove jinja2 from requirements.txt as it creates conflicts6334a3d638Merge pull request #623 from bunkerity/dev8ab4ea2e26Update id of ui.conf rules to avoid conflicts11664cc1d8Fix wrong variable name in limit core tests9535c04142Fix shinanigans with both multiple and global settings not being stored correctly in datastore8cafded894Fix variables that are both multiple and multisite not being stored properly in datastorec6b2199dd3prepare for 1.5.2 🚀c418acdcfaUpdate CHANGELOG.md9d0d72ba02[#576] Add support for ModSecurity JSON LogFormatcbc6259386Update mmdb filesf57fc5d3f6Fix menu.html dark_mode attribute in UIc7e834a0dcUpdate python deps673ee921f6Lint files9fb8dfca45Fix Scheduler running two times for no reason4787400d74[#615] Fix BunkerWeb not being able to start after a restart because of the /var/run/bunkerweb directory missing in Linuxf59476c26dMerge pull request #621 from bunkerity/dev4be53d0cbeMerge pull request #620 from bunkerity/ui55ba29cd54Fix UI error when values are empty947690af8fFix UI workflow5cdf0ecf44Merge pull request #619 from bunkerity/uid1dd1fbae7Fix shinanigans with the /data volume in the doc1b84c62024[#613] Fix logs with web-ui and Linuxa2e0f1fe66Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into dev639eed8d05Deactivate BunkerNet on first start with linux500c3564a2ci/cd - perform staging tests again448efc0ef0Merge branch 'staging' into dev1b660691d5ci/cd - fix typos for docker/packages pushese62b7c9d19Remove unused js files in web-uib87316d7c4Merge pull request #617 from bunkerity/ui4cff39f490Merge pull request #616 from bunkerity/devbceb286026Lint filesd9d6ed9bb0Fix settings regex with web-ui01be5baea5Merge pull request #611 from bunkerity/dev059afec430Update rhel docker imagee564d84079Merge pull request #610 from bunkerity/dev2c15b37461Fix rhel typos "el" instead of "rhel"6f26c42c89Merge pull request #609 from bunkerity/devc5059ab220Update doc to include TLS as well as HTTPS in some sectionsa7a317b5bfMerge pull request #487 from bunkerity/dependabot/github_actions/dev/scaleway/action-scw-c718eca1fcb9fec1fb1433752d61599c6a0ad2e90681cf2c9bUpdate actions/checkout to v43a02c0ca5cAdd more delays in badbehavior core test040d447145Change SQLite config to avoid locking07725356b6Merge branch 'staging' into dev6a995723c0autoconf - fix changes check bug with same variable name47bf7299a1Lint py files656c5008descheduler - ignore changes on first loopc206daf9ddadd basic config lock between autoconf and scheduler + remove reverse-proxy tests for linuxcf55ade15dci/cd - various fixes for k8s testsd28432e5f2Fix API_SERVER_NAME regexb5638aae19ci/cd - move k8s login in staging-tests job4450762b8cci/cd - fix image name in k8s tests6e1660cd00autoconf - fix wrong config updatecb4c99f456ci/cd - fix docker tag command for linux tests64d2ed91ecci/cd - fix secret key0e2420cfffci/cd - add timeout for cleanup jobsfa165522e5ci/cd - use same md for openssl commandsb036803884ci/cd - remove double untar for k8s testsbae27806b2ci/cd - fix tf state upload/download again11794da8c4ci/cd - fix tf artefact commandc52e54b812ci/cd - fix tf files againe5c37a00acci/cd - fix k8s tf9a3c26bf65Merge branch 'dev' into staging56422bca46Update python deps regex for UIee47407dfeMerge pull request #606 from bunkerity/dev936b1e88f0Remove old CVE fixes for nginx imagef9f5b6570dRemove old CVE fixes for python images8e8e042c25Testing CVE on bw1676ebeb7eTest CVE on autoconf637573e591Update docker images and python depsc3a4847de5Update startup and temp env in bash files3db7904d41ci/cd - fix wrong image tag for Linux test images037e1ba566docs - add ghcr.iod6aa6a9b09ci/cd - staging improvements9aba006738Fix oddities with the scheduler and the Databasef7d9af9d69Fix potential infinite loop when waiting for a configuration from the autoconf95c796c1eeci/cd - delete temp compose downgrade423e3b4a39ci/cd - log to ghcr before getting tests containers511597b7e0ci/cd - fix tests image namesbb77dcedf5ci/cd - edit username for ghcr auth3d0f17808cci/cd - add dummy username for ghcr auth5a9836fec5ci/cd - fix nested permissionse1edfe4a7fci/cd - fix missing permissions in wfe81ab4ff9bMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev87b4053402ci/cd - use gh cache for docker cache and pushes to ghcr.io45a81203edUpdate python deps9feb66710bautoconf - force updating first configuration3d13cf345eautoconf - only update data when needed and atomic changed metadata update00cb6c1a8btests - fix regex for geckodriver version898ee7ec87tests - tweak dpkg before installing BW643b30f993tests - ignore wrong testing version in deb packages69e944d56aRevert "Fix LinuxTest package installation commands"2b7f627d86Merge pull request #602 from bunkerity/dev82fb7b277dFix LinuxTest package installation commands1042e546b6Merge pull request #601 from bunkerity/dev6d1d464e16Remove tries limit in wget commands (defaulting to 20 tries)b5de52ead9Add more retries when testing the newly created service in ui tests2675227499Merge pull request #599 from bunkerity/dev4f82856b48Update staging-create-infra to use a static version for monolithprojects.github_actions_runner == 1.18.1d670b409bfMerge pull request #486 from bunkerity/dependabot/github_actions/dev/docker/build-push-action-40b93916a37Merge branch 'dev' into dependabot/github_actions/dev/docker/build-push-action-476408cf04dMerge pull request #598 from bunkerity/devf7cd7d9dafAdd dependency on tests-ui to not fail to push the testing image8632dd3244Fix exit code for ui testsfbf0232d52Update python deps5b6f00dfc6Revert "Remove unused imports in ui tests"681def5f02Remove unused imports in ui testsa844b235b9Remove geckodriver.log73e31ca625Add wget to fix error with testsd82136f040Fix UI tests not exiting if container fails to start55fd177901Fix wget command when downloading the geckodriver sometimes failsd8c95869e8Fix database with multisite variablesf24802b211ci/cd - perform staging tests again758fc13c3dci/cd - replace version string for testing releasecd825cd341ci/cd - fix wrong VERSION path for testing releasec03b1bb20bci/cd - update VERSION file for testing releasea5e50d0f74ci/cd - fix linux package name for staging1a57e0a202ci/cd - remove linux arm64 packages pushesde568f335fci/cd - temp disable staging tests244b912476ci/cd - fix syntax error in push-github wf08ce31bb0fci/cd - prepare for testing releases7f47ac18c0Fix plugins errors when reloading with a select and upgrade checkb6b87fcb03Update python deps8bada2a02dUpdate update-version script and bw version in after-remove scriptsb8778de08buse nightly tag for docker-socket-proxyb42b732d74Merge branch 'staging' into devfc1c81ce20linux - add python3 dev dependency when building packages76d36f3b91v1.5.1 release63355bb887tests - increase radarr delay (again)0ecf478761Merge pull request #592 from bunkerity/staging59dfb728ffFix DNS_RESOLVERS regex to be more open47c560dd30Merge pull request #591 from bunkerity/devff1e6cc28ck8s - use same namespace as ingress for services81c2c3187cFix config synchronization in scheduler + Remove MULTISITE variables being fetched when MULTISITE is set to no7f3f3ac7e3Add delay to radarr automatic tests58d69ec20cMerge pull request #590 from bunkerity/dev012bc3b43dMerge pull request #589 from bunkerity/staging600ea7e168Update python deps18ee159711lint python fileseee26b5d72tests - add delay for reverse-proxy-singlesitec00157ef32fix wrong instances when using docker mode and add delay to docker-configs tests6047a43358set default value for ports in bw entrypoint, fix core db tests and fix missing PYTHONPATH for certbot jobee2aeda13atests - add static delay for linux tests and fix core db testsbb6fd30739linux - force kill nginx if graceful one doesn't work6e6c08a716ui - various edits5df2a74cafimproved LE certificates checks and fix missing full SERVER_NAME when MULTISITE=no843c023707tests - fix wrong command in linux tests8f7833413blinux - fix letsencryt not working and fix permissions on /etc/bunkerweb/configs for tests0ccd757817linux - add missing pip to rheladbed77f74linux - install pip the official wayef7a6ac421linux - fix fedora dockerfile31ca183b1eMerge branch 'dev' into staginga763879c1ddoc - update settings03ba91e968autoconf - fix deadlock with k8s38ab5ea21aredirect - custom status codeee5397df55bw - add HTTP and HTTPS port to temp config9efd7a5a5fsessions - fix infinite loop when session checks fail784ce643f0db - disable connection pooling for one shot tasksf3081e3c34scheduler - fix parent setter call26a1ef6898Update mmdb filese2fe947cb4ci/cd - fix tests UI not showing logsbf9cd367d0fix missing Strict-Transport-Policy header, fix X-Forwarded-Prefix with regex URLs and print logs when UI tests failed26f2852e54scheduler - fix typo in fstringe93b2f65ffcache dev container images, fix CVE-2023-35945 and force scheduler to reload when instances changef3ba16be9dadd instances changes check to scheduler and auto push dev container imagesd9394567efadd missing ctx arg in core plugins, always add X-Forwarded-Prefix header and add doc about timezone in containersd59b305f1efix concepts image in doc, revert clientcache update and refactor headersad45bbb4d7Update python deps and fix error with PyYAML compilationdb03aa9c79Merge pull request #565 from bunkerity/devbb14be8202Update python deps updaterbedcf0c17cFix bug with newer version of PyYAML by downgrading68e9b057d4Merge pull request #564 from bunkerity/dev810340a493[#559] Fix typos for custom-cert's settings in docs and examplesa4db7c2942Fix CVE CVE-2023-2975758901dfc3Fix CVE CVE-2023-29759216becb56Update python depsdb413cc032Merge pull request #555 from bunkerity/deva4f4dfe4e6remove unused imports in save_config.py0d554a5f5dUpdate SERVER_NAME regex to be more openc11b44285bMerge pull request #554 from bunkerity/dev25af02e4a4FIx prevent the `DATABASE_URI` setting from being saved inside the database9eec9e26c9[#552] Fix scheduler not changing databases on linux845364b2b6Update log paths for linux based integrations3dac0aef0etests - temp fix for compose network errors08f9e5f20aFix bad behavior core tests by adding a custom subnet to the bw-docker networkfccb25bee6Add automatic bw-docker network removal between each tryd6407b8186Fix db core tests by making the network bw-docker entirely external1cf281ef83Update core tests to be even more verbose3a714b9a3fUpdate core tests to be more verbose864619542cFix core db tests (again)be46f7a8d8Optimize db core tests559039dfd1Lint .conf files that contains lua code + remove useless commentsaa0769dde7Merge pull request #549 from bunkerity/devae6ccfcffcApply patch to luajit-geoiped234fd63fApply post_install script to lua-resty-openssl09ae6da557Apply patch to lua-resty-ipmatcherb516ca2ea2Apply patch to lua-ffi-zlib1e7f92af80Apply patches to Modsecurity-nginx008dc09a60Stop checking return code of post_install scripts in init_deps.shfcd230192fFix init_deps.shf3809bc698Add -R to pull commands in init_deps.sh96586d4a68Apply post_install script to Modsecuritya75b90f525Squashed 'src/deps/src/modsecurity/' changes from bbccedbdd..205dac0e8948182ffd4Merge commit 'a75b90f525b90bd74c090702034e02fdd6250e0e' into dev544b4040e0Add post_install scripts to init_deps.sh and update install.sh6e146e2a54Squashed 'src/deps/src/modsecurity/' changes from 205dac0e8..bbccedbdd847ff5a3daMerge commit '6e146e2a54cb29eb0ac1bc9d65766fe90d30fa4f' into devbbccedbdd5Change tags into hashes in deps.json14d69fa594Update mmdb filesd5e358b72cMerge pull request #548 from bunkerity/deve0055328afFix add missing deps for core db testsc93d5a2fcdFix CVE CVE-2023-33165631e27378Merge pull request #547 from bunkerity/subtrees3505c0d18fRemove clone.sh file7b566b885eSquashed 'src/deps/src/zlib/' content from commit 04f42cecaffd3100317Merge commit '7b566b885e99301b243c5f61360e65238035e048' as 'src/deps/src/zlib'45dca7b445Merge commit '2ab324a69f219b4051b2e77d211ee1a7fb1462b5' as 'src/deps/src/stream-lua-nginx-module'2ab324a69fSquashed 'src/deps/src/stream-lua-nginx-module/' content from commit 309198abff85f86e46cMerge commit 'c1073460677ba8aa2e325a1c57c3db1458f9fde5' as 'src/deps/src/luasocket'c107346067Squashed 'src/deps/src/luasocket/' content from commit 95b7efa9da7d4cc5bbaSquashed 'src/deps/src/luasec/' content from commit fddde111fbd600e0d0cMerge commit 'a7d4cc5bbaabf8683b3b5cc1f42f9bd145cf1aa8' as 'src/deps/src/luasec'd156626938Merge commit '2d86912af87048b94c2921a60b3a8a5a0953e132' as 'src/deps/src/lualogging'2d86912af8Squashed 'src/deps/src/lualogging/' content from commit 465c994781fb404757dMerge commit 'f3ceeb73a958e774b1e2fa55d2607cdd3eb419ca' as 'src/deps/src/luajit-geoip'f3ceeb73a9Squashed 'src/deps/src/luajit-geoip/' content from commit fde33e045f81788c00cMerge commit '2678b91586e9183b47327fbb0f11ad23020f195f' as 'src/deps/src/lua-resty-upload'2678b91586Squashed 'src/deps/src/lua-resty-upload/' content from commit 03704aee42d06f2d7abMerge commit 'bc06cd71b8896c6e7a1aac4610c9c3f878956238' as 'src/deps/src/lua-resty-template'bc06cd71b8Squashed 'src/deps/src/lua-resty-template/' content from commit c08c6bc9ea6379356eaMerge commit '3038a0b027f09090e1cd8f101d2ee8c52c383070' as 'src/deps/src/lua-resty-string'3038a0b027Squashed 'src/deps/src/lua-resty-string/' content from commit b192878f6fdf0050a91Merge commit 'ee5198ba2810e33e08ff987ede5abe10fc74f6e3' as 'src/deps/src/lua-resty-signal'ee5198ba28Squashed 'src/deps/src/lua-resty-signal/' content from commit d07163e8ca3cd342f3eSquashed 'src/deps/src/lua-resty-session/' content from commit 8b5f8752f6f8ff3f12eMerge commit 'a3cd342f3e1fffd7b16b83a24e03bb9ed501b319' as 'src/deps/src/lua-resty-session'2f1cde0978Merge commit 'eca8662cfe981f66ab92b53bbf83af65da02b2b7' as 'src/deps/src/lua-resty-redis'eca8662cfeSquashed 'src/deps/src/lua-resty-redis/' content from commit d7c25f1b30b94df0879Merge commit 'e59161ec204c7a95e4751b1c0e9a6bead7fcab39' as 'src/deps/src/lua-resty-random'e59161ec20Squashed 'src/deps/src/lua-resty-random/' content from commit 17b604f7fa280059882Squashed 'src/deps/src/lua-resty-openssl/' content from commit b23c072a438fdd39d00Merge commit 'a2800598825bb5a03b577cca2874ff1cfae863f4' as 'src/deps/src/lua-resty-openssl'c2fa53ca17Merge commit '31bf774f63b8b46a3c7b53028853036fff6fa0b8' as 'src/deps/src/lua-resty-mlcache'31bf774f63Squashed 'src/deps/src/lua-resty-mlcache/' content from commit f140f56667b2273aeb8Merge commit 'c82b0bdd27762d2d4a9901a187506d2e5abd74f5' as 'src/deps/src/lua-resty-lrucache'c82b0bdd27Squashed 'src/deps/src/lua-resty-lrucache/' content from commit a79615ec93dc8cc87caMerge commit '746a6e16d027ab3bddfc610c987e5d61ab9b69d0' as 'src/deps/src/lua-resty-lock'746a6e16d0Squashed 'src/deps/src/lua-resty-lock/' content from commit 9dc550e5662e740a0bbMerge commit '19515d9b26f2f4886ca117b91384509087f0ff3a' as 'src/deps/src/lua-resty-ipmatcher'19515d9b26Squashed 'src/deps/src/lua-resty-ipmatcher/' content from commit 7fbb618f7e566b98afcMerge commit '7160fd94e3dc22299ee3c9f8b0e71a5e2c1bb501' as 'src/deps/src/lua-resty-http'7160fd94e3Squashed 'src/deps/src/lua-resty-http/' content from commit 4ab4269cfcdd42bf250Merge commit '1a7d4e58be28238599df3f5c15c56380c3e99732' as 'src/deps/src/lua-resty-env'1a7d4e58beSquashed 'src/deps/src/lua-resty-env/' content from commit adb294def49db9c24d6Merge commit '0f4a0cb0ef514bee6b810f6d6cf982c5ef0abfca' as 'src/deps/src/lua-resty-dns'0f4a0cb0efSquashed 'src/deps/src/lua-resty-dns/' content from commit 869d2fbb0fe76b6830aMerge commit 'fd02afef8ec1ceb8a816dc202d05c6ece9887d31' as 'src/deps/src/lua-resty-core'fd02afef8eSquashed 'src/deps/src/lua-resty-core/' content from commit 31fae862a29d135bdbcMerge commit '36023392a6e3c8fb6aebb46140db759e61da220e' as 'src/deps/src/lua-nginx-module'36023392a6Squashed 'src/deps/src/lua-nginx-module/' content from commit c47084b5db01aa0b15fMerge commit '32485e2860c2ea31fcef5b575f446c7a3036a550' as 'src/deps/src/lua-gd'32485e2860Squashed 'src/deps/src/lua-gd/' content from commit 2ce8e478ac46cd666abSquashed 'src/deps/src/lua-ffi-zlib/' content from commit 1fb69ca50909841ea63Merge commit 'c46cd666ab76bad7bd05c6261d692cda5b380f32' as 'src/deps/src/lua-ffi-zlib'47ee3884fbMerge commit '4f9b885a2e8b7a10653653fee3bb91cf5102b0ef' as 'src/deps/src/lua-cjson'4f9b885a2eSquashed 'src/deps/src/lua-cjson/' content from commit 881accc8fbb450ac965Squashed 'src/deps/src/libmaxminddb/' content from commit ac4d0d248e13868c63bMerge commit 'bb450ac96595432625ac34de8f7f42b3d06a5b30' as 'src/deps/src/libmaxminddb'772e05d372Merge commit '4a7228d2dcb7fe62526016b90a7c497fb6531e76' as 'src/deps/src/libinjection'4a7228d2dcSquashed 'src/deps/src/libinjection/' content from commit 49904c42a209d4a461bMerge commit 'ae8d8b233d52cbfdee68bd3ba21713149f5659c8' as 'src/deps/src/lbase64'ae8d8b233dSquashed 'src/deps/src/lbase64/' content from commit c261320ed9927106501Merge commit '1d1739b4eaa274c25c52b8ceb79ebdc717633ec0' as 'src/deps/src/headers-more-nginx-module'1d1739b4eaSquashed 'src/deps/src/headers-more-nginx-module/' content from commit bea1be3bbe43880b083Squashed 'src/deps/src/ngx_devel_kit/' content from commit b4642d6caa09d5eb2cbMerge commit 'e43880b08395df25663560da3d8154226a167a77' as 'src/deps/src/ngx_devel_kit'8973eb0290Merge commit '26773844e7bd57df1216bd74360a62ec2dc976e3' as 'src/deps/src/nginx_cookie_flag_module'26773844e7Squashed 'src/deps/src/nginx_cookie_flag_module/' content from commit 4e48acf1379d1b44594Merge commit '22e69251d9b5cd2611abf77ef7352abfa4d409d7' as 'src/deps/src/ngx_brotli'22e69251d9Squashed 'src/deps/src/ngx_brotli/' content from commit 6e975bcb04cd57ab8f2Merge commit 'b99663928782619ef854b4bf10a2bf7450d75266' as 'src/deps/src/nginx'b996639287Squashed 'src/deps/src/nginx/' content from commit 84cd72177d7f25398aaMerge commit 'a676d333fda890838d8fc4766720cc3f1d4c5389' as 'src/deps/src/modsecurity-nginx'a676d333fdSquashed 'src/deps/src/modsecurity-nginx/' content from commit d59e4ad127e8f4adc3bSquashed 'src/deps/src/modsecurity/' content from commit 205dac0e8999fb6b8edMerge commit '7e8f4adc3b2b2a655640c73198fb920a5e8441d5' as 'src/deps/src/modsecurity'6c0468f62bSquashed 'src/deps/src/luajit/' content from commit 04f33ff06d05b14eb5Merge commit '6c0468f62b1120497a6fd0d21101dc41f29e7397' as 'src/deps/src/luajit'1141afd203Fix install.sh for nginx dynamic modules97406bff4dAdd libinjection deps backa58ad9b506Remove duplicate lua-ffi-zlib in deps831ae129c4Make init_deps.sh executable451648fa71Remove old deps temporarily except lua185d75076bUpdate how the deps are initialized6a048e68fcUpdate how the deps are managed129e8f7e01Merge pull request #546 from bunkerity/dev265123835fUpdate python depsb0bc9a1bf4Update the documentation2f7ed064fcdocs - Fix typo in webhook link in plugins.md7d6116163cMerge pull request #544 from bunkerity/devdeed39a1fbUpdate lua-resty-openssl to version 0.8.23dd295729bbAdd deps project submodulesb27f38349bUpdate lua-resty-session to version 4.0.4 and remove lua-pack deps as it's no longer neededaeca252d9dBump lua-resty-core version to 0.1.27 and lua-nginx-module version to 0.10.251ec21261c4Revert "Init work with submodules"718a9305d8Revert "Fix .gitmodules file"a253f4a59cRevert "Remove old folders that are now submodules"2e1e9a08cbRevert "Initialize submodules"e2f1aba3ccRevert "Add other projects to submodules"d9a98c6fa9Revert "Update commit SHA for submodule libinjection"5ed3ba1d50Revert "Fix path resolution for modules and remove nginx submodule"b529d85255Revert "Update checkout part of workflow to include submodules"43783edb9dRevert "Add nginx as a submodule"8417ed1324Add nginx as a submoduleded0ec66deMerge pull request #542 from bunkerity/dev6cbbd0d562Update timeout for wordpress tests to 120 secondsd687b228e2Fix PERMISSIONS_POLICY authorizing self and links to be aside without spacesbcc9fdef90[#533] Fix SERVER_NAME regex to limit domains' size individually instead of the whole setting's value524a140d24[#534] [#504] Update ALLOWED_METHODS regex to accept more methodsa197e20d26[#531] Fix typo in documentation about SSL252a5831bfMerge pull request #541 from bunkerity/dev07ed136afaUpdate setup-kubernetes of wordpress example2eb73d15a1Merge pull request #537 from bunkerity/dev30fec8a142Remove python submodule, will add it back in the next major4b4e0f8b3bUpdate checkout part of workflow to include submodulesc2cfd4dd9fRemove checkout from dev.yml642da402bcFix dev workflow4bb6d40a53Update dev workflow to checkout the code and submodules first3bcdd9ca24Merge pull request #536 from bunkerity/submodules28d59221b4Fix path resolution for modules and remove nginx submodulec8e25bcde0Update commit SHA for submodule libinjectione1a5782a3eUpdate how the dependencies are being cleaned up68bea47eddAdd other projects to submodules2cd5c7f451Initialize submodulesd7d3e24297Remove old folders that are now submodulesa747278910Fix .gitmodules fileb5fffc1f38Init work with submodules8c4c99e65dMerge pull request #530 from bunkerity/devddc337394dUpdate log location for nginx and letsencrypt1c362d0783Remove the deletion of let's encrypt lib and log folders after the job is finished95c9bad8e3Remove unused enums in database model7a972274f1Add database schema to concepts.md in the docs5614995364Revert "Update README.md links to use local branch files"4536e328e1Update README.md links to use local branch files89070cfb7dMerge pull request #529 from bunkerity/uid6942a46e7Update where the scheduler copies its config8a98da898bMerge pull request #528 from bunkerity/ui26f831cb4dMerge branch 'dev' into ui81f3914fc8Merge pull request #527 from bunkerity/dev162198bb93Update db core tests to ignore the added value for env custom configs7a524b43e6Revert back to 30 seconds of sleep in tests ui after creating a custom configb007916d6fOptimize the scheduler and gen even more (we love threads)0661916ffcUpdate ui tests to wait more after creating a custom config2105dc0f32Update core db tests to use the right hash for plugins_page files8231198219Fix rare error when hashing dictionaries in the scheduler1e62626ac0Fix KeyError in scheduler57eaedd8e9Merge pull request #526 from bunkerity/dev4d984f6237Update CHANGELOGd0fd6884ceFix shinanigans with the custom configs and plugins jobs8e6de2bdf2Augment authelia timeout3565dd7b37Update CHANGELOG.md145df1df4fMerge pull request #525 from bunkerity/devdf1359e877Add possibility to download lists and plugins from a file path + Update python deps + Plugins now support tar and tar.gz as wellb756b2d7d0Lint py filesf57b6dad13fix cursor gap on ace editor91c33f1d43Merge branch 'dev' into uied2a54d166Merge pull request #524 from bunkerity/dev3e871efed8Update python depsd27edab351Merge pull request #523 from bunkerity/dev9982ec36d4Remove useless import80033642ceAdd reverse proxy headers back0836d4ee9fMerge pull request #522 from bunkerity/dev2a2b7b6f5eMerge pull request #521 from bunkerity/staging78236abe83Check Aqua Securityc5ff63a40cFix CVE CVE-2023-313878ef5c4827Fix problems when creating custom configs or plugins and removing them completely2c190ee969add writeable /var/run/bunkerweb directory to hardened example94867d0d63letsencrypt - use same job name when retrieving data from db9e00b9dd13letsencrypt - use same job_name for both new and renew jobs9adb209a81lua - fix missing multisite variables in LRUfdd3367a65Merge branch 'staging' of github.com:bunkerity/bunkerweb into stagingdcf1561358prepare for 1.5.1 🚀4023e6dc69road to v1.5.1af9e125c86linux - merge change for debian packagerab6025ec91linux - fix missing zope modules7e221eb890debian workingf1435f2312Merge branch 'dev' of github.com:bunkerity/bunkerweb into devb14dba7752bw - fix multiple variables not loaded in LUA81bb9ede14Removing python 3.11 from linux7e66c577f8Removing python 3.11 in linux236572f581ui - remove python 3.11 import for Linux integrations73060e42a1Fix limit core testsdf0c03cef1Fix UI wrong import5d7ef69c9dUpdate limit core tests to avoid false negative855ae89363Update limit core tests to avoid false positive16a1916dbbRemove useless imports in lua code + lint605e237fd5Remove 404 from Bad behavior status codesfc8d76f33dRollback on hcaptcha passive featurec08e8d151aUpdate settings.md44097cad09Move the COEP, COOP and CORP headers to Cors plugin and change default values3446e5f9b1Upgrade antibot to add a custom CSP on each pages + update plugins order70f227feb3Fix error with multisite variables when requesting default serverf81b0bb4daFix multisite variables not being added in helpers9786975004Fix has_variable method of utils5b0b183a4dRemove no longer needed decode for plugin order from datastorea2759e3771Add small tweaks on the datastoreb6d8792575Fix how we fetch plugins_order in the default server94964a910aUpdate how we handle custom configs6a1ff499c1Fix Lets'encrypt plugin api and internal API179a7aa34aFix lua sessions with antibota1385fe9b3fix ctx usage in reverse proxy + remove useless log in limit23f9f14a46Remove old CVEs fixes from Dockerfilef77150bc26Test Aqua Security CVEsec48e66011Fix return value when no plugins have been found in api.lua6ab48d9dd2Update python image to tag 3.11.4-alpinece24a0482aapply changes to current core02d9403937perf - ctx caching and per worker LRU for readonly variablesa7069bd605Update UI to stop using env variables but werkzeug middleware + Send X-Forwarded-Prefix headers to UI servicec39dd78aecUpdate cors plugin tests3b459b0e20Fix shinanigans with API (again)718310312aFix shinanigans with the API5deeacc3d4Fix letsencrypt jobsc18f743d44Fix PosixPath in jobs85a53278e1Add a charset to cors Content-Type headere01c14f11fAdd Cross-Origin-*-Policy headers management and default values0b3c1a8a04Update KEEP_UPSTREAM_HEADERS setting's default value95f673c1d4Update doc about headerscee7672b55Update settings.md in the docd5ea95da92Increase load-balancer example test timeout39e6821a4cLint lua code64aa12b70bUpdate python depsc392a0b5f0Update mmdb filesf93dd34f67Extend KEEP_UPSTREAM_HEADERS setting to clientcache and reverseproxy core pluginsa23d189d3dMerge pull request #516 from bunkerity/devdf47ba0e98Merge pull request #515 from bunkerity/dev0ca7de1de1Add CVEs fixes back84fcfb726dTest Aqua Security 2c20bd05d35Test Aqua Securityc85a4183d8Fix Strict-Transport-Security not being sent654172f436Update headers core plugin lua codeafe6da4cf5Automatically add Content-Security-Policy header to response headers in the UI5c7cd38b51Edit headers core plugins to use lua Code + Add new setting KEEP_UPSTREAM_HEADERS299a0b5c25Remove apk update at beginning of each Dockerfile6cc20efe72Update bad behavior test BAD_BEHAVIOR_COUNT_TIME to 30 secondse2a3bfb106Bad behavior core tests change the ban time to 60 seconds4bbddf7975Merge pull request #509 from bunkerity/dev1eeefead95Core tests sleep between each request9829ef7525Update UI to automatically set SCRIPT_NAME and ABSOLUTE_URIb27958a19cMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev410a64810bcore - patch modsec to use access phase instead of preaccessf7d986d6a5Change the way linux starts and the scheduler95d4f0f87cSmall tweaks on core jobs4f324231d2Fix tmp variables path (again)dc18f98846Edit start.sh3b36965f4aFix tmp_variables_path in schedulerccc051e783Fix /var/run/bunkerweb in fpm args8b2517cdf0Remove ui cache download test - to much unstabled1138855eeFix gunicorn config for Docker and Linux0c8bc97faeFix UI on Linux not using the right usera68fb0c06aRefactor to make more sens and avoid specific errorsfff21746a9Correcting: Dockerfile-ubuntu End of statement block Jinja3ab4a59b6eUpdate debian Dockerfiles to avoid updating apt packages only once760ec3b3b6Add /var/run/bunkerweb removal script when uninstalling BunkerWebbe459d240eUpdate pid files paths to /var/run/bunkerweb8b697d87d1Fix Scheduler errors with the internal apis89a3c8b0b6Update bunkerweb-ui file according to the new gunicorn usage5e237d0d03Update gunicorn to use a config file as well + Fix headers error + Small fixesa424d59b1bAdd apk update at the beginning of each Dockerfile1d14db7e18Update custom cert job to not duplicate certs if the cert is global7efb82a7eeUpdate python depse920cba432Fix CVE CVE-2023-2650413b75b046Fix customcert plugin to accept multisite certs as well87a9545d9aMerge branch 'dev' of github.com:bunkerity/bunkerweb into devc533948452various fixesaca0d6da48Small refactor on the ApiCaller and the Scheduler1bd40a877aRemoving vmware support in doc612333d2adMerge pull request #508 from bunkerity/dev474ecbb41eFix typo in phases list in plugin.lua5fa21b3c89Fix CVE CVE-2023-2949116a459bf75Lint antibot html filesfd06a1e715Add Turnstile antibotd5e64320c4Fix small typo in misc.lua4d6d95037aMerge pull request #507 from bunkerity/devb60657e21fMerge pull request #506 from gin-gitaxias/patch-31f2c973a3bFix docker-compose file for custom cert jobb314f4349cUpdate integrations to add LOG_LEVEL=warning env variable to docker proxy0edfb2db35Update example to add a LOG_LEVEL=warning to the docker proxy83413aef2bRemove open ports from core tests docker compose files334be43462Fix custom-cert core plugin953128be6eUpdate scheduler changes check to reduce CPU usagebb7dcda48dRefactor paths resolutions for core plugins1088279524whitelist - remove unused IPs of duckduckgo crawler665b110c63[#504] Fix ALLOWED_METHODS regex5a2aa20bcdUpdate plugins.md168dfc4390Refactor paths resolutions for UI + optimizations on the plugin upload6e80c7b8deFix variable being ignored instead of saved inside the database when the value is empty8dad7a0b79Starting work on paths resolution refactorb5a78c3aaaTest Acqua Security vulns (2)ed6bee69c7Test Acqua Security vulns3dba058b45Fix custom configs not being cleared out once createdd9b093dab5Fix plugin example in documentation162f1d978aMerge pull request #502 from bunkerity/ui1f2fa95e77Remove useless line in the head.html file + lint HTML files1cd3567814Add multiple plugin upload in one compressed folder support for the UI29673f9182fix font1804936161Fix CVE CVE-2023-19997fe7a997fdMerge pull request #501 from bunkerity/ui5b75894d40Fix UI latest version checking & Fix conditions in quick settings for services1f6b3d59a1Merge pull request #500 from bunkerity/dev548630e3e9Update python depsaa299f0859Update plugin update and add to get only the necessary keysf0126b6d6eFix update-check job8585007bcbdeps/gha: bump scaleway/action-scwa7535c300adocs - fix yt preview in readme340b4a4929change arm server flavore7ea3952b6ui - add missing dep for docker/x86a586b5b6bedeps/gha: bump docker/build-push-action from 3 to 43b7d8b6c11Merge branch 'staging' into dev6666a25fccedit version, update images on docs and fix bug in Linux scriptf84af34025Add error ignoring when using the rmtree function0b082bdab7Add handling of stderr being None in the scheduler1f2b550f60ci/cd - fix swarm examples and init work on release workflowd5fcc69694Merge branch 'dev' into stagingeda275589dMerge pull request #485 from bunkerity/dev7506768c4aMerge branch 'ui' into devbe3d40f18aFix CLIENT_CACHE_CONTROL setting's regex to also work with JS41059fb282Merge pull request #484 from Hado-K3n/patch-1688f85b282cMerge branch 'dev' into patch-16e5e031b6b7Merge pull request #483 from Hado-K3n/patch-152dbadbd29fMerge pull request #482 from Hado-K3n/patch-1495c7b54109Merge pull request #481 from Hado-K3n/patch-1300739a5ab6Merge pull request #480 from Hado-K3n/patch-12a9f4be475eMerge pull request #479 from Hado-K3n/patch-11f85f736785Merge branch 'dev' of github.com:bunkerity/bunkerweb into devf1efe06e99ci/cd - fix /opt/actions-runner perms for self-hosted runnersad71be4608login now use local fontdcb800d2b8Update k8s.postgres.ui.yml5a7f7f3c67Update k8s.postgres.ymle1f60127e2Update k8s.postgres.ui.yml7553ffb632fix client_cache_control regex9324648f21Update k8s.mysql.ymleafe006a6eUpdate k8s.mysql.ui.yml62a8ec9758Update k8s.mysql.ui.ymldfcaba9ad2Merge pull request #478 from bunkerity/dev737b999cdeSet CLIENT_CACHE_CONTROL setting's regex9339af44c9Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into dev78f7570e16core - Fix bwcli condition when checking bans40e30ed441use shared redis connection pool in cachestore when we cand6ca98ed15Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev10a4cefd00update lua-resty-openssl deps and replace nginx -s calls with signals97723185bacore - Add bwcli testsab3b3ea8fdui-tests - update waiting time after creating a custom conf5adec84d5afix redis not contacted in subsequent phases and reflect changes on stream configs1624c4e766Merge branch 'dev' of github.com:bunkerity/bunkerweb into deveea6d32cd3share common objects during the phase and add threading to DNSBL and reverse scan99f8f69fa5Merge pull request #477 from bunkerity/ui9b58b397c9Fix ui tests (again)ace88d865dFix plugins fetching for the UI69b35636e3Fix UI tests (once again)5dfe35b7bcUpdate how the plugins are being fetched by the UIb75690fdf0Change the way python deps are installedb19ebbe6a8Merge branch 'dev' of github.com:bunkerity/bunkerweb into devc0c646aae5Merge pull request #476 from bunkerity/devedd6e2ded5improved session management and add IP/UA checksc7ca5a822fFix Database overriding services_settings if a global_value is sete1883a04beMerge pull request #475 from bunkerity/devaf19cc226dcore - Add redis tests0087ae5832Update python deps8133c134e0core - Fix db tests by removing "order" key checkf725d0fe63Update keys name in datastore05c478e834Edit COOKIE_FLAGS regexb5aaf62662add forward reverse DNS to whitelist, disable redis in cachestore when sockets are not enabled, fix typo in cachestore and improve dns/rdns caching8a8dd6fb7adb - remove order from plugin model93c766e564Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev179beea4d7improved core plugin execution order1d126e1d0ecore - fix cors tests with the preflight requestdbb8840992core - Update allowed_methods test method to GET62cb85453acore - Remove cert verification when testing allowed methods in misc tests04919e8a08Fix multiple CVEsb32f318919Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev4962f786bafix wrong env parsing in init phase, bypass modsec/crs when method is not allowed, refactor ALLOWED_METHODS and improve error page management10bdf551aacore - Add misc tests7158e7e9a1core - Optimize cors tests3f51f59bcbAdd check when plugins are configured + Add Semaphore to accelerate jobs execution + Code optimization4c4fa44fbcci/cd - fix core/cors tests84d43c84d2Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into devb58798746dUpdate mmdb download to check the checksum at starta9be973d5fuse PCRE regex instead of LUA pattern and edit cors doc4378f18cc8fix typo in bunkernet.lua, add missing Origin header in cors tests and fix allow origin expected value7d84e03a15fix header plugin phase not called for internal request (fixes CORS), fix bunkernet init_worker bug where ngx.ctx.bw is not available, add CORS_DENY_REQUEST setting and edit values for core/cors tests8386621419Lint Lua code36fdec1058core - fix sessions testsab54b18e05core - fix reverse scan cache retrieval9c6ca6a860cors - various improvements991f7ff8d0Fix tests core reverse scan wasn't using the image9c77f77fa7Fix test core DB9ee74aef4fAdd up back when retrying to up the stack + remove useless print7bf4c11bc5When docker up fails in core tests retry one time82aadfa38cUpdate core db tests to add the settings.json file and optimizations2a78d2c057ci/cd - perform all core tests even if one failede3fc55be9fdeps - add missing hash for python dep async-timeout5f668aecaaci/cd - fix syntax error in test core wfe5e336c4f3Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev9a2e37984dci/cd core tests and antibot refactoring2ac77ee497Fix deps not being synced394f5fe4bdMove back to images in the whitelist testsb06210bdfbRemove unused files in tests coree6bb9fb55fAdd tests for core plugins29f020f15eUpdate python deps051923b6fffix deprecated external network in compose files, various fixes in the documentation and add ipv6 to doc2e1296d9aeshow useful info in BW logs after startup/reload and reduce container images sizea686562f18performance - cache empty rdns resultse36c743c70performance - cache dns responses75f3d6490ainit IPv6 support, add missing healthcheck script in UI and purge local cache on inita258612e43add global data on settings filterbc3ea0ed35change select method checkab71c484eaadd global condition for disabled state5c415afa18various fixes - ttl on /bans api, dnsbl undercover bug, greylist, whitelist and wrong path in realip job5c50f57f1cRevert "regular inp and multiple global=true are enabled"9ceaaa8746regular inp and multiple global=true are enabled3dde3ac0aaFix no longer save SERVER_NAME when MULTISITE is set to "no"c01b493c99Increase compression level of tar files being saved in the database4f4a8b5081Fix default global values being added to database when MULTISITE is set to "no"4088067186Add external plugins being updated at the start of the scheduler402ff16c82Add "global" key to settings when fetching methods as welldcdb43cf05Merge pull request #473 from bunkerity/devca8c56aaa0Remove unused function in UI src.Config905946463dFix scheduler restarting for no reason when having an external database8a308b1a88Fix database not providing the right SERVER_NAME setting valuecf26d7aa22Fix database saving default values to global_values when multisite was set to "no"8bb6f63fa7Merge pull request #472 from bunkerity/dev64789276acUpdate python deps30194f9599Fix Access-Control-Allow-Credentials not being set to the right value when deactivated50ee37db0acors - refactoringb8d89fe79aFix customcert plugin63f4e44c61Fix CORS when sending an OPTIONS requestac2e4dd645Merge branch 'staging' into deve14475de4aci/cd - fix missing version in linux package name136f68cd3bci/cd - fix typo in beta wfd83730cf75ci/cd - fix linux package name in upload/download stepsae042854f0Fix blacklist download jobs where ignore urls were not being downloaded86053d3dc5Update RDNS regex in jobs filesb2e26fc8fcRevert "Revert "Update RDNS regex""48354fb269Revert "Update RDNS regex"a544f18e26Update update-check job to add stars so that the end of line showsc6f304b371Update RDNS regex14ca85cdb6ci/cd - fix package.sh name in linux build wfdc1cb6a6faci/cd - fix scp command in linux build wf73acbe0852ci/cd - fix typo in linux build wf45c90527c4ci/cd - fix linux package generation when arch is ARMf4590749d7linux - fix arch in rhel package image141f5a1d5bci/cd - fix typo in beta wf (again)6e82fde8a1ci/cd - fix typo in beta wf00ba46ebf0prepare for 1.5.0-beta update9a1c09c564Merge branch 'staging' into betadf787c75dclinux - add pcre dep to fedora package93e567bb65linux - fix fedora deps name and add architecture to fpm config8b6d788c2eci/cd - fix bitnami chart values541b646980increase drupal delay time for tests, fix tmp dir not created for realip-download job and fix has_*_variable check when multisite is yes59324526cfspeedup build process for python deps and fix default env value for autoconf/k8sa58e5c60c0deps - upgrade python dependencies27b1dddb0dlinux - pin pip versionfd056102d4fix centos repo command in rhel dockerfiles and fix delete infras order for staging wffb03733433ci/cd - use single quote in linux build wf43cbc79c75ci/cd - move ARM_* to secrets in linux build wf7592e5a84fci/cd - fix typo in staging.yml39ace81755fix load-balancer example and add server_name to cache keys when required48d7e72e54Merge branch 'dev' into ui66921b0075Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev819ad60a48fix hcaptcha antibot and refactor ci/cd for staging20913808c5Add .mypy_cache to .gitignore filea086ff6909Merge branch 'dev' of github.com:bunkerity/bunkerweb into deva286e7bd32fix wrong container in autoconf/k8s, init work on linux arm and ci/cd refactoring5a233ff908Fix Database model types18b3d7148aUpdate db model to use SmallIntegersb36cd924faAdd `bw_` prefix to database table names63ce1afcddHandle errors more gently when API requests failsd4934cfee5Remove test-ui service in the main docker compose file as it's been extracted500d58e508Separate the compose file back21dc67b68dUpdate test.sh for ui-tests an the compose file75d2be7db7Update tests-ui to fix them041b7f71e5Update ui-tests to make a valid password1245b8b01cUpdate regex in ui + Add regex module to requirements913e9a2c2aMerge branch 'dev' of https://github.com/bunkerity/bunkerweb into dev97dc6540ebci/cd - fix typo in dev wfb75ba601b5Merge branch 'staging' into dev573fe8fee2Change UI admin password check to a regex51514df570Remove not needed file in linux scripts9ff64426b7Fix ui tests with the external plugins74fe9d5c16Lint jobs py files97b362bb17Fix let's encrypt error when deactivated964d318939Fix wrong attribute value when checking for external plugins914686e78eFix often occurring bug when testing the web UI58db1352faRevert "Fix often occurring bug when testing UI"987af951d8Fix often occurring bug when testing UI1c74c5d8d5ci/cd - refactoring1cc9f57739prepare for v1.5.0-beta fixesac94e5072afix double .conf suffix in custom conf, migrate /etc/letsencrypt to /var/cache/letsencrypt, fix bunkernet jobs and lua code and fix reload for jobs773874154dmove /etc/letsencrypt to /var/cache/bunkerweb/letsencrypt (wip)75ca603b7dWIP - fix bunkernet and missing reload for scheduled jobs0276054522Fix bunkernet initial message when checking connection + add TODObddfb58a0dMerge branch 'dev' of github.com:bunkerity/bunkerweb into devc7ab002082Merge pull request #462 from bunkerity/testmmdbef551846b9ci/cd Update mmdb - Let only the schedule and change branch to push onf41c096ec5Merge branch 'testmmdb' of https://github.com/bunkerity/bunkerweb into testmmdba7b7c2031dci/cd Update mmdb - Add check for curl commandsfb55295663Monthly mmdb update0afb250b91ci/cd mmdb update - Changed branch to push on019a927b06ci/cd remove secret required for auto mmdb update283a63f160ci/cd try fixing workflow auto download mmdb42707ad46aci/cd test mmdb updatecd57eb423eci/cd - fix automatic push of doc01fbacf0ffci/cd - fix pdf path for draft release + fix missing git fetch before deploying docd693d065f8ci/cd - allow to update release tag, add PDF to release and fix multiline CHANGELOG in releaseaa2ada0a00ci/cd - update git user/mail for push doc wfa47d7df401ci/cd - execute apt install as root for doc to pdf workflowc4093a2d7bci/cd - increase ARM node storage01e5994936ci/cd - concurrent builds for ARM + fix version string for RPM packagesaaa0701659linux - fix VERSION path in package script0b93c6e10fci/cd - add more cores to ARM instance88db3fa344ci/cd - fix build rhel var5c01bd3f74ci/cd - various fixes for push workflows604d4c1a0cMerge pull request #459 from bunkerity/devbed6d742f0Decrease the compression level when sending configs to BunkerWeb57cb6e9c44Update python deps0d1580cffdSmall code refactor of the jobs and the scheduler's function that generates configs766ca0e9ceMerge pull request #458 from bunkerity/dev0ab07678d3Merge pull request #457 from bunkerity/ui5412e6d240fix logs checkboxba7422218dci/cd - fix push workflowsfda2948e0eci/cd - fix typo in push docker wf59e5b1d54fci/cd - fix push workflows7ca7d78470Merge branch 'beta' of github.com:bunkerity/bunkerweb into beta9395456440add missing postgresql-dev build deps for ARM images0b5746aba3ci/cd - add missing inputs for build arm94dc501c17ci/cd - remove load image in buildkit for ARM archs because of docker limitation8ffaa7cf79ci/cd - force shutdown when deleting ARM node6e99e7a981cicd - fix docker buildx arm driver2eef2b8bb7ci/cd - fix variable share for ARM (again)406c686e4fci/cd - fix variable share for ARM6cecc70c32ci/cd - fix ssh command for ARM builder2f992baab3Lint py files with black7befd927d7Update python depsa4ae0d5178Update cached mmdb filesc3d0d7ca70Add workflow that automatically update cached mmdb filesd4ceb7c106Remove dev comments for ui testsb37c86e620Fix ui tests problem with the logs pagea7b07c9599Fix wrong condition when fetching the logs on Docker3b237ed3ccFix UI testsa55a0df5deci/cd - remove useless condition in create ARM workflowae33ca52edci/cd - fix wait-on variable8867eb23beci/cd - fix wrong json keys from scw api1b79e291ebci/cd - various fixes for arm build98ce5041d2ci/cd - use fixed sha1 commit for scw action in rm arm workflow66d7216dc3ci/cd - fix typo in create arm workflow45fa4d1c26ci/cd - ignore /root/.cargo dir for security checks, use fixed sha1 commit for scw actions and add missing deps for ui/arm9cd13990e3ci/cd - pass ARM ID as secret266383abb1ci/cd - dynamic arm build node4e0d2fce5fadd missing dependencies when prebuilt crypto package is not present823c09195aci/cd - add missing var for ARM buildse71dc132ecci/cd - fix typo in container build workflow0db5f7cf0fci/cd - fix typo in beta workflow4bfc5b693fci/cd - fix wrong cache name in container build workflow93d0a991a9ci/cd - fix typo in push doc workflow1c178ed75cci/cd - fix version output for beta/release workflowsab7e1f6244ci/cd - add missing runs-on in beta/release workflows0f499c9d37ci/cd - fix typo in push packagecloud workflowd0f6d59f6froad to v1.5.0-beta 🚀4086628697ci/cd - fix typo in doc-to-pdf312757594cci/cd - fix typo in beta/release (again)11f86ea754ci/cd - fix typo in beta/releasead16067420use proper links in docs, automatic doc push and add pdf to releases08e1d157d7Fix ui-tests by removing no longer present checksc8908695beRemove unnecessary prints641a27f5ecci/cd - remove useless needs for ui branch4684070818ci/cd - fix typo in staging workflow6784bd6914ci/cd - fix wrong condition for container-build workflowef1897de82ci/cd - add missing needs to tests-ui staging9815f22d72ci/cd fix typo in container-build workflow65c6e48e94Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev14a4db8bdbuse current_bw_version for docs, add automatic tests to ui branch and fix letsencrypt permissions for linuxf6b8d23fbaFix ui tests by editing the attributes name to the new ones58fd04430eci/cd - fix typo in staging.yml54a17c7752init work on CI/CD for generic beta releases, remove useless autoconf examples and fix linux postinstall script4f2c58bd7ctemp disable authelia test for k8s and add missing folders for LE on Linux5e4ce45793various fixesfa67c5d7baci/cd - fix missing arg for copytree04db308c93ci/cd - edit staging workflow5d2045803cci/cd - edit staging workflowe7717ba7f9Merge branch 'ui' into devbbaaad8487docs - last polish0658230e26enhance responsivef5c28b27dfMerge branch 'ui' into dev5753123368harmonize all titles dark color2f336be770enhance file manager and jobs svg81a37a3778enhance actions btnsc3119f04eedocs - pluginsffa91933e2docs - add YT demo5741dce6d3Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev7695a839f0docs - web UI5fe0e0bfdaMerge pull request #454 from Hado-K3n/patch-78c71f7d278Merge pull request #455 from Hado-K3n/patch-8124378d7c9Merge pull request #456 from Hado-K3n/patch-9c6a184d90afix ui integrations and fix stream support in dbd8b7db167emerge from uiddd83a8089docs - add stream support info and plugin description to settings page289b58567bdocs - add stream support info on security tuning page4dda54a118enhance style0ca473c690fix style issue between load and page transition1145b798f0fix filter setting from custom selectors63e7ccf132better centering loading logo with text001a63efc3continue custom selectors + fix script + style4144faa93bfix create service issue + remove stash72bc9e4bb6start creating custom selectors98de3fc2fcdocs - quickstartf118f992f6merge from ui5285a2f4a1force stash1d354c9c6bdocs - quickstart (wip)55a7c8fee8force stash64a9fe4dbafix checkbox + style issues + script duplicatea90d9e6273ui - fix default value for inputs7e1efcbc66Merge branch 'ui' into devb5f0fe856edocks quickstart wip01d8c65c96remove hidden input checkbox + fix scriptb7f63450edadd special method for modebc47f1fa5eMerge branch 'ui' into dev7089e8b4d2fix checked stated4fd4c4733fix checkbox + templatedb5789fcb4Merge branch 'ui' into devab20f83b22Update k8s.postgres.ui.ymlbbea8ba3fcUpdate k8s.mysql.ui.yml9a2005d1a8Update k8s.mariadb.ui.yml9512de630cdocs - quickstart guide (wip)956a7bd234Merge pull request #453 from gin-gitaxias/patch-2f8c5543fd5Update plugins.md667bb30036docs - quickstart guide (wip)6b76596a88Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev78c2e16eadadd missing cluster config for ui/k8s and start quickstart guide doc1e6cfe8b0efix filter disabled issue + reset on modal open574ecbd6b3Lower the environnement variable for the modeaa3ce13a81Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev6f39fce6d6docs - integrations92fc5d981fRemove ascii art showing in UI logsae7e3ddd9fFix how the ApiCaller is initialized for UI instancesdf94bc4af7Merge pull request #452 from bunkerity/devbf29fa2f92Show how many plugins there are correctly in the home page509bd21b06Add log when deleting plugin1530745a7eMerge pull request #451 from bunkerity/uia87abf3ce5update home dark mode + variable8a5836dd95add popup darkmode3a4a6ee5f2new service doesn't force method="default"1321a76c0cupdate service submit name for new or edit action53e145b919show method involved in disabled setting on hoverceec21faa3update web-ui INTERCEPTED_ERROR_CODES63ba001805Fix logic when saving a service in the UI479f18b175Merge pull request #450 from bunkerity/uiab43bf84a1Make it so the UI and the scheduler no longer run as root in Linuxa7849a6e7aFix mic mac with config files and UI9009859aa7Merge pull request #449 from gin-gitaxias/patch-10bf2116c44docs - concepts3616a9f202Update security-tuning.md435aae7cf1docs - index and migratingc0e649d680fix logs + select custom1c3bbf1bc3stream - add example and fix ssl support37ebde3635fix logs and plugins dropdown + marginb64e55f75aAdd bigger timeout to loading.htmlda4bb8dce6Fix condition in helpers.luaab509c2705Fix UI with Linux6916a81c5dbunkerweb is now W3C friendlyc7bc493e35stream - fix various errorsbc1dbe18a8Merge branch 'dev' of github.com:bunkerity/bunkerweb into devbd577cfb2ecountry fix (again) and init work on streama829528c3fAdd bwcli to scheduler and fix it for the autoconf9d829ebca1Finish updating bwcli94b97a6bb9Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev780c0c8c53api - fix errors in calls and use ngx.ctx instead of ngx.var5fb0be70aeMerge pull request #447 from Hado-K3n/patch-66843902db4Merge pull request #446 from Hado-K3n/patch-53419dca980Update k8s.postgres.ui.yml38c71cf942Update k8s.mysql.ui.ymlb7c260561d[WIP] Update bwcli995ff250ffUpdate python deps + add redis for the gena04490b473Replace unnecessary import5112ed46e1Merge pull request #445 from Hado-K3n/patch-48558785b17Update k8s.mariadb.ui.yml95e64d6c87bw - fix black/grey/whitelist rdns check and country check8ea94a2e4dMerge pull request #444 from bunkerity/dev9f1405d69eRemove unnecessary {-raw-} in index.html when loading9a2f7e9ab5Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into dev93b4714447Add marging to antibot files hcaptcha and recaptcha93c0cd437cMerge pull request #443 from bunkerity/uie7d61a67ceupdate antibot and default template5d05eaeae8Merge branch 'dev' of github.com:bunkerity/bunkerweb into deva77d233ecabw - add zlib dependency9a69ca135bMerge pull request #442 from bunkerity/ui823c128233fix SERVER_NAME + fix delete form + enhance52806afe73Merge pull request #441 from bunkerity/dev2ea726c222Merge branch 'ui' into devdffc770a99fix and enhance12f8b8197ebw - add missing lua-ffi-zlib dependency, fix syntax error for white/black/greylist, fix error for dnsbl and fix limit request not working in local mode4871a21040api - add missing ctx fillbcc5e6bb50bw - add missing json decode in api and add missing require in country83428d6ccfbw - fix resolvers nil error when doing dns checks7eefcb8f8dantibot - manage direct access to challenge pagea372ffd521fix invalid session error handling and remove debug log in whiteliste55912b34dMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev5f9f1e54f8load inline multisite values for white/black/grey list core3b4882d82bRevert "Remove no longer present CVEs fix because these are already fix in the images"c2e0e51067limit - use atomic script for redis case4bc0771d95Merge branch 'dev' of github.com:bunkerity/bunkerweb into devedf7e06e07various redis fixes and display ready loga93d9a7d94Remove no longer present CVEs fix because these are already fix in the imagese4465d9a12Fix jobs cache when a database is usedc9af9457e4Fix wrong condition when sending files17a3d933b3Merge branch 'dev' of github.com:bunkerity/bunkerweb into deva60b6f3adabad behavior - fix 500 error and do not pass objects with another lifetime to timersc0e8e93abaFix documentation mistakes when soft merging 1.4 into devf1a868c66bFix when the cache from jobs is saved into DB + sleep 5 seconds when waiting for the database for the UId32102376fMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev510938fc23antibot - fix bugs related to sessioned9605c103Update python script that generates settings.md3dabd42dfcUpdate python deps834fbaf01dremove antibot back btn + update raw95c231515eantibot - various fixes, not fully fixed yet56028b087eupdate antibot / loading / default page502d4fcc08Add back the fact that we don't download the mmdb country if we don't blacklist or whitelist a countryccd56d3b68change antibot and misc template stylec949c02328Update the security tuning's blacklist category according to the settings671543e6e9Add more ignored variables for missing setting name warningdbd5739abdFix wrong setting names under `Custom certificate` category5f26ebc695Fix php-cookie-flags examplebba26b5486Reorder core plugins to stop having the warning at startupdb166c434bAdd small fixes and lint to the error.html page08f3d93ab5Update jobs will now also check and save the cache in the db63b1fb947aFix CVE CVE-2023-1255d5b11b8bb1Merge pull request #440 from Hado-K3n/patch-392744c0913Merge pull request #439 from Hado-K3n/patch-2d46337f606Merge pull request #438 from Hado-K3n/patch-19b52a5c3c5clusterstore - various bug fixes3f9d606e17Update k8s.postgres.ui.yml7e2f53c8c3Update k8s.msql.ui.yml1f5d8bfab4Update k8s.mariadb.ui.yml7a7d83a754various fixes for redis/clusterstore - still WIPa5e08e1c67refactor of session management0fdb108fe9core - do not execute init() if BW is in loading state00b50c1629various fixes for core plugins4ba5d66598use ngx.ctx to store common values860cc1a924Merge branch 'dev' into ui881d3a00d5fix git issue on windows76a2ff6563Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev28ef546a9arefactor - start to use ngx.ctx for per-request dataed495b99ffAdd CODE_OF_CONDUCT.md0bd3e273b7Update compression_level of sent tarfiles to 5 instead of 9348ab7a1e2Add feature that allow the copy of code blocks in markdown + Update copyrightcf2938bf2eUpdate web-ui docs according to the next major version79a46e2cf6Update the logic behind the check for linux os9a325c7a9aAdd new check for integrations in BunkerNet job707256076aAdd now the scheduler will pass his own env as well to jobs9578ace026Remove not used INTEGRATION file in BunkerWeb container8c919c6768Update links in the home page of the web UIad64ce22e9Remove no longer needed packages that were fixing old CVEs29cb6fe161fix header phase and fix error templated3d18e15a6Merge branch 'dev' of github.com:bunkerity/bunkerweb into deva83254bf20fix wrong log in access859343e185Merge pull request #437 from bunkerity/dev50829293c7Merge branch 'ui' into dev8e22b1f219Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev9849ce10cefix wrong error check on phases and add missing ttl for *list cache items3b5c083fc7Soft merge branch "1.4" into "dev" + changing versions4d95e32f18update error page1da4b78f0fMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev915b51c3b9fix error pages for default http server535f1a0552Merge pull request #436 from bunkerity/staging0afe038aa5WIP Ui3b6c3815ebfix default-server-http.confb5fa473ae3Merge branch 'refactor' into staging2fddbd8627refactor - disable asn checks for non global IPs, use resty.template with antibot and various fixes8d63e39740refactor - fix various errors and add missing dependencies23725d4831Update prod shields.io link in README.md303f380c76Update demo.gif file3c375039e9Optimization on the download of mmdb filesa7773dae2fUpdate intro-overview.svg5eb884fe9aFix bug when showing cache files for services in the UI3fac889ff2Remove no longer used modsec rules for the UIc3106e70e3Update README.md and edit the demo GIF + edit the .prettierignore file928ed2d6cerefactoring and road to nginx 1.24.034ab94640fUpdate python image in Dockerfiles + Add gevent to requirements for the UIaa96c8503fupdate css649d29b056change news base url217d1aa502enhance style + menu scripte6ff51e200Refactoring and Linting of py files and json666b7a1bacrefactor - blacklist, errors, greylist, letsencrypt and redis496edb83acAdding thel documentationee83cea7ffAdd ascii art showing randomly when starting6d1914d62dUpdate python deps648f15e42cAdd new core plugin update-check2075a5d4c2refactor - badbehavior, blacklist, bunkernet, cache, cors, country and dnsbl5dd52186baFully adding vagrant in the doc3a03f07f19Changing vagrant integration64997bae8cAdding vagrant integration03ec271e21refactor - improve clusterstore interface and automatically retrieve variables for plugins29c57915cbantibot inherit from plugin840c295684continue work on refactoring1ec83f256drenamed session to sessions8c29081577save workafc0ac1988init work on refactoring4cd3fc6447Merge pull request #434 from syrk4web/stagingbfc872be27change flash logic when login049e9c1ea6Update python depsbf9b94ebf8Avoid Autoconf from running in root92e6984581magento - fix docker example (again)a771bdb187magento - fix docker example7c21b3da2adeps - update lua-resty-session to v4.0.3d4fae4b57bsession - add missing settingsa850442203init work on redis session986f506e7dadd missing API_WHITELIST_IP in mattermost and moodle examples41e8f5c937fix wrong init of counter in badbehavior and fix nextcloud/docker example8e72050625ci/cd - reduce dynamic subdomains for k8s tests because of annotation size limit of 63 chars1bc42204d9ci/cd - use dynamic random subdomains to bypass LE rate limita1e44f6e4bMerge pull request #431 from gin-gitaxias/staging7ccd3ef926fix moodle/swarm example and disable reverse-proxy-websocket test8b54073a7efix missing backslashes in autoconf custom configs and add missing full reload after custom configs update622f2eb2acautoconf - check if service exists before adding config5d14813be4fix typos after basic testing9f70605643autoconf - add missing import and fix double lock release937cd10eebrefactoring and various improvements6af3b985a0fix deadlock in autoconf/swarm and fix missing favicon in default and loading pagesf6ed21b3b7autoconf - fix global custom configs not supported in k8s/swarm modeeee03c4ae1autoconf - fix variable typo in k8s watchecf4e77b32autoconf - fix deadlock in watch loop0b71819d22watch services for autoconf/k8s and support real IP in default http serverd3d0136bf5various redis fixes and improvementse80965ca9alua - fix wrong variable name in access220374db4bci/cd - fix syntax error in jobs9b8606d40efix redis hostname for k8s files and only append tasks with a desired state of running for autoconf/swarmc843be074creverse proxy - allow all chars for URL settings6a65104e7ffix return value of clusterstore.connect and disable auth basic for LE challengesb429201eccadd missing LUA import for clusterstore and fix prestashop docker examplea9ce32c262added a more precise scan response and modified .json like askedf4442b6428ci/cd - fix syntax error in k8s test class1c3c0d63b7ci/cd - fix missing k8s create infra jobe8c6d04aa6ci/cd - various fixes for k8s tests1caa9a1e7dadding reverse-scan5d41a5b985Merge pull request #1 from gin-gitaxias/reverse-scan77fb8c420bAdd files via upload1bb79b155blinux - add geoip deps to rhel rpmcf86446020Merge branch 'staging' of github.com:bunkerity/bunkerweb into stagingea1394b044ci/cd - add linux/rhel tests, fix docker/behind-reverse-proxy, fix missing stream module for linux/fedora and remove placement constraints for swarm87bd26da0dAdd threatmap to READMEb3eb647459ci/cd - temp disable autoconf tests and add missing packages for linux/centos202f21aab8fix syntax error in ApiCaller55a36f7190fix docker/joomla, fix autoconf/nextcloud and fix API calls for swarm tasks1c3f094cd9ci/cd - fix wrong yaml edit for swarm and append LE settings for k8sf07c0e66a3ci/cd - various fixese8ee460efcfix CVE-2023-0464 and CVE-2023-0465dd2c8cbcd1Merge branch 'staging' of github.com:bunkerity/bunkerweb into staging2d11a1c728fix nextcloud modsec rule id, fix k8s pvc definition and remove useless logs from linux/start.sh4f334a577aAdd sleep between BunkerNet registering and ping to the API to avoid being rate limited283828e8f7Fix Now support WebDAV methods in the ALLOWED_METHODS setting's regexe50c92250bvarious fixesb8b50b165cRemove check for messages after creating the service - tests-UIe88406b5d2Fix ui tests with the new UI922b32b2eeMerge pull request #429 from syrk4web/staging671db37f73fix autoconf/cors, fix docker/wordpress, fix wrong image name for k8s/scheduler and upgrade tests instances for swarm/k8sbe71b0781dformat logs instance to avoid error9e1876fea0logs fix + checkbox fix4d245f9fefchange cache/download to jobs/download6d16a766fefix service delete + change style5e598e90c9fix bw-data volume not reused between docker tests, fix wrong bw-data volume path for autoconf tests, add let's encrypt to autoconf tests and fix temp env not generated for linuxdc8b7dbe7efix form inputbf22faddc6remove php-cookie-flags from tests, use HTTP(S)_PORT for temp nginx on linux and fix wrong volume path for autoconf tests6c6845a794enhance some responsive + change api461789aed6ci/cd - fix BW CVEs and fix Linux restart318228e592change and fix service logicfa7c7ac91fci/cd - add www volumes for autoconff88eced330Handle services settings sent to the UI better357dc3e3a4Merge pull request #428 from syrk4web/staging283306a07aRemove CVEs fix, it's no longer needed for now276a96c55dMerge branch 'staging' of github.com:bunkerity/bunkerweb into staging19870f154cvarious fixes for linux and get ui tests exit code from container2485a47b20Update python depsbd88f9743bfix id rename error82d8180d8eMerge branch 'staging' of https://github.com/syrk4web/bunkerweb into staging41f43c46dcfix multiple0f632803ffMerge branch 'staging' of https://github.com/syrk4web/bunkerweb into staging53f480a66eenhance multiple logic + fix conflict1cf4a5665ddisable healthy checks for docker-poryx and dummy app in ui tests, add --no-reload-linux flag to generator and fix missing self arg in autoconf041142a4f3add healthchecks to ui and autoconf docker images4f9748cc2eearlier init autoconf in DB, healthcheck for scheduler and fix syntax error in linux/start.sh54813ecd4dMerge branch 'staging' of github.com:bunkerity/bunkerweb into stagingd97b5e1047various fixes8031c5060fStart handling disabled checkboxes + multiples58ab870b2dincrease cors/k8s/swarms timeout and fix tests/ui container namescceda705b5update flash count on removee91f3dc226Add a log when database is ready in UI + Small refactor of the Configurator1e9a55c240Add small tweaks to the UI and scheduler Dockerfiles7dc26dafaeFix disabled checkboxes no longer always have the value no with the UI7dc25b3a52fix redmine/docker example, remove double AUTOCONF_MODE in integrations, remove useless backslash in start.sh/linux, rename container for ui/tests55d24a8d14Change mmdb-country job to download the file only if needed9e009f7beeMerge branch 'staging' of github.com:bunkerity/bunkerweb into staging73b640bd3bfix cors/docker example, add missing AUTOCONF_MODE=yes to integrations YMLs, proper save_config for Linux and fix image name for UI tests87bccaad6fAdd `AUTOCONF_MODE` setting to scheduler in integrations examplesd331131c09increase timeout for php-multisite, add API_LISTEN_IP setting, edit default variables.env for Linux and add more logs for tests578a1a8c8bAdd more precise logs in the jobs pluginscb808c0ad1Fix bunkernet-ip.list file not being created in case of an error (same as 1.4)c8d39ba6b5Fix scheduler no longer running as root + Fix permission errors with downloaded plugins4a67a5f56eMerge pull request #426 from syrk4web/staging4dea680accenhance style + some fixd810882720Change the category if the user needs to log in in the UIe003b751ddFix when saving plugins with pagesb829e4edf1Fix false positive error with plugin page in web UIfc3ef33466Add UI logs into consolece85bc6b8fFix openssl no longer prints progression in the console2e144bf46eMerge pull request #424 from syrk4web/stagingdefb2c3336Change the way the error page is rendered2ae37ce8d8Fix regex for ANTIBOT_HCAPTCHA_SITEKEY settingf335364fc6Lint antibot.lua16842fef10Fix errors with missing % symbol + fix errors because of the symbol5f5a5a8905Fix css in antibot html filesccde5c74f1fix real ip jobsd3402ff3ffchange loading, error and test filesa02218bc83end examples refactoring5845446b9fRevert "Fix errors regex, authorize same path for multiple errors"be0df41609Fix errors regex, authorize same path for multiple errors89812362a1continue examples refactoring5d214497baFix don't try to add an instance when saving the configuration with the UI808b7b2206Update jobs connect to the database only when neededaa0eff7491Fix regex in redis plugin that was breaking the UI + fix ui.conf missing comma + remove unused variables in templates1ac434a5bcUpdate python deps9c22f1e971Refactor the py filescfe5c6063aexamples refactoringe37e6c3460Fix mixup of swarm and kubernetes when reading env variables + refactoring0356250d9dFix problem with the bunkerweb container and plugins548d157fe3Fix check if the Database is on read-only before trying to write7c5aa48978Update version string size to support new format61b9517a87Fix error when multiple jobs are trying to write in db at the same time8c67d08aeeLint code966f57ceaainit work on examples refactoring0210ddd886Add realip settings values to the initial BunkerWeb settings6f29756dd7ci/cd - pull only interesting images for UI tests2b1dbb1d46fix default cert path again and ignore pull errors for UI tests74a11c2ed8fix wrong cert/key path for default serverb3769b6e3ffix missing then in blacklist.lua, disable site search in redis.init(), remove counter from reverse-proxy/stream config and fix ui tests compose pullc7d8b7dc18update resty core and http lua to support latest version of stream lua and various fixes related to ci/cda62ef9f543add missing init-stream-lua.conf and various fixes for ci/cd65611020d8fix duplicate datastore http/stream, fix missing /var/www/html for linux and various fixes in testsb28668d68aci/cd - revert back to old condition for pulling images706305917aci/cd - fix wrong autoconf local image name, add missing secrets for tests-ui, fix wrong IMAGE_TAG for tests-k8s and try to fix pcre issue on linux2d440d26e1ci/cd - add missing runs-on for reusable tests-ui93945f391fci/cd - add ui tests5e31b6c4aefix CVE-2022-1304 for autoconf, add missing load_module for ngx_stream_lua_module.so and fix missing -lpcre in configure step01fab41620ci/cd - fix CVE-2022-1304 and wrong TEST_DOMAINSaa614b75adci/cd - replace Test.py with latest one, fix yaml paths, print logs when k8s stack is not healthy and fix wrong linux docker image name88a2955173ci/cd - fix log() callb95d1bc6d5ci/cd - add missing log() and fix TYPE for linux tests2604d9a563ci/cd - trying a hack to support dynamic runs-oned4d945293ci/cd - trying to fix runs-on problem53410e831bci/cd - remove steps609210021dci/cd - inherit secrets for tests workflowa168f2bcebci/cd - fix rhel build and runs-on for tests8bf211bc53ci/cd - fix linux package generation (again)9250faa524ci/cd - fix linux package generation139eaa2dd1ci/cd - add missing scripts7149a34cc5ci/cd - add empty .trivyignore and rename redhat to rhel5c5dbcfc72ci/cd - fix type in push-packagecloud workflowe826c619f8ci/cd - fix wrong quotes in delete-infra workflowb24cbf73daci/cd - fix wrong quotes in tests workflow99e27c4300ci/cd - add missing input in tests workflowee0e608de7ci/cd - fix negative conditions10f9658f56ci/cd - fix wrong jobs name in needs27bac0382fci/cd - trying to fix dynamic runs-on97627cf836ci/cd - pass runs-on to reusable workflows8969b1e726ci/cd - remove version from reusable workflows8ca292fb36ci/cd - change reusable workflow paths8e73eb87cfci/cd - fix syntax errors46e3078dd9ci/cd - crash test incoming95c5e2e47fci/cd - move dynamic runs-on from reusable to staging workflow131857a9b3ci/cd - fix wrong indent in staging/delete-infra-*fc1cab1af4ci/cd - remove subfolder and continue work on staging25729fda74ci/cd - init workbb2d868fa9Refactor tests5e3dadbfe3Refactor ui7fe168892cRefactor scheduler36b5c372edRefactor Instance and remove unused method596258559cAccept incoming changes for misc jobsc5a10aaa3cmerge default-server-cert job06acae4057rename *CUSTOM_HTTPS* to *CUSTOM_SSL* and continue work on stream support6bf59b59a2Refactor the plugins jobs7a8a75901fFix multiple CVEs (see comment) (finally)10ec01e7b0Fix wrong env var name in realip plugin947ecf81f1stream - add is_stream variable to check if we are in stream or http mode4f4c8ebf08init work on stream support79036e9751add ngx_devel_kit and lua-resty-env deps, support set_by_lua hook for plugins and init work on whitelisting support with modsecurityc2402b118ffix duplicate root error when bw is starting, add modesec rule to core ui and init work on k8s/swarm integration filesdbd052e9a8Remove unnecessary import and use parent list of supported custom conf insteadfb917960bcRevert changes on the custom conf regex for the autoconf26de0a233aLint files0faa34ac7bAdd a regex to the setting REDIS_HOST1d9459202dmisc - add missing page.conf1b113236a0Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev29b3731487misc - default pages for default server6cb714be03Start adding integrations examples99b85ec8a9Fix Apicaller error with swarm37114ee2f6Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev902fe6ad07bw - init work on redis7bf034fc9fFix being able to delete autoconf services from UI (shouldn't be)916caf2d6aMerge (soft) 1.4 branch into dev branchf8e31f2878Update mattermost to use a static image0f35c05eeeIgnore multiple CVEs due to missing deps in python:3.11-alpine846e26e410Fix multiple CVEs (again)ebc7fbbceeFix multiple CVEs (see comment)f4081ebd3bHandle more errors with Bunkernet job3b01b51445Upgrade the way the jobs run_once are executed8fa94d6a52Edit DockerController regex to handle more custom confs and fix modsec conf mixingc92d4224f2Update python deps + add cryptography for autoconf and MySQL5799758993Fix checkbox not being sent when unchecked + double settings tab in UI9358057211Fix CVE CVE-2023-22490 and CVE-2023-23946c671ccf7a2Add unauthorized_handler to UI5ac64758e3Merge pull request #417 from syrk4web/devfdd0da35d5Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into dev34d12cd552Fix file manager always use the database now + create log file for UI if not exists47ccd9f047Log events back in the UI39b0f3f195fix + show one mult group7828c0225aadd checkbox fallback + DL scripte425eef9a5Fix weird shinanigans when saving services configb75bc0344bAdjusting upgrade on file variables.env79dabf7638Change the way bunkernet check on which instance type it is3f462fb3b3Optimize logger84f3a894feFix cache files not showing on UI93933bde72Fix custom conf MODSEC CRS being interpreted as MODSEC onlyc22bccc763Correcting nginx version for debian installation8bedc9ce67Correcting doc3a60b34638Modifying doc for packagecloud problem9efa217090Correcting fedora packagecloud probleme3410058fbCorrecting Ubuntu/Debian60ac00f5fbfix inp value6b13fbb844change svgc892050162Adding Rhel integrationcb77a70106change logs datepicker8b0d8a9d3dremove log + fix service tabfacb597ee6fix float buttons89930f1a34Remove encoding from Database engine args6122d59d82Update python depsd3a02be59bRhel cannot be supported yeta51aa27e47Add some checks and solutions to rare syntax errorae8e65057bFedora upgrade working Correcting backup during upgrade Database backuped TroubleShooting some errors with OS Centos working77f41a0591Backuping old confs working8fcba30ab0Upgrade Debian/Ubuntu working2e9a0c79e6fix select hover style64961e3955Remove unused importsb662d8453bUpdate python deps and remove oracledbe9d981a56eFix checkbox being disabled every time39418790a7fix popover content3d96fdb344update dashboard580f33e56cnew file el is hidden on nav4f6244e749Lint code1f20767565Update Python depsdcf9e301e4Fix UI not exiting correctly with gunicornf1a28b01b7Merge pull request #408 from syrk4web/dev5739144e3dFix bwcli /bans commanddf7bbb9606Update VERSION to 1.5.0dd0f56bb0cAdd password type for settingsd83d3aa3d9Fedora working Modifying centos systemd Adding %postun to rpm Modifying postun deb Centos workingb85e6ee6b8Updating to Fedora 37ca0d88fcc7Upgrading script: Ubuntu & Debian working835f85d5d8enhance input field stylec4b5ddb950Add setting to intercept specifics error codes86c81a6218Merge pull request #407 from syrk4web/deve6cb5b0b09Made the UI independent + update job download plugins0ce5f216dehandle password inp44ce5381c2Fix CVEs12b4cfa226Merge pull request #406 from syrk4web/devd7ee3ad667fix file manager dropdownefbcfd0e2cBeginning of automation testing for linux packages50b83790a5Merge pull request #405 from syrk4web/devbf1d19f33dremove prefix multiple input4d49f2f4b6Improving and correcting problems on packagesf5d87849a9Fix errors in the UI when a service have multiple domainsd6d1dd1cefMerge pull request #403 from syrk4web/dev0f5a734300add condition for servicesa5256dd80dFix IPv4/Ipv6 CIDR regex591a20cd86Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into devc56fccbf20Adjustements to upgradea3a5c1c740Add ui tests requirements to the updated python depsb1c99e4088Add tests for the UI65f2bf09b4Remove the idea to store logs inside the database7beb400b47Fix stop gathering all the logs every time with the auto updateab163ce134Fix services settings saves and plugins deletion6932f3dedbAdd a new script to update python deps and update python depsd143720750Fix tar error when sending /etc/nginx to BW9edf789ab8Update python deps4b3b9b3268Merge pull request #397 from syrk4web/dev557db479c9refactorise logs script13f1dadf5fMerge pull request #396 from syrk4web/devadf96cadc5remove useless filesd2a634e7f7plugins + global_config fix1aaac2dcf3Add regex for settings.json871807b809Add small fixes and tweaks4c5172eda6Correction of problems331d58324eFixing detailse9c1b0cf8cAdjusting some detailsc220e5997cLinux UI fix13fbbfb67eUpdate job database while locking the threadsea4ceae7b3Fix isPage logic in menu (UI)8ee0ec88f9Remove test files in UId81c526540Lint ui files and change .prettierignore file5cc80d2ba8Merge branch 'dev' of https://github.com/bunkerity/bunkerweb into deva6295248c8Merge pull request #394 from syrk4web/dev38b59954a3Lint yml files146338de63Refactor every .py filefcd8d8746aopen another tab for doc051192791fchange style9c80cdb321add plugin page logic to menu7689dac76dFilter CVEs fixes in Dockerfiles0c8dfaaab1Update bw and autoconf Dockerfiles for let's encryptc5d3e77c17Fix letsencrypt permission error and optimize the ownership commands in scheduler8304116fddSend more variables to the home page front4379e21ea5Show dirs of every services even if they don't have a custom config148d9d2d4dRemove user override in the job scheduler when executing jobsc6498eda7eAdd new php-cookie-flags examplef97e056ff2Update jobs13fe4b6eefEdit core plugins regex + make COOKIE_FLAGS multiple + edit DB model accordingly2b2eadf441Merge pull request #392 from syrk4web/dev342fe956f7change data creating new servicebb7ca889ceenhance darkmode + fix + factorisationcdc3cfc81dadd toggle multiples + style191c88238cMerge pull request #388 from syrk4web/devdbe49bb8f4Update intro image7bdc46057bChange how the edit works in the config (UI)364ef13b52Fix error by calling a method on the wrong variable1142ace55aFix rare error with the jobs return code477e87a2f4news script + multiples groupsa04f983a09Merge pull request #385 from syrk4web/deve5574fbdc6change flash messages styleb1ca472537Small tweaks and handle services variables better98bda4d1e6Remove unused line in Templator0b1be727f5Optimized the storage in the Database47526dc8a0Merge pull request #384 from syrk4web/dev00d3073b08get custom method and check disabled state02d10f619aFix datepicker.js not being found because of the capsda634af4a3Accelerate send_files methodbe0ee60cddhandle stop signals with the web-ui064f9eef94Remove lines that will never be use in save_configec15a4e88aHandle stop signals from Docker in the schedulerc49f50da2aMove BunkerWeb entrypoint to the correct dir48bbb5e39bMerge pull request #382 from syrk4web/devb944de9e88change service multiple script07ab3deb03Remove unused lines in selfsigned joba4e863f09cUpdate authentik and migrate the example to the 1.5eeb810546aMigrate authelia example to the 1.5e2b2505d83Fix saving config for multiple settingsa0c2db7a09Fix how the config is get from the database4595295bd8fix tab focus style + dark mode style0bd6d56551add flash script to login + enhance style6f5aab11d4fix footer padding37380b977efix get multiple settings only3f6432f4b7Merge pull request #381 from TheophileDiot/devff84656cd6Update examples + add static versions0e29d9f1f7enhance and fixc195ffc864Fix autoconf not working properly with the shared volume291d64e29dUpdate community example + linting4346322f74fix services settings on modal openf2daf7368eMerge pull request #380 from TheophileDiot/devba9c16a5d7Merge branch 'dev' into dev0db1550f2fChanged the way jobs' cache files are downloadedfa54ebd491Made a few tweaks + change the plugins for the services modals0290f509e0add plugin_name (change values)77931b623fadd plugin_name6560ca0869test0d0f1aa95dMerge pull request #378 from TheophileDiot/dev03e98985eaMigrate more examples and lint016a8cd6d7changes5263be27d5Change the way jobs are downloaded + folder created in configs7813b51db4Merge pull request #377 from TheophileDiot/devc4bd535accAdd autogen back for docker and the autoconf243c4ca78dMerge pull request #376 from TheophileDiot/deve9687a5b13Remove unnecessary comments8537eea89dMerge pull request #375 from TheophileDiot/dev3c9574dae7Linux: Updating nginx to 1.229f84e02d8erefactoring services modal logicb105896b28add rename formff83b342defix issues8e31672ac5Merge pull request #374 from TheophileDiot/devb3d80d7a66Generate requirements with python3.9 + use new resolver6bbbe70eeaMerge pull request #373 from TheophileDiot/deve33bad4b9aFix comments + updated passbolt to support the 1.537f21c5d41Temporarily comment the post fetching343d9d09e8Show plugin pages even if there are none0a4f0eb57dFix error with jobs wrapper1d4998356dFix darkmode + Add new variables to pass to the front547021e7b0Fix job fetching for never ran jobs0954e82f48Fixes some bugs in the UI related to the plugins3c5f6002d6filter script + manage files + fix css + enhancee988aacf38Merge pull request #371 from TheophileDiot/devcce181a295Update customcert job9ba06b64d5Update README7f2eadacc9Update python version for the scheduler and requirements8d6c3d0b85Fix db get_configcc748a0480enhance responsive + add loader3bafe137d2refactorisatione9dfb59f31handle settings type multiple (fetch, add, remove) on services8e5dda5209Changed the way the config is get from db368122181astart multiple add and delete logicfee59a51e9separate multiple from others inputs50ba229146upload plugins + jobs template + global enhance94b0e6a0d5Changes on the flashed messages2e0a733cdcMerge pull request #370 from TheophileDiot/dev103e4a0ae9Update modsec CRS to v3.3.4f0f9d7dcf3Merge pull request #369 from TheophileDiot/dev4dabe6dae6Advancements in the examples migration to 1.5115bfbdc13Merge pull request #368 from TheophileDiot/dev81ad9e9ac0Update examples and add docker-proxy82ab6c7c43Revert "Remove unsafe deps in the requirements and install setuptools manually"b578823a19Remove unsafe deps in the requirements and install setuptools manually7fb61b5ef1No longer dump the jobs to the front37ece3de10Merge pull request #367 from TheophileDiot/dev719d779e01Start updating the examples to the 1.52889b2638fMerge pull request #366 from TheophileDiot/dev3c3bb7f200Fix the way we fetch the config from the database (with suffixes)f0d0dac914Add the variables back instead of the "_" so it doesn't create an error62ab9944ccFix scheduler errors with sqlite in autoconf7391900513Make the bunkernet not run in a thread to avoid errors840ef8cf89Fix typo in selfsigned job5a95e67030Edit the way the UI updates the config34b5aba1cbMerge pull request #364 from TheophileDiot/devb7f60dbdc7Update deps and requirementsa0634b5736Merge pull request #363 from TheophileDiot/devc0efdf9c00Replace /usr/sbin/nginx with nginxdb35e575e3Rename variables so they make more sensb22cc44d82Change the way jobs are sent from the database4e96e57e05Make certbot compatible with 1.5aaeda53002Change the jobs logic + add support for arm6577229226enhance templates844b06e286Fix how the jobs are sent to the front3a0727b5cdlogin template done0f5756cfb4enhance logs + prepare jinja variables08e7c2104bplugins done + add name to settings6b5d6e07eeRevert changes on the check_settings function3ccc12d789add dropdown + responsive3ed3fbe991Autotonf now update the instances tooe56f96d04bUpdate database model + Save instances to database + add the option to add logs into the databasec87c3637dbstart plugins template3a5d14952dMade few tweaks with the home page + remove useless functions55e76b2803Fix path for dropzone's scripts64d261acc0Change the way logs are parsedf13455d11bsend timestamp with ms7aac0c352efix msfb2e41c11elogs params2967ed98cdfix fetch4f9b2120e0testf1e614fae6change ternary operator for fetchfa5719db7ffetch logs + liveUpdate filter2a2f2f1e9bFix scheduler error2087167228Merge pull request #361 from TheophileDiot/devfa98003f22Thread the jobs run_once89e8839bbbOptimize the regex for the core lists51c5836ae1change logs script/template + continue jobsf61b4428b5Merge pull request #360 from TheophileDiot/1.5a96771881eChange the logs date format + start editing the logs endpointd30adf6709Changing rhelbf19cfe3dbMigrating Linux to 1.5. Still some details to adjust to be perfect0cd6ed1af2When downloading new plugins, update the database properly + update job every time now8f75af3d60edit the .dockerignore4f4beeef99Create the database variable even when passing the variables, just in case7347fe9bc8update jobs only onceb509ce16e3Copy the files after installing the requirements64601ebf58Remove useless warningsc9238f9930Merge custom configs generation to avoid repetition192c6755c3Update db for the jobs that are ran only oncec14765c6c6Change the way jobs are sent and how we update external plugins888bedd510Change how jobs are send from the databasebabb1c72cdRevert "indentation"44c74f9be4Revert "indentation"984b6c5f05ci/cd - speedup codeql by ignoring some folders not containing python files355c947a4astart jobs template + enhance menu272de0b8beci/cd - fix codeql config pathd9fc713c4dci/cd - move codeql config to filec2503d63d3ci/cd - add codeqlb098478bddenhance service + darkmode scriptfa1739439dci/cd - init work on dependabot82df3f17f7ci/cd - init workf02adf3001indentationc1031cb2c6indentatione8581ecb48enhance news/menu/base + logs scriptseb99d00daaRevert "enhance news, menu + end logs scripts"a7d3d04522enhance news, menu + end logs scriptsc7556a39afMerge pull request #358 from TheophileDiot/1.5e02e9c9ec5Edit how plugins work with the UIf1d7add739Merge pull request #357 from TheophileDiot/1.51252d1651eAdd the jobs feature and add the link when using sqlite2154c7f544Update database default DATABASE_URI7957f63b80Merge pull request #356 from TheophileDiot/1.573668b476fOptimize plugin gatheringb3cfc1f01cRemove unnecessary lines and add plugins_errors endpointb57e50db2dSend needed settings with the services in uia0e66ab30eChange Database default path for the sqlite filefdd393826fadd ui work in progress6b9a6a7e3fMerge branch '1.5' of https://github.com/TheophileDiot/bunkerweb into 1.5277e37bce4Revert "add ui"05d4b77bbdMerge branch '1.5' of https://github.com/TheophileDiot/bunkerweb into 1.5e7e43e64ddAdd dark_mode to uid40a93cb72Revert "add ui"d102f027f2add uib70d976719add ui7db7aee7c2Merge pull request #355 from TheophileDiot/1.570844ca604Fix database with autoconf1a7d8978b1Merge pull request #353 from TheophileDiot/1.593c74154abfix fedora python deps bugf2eabc0df6fix centos python dep bugd199f124b8remove exits in ingress controller3ec15eb4b0Update the docs from dev5a8f812560Merge branch 'dev' (softly)d214352b7bMerge pull request #352 from TheophileDiot/1.5891757dab5Add support for arm + change scheduler python version8dd377562fMerge pull request #351 from TheophileDiot/1.5630cf8b885Change the way services are sent to the UIb0c09b4defMerge pull request #350 from TheophileDiot/1.5fa655e6f06Remove no longer used install.sh and uninstall.shc8fbcbeaeaMerge pull request #349 from TheophileDiot/1.532101c3dc7Move UI deps, Make the DB compatible with PostgreSQL, MySQL and Oracle035eed8f6cui - add custom PYTHONPATH in Dockerfile2a3e24bd28Merge pull request #348 from TheophileDiot/1.53984c4b0daSeparate deps and change prettierignore file and pyproject47afdc88e1Merge pull request #347 from TheophileDiot/1.501bb6f5e65Stop converting the files content to base64 when sending them to frontc358747973Return dumps of settings instead of the dicta8f27ccb1cMerge pull request #346 from TheophileDiot/1.5edce79936aUpdate the structure and the paths04578aab3fChanging path Linux folder5ae714fc70Merge pull request #344 from TheophileDiot/1.5f65a4cdd65SMall tweaks on the UI + edit the ConfigFiles edits06aa73fcfeMerge pull request #343 from TheophileDiot/1.50811aad7f5Edit scheduler and change DB858f6e00f4Change python versionb279d02403Fix BunkerWeb gen on startef7fa5b4f5Merge pull request #342 from TheophileDiot/1.511bcd98243Merge branch '1.5' into 1.5bacef768c7Add integration manually in bunkerweb5ec179affdThe UI get the custom configs from the database0e6a5f3f96Merge pull request #341 from TheophileDiot/1.5eec00ba2bfUpdate the Database and make it easier to gen479b556fb5Merge pull request #340 from TheophileDiot/1.5375776e7deFix UI path_to_dict with the cache filesdf62fd410bMerge pull request #339 from TheophileDiot/1.51f58d0c517Edit dockerfiles6c07f99674Merge pull request #338 from TheophileDiot/1.5069b45f37bAdd some tweaks850530cd0eMerge pull request #337 from TheophileDiot/1.501b4145524Make the Database support every feature + updatesa12d013fc3Merge pull request #334 from TheophileDiot/1.55f8353c114Adapt everything so that the UI can work with every integration (some more tests are needed)fe89625921Merge pull request #333 from TheophileDiot/1.566fb266f8eCentralize Database and optimize requests7a03ed33f1Update pip in Dockerfiles every timeb09c05d3baUpdate BunkerWeb deps9c02d5f9e7Merge pull request #330 from TheophileDiot/1.57d743e1981Update the database and the core plugins accordinglyce6f01cf03Merge pull request #329 from TheophileDiot/1.59140dc3244Optimize Database connection and ApiCaller81307c82c2Merge pull request #328 from TheophileDiot/1.50edef7c520Use Python 3.11 where we canfe774e0009temp nginx is dead, long live to the IS_LOADING setting0bf402fd7aMerge pull request #327 from TheophileDiot/1.548242b9a3cGet all config with generator0b73ea856cMerge pull request #326 from TheophileDiot/1.509378458dddb.get_config() get entire config and doesn't filter anymore1008490234Merge pull request #325 from TheophileDiot/1.58b54762fc3Fix db init with autoconfcfaeb10133Merge pull request #324 from TheophileDiot/1.57e53bfe553Fix gen for Docker integration54530d535dMerge pull request #323 from TheophileDiot/1.579eea0e998Linting + starting to migrate bunkerweb to the 1.5316b84ad3fMerge pull request #318 from TheophileDiot/Feature-specific-order-for-pluginsba56c9f55cMerge pull request #317 from TheophileDiot/Fix-scheduler-error-reload-nginx-linuxa8f79e58f3Merge pull request #303 from TheophileDiot/Fix-custom-conf-disappearingb2a7e053bbMerge pull request #314 from TheophileDiot/Feature-blacklist-ignore96e6562732fix indent01cecf14e5Merge pull request #313 from TheophileDiot/Feature-max-client-size-edit-modsec873ccad9b2Add MODSECURITY_SEC_RULE_ENGINE and MODSECURITY_SEC_AUDIT_LOG_PARTS (#292)97bf473e1adeps - add update checker for deps (#293)5af2fb7783Complex example using autoconf (#271)bd4c94e834Add specific order for core plugins and check thema96a8a8c2fFix incorrect message while reloading nginx + more details on error446ff93a49Add ignore blacklist feature5fdcc9e583add g/G to the available file measurement unitsd207aa4bf5Variable MAX_CLIENT_SIZE change the SecRequestBodyLimit value57ad9d7ee0Fix old custom configs where never deleted7860aeab94Merge pull request #312 from TheophileDiot/devcac220023eFix small typo in autoconf integration5d9dc88cc5Merge pull request #307 from TheophileDiot/Restrict-access-IP-NET40863f28a5Merge branch 'dev' into Restrict-access-IP-NET67d514b53bMerge branch 'master' into dev51e96416d9Merge pull request #304 from TheophileDiot/Fix-Endless-loading-after-update-serviceace1dfca25Merge pull request #308 from TheophileDiot/Fix-docb9e5badd94Fix last typosa9865f8502Fix typo in plugins.mde3d0120a0cFix minor typos in the doc9214bb9392Merge pull request #309 from TheophileDiot/Fix-flask-dev80c1b225bdReplace flask development server with gunicornde0954fac3Fix typos in the docs27b4ff330cAdd the greylisting feature06f65ffe27Change the exposed port to 7000b0a887a155Fix errors and warnings when editing a service803ff8cb56Fix CUSTOM_CONF_SERVER_HTTP disappearing after 60 minutes (autoconf)94ce249d74[#290] Fix typos in docs478e980189ci/cd - temp disable k8s test8f44e108bbci/cd - add docker system prune72caf907a0ci/cd - temp disable swarm tests01acb1cf30ci/cd - temp disable nextcloud/swarmfc3c7892daci/cd - add missing prepare for prod tests2a04a56428ci/cd - update ruby version for CentOS builder6afdb298falua - fix pcall for asn/country mmdb lookup04019a617atests - fix nextcloud/swarm34649bf33adocs - add Ansible to README469a5343ecci/cd - remove old linux packages before building4244399eb1road to v1.4.3 🚀66029a316ctests - edit prod workflowd0c245ba83tests - fix bug when testing if a swarm stack is healthy5633d5ff5ftests - remove mongo-express/swarm61d57b4ebbtests - fix mongo-express/swarm76f035e21dfix wrong DENY_HTTP_STATUS setting in docs, fix autoconf ghost/prestashop tests and some UI warns/errorsb35dbdffc0tests - fix ghost/docker7e226301d4tests - fix prestashop/docker8f273a929dci/cd - fix missing comment chars45f4e06aceroad to v1.4.37fe58ddd57tests - disable systemd start limit561e64a890tests - road to debian29933fdebbtests - add unzip package to linux container7915da6dfbdocker - fix CVE-2022-3209d8f6c27560tests - fix configs perms for linuxcb56e7d04atests - add chown for custom linux configse847343143tests - fix linux/drupal (again)4caae414d5tests - fix linux/drupal8a23b96bf5tests - disable linux/moodlea4fd701d5dtests - temp disable linux/proxy-protocol39ed524f02tests - add missing variables.env for moodle/linuxd0e3f3ae26tests - call cleanup-linux.shb0fa57b056tests - replace restart with stop+start for linux testsec11360853tests - print logs when setup_test fails3be348ebe8tests - add haproxy cleanup for linux tests884ca0f6d0tests - add missing variables.env files for linuxe4321629f1tests - road to linux tests 🚀c277a33e9ctests - add missing which command for fedora512c60c519tests - add some debug info when linux/setup faile64cc29a8ctests - create /run/php folder for rpm linux distros42d29743b3linux - fix 755 perm on /opt/bunkerweb505d5c2ae4tests - fix behind-reverse-proxy/linux70992a0b50tests - fix haproxy logging again7e5465c595tests - fix haproxy logging againf5606b6933tests - fix haproxy directive265742cd94tests - haproxy add logs0580662cc8linux - copy current variables.env to make temp one8e15e2a400linux - set /opt/bunkerweb permissions to 75517801caebdtemp disable arm552588adf1temp disable arm5849c66e66tests - fix www.conf052dc23466tests - increase php logs verbosity for linux tests331c7e9545tests - add debug log file for PHPf71ad0f656php - fix fastcgi_params path34c648830btrying to fix PHP bug in Linux5c99a4b0e2refactor linux/start.sh and fix tests/cors www copyeb6f0d6737tests - fix purging wrong folder for linux tests6ea38b1f77bunkernet - fix wrong import in register jobb5c07dda01tests - add cleanup for linux tests17b6b0fdc8tests - fix PHP www.conf for Linux512ed7200dtests - add cors/linuxd8071e4c43tests - install php-fpm790fa37aebtests - fix behind-reverse-proxy/linux6005a8f73btests - fix behind-reverse-proxy/linux again and again09f56a1c6etests - fix behind-reverse-proxy/linux again0c4d2edf12tests - fix behind-reverse-proxy/linuxd53c54d4b8tests - add behind-reverse-proxy/linux093d426bc9better management of registration with BunkerNet and fix syntax error in LinuxTest3762c38741tests - copy variables.env for Linux tests55525abf15tests - fix mattermost/k8s23f8ec9571UI - fix container CVEsa38ca51380docker - dont generate config if already presente92938f004autoconf - fix container CVEsc2ad79a792Docker - fix CVE-2022-374348eefb4bf53examples - fix mattermost/k8s6d1ef606f7examples - fix nextcloud/k8s95c4ce723denable bad behavior on default server and various k8s fixese295b020e4tests - increase redmine timeout and add pvc cleanups1e499db505examples - fix gogs/k8sa642761366disable bad behavior if client is whitelisted and fix redmine/reverse-proxy-multisite examples115d517c71tests - add delays7c1474cd89examples - fix moodle/k8s port number305870cc22examples - edit moodle/k8s port number3df0f8505btests - add delay to moodle897528b730tests - fix magento/k8s again4f4c446f7bexamples - fix magento/k8s again69848dccc9examples - fix magento/k8s0516f0a839tests - assign bunkerweb-controller to srv141524a9e3dtests - force pv0d44b098f4tests - fix prestashop URL0e315dc5fctests - edit prestashopHost value5741391de6tests - change k8s service type of prestashop to clusterip6adff9cebdtests - increase timeout and remove pvc for prestashop/k8s97a2caf06etests - fix Kubernetes missing variable assign865f4f1b56tests - fix prestashop/kubernetese8305b0b65tests - fix missing prestashop/kubernetes.yml840b875f70docs - edit plugins page978bbe9ca1examples - fix missing configs subfolder in nextcloud/bw-data502c9f2fe9examples - fix radarr/swarm1c4f8bf55ctests - automatic volumes prune for swarm testsb6e2ad22a6tests - fix joomla/swarm216686fc8ctests - add delay parameterd648b1fbeatests - increase magento timeoutd3b725294ftests - wait until swarm services are runninga48200bc02examples - fix reverse-proxy-singlesite/swarmb429dd8043tests - increase timeout for swarm healthy check0440c61d0cexamples - fix gogs/swarmae36b98992docs - quick edit on PHP9a83fadd82examples - fix gogs/setup.swarm.sh permissions09141f2047examples - fix magento/swarmedf5421bf6examples - fix permissions for magento/setup-swarm.shc67564c7c8tests - increase timeout when doing requestsb076370090examples - fix mongo-express/swarmec35b0a547examples - fix mattermost/autoconf95e3022ebaexamples - fix autoconf/reverse-proxy-singlesited63538fd58examples - fix wordpress custom conf variable name for docker/autoconfe01b240723tests - ignore error when replacing patterns in files (binary files)217924fe46examples - fix reverse-proxy-singlesite regexbb6d02e0f6examples - escape dollars in reverse-proxy-singlesite compose files5c42fb58d7tests - fix reverse-proxy-singlesite2f8c5a1e9fexamples - fix host for reverse-proxy-multisiteaf866e8256edit docs/integrations for ansible and fix examples/mongo-express compose filee90d4cc7e2tests - fix json for reverse-proxy-multisite70ac3c01b3tests - fix missing arg no_copy_container07a962466btests - inline configs for docker/autoconf87c57c67c7tests - refactoring on the road, still needs some work8fb03a3171tests - on the road of refactoringdc8570ca87tests - add status type1513785705tests - refactor mattermost example4e7d795ea6tests - support custom cleanup-kubernetes.sh script and refactor some k8s tests with helm chartscc9d228abdupdate compose version to 3.3 for swarm examples so config directive is supported1819571473remove trailing space in DockerController and add missing bunkerweb prefix for autoconf-configs example324feb593dautoconf - fix missing configs update for DockerController22398d5678cors - fix typos in autoconf.yml5119c8da7cgogs - missing setting for autoconf0fca93e3e8tests - sleep 30s between autoconf tests17e14f4d53tests - fix wildcard with sudo3a46d318eetests - remove only content of subfolders4eff0c3f9dtests - fix behind reverse proxy urlbf58a17b8agogs - add setup-docker08d8bc8804tests - remove whole subfolders in bw-datab38f7c54e6tests - add kubernetes-configs and fix missing s in urls06f7fb096etests - fix docker-configs (again)b7101eb475tests - fix docker-configsa08b51bd03tests - fix gogs expected stringb2bcfb8c7ftests - fix hardened expected stringd3014b42f7examples - refactoring in progress7eae497194tests - prevent default rate limitbe21b3933atests - fix sudo cp again7bb881aa39tests - fix renamea607bd67cbtests - replace python cp with sudo cp6d06a32cc9tests - list example_data as rootc5526ef2fdMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev75b2ae868btests - fix example_data path for docker72965e230eMerge branch 'dev' of https://github.com/bunkerity/bunkerweb into dev201e2cf0f3Correction logs Linux2033974442tests - init cors and fix example_data path for autoconfd8c8ceab36tests - fix LinuxTest setup and init work on integrating examples with the new test systemc02d888b32examples - rename setup scripts for drupal9a9f9ebf36examples - fix linux-setup.sh for drupal6e381ee028tests - disable copying bw-data files for k8s and swarm tests0ee09d47datests - force removing directories with AutoconfTestda2f6cb4f4tests - force removing directories with DockerTestd1d2e51a31cleanup tests directory and init tests refactoring for drupalc14b08faa7examples - edit authelia configuration.yml file for Linux integration80fee58e47bunkernet - add default api server in jobs37690a7a4cconfigs - enable default server if TEMP_NGINX is setb3fdd109a8linux - fix wrong variables.env path when running jobs once193449512aMerge branch 'dev' of github.com:bunkerity/bunkerweb into devf5ede78974examples - fix authelia variables.env767a7ab315Adjustements doc Ansible/Linux81b3703660wait until Linux test container is initialized and fix variables.env for authelia44fbf03158authelia - extract tarball to tmp02db54ce0dexamples - follow redirect when downloading authelia for linux14d61854e5add sudo to linux dependencies and curl to linux test images6f35561faetests - fix cp and end_fun for LinuxTest2505bc015ftests - add linux to authelia kindsb1df38374ftests - temp enable docker410212b158tests - run docker cp in a shellf2ac7bca74tests - fix typo in LinuxTesta0948923ectests - copy local files for Linux tests458ebe07fftests - dynamically find deb/rpm name2205043e75tests - fix LinuxTest.docker_exec()d370f1b053tests - add missing chmod import to LinuxTestbf6dd93aa7tests - replace rmdir with rmtree for LinuxTest773517311eMerge branch 'dev' of github.com:bunkerity/bunkerweb into dev850a8057cfignore CVE-2022-30065 until we have a fixe6271ccd63Final proofreading FPMf0ddb8328edocker - fix CVE-2022-30065 for autoconff260bcf23cSmall adjustementsfa319ec101tests - fix argv len check0294064532tests - fix typo in LinuxTestf47ab0adc5tests - integrated LinuxTesteca010231cFPM Linux/Ansible Doc4d61e96e47tests - LinuxTest on the roadc9c7303460tests - fix linux.sh58a82ddcd6tests - copy Linux packages to local directory8062d043c1tests - fix Linux dockerfile path0a09f8a750fix CVE-2022-29458bb425bc361tests - init work on Linux testsaa729daebbexamples - remove double $ from kubernetes authelia7edd55544ffix k8s example for authelia and ignore error code when doing debug_fail for k8s tests0fd77a8092examples - fix typo in kubernetes authelia720f36f473tests - init kubernetes refactoringea98b453d1tests - use unique domains for swarm tests4bd0129e46tests - also edit root domain6e47b29919tests - add sleep in the end of SwarmTest.init()abc500a4d4tests - fix domains for SwarmTest3780477940examples - fix authelia swarm compose version4a5e50005bfix typo in SwarmTest and fix authelia swarm example3b73c50c32tests - ignore docker stack ps return codeba6fddb56atests - init swarm refactoring9ecd2bd98dexamples - add missing network aliases to authelia autoconf7bbf77b7a5fix authelia autoconf example and debug fail before cleaning testsf02fe1ed91tests - remove only subdirectory on new tests and add cleanup when test failed0383cadd69tests - fix compose filename for autoconf testsaeba0ba72ctests - add missing AutoconfTest object67608a463atests - add missing decode8b3b1291cctests - from replace/rename functions to class method1c5c81d2cdtests - add missing importfa2d52d80ftests - remove useless log and return boolean from Test.end68bf5ef850tests - remove wrong cleanup call424b37bec9tests - change permissions as root2780ee190dtests - add debug_fail function07b0bb38dddocker - fix CVE-2022-29187 for ui and autoconfb47c2696eedocker - fix CVE-2022-29187fdb8ca3cadtests - replace internal _log with logger.logeb59a9377dtests - init refactoring for autoconf2e0542dbb0tests - ignore case when performing test0a996bf123tests - replace match with search48a6ba6328tests - fix rm command991ddb9eb9tests - remove file as root1e1d7d7f14tests - replace variable typo in get requestebc94f515etests - add missing char when replacing Docker volumese4f6017d64tests - replace example domains with test domainsdfc5f2e79etests - export runner envc07f85a424Merge branch 'dev' of github.com:bunkerity/bunkerweb into devab57be6570tests - fix missing copytree import and self parameter5f79aea4bbfpm single/multiple docker&autoconfcc760a646btests - fix datetime import againdb2c35cb3ftests - fix datetime import28f1b4f734tests - rename variablee1183a0d4cfix tests.json for authelia and exit when test exception occurs16573a397etests - do not run as rootde8cee491atests - add missing imports56afbd4577tests - run as root590ad46cd8tests - fix missing chmod import and Test.init log call8d580bc165tests - fix missing Test importa91fc73072tests - fix indent and isfile import773a37d456Merge branch 'dev' of github.com:bunkerity/bunkerweb into devb64af85262tests - DockerTest on the road0d3e1e2a13Update the plugins docs85217b57c3Fix a typo in the plugin page in the docsba75154d07Add url_for function to custom plugins templatesc055ec7ec3Fix duplication in plugins2c4efe9d0eAdd Plugin Pages feature795dfc0778Add static map files8b4b3f3b04ansible docs2e4758e948tests - DockerTest improvementc155227ec6tests - init work on refactoringdde1851416tests - increase timeout for magentoe62523d1dclua - use pcall with mmdb functions658ab75049docs - add ansible diagram8d6397a6baMerge branch 'dev' of github.com:bunkerity/bunkerweb into devf5c86cc4e2examples - add cors example8760110fbaMerge branch 'dev' of https://github.com/bunkerity/bunkerweb into devcc4f0b26a1Quickstart Ansible and integration7b769361afcors - init work on core plugin for CORS97e607110clinux - rename bunkerweb-ui.env to ui.envc3ee7929bedocs - change target of the web UI demo link to blank969a1e5d70Merge branch 'dev' of github.com:bunkerity/bunkerweb into dev5bf59c85d5docs - replace web UI gif with YT video430f665cdcMerge branch 'dev' of https://github.com/bunkerity/bunkerweb into dev5be21f9bf8Adding www folderafdd4de5a4fix regex checks with *_CUSTOM_CONF_* setting, add doc about DENY_STATUS_CODE5586b3733bmisc - add DENY_HTTP_STATUS setting (403 or 444)90e58f2612fix ui.env path for Linux integration and add docs for autoconf with rootless dockera00607af2edocs - add instructions for podmane880b7d598docs - add infos about Docker in rootless modefc925ccb11edit docs typo for UI and variable typo in autoconf5714221319ui - fix CVE-2022-2097287e763e0dautoconf - fix CVE-2022-209789f81140aecontainer - fix CVE-2022-2097 (again)a5c98f7099container - fix CVE-2022-2097429214727btests - fix data folder permissions (again)6b1c5a93e1tests - fix data folder permissionsfb85d1d2d1autoconf - fix typo in variablefdcbc8d361custom conf - fix wrong path with multisite configsb2bb93bcf8examples - fix docker-configs again2b59086f66examples - fix docker-configse09d4901eacontainers - fix regex for *^CUSTOM_CONF_*3594618e4cexamples - fix typo in docker-configs (again)e443112819examples - fix typo in docker-configs738e3b6e1acontainers - use python hack to get env var values from string5ac80a135ccontainers - replace compgen command with a python hack because compgen -e do not display var with dots8f258486effix multiple CVE with curl/libcurl and add autoconf/docker CUSTOM_CONF configs examples2dc18a7942autoconf - support both configs from files and autoconfe0a7005062autoconf - init support of custom variables using labels385b7c4134docs - add docs for custom config using labelse25babe3d2custom conf - dockera5457a164ccustom conf - init setting support0a1e8be71fexamples - add missing setup.sh for mattermost70c60f2a9btests - add mattermost and radarrf2dfb01724examples - edit mattermost and add radarr1a8eef2c85fix autoconf import for IngressController and init work on mattermost examplecb106a112eautoconf - fix indent in IngressController492648eeb2autoconf - fix 410 exceptions (k8s)1425ad0b42docs - update settings listf7290b2c79v1.4.2 releasec0a8a356c2linux - include bwcli in /usr/local/bin40007b0866add slack to official plugins and init work on EXTERNAL_PLUGIN_URLS setting6478512e48scheduler - only send /data folder if apis are present7aa6852d3cautoconf - fix missing scheduler in autoconf mode and missing apis list7bba81b16bautoconf - fix wrong variable name for environment5cb61380d7autoconf - add missing call to ConfigCaller constructorb2758cea76autoconf - init work on _get_static_services methoda18d77aeeeautoconf - init work on static server configs as env var4a699ef6c6fix missing local Linux images import in ci/cd, and fix bug related to jobs in Linux integration5690a58ab9fix IFS checking permissionse55928a37bfix bwcli commands when using Linux integration0f2388b1f2fix permissions check when file has space in the name2b43a9cbf5Merge branch 'dev' of https://github.com/bunkerity/bunkerized-nginx into dev5ecf39ee02Fix web-ui example with X-Script-Namead091493c3examples - add various certbot-dns examplesa65606c369examples - add certbot-dns-ovhcd0d70b8f6cache dev Linux images in ci/cd and disable site config generation for autoconf/swarm/k8se21a35017aplugins - support log_default() hook, same as log() but for default serverc563731e86autoconf - fix overwrite configs file when using Docker autoconf3c417d2ff0linux - fix fedora NGINX version in Dockerfile, fix missing arg when building DEB/RPM and force NGINX version DEB deps970082f92elinux - force NGINX version in RPM deps4a2504c3b8reflect ci/cd changes to devfd0c7b1e53ci/cd - add automatic build for Linux images1e6d62ce79fix packagecloud yank name1a4e21481edocs - edit supported architectures for prebuilt Docker imagesbcaca6f034v1.4.1 release424214fd56add changelog and add missing s in authentik url82b42d5b9cMerge pull request #259 from Brawdunoir/masterdb4e2cf266update linux docs, minor fix in ingress example and update default value for bunkernet job0ef82619b8temp disable automatic tests for authentik and test automatic arm build on dedicated hardwaref2655e331dremove arm build again, fix proxy_*_timeout directives and add authelia exampled51ae1c1b9Remove USE_ before authbasic plugin settingscd0438b8cesupport REVERSE_PROXY_*_TIMEOUT settings, remove useless push in CI/CD and try to build arm on GH runnersf9a042526eadd docs about compiling BW from source on Linux, add docs about packages pinning on Linux and fix regex for REVERSE_PROXY_AUTH_REQUEST and REVERSE_PROXY_AUTH_REQUEST_SIGNIN_URL15ac64b05flet's encrypt - fix bug when AUTOCONF_MODE=yese0f8895e9ainit support for auth_request and add authentik examplee852298352don't send local IP to BunkerNet on default server, fix certbot new when MULTISITE=no and fix unknown reason in get_reason972a284efddocker - drop support for prebuilt arm images5258d8e58fdocs - edit linux install procedureacb4bea97dreflect CI/CD changes for master pushes42067e864aGHA - temp disable armv7 build until we have a fix for cryptography dependency217bddabfdGHA - different caches for armv7 and armv8 imagesc5fba13674fix GHA typos1b21f9eac3fix UI tag in GHA jobs389e050943fix links in docs and change cache location for GHA jobs05a89c3037fix registry URL in GHA jobsa0ed8a27e9add debug flag to GHA buildx stepsd0ac5e3059update GHA actions versionb16f8f11adupdate GHA actions versiona23ed06e66fix typo in GHA jobs6b9be078b8refactoring of GHA jobs8e198ed82elinux - fix documentation link in systemd unit filesc3b527afe8actions - fix RPMs path972e5471d1actions - fix linux deb/rpm generationb246c6d7e2fix wrong branch name in actions and image name for linux testsb78fd55427fix freetype CVE945241339aactions - rename main branch to master1af2264fabtemp stop push to private repo6f28708c10docs - add missing settinga9f886804abunkerweb 1.4.03a078326c5Merge pull request #199 from Myzel394/patch-1d43b82b757remote API - only do action if 4033850cacb9cprepare for v1.3.2c00c7f46a0lua - verify certs when doing HTTPS requests163af4a49dprepare for v1.3.298e85eb99fdocs - update security tuning sections : distributed blacklist and request limit2e63bb0256docs - reflect kubernetes/swarm changes into the doc6546a0edb7disable country ban if IP is local, update default values of PERMISSIONS_POLICY and FEATURE_POLICY, upgrade archlinux packages before testingab00381746ui - fix ROOT_FOLDER bug in serve-files.conf9f7097de0drequest limit - fix some LUA code24d6337a57limit req - multiple url supportbfb5319c16limit req - add burst and delay parameters4c77a14825use annotations as env var in Ingress definition, fix cidr parsing for reserved ips, fix missing empty when job is external, fix ping check for remote api and init work hour/day support for request limit4e45fa3874integrations - acme without shared folder when using k8s/swarma9a26b82d9fixed typo00d91dcaaajobs - move certbot hooks to python650ad7ea49integrations - fix missing acme folder when using Swarm or Kubernetes7045c0c2b6jobs - fix encoding error on CentOSf0f432487bremote API - ban IP from distributed DBfdc02be051remote API - basic send of bad IPsfb799765a4jobs - fix str/bytes helld53f02b5b3api - client side (untested)7b9722fac4jobs - add remote API31ed4ff834centos - update ca-certificates in install scriptbc5f3ee88efix CVEs and add init to Debian test imagea6b21aae8cfix typo in settings.json, bump Debian to bullseyes, init support of Arch Linux64aa9c2530init work remote API5d94cc8f43docs - init changes about storagelesse7ee21cbb5antibot - fix path for templates and dataa0f8cbdac1antibot - fix LUA typo in recaptcha mode178d7a6849Merge pull request #182 from Nakinox/patch-2ca81535bb3swarm/k8s - less storage, more API062fa3e78aintegration - continue work on storageless config for k8s and swarm95f2d2af9cUpdate docker-compose.ymle55dff8128api - init work on storageless configurationf0f1c79d40v1.3.1 release3d2f5e2389conf - add REVERSE_PROXY_KEEPALIVEb079c99fb9Merge branch 'patch-15' of github.com:thelittlefireman/bunkerized-nginx into keepalive2e403c6ebcconfig - add CUSTOM_HEADERf75a05584econfig - add REVERSE_PROXY_BUFFERING148edf6814tests - add github token to trivy scannera19d8aa041Merge pull request #180 from vepito/vepito-patch-1480cff86bcMerge pull request #179 from thelittlefireman/patch-1635df3423d0missing blank line29f4069de7switch the use cases72e4384596Fix typo related to non-HTTP configurationa4a2647737jobs - fix docker reload and only do cron jobs when necessary892e533694Missmatch in docs with modsec foldera056141609deps - use ModSecurity v3.0.4 instead of v3.0.5 to avoid memory leak0772a9ba8edocs - edit badge version33e0ffd5b1Merge branch 'master' into dev4cb3e089e3linux - git SHA1 commit in install.sh8808f161c5docs - dev to master links and VERSION upgrade1c60ec9804tests - fix volume wait with linux testsb13ff34569add REDIRECT_TO_REQUEST_URI variable and edit environment variables docs58f2926e95docs - various examples fixes9de628f3ebMissing proxy_set_header for keep alive6cc1abc893Allow keep alive connection when ws is offa824e15684linux - rename cronfd52bb7c8dlinux - fix cron jobs0938b20eb8UI - use sudo for Linux integrationb948e08bd5UI - use systemctl on Linuxfde14d1621linux - fix unknown scheme error and do nginx reload as root in UI8a4eb3f2a3remove .site files (gen), uninstall remove folder at the end (linux) and run jobs when reloading local instances (UI)2a0b84074aui - fix bug when Docker is used but Swarm is disabled, add jobs from API /reload and fix docker-compose docaec22d1a81ui - edit docs and fix CSRF028fc61b4fdocs - add dns_resolvers and permissions to Linuxa903960b4cdocs - fix missing subfolder in Linux quickstart guidea28f06f08flinux - run temp nginx to solve let's encrypt challenges6c8bc6b349tests - fix Linux systemd bug when writing to /tmp folder2b3b4a5c3flinux - systemd support57e4247eablinux - systemd unit filef9d4e90894docs - edit k8s php service port and append suffix to hosts4f024ec566docs - add DNS_RESOLVERS for k8s integrationbc46fc3d4cappend suffix to ingress hosts0be1da18a6remove old conf before generation, dynamic DNS for PHP and reverse proxy and swarm fixes in quickstart guide3cedc0ae13quickstart guide fixesf1d5c07cc1autoconf - various kubernetes fixesc9a6b6c27dautoconf - fixed infinite lockb199464a73various bug fixes related to Swarm integration4a9d64d9d9add favicon to web UI and fix some tech docs31536a3fe2linux - reload as root7b47c7304fexamples - minor fixes in architecture images83e7ce9cdeexamples - polishing before next release0ad5159a33docs - add changelog for next version6240d8e28dui - read variables.env when Linux is used2f80f64dd5docs - last polishe98da9b637docs polishing and fix install.sh gpg --verifyd9f7706969docs - web UI75f299978cdocs - special foldersef34b2cec1docs quickstart / multisite9b9110214adocs - quickstart guide / php9e2a8070e4docs - quickstart guide / reverse proxy733136ac1adocs - init quickstartfa172ce5a9docs - linux integrationf6a9184ae9docs - k8s integrationd37dc2b629docs - swarm integrationf7c115edffdocs - add autoconf doc to Docker sectiondfbb091361docs - init integrations/Docker8e4a65fecafix global.env generation and add web UI gif to README0573ba7b5aui - centering things without breaking sticky navbar and menubcd421de09ui - various bug fixes more or less related to UI2ec28c79cbdocs - fix README tocfec60a4b14ui - minor styling fixesdd7d1a2c78ui - fix example, subpath behind reverse proxy and add socket proxy rights for swarm0c1883472ddocs - edit kubernetes overview image and add configuration section on the readme4e6eab794ddocs - fix wrong swarm imageb23135b663docs - add docker and kubernetes imagesace9be3979docs - add autoconf and swarm images8958e5107cdocs - add overview imageb2cfc15c2asecurity - add security policy94bef079a8examples - add architecture images50266c2285examples - add the last missing README.md stubs22e2fe869fexamples improvement - added some README.md stubs55186bbef5examples improvement - hardened, joomla, kubernetes, load-balancer and moodled8286ced7cexamples improvement - certbot cloudflare and wildcard, clamav, crowdsec, ghost and gogs44de2253d2examples improvement - traefik alternative, autoconf reverse proxy and basic website6d73fbdedbexamples - update authelia and autoconf-phpb6809266afautoconf - let's encrypt support for ingress controller4e178b474cautoconf - basic ingress controller support for kubernetes021147f9d9autoconf - fix wait and redis5a26d06c87autoconf - fix infinite lock and honor DOCKER_HOST env varbc01427defignore CVE-2021-36159 and redirect job logs as root when using autoconf652614f41bautoconf - use DNS for Swarm instances discovery24d9cce82fautoconf - various bug fixes in Swarm modef866ef6325autoconf - minor fixes, prepare Swarm testing1a32e7c02cautoconf - various bug fixes with DockerController7180378d0cautoconf - init Config refactoring6e66571fb9various cleaningf44e41cedejobs - lock and reload management26db144df4autoconf refactoring and fix CVE-2021-36159a68ad53c3fautoconf - controller classes01bba1d3f6autoconf - init refactoring before k8s integration0597074438k8s - init work on parsing ingress rules, helpers to setup on k8s, basic examplesbc3c17a2f0examples - init k8s example556836b499autoconf - init annotations parser for k8s22612f1757minor edit on Linux tests and init work on k8s API50c279617bjobs - improved log and reload managementef8969e2cfcertbot - add USE_LETS_ENCRYPT_STAGING=yes/no env var for using staging or production servers of let's encrypt0dc2a5ec25edit visibility of Job members and integration of a generic checker for nginx9a207dfdc5fix missing import in generator, expand networks to ips in jobs and init work on a generic checker with shared dict and redis supporta60fbbb5b3hotfix - fix CVE-2021-33560a1b9010d9epull v1.2.8 fixes when applicable3178545c2fv1.2.8 release36b8760d4dresolve bugs on the stable version8bb6676f58settings - fix PHP_* again4234f82c01settings - edit EMAIL_LETS_ENCRYPT regexb99fb27df5fix missing parameter when calling reload in autoconf and edit REMOTE_PHP_PATH regex876fcd1814conf - add WORKER_PROCESSES26dc796155jobs - fix line edit280d189864jobs - avoid reload when not necessary5f845680ffjobs - edit referrers and user-agents data and init work on autoconf integrationd12369c900jobs - various bugs fixed and old files removed366e39f591jobs - SelfSignedCert, runner and reloader71741b2d34jobs - cache management2fca4cd014jobs - logging and error managementfccf14627fjobs - python stubsb3684efaf6jobs - init work on refactoring82548378aecrowdsec - move as external pluginb926b0db62examples - use example.com instead of website.com6713f56ec1linux - fix centos install2b923c05c1compile and install LUA 5.1.5 to /opt/bunkerized-nginx/deps and introduced REDIRECT_TO feature71cf3cf5c1use local sources when building Docker image, add LOCAL_PHP and LOCAL_PHP_REMOTE to settings.json and fix pip bug related to removed working directory8e3dbf1c70fixed some fedora bugs, support LOCAL_PHP and LOCAL_PHP_PATH and sample variables.env49ada6a8c5linux - init work on fedora support947e86f7c3linux - uninstall scripta12561a85bremove useless nginx-keys folder and add lua_package_cpath to http conf6b19bd0264deps - add cjson LUA files to deps folder6738b28b99deps - move dependencies to dedicated /opt/bunkerized-nginx/deps folder to avoid messing with the system010c0fd6d4rename gen/requirements.py to requirements.txt, add git/bash to Docker deps and fix typos in READMEecf30a71f7deps - init work on single install scriptffc4fc950edeps - manual compile/install of libmaxmind and upgrade lua-resty-coreb9955699b7Merge pull request #152 from thelittlefireman/patch-11860fd1ace5Upgrade despseb5d13fb8dUpgrade lua-nginx module to 0.10.20ca41987cd6Upgrade corerules to 3.3.0 & modsecurity to 3.0.53af1b397faUI - digging bugs from services, still some work to do72a09eac6dUI - add CSRF protection0d3f7d3925UI - admin authentication and bootstrap update6be082e0a9UI - init work on admin account4947796c99UI - fix instances bugsba197dfa43UI - bind gunicorn to 127.0.0.1/0.0.0.0:50004dd1ff8479UI - copy from helpers, systemd service and instances page updatef771ec43f1ui - init Instances class to support Linux and API for Docker/Swarme241b0c939logs - move everything from /var/log to /var/log/nginxd03a1a6e3blinux - add jobs.log2c9c9fb62clinux - run master process as rootdeb28c5991autoconf - fix folders2ea7331dadjobs - disable post-jobs when SWARM_MODE=yes on SIGHUP92ee40819ewhitelist - fix /.well-known/acme-challenge whitelist for let's encrypt2ccfb26e81docker - fix CVE-2021-3356070f9f8417etemplates - add missing new line when necessaryc4aef1d606authelia - choose portal or auth basic modea385183d88authelia - various fixescec47f3a75body injection feature and add authelia to documentationc894c8370eauthelia - add variables to settings.jsonf73b088f79authelia - initial work130c6752ddMerge pull request #148 from aFresquetIntech/devf97ea67855Create .env8504299861Correction4a8da40cf2reverse-proxy-zammad0114c7b09fexamples - edit basic PHPbebe89afb0linux - edit path for default errors, ignore comments in variables.env, install/prepare certbotb2cceb608clinux - fix centos37f5e4ed71linux - fixed debian/ubuntu but still some work needed on centos98568a57c9linux - fix /var/log and typo in daemon directive4991922878linux - fix daemon directive and rights on /etc/nginxbcb8acc364linux - add RX permissions to /opta9279053a4linux - add executable right to gen/main.py60057a17e3linux - fix tests docker cp and pass single -c argument to sud0366fcc0dlinux - started work on bunkerized-nginx commandb448d91ca8actions - fix centos test and docker image name when pushinge309ce6fd5docker - fix permissions on /opt37090dc66eactions - fix manifest error with buildx and load6bb6facd88add load: true when autobuilding images and move from /bin/sh to /bin/basha1fcbd4b83fix actions and configure09a2a4f9e5github actions refactoring1e02368e8alinux/docker - common /opt/bunkerized-nginx folderbbb5134a39fix configure arguments and CRS includeb0f93fb840fix Dockerfile againc892f037dbfix Dockerfile731c0f61dflinux - init work on installer93543d3962Linux - use the same dependencies script for Docker5ec9e6ab49linux - CentOS 7 installcc0d0af8d2linux - ubuntu installer43d2097d14linux - nginx install on Debianf880e5e2aalinux - continued work on install helpers for Debian9636013f5elinux - started work on installer15bdb076c8hotfix - fix docs get_git_branchd62c4f466dv1.2.7 releasead52ef3260autoconf - prevent race condition by checking health state3bd3b6fd7aMerge pull request #145 from thelittlefireman/patch-10e41acc20c2Upgrade ModSecurity-nginx to v1.0.23c721dc2a0add HEALTHCHECK to Dockerfile and append 10.0.0.0/8 to DNSBL whitelist491d879fecjobs - cleaning the mess when using autoconf without swarm mode52534510ecfix bug when AUTO_LETS_ENCRYPT=yes and certbot can't resolve challenges2c7337576djobs - fix syntax error9e4961ccb5docs - rename sitemap to bypass rtd rewrite01857d8ac0gen - display the reason when ignoring a variableab9f9e0a4cjobs - fix jobs when MULTISITE=yes29dc64ca30actions - add Docker cache to speedup auto build on the dev branchb5cd4e0375docker - build and push images from GitHub actions because of future DockerHub restrictions on autobuild16101144c5self-signed cert - fix bugs95510e6e1dsettings - add underscore to CUSTOM_HTTPS_CERT/KEY regexdd5890e760geoip - fix bug when using GeoIPc3a437fa82docs - rename the sitemap to avoid conflicts ?518ddd3236docs - custom robots.txt177a82ee6edocs - automated sitemap.yml39db7b368fv1.2.6 release9442e59141jobs - fix jobs in Swarm modefcc6b3b5e4various bug fixes related to Swarm678ad70b01docs, various fixes and certbot-cloudflare examplee8f5db0b29docs - add plugins system8295f6aebaplugins - clamav example388fc1a0e8plugins - started basic plugin system62217a3210add contributing guidelines and license53e433b1a4readme - replace some badgesf640157b1fMerge pull request #138 from bunkerity/feature-request-templated646f3e5b7Update issue templates4b31d005ebcrowdsec and generator fixesd2135c19c0docs - road to v1.2.68cda1baf77fix web ui multiple variables and add default error pages445032406bdnsbl - disable checks when IP is local74fb015366web UI - init work on using docker-socket-proxyee178de6abweb ui - mostly finished templating integration (needs some testing)7323525b69ui - show only multisite vars for settings82e47f147dui - Dockerfile fixes and missing get_config function2db967ad1dtemplating - road to web ui1d96620ae6templating - init integration into web ui99c259bf18templating - prepare integration into uic7b81cfc10various bug fixes related to HTTPSdfce0c06ddautoconf - fixing various bug when SWARM_MODE=yes0f8e56a668templating - fixing bugs with autoconff950abdc24templating - started integration into autoconf4a73ae8197various bug fixes on templates and nginx update to 1.20.1e2f02ee91etemplating - prepare integration for autoconfa991b262efremove ClamAV because of GPL and started work on read-only filesystema8bc17e836templating - started integration into docker imageec19f93081templating - added missing features in site templates23aa053003templating - auth basic support289ad106cbtemplating - multisite supportbbc5bbc9e9templating - fix some site templates633a07686ftemplating - init work on site templates996c45df42templating - init work on global templates801530baf3templating - road to full jinja2 templatesc65dda3917templating - init work on templating with jinja2ea891969c1templating - updated settings.json with global settings698ae17c49templating - init work on generic settings management6645632846antibot - basic pow with javascript16e5ede130antibot - custom templates8260746fe1logs/lua - add logger toolde560490d3fix LUA array variables and add LOG_LEVEL to the troubleshooting section96db3a450dlog - add LOG_LEVEL variable73543f4b0ehardening - add no-new-privilegesd9bb97be50lua - move global vars from lua to site config (untested)863283d090started work on moving variables from .lua to nginx600484b16ecrowdsec - fix bugs and update example7c6a13c549examples - improve nextcloud example so it works with webdav clientsb3bb4ec40fremove unnecessary dependencies and update doc about certificate bundle69f4657208examples - fix typo BAD_BEHAVIOR_STATUS_CODESd02985d213check permissions for missing volumes and add comment about permissions on examplesb0ca85ff75v1.2.5 - performance improvement2f115c444dMerge pull request #131 from bunkerity/issue-templates7f15741ea2Update issue templates288b8eb851docs improvement + road to v1.2.561c08fb97bdocs - troubleshooting01ef47a669docs - security tuning improvement71515a9101doc - volumes lista33d0658c6docs - road to a beautiful documentation0b3ff6a9f4bad behavior - move from fail2ban to pure luaeb2d0d330dperformance - rsyslog and fail2ban removing5bcbb38638doc - official document startedca660b2501init work on official doc3a34436cd8add AquaeAtrae example for ROOT_SITE_SUBFOLDERb1d03cd11cperformance - move bad user-agents and referrers checks from nginx to LUA with caching42c3fb8740add sandbox allow-downloads to the default value of CONTENT_SECURITY_POLICYf1c043604aadd missing backslash in the quickstart guide and update autoconf examples with the depends_on directivefd61df205fperformance - move external blacklists checks from nginx to LUA009d6fb5aechoose connection and nofile numbers, increase error_log level to get modsecurity rules, add MODSECURITY_SEC_AUDIT_ENGINE varba4185a42ejobs - fix automatic reload70976d0fbcfix user-agent not blocking and add documentation on bundle when USE_CUSTOM_HTTPS=yes062a39c63aintegrate AquaeAtrae work - add ROOT_SITE_SUBFOLDER83841b290ajobs - edit adren work on external blacklists10dc58cb6dMerge pull request #126 from adren/patch-6668754686cMerge pull request #125 from adren/patch-584b1933f63Merge pull request #124 from adren/patch-415f6d0a32aMerge pull request #123 from adren/patch-3e628361a89Merge pull request #122 from adren/patch-1f8d71e067eimproved way to generate user-agent file02ae3b6bd3change IFS before subshell2fb0e7c473deduplicate list of user-agents9adcc2f1a7more optimized way to generate map referrer file7b98db4d14improve the generation of blocking file (abusers)ddb2b85916improve generation of block file (Tor exit nodes)da1a460a64huge improvement to generate blocking file07be626842hotfix - fix API in autoconf swarm mode3bb164395ehotfix - move API_WHITELIST_IP edit to lua.shbc2568a172v1.2.4 - nginx 1.20.0 support5ec74880d8update README for v1.2.4f84fd7c9a2fix permissions issues for autoconf and fix volume for ghost example6521d7a27afix client cache so it works in combination with reverse proxy and examples update813607fbc3improve crowdsec example and disable modsec logging when not necessary843644f806log - replace some WARN tags from LUA logs with NOTICE to avoid confusion19fa0eb25flog - print modsec_audit.log to make debugging easierb4df287228log - send logs to remote syslog server5ce41edc03api - whitelist IP/network for APIa3cfb50b4dexample - fix certbot wildcard25494acaceexample - wildcard certificate with certbota98dae1fb6fix CVE-2021-20205 and examples update1a7abab570nginx 1.20.0 support42b7a57f01fix autoconf bug when removing config with multiple server name and increase default LIMIT_CONN_MAX for average website with HTTP202f9fbe5fcautoconf - fix certbot bug when multiple server_name for one service69fe066777autoconf - fix bug when multiple server_name for one service74417abc9cfixing bugs - run as GID 101 instead of 0, different permissions checks in swarm mode and disable including server confs in swarm modeba7524a419fixed LUA bugb55aafb997finding the LUA bugdeeb7a76a2Merge pull request #117 from thelittlefireman/patch-9ee8aaa4e7efix lua crash 2605d59a45cFix lua mistakeb85c991b6ebug fixes - /usr/local/lib/lua rights and syntax error in site-config0d3658adf0REVERSE_PROXY_HEADERS - use proxy_set_header instead of more_set_headers0b22209c96documentation - userns remap featuree44a1f3e14added the uri to limit_req_zone key to limit bruteforce attack on a specific resource instead of the whole serviceaa614f82f9print error when permissions are wrong on common volumesc03d410b0arefactored whitelisting of user-agentse190167bfcCIDR support with whitelist/blacklist IP31e72dce1cfix /usr/local/lib/lua rights and multiple server_name support with autoconfb8105fc558feature - whitelist URIe73c10fd80crowdsec - fix permissions on /usr/local/lib/lua and on /var/log filesa122a259c0minor fix on AutoConf logs and auto disable etag with reverse proxy7c4894d3b8autoconf - fix remove event, generate config from nginx vars, more logs533c2a1034fix sed script when writing site env5611d544d6remove reference to USE_PHP397182f18dadd link to twitter accountc5c5fb17b5v1.2.3 - swarm support017a7780fbREADME update, default cron update and new parameters to ui34d9db7a8bweb ui - bug fixes361c66ca61fixed bugs with MULTISITE variables and swarm exampleafc6678855road to v1.2.3 - fixing bugsc40fb33175road to swarm - automatic reload after jobs93ad3c0b51road to swarm - let's encrypt fixceed904882road to swarm - still some mess to fixb8027d2bacMerge pull request #102 from thelittlefireman/proxy_custom_headers8d03a14a6aMerge pull request #103 from thelittlefireman/fix_truncated_3d16f4517a4Enhancement add custom proxy headers #9789ca91b3ffFix truncated variables (last commit)6a714e2eceroad to swarm - fix race condition on initial configuration0d3da03534prepare /www directory, fix log socket path and whitelist acme challenges path33163f65b3init work on disabling root processesa2543384cdroad to swarm - add openssl to autoconf, fix api_uri in LUA, fix file rights3591715f21road to swarm - fixing things95f7ca5b2droad to swarm support - needs a lot of testing816fa47cbbintroducing SWARM_MODE env var7756c2df3cMerge pull request #98 from mromanelli9/fix/readme7509ec2f2cbasic API to be used in swarm mode6e93575e16remove ALLOWALL from X_FRAME_OPTIONS optionsba4c977550remove old anchor781e4c8cbbautoconf little work on swarm supporte04c783d1eautoconf - init work on swarm modee12b656bd5Merge branch 'patch-7' of https://github.com/thelittlefireman/bunkerized-nginx into devcae05447d3custom crontab values4b58e22657Merge branch 'patch-5' of https://github.com/thelittlefireman/bunkerized-nginx into dev6b56e21a09Merge branch 'whitelist_ua' of https://github.com/thelittlefireman/bunkerized-nginx into dev544a09e8daUpdate lua-cs-bouncer8386dd4a2acustom config outside server blockf052a25168Merge branch 'pre_server_confs' of https://github.com/thelittlefireman/bunkerized-nginx into dev43750f5536Merge pull request #73 from thelittlefireman/patch-49142afdb54Merge pull request #72 from thelittlefireman/patch-366c4fed791Fix env variable with space are truncated 2f41846e9d6Fix env variable with space are truncated92cc705b92Reduce memory usage : set cron tasks at different hours.47fb3a05b3Upgrade crowdsecurity/lua-cs-bouncer5940f402c7improve default tls securityd9ca275d53Add before `server {}` config.8353bd9c85Allow to add a whitelist by site on user-agentd902e2f297Add last missing reverse proxy header1a8b8043c8Add LIMIT_CONN var to server.conf65120a7e97Add USE_CONN_LIMIT info to Readme.mdb093a47554Add default values for LIMIT_CONN73dbf03c9aadd USE_LIMIT_CONN zone to global config6ee746236aAdd USE_LIMIT_CONN to site-configfa935eb6e3edit nginx.conf to add limit_conncf231e13cbAdd limit-conn.confd5d699252cv1.2.2 - web UI (beta)50f95420b5README update - road to v1.2.2dc382c3e04various fixes - autoconf process order, multisite config and examples0026328f25edit default FAIL2BAN_IGNOREIP subnets9023ab5aedMerge pull request #67 from thelittlefireman/patch-2124474ad66Edit README.md to add FAIL2BAN_IGNOREIPeac9c8f513Prepare FAIL2BAN_IGNOREIP to avoid self blocking1ee490de6dPrepare FAIL2BAN_IGNOREIP to avoid self blocking825e6a747ecrowdsec v1 integrated09a984c86bstarted crowdsec v1 integrationfd7afa17b3fix missing ';' in includeb9b7fdfcc4Merge pull request #63 from thelittlefireman/patch-158e1d66bc7UI - minor alert css fix7026643f8aUI - fix missing MULTISITE env var when managing services06f688fe97fixed stop and reload operationsc65b78b1ccUI - instances/services backend update (needs testing)f9b9b9546fUI - introduced multiple config parameters (like reverse proxy) in frontendb5fe6335c7UI - instances backend started951f3957fdUI - default service values0f520b8914UI - services backend started569ad75c42UI - config.json refactoringbd7b6af668UI - load config template from json459bb8ea1cUI services modals and default CSP update (fix new tab links)208b5acb30UI - minor services list improvement59b2fed416UI - basic services lista4871a915eAdd missing proxy headers026783f018Fix missing reverse proxy headers8115853453Fix missing proxy headers on site-config.shc5f283b00eUI - minor front update03ce7a6483fix modsec double inclusion when MULTISITE=yes3f7e2c54b3JOBS - fixed some job script and right temp nginx reloadbb0f46d8afJOBS - fix job_logc5b32dfc4cfix CVE-2020-1971 again9a4f96ad18fix CVE-2020-1971f258426f55JOBS - fallback to old conf in case reload failed119e963612JOBS - be more verbose about jobs failure/success373988670aMerge pull request #54 from thelittlefireman/patch-42a956f2cd3Fix #5215a37a8682UI - minor UI improvement3a3d527907UI - basic read fixese6b5f460c9UI - basic read from docker API002e3ed2basecurity tests for autoconf and ui7b55acbe8bweb UI example and CVE-2020-8231 fix again559b7835d4ui - automated build4ea01bd93fprint some logs when blocking botsa73891a3b8fix CVE-2020-823126199f52c8remove additional / in modsecurity include5c3f94a84fedit reverse proxy var name in README043fcdc136autoconf - automated buildb86ded3d1cautoconf - multi arch Dockerfile92569679b6dynamic reload of nginx by sending SIGHUP15e74e4860more work on standalone autoconffd0a6412d0init work on standalone autoconf419fdfc86efix auth basic when MULTISITE=yes0bc1f652b4v1.2.1 - autoconf feature (beta)6c7461e298integrate thelittlefireman workd01bc5e014Merge branch 'patch-1' of https://github.com/thelittlefireman/bunkerized-nginx into dev75c69c8105last fixes before next release ?e26b8482aaAdd missing EMAIL_LETS_ENCRYPT parameterf618c73e6croad to v1.2.178c1e5c676examples - same domains for internal tests481e10d3efreverse proxy - websocket exampleaae2a71983autoconf - php examplef3bf04e390dirty fix to disable default server when MULTISITE=yes36cbb927c0autoconf - various fixes95153dbc5dmoved UA, referrer and country check after whitelist and blacklist check26947179a4moved UA and referrer check to LUA88f27bfeb8autoconf - reverse proxy example and pass default vars3cc1615c4dfix user-agent script8bacf722a6Merge branch 'fix/variable-naming' of https://github.com/mromanelli9/bunkerized-nginx into dev2bfc4b41fafirst work on automatic configuration587d4a92ebincorrect variable namingc311d0c825add crawler-detecter bad UA0d03f49ebcwebsocket support with reverse proxy2112c306a8custom log format8f9dcc5ab8last fix ?2fe05d3fd3fixing scripts again and againdb04c0345cfix referrers agained8bd902b1fix referrers script3a7aa5d9c0block bad referrers9ec9de6ca2multiple lets encrypt certificates when MULTISITE=yes791342cbe6fix LUA DNS code when answers is nil2f23671c3bfail2ban fix when MULTISITE=yese350a717fffix default DNS_RESOLVERSe818acb0d1prestashop exampleb92f74ed98dirty fix for CVE-2020-289289688e66508check all vulnerabilities with trivy700dfc0184v1.2.0 release42e4298b5creadme update - v1.2.0 changes813b42cfa9php and nextcloud examples fix58fcf0a725added Permissions-Policy header5879183802custom headers to remove2032596880automatic trivy scaneaf817d57aphp config and examples fixesdd7768c856whitelist/blacklist country at LUA level to avoid SEO issuesfe1d724c9fcountry whitelist/blacklist0635eb368bvarious bug fixesfbf81c94becached blacklists dataed451877aeexamples update and multiple REVERSE_PROXY_* on single site0f18e9c552reverse proxy support via env vars8f7cb5318eproxy caching support60fbbc1013move some http directives to server0f0593456cvarious fixes8cdc155ac0multisite examples and certbot renew fix1abe1da89ebrotli supportf18c054b42gzip support4dea1975e2client cachingc2b05c463cfix BLOCK_COUNTRY bug and add support for ModSecurity custom confs when multisite=yes2da51d92a6multisite - bug fixesbd7997497bautotest through github actionse89e34a84fauto test fixff02878dd8auto test setup44b016be93road to multi server block support36c4f3e065v1.1.2 - CrowdSec integration and custom ports798f6c726dexamples - nextcloud fix and tomcat761c14a0b8custom HTTP and HTTPS ports4a07eca696crowdsec integratione1274a6082passbolt example3ec81cd849Fix broken line in README95752ff0c4v1.1.1 - TLS 1.2 support8623510f8chttps fix95a76b11fapeterkimzz integration and dhparamb0e4740a7d[New Features] - Added "HTTPS_PROTOCOLS" environment value to enable to customize TLS version. default value is "TLSv1.3". (because TLSv1.2 sometimes needed) - READMD.mde843608575README update - v1.1.02f68667893logrotate copytruncate1d63838ee6examples - fix port numbere4bdd4af5dexamples - nextcloud fix and moodle2c33463af7renamed logrotate script9ff210bed8wordpress and nextcloud examples0b73018865install CRS by tag in compile.she1356e3eb0logrotate.conf update and some cleanup34a0da444flogging fix again022a653ebcdisplay fail2ban.log and logging bug fix4c11a9125cautomatic docker tags with VERSION88b52478c3automatic Secure flag on cookiesce82e22dberemove integrated PHP397415211eantibot - check IP with sessions and recaptcha68d7988551tor hidden service example16eab0f631README update6a22f7711cload balancer example222426854eMerge pull request #13 from FacundoAcevedo/patch-1d63c57985eFix typo in the link in the TOCe19a7c693drun master nginx process as non-root user7a8795883bdockerfile fix - compile01095bd72fgpg fix and secure git clone0e6729c62echeck GPG signature of nginx sources040b6a2234Merge branch 'patch-1' of https://github.com/fabianmoronzirfas/bunkerized-nginx into dev5f62120e4dfix(typo): add missing »find«e8503b9cc5ARM build fix676571e4a4use nginx:stable-alpine as base image34254a09e9examples and DNS_RESOLVERS fix81cff3648creadme updatee166b1fea9awesome gif resizedf08bba8cc2awesome gifccf4392280session secret fixc1d44387b5basic antibot feature through recaptcha v3135126e3f4readme fixac251b0f69Merge branch 'master' of https://github.com/ZILosoft/bunkerized-nginx into devac242c9774Update README.md2909b79891basic antibot feature through captcha446ee3761bbasic antibot using javascript6e1c43c4cdbasic antibot feature through cookie652d8ac979fixed typo in manifestde1952b5f9README - toc update and title fix16a458db23README improvementf27d80e0d5various fixes and lua loggingfc3d911ff7improved blacklist/whitelist/dnsbl with luaef7d842ff0arm64v8 auto build and master manifest0e57049832manifest for automated buildsaaef370079improved logging with rsyslog6e3c2ddcc2integrated ajarmoszuk work919b418d58Added the ability to self generate SSL certificatesfb1a0182e2Added the ability to see Real IPs if Nginx is running under another proxy (such as Traefik).2e0a8307d1i386 fix again181003efe1i386 fixfca7bb0758automatic builds764038d40dREADME updatef4c43a2148block proxies and abusers3a9afa47b6Merge pull request #5 from ajarmoszuk/patch-12c12df3b96update default req_limit values2f967a9f47Update entrypoint.sheba5f6280ereq limit44155b5d62dnsbl ipairs fix829c1c6974some fixes and README updatef3721a50dbsitewide auth basicb56e4e765adnsbl feature1654e913a4lua support3e5ca583c9remote PHP-FPM supportbcd17dbea2automatic geoip update14ec9f3e63logrotate and compile fixes5b5e6e33a6awesome logo1aa1dcf50dlogrotate supportf30a06d943syslog integration and fail2ban improvementcd19841ec3readme - details about modsec include order94b29a6ca2fixed some include ordersbf605ce59dcustom root folder and little fixesb14b09ad5ddefault CSP update4f5e5f013ereadme improve76bd069f25php POST max size and custom HTTPS cert1d6ab7275fhttp basic auth fix472ec31cd2readme fixcaa415e126http basic auth8561d47be0create a customized image4bede275fbfix typoefcf937109inspectFile fixccaaa8b57dreadme fixb83111ad17realip, minor fixes and READMEa2be2e8ae1improved README : format, modsec, fail2ban and clamav48a0036d26updated readmebf0bef289dclamav support193070b148fail2ban support716e54e597custom http/server confs and better modsec customization43403f69eedisable default server69ac95b29eblock country and various fixesecf2de8b72multiple let's encrypt domains8427564f4duser-agents escape fixc56bde4f0cfix certbot-renew.sh syntax834afa1327http to https redirectd5f8c7647dcustom modules and write access5bcdb0219ef**k markup ?3233f3b76ffix readme62eda8173bimproved README09e6b50e58custom conf5d16f6a8f2fix README1b5f6deb22cookie flags and maxmind updateea1dbc617cupdated readme0b703ea559content security policy1e642e2f13initial readmee90060ce68initial work70f849fbb5Initial commit REVERT: c47084b5d7 bumped version to 0.10.25. REVERT: 6d0a2c1847 bugfix: used after free when encountering invalid http IF-Match header. REVERT: 6e9948dcda bugfix: ssl_client_hello_by_lua generating chunk cache key and chunk name REVERT: 68acad14e4 bumped the lua version to 0.10.24. REVERT: ec6df3249a bugfix: windows also need to support ngx_http_lua_ffi_worker_pids. REVERT: 9bee7e7890 bugfix : comparison of integer expressions of different signedness. REVERT: 1953052a02 bugfix: fixed warning of signed and unsigned. REVERT: 74786af954 bugfix: windows does not support ngx_http_lua_ffi_worker_pids. REVERT: ce30e2fb0a Revert "bugfix: doesn't set flags for Darwin arm64. (#2071)" (#2163) REVERT: 644b98faa5 feature: introduced ngx_http_lua_get_lua_http10_buffering. REVERT: 6f7a9a3305 feature: add four new apis to manipulate the coctx. REVERT: 14be603805 doc: setoption is already available now. REVERT: 6dbc4e1bd7 tests: use the specified perl to execute cpanm. (#2157) REVERT: 5e05fa3adb tests: cross requests cosocket can only be use one time. REVERT: a6ee03abaa bugfix: cleanup of http request will not be callled for the request created by ngx_http_lua_create_fake_request. REVERT: 992bfc352a style: use forward declaration. REVERT: 1a48599243 bumped the lua version to 0.10.23. REVERT: 47f0a36762 bugfix: cosocket did not exit when worker_shutdown_timeout handler is called. REVERT: 81bc96401e tests: fixed some test cases in t/129-ssl-socket.t t/162-socket-tls-handshake.t t/186-cosocket-busy-bufs.t. REVERT: f488965b89 feature: added HTTP 3.0 support to ngx.req.http_version(). REVERT: 3f4005fa87 bugfix: fix receiveuntil rest bytes count. REVERT: 4045ea8eb7 tests: test failed when running in randmonize mode. REVERT: 6e3b1c4fde bugfix: define busy_bufs per cosocket (#2119) REVERT: 56347d174d tests: upgrade openssl to 1.1.1s. (#2117) REVERT: 0499e84430 doc: add link to pre-defined Nginx variables (#2116) REVERT: a31e9cf337 bugfix: avoid buf double free in ngx.print if lua body filter enabled (#2115) REVERT: eb977111bb bugfix: add a timed recycling child process as a last resort. (#2112) REVERT: b754786bb5 feature: add new ffi api ngx_http_lua_ffi_msec. (#2108) REVERT: 3207da152a chore: add assertion to make linter happy (#2107) REVERT: a318d250f5 doc: add detail on explanation of a running timer (#2105) REVERT: 4bbb57aa4a doc: add release description for ngx.worker.pids(). (#2104) REVERT: d518adcac4 Merge tag 0.10.22 into master. REVERT: 8d9032298e bumped the lua version to 0.10.22. REVERT: 4add942393 bugfix: did not wakeup coroutine when worker thread finished. REVERT: cff86dd7f6 doc: fix the version in README (#2089) REVERT: edfa0f984e feat: add ngx_http_lua_ffi_worker_pids to get all workers pid map REVERT: 3e2a7f4593 bugfix: run_worker_thread arg is self-reference. REVERT: eb6d6cbf00 tests: build with DDEBUG=1. (#2084) REVERT: 5eb7101d33 doc: complete md5.lua example in run_worker_thread api (#2085) REVERT: a7e67a596f doc: add more explanation for premature in ngx.timer.at. REVERT: 73f2b3f6fe bugfix: typo in the debug message. (#2081) REVERT: 9b7bde2e79 feature: added new API bind. REVERT: 44486a45f4 feature: add shdict APIs into worker thread (#2074) REVERT: 99b29cd169 doc: clarify the ngx.req.set_uri_args api when using Lua table as the 'arg' argument. (#2073) REVERT: 1fd1e83c80 bugfix: doesn't set flags for Darwin arm64. (#2071) REVERT: 1c43f1c4f2 ci: bumped OpenSSL to 1.1.1p. (#2070) REVERT: 74b8d4b4f9 chore: update the PR types (#2069) REVERT: c55fceb5cf ci: add a way to check PR title automatically (#2067) REVERT: b6d167cf1a bugfix: update handling of multiple headers changed in nginx 1.23.0 (#2063) REVERT: c8597eda0c tests: change the running phase to cover the bug reported in google group. (#2064) REVERT: 9a0a8968cd bugfix: did not wakeup coroutine when worker thread finished. REVERT: 3fe8d9ddeb change: can not receive udp datagram greater 8192. (#2057) REVERT: 2c60e8966d optimize: destroy pipe proc when freeing the request. (#2052) REVERT: e7660d75a3 doc: revised English grammar in ngx_http_lua_timer.c. (#2053) REVERT: 9c6478b08f Merge branch '0.10.21.x' REVERT: 0ac2ab2797 bugfix: tctx.pool is double freed. (#2049) REVERT: b6db2e741d optimize: add error log when closing the pipe failed. (#2050) REVERT: b91221bd6c optimize: fix potential null pointer dereference found by coverity (#2051) REVERT: 381e9b3a61 bugfix: wrong memory size for the pernding timers array. (#2048) REVERT: af130ae896 fix dead code found by coverity REVERT: 8a8e710cb9 fix potential null pointer dereference found by Coverity (#2043) REVERT: 86e1a6446a feature: content_by_lua_file return 503 if read err and file is existed #1992 (#1995) REVERT: 653d6a36f4 bugfix: Apple Silicon FFI ABI limitation workaround REVERT: bc2ecdae2c ci: add util/build-without-ssl.sh. (#2035) REVERT: f0c04dbf61 bugfix: failed to compile when nginx https is disabled. (#2034) REVERT: 6c0cc5c456 doc: did not generate README.markdown from doc/HttpLuaModule.wiki. (#2029) REVERT: c1d378824c feature: add `server_rewrite_by_lua*`. (#2004) REVERT: 3d1431790f travis: update openssl to 1.1.1n. (#2028) REVERT: 8df296c479 travis: fixe the uri of lua-resty-core. REVERT: 2b902657f3 cosocket: add function `tcpsock:setclientcert`, reimplemented `tcpsock:sslhandshake` with FFI REVERT: 1fea117122 tests: use random port numbers instead of fixed port number to prevent conflict. (#2025) REVERT: a7444abe8e tests: 160-disable-init-by-lua.t: prevent the test process from overwriting the original pid file. (#2024) REVERT: 247086ed38 doc: describe the second argument of get_uri_args (#2023) REVERT: d959374e02 optimize: use ngx_hash_t to optimize the built-in header look-up process for ngx.header.HEADER. REVERT: 974d5d163d feature: add FFI implementation for ngx.arg getter (#2021) REVERT: bd92edf3b8 doc: modify openssl patch requirements. (#2022) REVERT: 496d985334 tests: change the count of the record after adding ngx.get_raw_phase. (#2019) REVERT: 97d1b704d0 bugfix: ngx.pipe waits until timeout because child process forgot to close pipe after dup2. REVERT: d001dea778 bugfix: posted event handler was called after event memory was freed. (#1982) REVERT: 7d585bd535 bugfix: fixed size of the array when initialized in the init_worker_by* phase. (#2017) REVERT: 66294b9d06 bugfix: ambiguous error message 'connection in dubious state' when connection is closed. (#2016) REVERT: 77540f78c3 doc: change description for ssl_client_hello_by_lua. REVERT: cee06592f8 doc: fixed link to lua-resty-core REVERT: 15b693b338 bugfix: passing the wrong chunkname argument to luaL_loadbuffer. (#2010) REVERT: 70a50e66c4 optimize: change lua chunkname to config filename and line number for (init/header_filter/body_filter)_by_lua_block and so on. (#2008) REVERT: 907d1d9ada doc: modified the todo section. we now have exit_worker_by_lua (#2009) REVERT: 297e73cde6 bugfix: the error message should use the first line rather than the last line of the code block when load lua code block failed. (#2005) REVERT: 2615bafa34 bugfix: segment fault when get header via ngx.req.raw_header with malformed requests. REVERT: 8cf9c632d8 travis-ci: upgraded openssl to 1.1.1m, pcre to 8.45. (#2002) REVERT: 8b497f5a56 change: delete useless code for get old_cpath. (#2000) REVERT: ce8405c73b bugfix: ngx.run_worker_thread injected api into the wrong table.(#1996) REVERT: fa5982c639 tests: t/140-ssl-c-api.t failed because got wrong libssl.so. REVERT: a41fdcea49 feature: add api to fetch raw nginx ssl pointer of the downstream request. REVERT: 5f02311a9f feature: ssl/tls: support for passphrase protected key. (#1991) REVERT: 7eb8ad0251 bugfix: ngx.pipe waits until timeout because child process forgot to close pipe after dup2. REVERT: 30debf6740 doc: mentioned OpenResty. REVERT: 320f030785 doc:move all the discouraged *_by_lua documentation to *_by_lua_block REVERT: 1637b35349 tests: travis.yml: ngx-releng depends on ack. (#1986) REVERT: f36fe2982b feature: expose the 'Last-Modified' response header as ngx.header["Last-Modified"]. (#1983) REVERT: 75c68b225a bugfix: posted event handler was called after event memory was freed. (#1982) REVERT: de09fc6ccb tests: removed duplicated c declaration in t/140-ssl-c-api.t. REVERT: 2fce8ca380 optimize: don't calculate hash when clearing the request header. REVERT: 85388f4ef6 feature: check the number of parameters for ngx.thread.wait REVERT: d0e56ca146 optimize: don't calculate hash when clearing the header. REVERT: a276476266 change: use nil instead of false when lpush&rpush overflow. Co-authered-by: lijunlong<lijunlong@openresty.com> REVERT: b67b22af88 feature: prevent calling ngx.exit() with invalid values. REVERT: 0b6da3b6ce feature: added ffi-based function 'ngx_http_lua_ffi_req_is_internal'. REVERT: e98f5c508f doc: Clarify ngx.req.set_header usage for proxies. REVERT: 5483b9157c feature: added http const HTTP_NOT_IMPLEMENTED, fixes #1466. Co-authored-by: lijunlong <lijunllong@openrestycom> REVERT: 37ec9f7561 doc: Readme: completed the Installation part, with add lua-resty-core and lua-resty-lrucache. REVERT: 94fa662bc3 style: removed extra space. (#1981) REVERT: 6302d47409 tests: NGINX_TEST_CHECK_LEAK detects memoryleak because nginx can not free resolver ctx quickly. This was introduce in commit acd53645754ce which is use to resovle double free of resolver ctx. This issue happens only when nginx can not get any reply from the dns server until timeout. REVERT: 94dd3ac940 style: updated the indentation of .travis.yml according to the yaml specification. (#1976) REVERT: 3229945a2f bugfix: prevent illegal memory access in ngx_http_lua_util.c. (#1974) REVERT: ce8fd0268c tests: fixed test plan for 129-ssl-socket.t and 162-exit-worker.t. (#1972) REVERT: 0b98a58ada tests: 132-lua-blocks.t and 158-global-var.t: use RegExp instead of strict character match. (#1971) REVERT: 91907a0f31 bugfix: forgot to clean up the cached thread contexts when worker process exits. (#1968) REVERT: 892ed514f7 tests: skip test cases for unsupported event types. (#1967) REVERT: 9a93a3a0b5 travis-ci: bumped the NGINX core to 1.21.4. (#1964) REVERT: 9e692e29cf travis-ci: updated ftp.pcre.org to sourceforge mirror. (#1965) REVERT: e682133289 tests: wrong pid path when running jobs greater than 1. (#1961) REVERT: 751667913e style: changed the comment a bit. REVERT: 931f62799c bugfix: ngx_http_lua_assert failure in ngx_http_lua_worker_thread.c. (#1960) REVERT: 3f33dd862a optimization: removed superfluous code from shdict_store. (#1956) REVERT: 560461e1f9 tests: updated the test cases in t/104-req-raw-header.t to reflect the changes in nginx. REVERT: 913b5583bf tests: updated the test cases in t/020-subrequest.t to reflect the changes in nginx. REVERT: 0dffd12277 travis-ci: bumped the NGINX core to 1.21.3. REVERT: 73181ca90e bumped the API version to 0.10.21. REVERT: 617cb5dadc style: removed extra space. (#1952) REVERT: 557e0097dc tests: remove workflows/label.yml since it is not working properly. (#1950) REVERT: 59d39ca2f0 doc: fixed spelling errors in the docs and code. (#1947) REVERT: ccc748eafb bugfix: fix nginx crash caused by a bad format specifier. REVERT: a6e9e11f14 doc: fixed code style and test case style found by ngx-releng. REVERT: aeaecd6525 tests: added the missing test case which should be added in commit 5f47838e600. REVERT: 5f47838e60 doc: clearify the missing the closing long bracket may due to the lua code is too long. REVERT: 3f1c6834ee bugfix: fixed memcpy param overlap detected by asan. REVERT: c4d5ae71e1 feature: allowed some ngx APIs to be used in worker thread. REVERT: 421a8da81b chore: fix possible null pointer dereference found by Coverity. REVERT: c4a3e34fca bugfix: we should use luaL_typename() with lua stack index. REVERT: 07e11f3167 SSL: fixed potential leak on memory allocation errors. similar to https://hg.nginx.org/nginx/rev/8981dbb12254 If ngx_pool_cleanup_add() fails, we have to clean just created SSL context manually, thus appropriate call added. REVERT: 7c60431a0a tests: travis failed due to the cetificat of Let's Encrypt expired. (#1939) REVERT: acd5364575 bugfix: nginx crash when resolve an not exist domain in thread create by ngx.thread.spawn.(#1931) REVERT: c4ca520322 tests: ca-certificates of Let's Encrypt has expired. (#1937) REVERT: 1ea5b09f18 feature: auto assign pr to project (#1772) REVERT: 250f31d011 tests: the certificate of the Let's Encrypt has expired. (#1929) REVERT: a3ec1565e2 bugfix: should reset the value_len to 0 when reuse the expired list type key in shared dict. (#1928) REVERT: 5095da4a54 change: do not need to create the Lua request ctx data table from C (#1926) REVERT: 5425d6d8e6 bugfix: we should ignore match limit in DFA mode. (#1924) REVERT: fef25815f1 feature: implemented the ssl_client_hello_by_lua_block and ssl_client_hello_by_lua_file directives for controlling the NGINX downstream SSL handshake dynamically with Lua. REVERT: 776f829102 style: fixed some of the code style issues and add code style checking for the ci. (#1916) REVERT: 3820d0e118 bugfix: buffer bloat and CPU 100% when download large file was filtered by body_filter_by_lua. (#1909) REVERT: 86514c1e44 bugfix: fixed missing 'const' qualifier causing compilation failure on freebsd. (#1914) REVERT: a9cd21e943 travis-ci: upgraded openssl to 1.1.1l. REVERT: c297cf69f2 tests: improve test cases robustness. REVERT: 89818721fe feature: implement the new ngx.run_worker_thread API to run Lua function in a seperated worker thread. REVERT: 263bd0ca70 bugfix: should not allow to create timer in the exit process phase (#1907) REVERT: b721656a91 bugfix: add nginx version condition for privileged agent connections. (#1903) REVERT: 66a4d417d6 add privileged agent connections REVERT: 53bd821990 travis-ci: remove clang compiler mode from travis. REVERT: ccb0f8cc10 change: removed the openssl 1.0.2 in CI since it has been EOL ove a year, fix #1897. (#1899) REVERT: bdd48a154c bugfix: we didn't exclude the ssl_verify_callback when compiling with LibreSSL (#1894) REVERT: 223139d208 chore: fix typos introduced by PR #1890 (#1892) REVERT: 6c1a2e95b8 bugfix: fixed typo introduced by 276f16af. (#1891) REVERT: 276f16af49 feature: add lua_ssl_conf_command directive for setting arbitrary Ope… (#1890) REVERT: f1b97e4507 feature: support environ in ngx.pipe on mac (#1882) REVERT: 6ed8e4b0ff feature: allow to be compiled with LibreSSL 3.0+ (#1888) REVERT: f72792234c doc: stripped line trailing whitespaces. (#1881) REVERT: 68f6a1498e travis-ci: upgraded openssl from 1.1.1i to 1.1.1k. (#1868) REVERT: 9007d673e2 bumped the API version to 0.10.20. REVERT: dabc8e881f change: changed from graceful shutdown to abort when lua_resume return LUA_ERRMEM. REVERT: d3a8626421 tests: suspected memory leak of 160-disable-init-by-lua.t when test with TEST_NGINX_CHECK_LEAK=1 because forgot to close the file. (#1877) REVERT: 14ef2cb25c doc: added sample config directives for internal redirects, as reported by Jason Hoch. REVERT: b8d5b379f8 tests: added a new rule about 'ngx_pass_open_channel()' to valgrind suppression file. (#1874) REVERT: dcc77fae75 doc: documented the scope of ngx.ctx for timer handlers. thanks Jason Hoch for the suggestion. REVERT: 5b90b1fae7 doc: recommend to renew ngx.timer.at regularly (#1876) REVERT: a43cc398a8 doc: sync doc from README to ensure wiki2markdown.pl is work (#1875) REVERT: 1c1bcfeb92 travis-ci: bumped the NGINX core to 1.19.9. (#1870) REVERT: eb944dedd2 bugfix: correct the way to handle invalid quote in ngx.escape_uri/ngx.req.get_{uri,post}_args (#1862) REVERT: 2abb142d2b tests: fixed typo in 162-exit-worker.t. (#1866) REVERT: 88a52c44af chore: fix possible null pointer dereference found by Coverity (#1846) REVERT: 9a3176e93f chore: fix possible null pointer dereference found by Coverity (#1844) REVERT: 4d2d47ce56 chore: fix possible null pointer dereference found by Coverity (#1845) REVERT: 23e40f3fd2 docs: fix spelling (#1841) REVERT: 138c1b9642 src/ngx_http_lua_ssl_certby.c: fix possible null pointer dereference found by coverity REVERT: 7bba6d1954 bugfix: fixed memory leak in debug log. REVERT: 8f12a28e2e updated openssl to 1.1.1i. (#1836) REVERT: 60e95eff35 doc: added new youtube video on luajit bytecode precompilation. REVERT: b9b39645ff doc: added 1 more video. REVERT: 99ea68a135 bugfix: we closed listener's fd which was closed. (#1832) REVERT: d59afff27a doc: added our tutorial videos. REVERT: 7105adaa52 bumped the API version to 0.10.19. (#1824) REVERT: 83a61d6b45 optimize: post zombie thread: avoided the linear search. (#1823) REVERT: 15197e7bba bugfix: accessed memory out of range when calling lua_pushfstring with none zero-terminated string introduced in commit 7367a231. REVERT: 26809e75b9 tests: 106-timer.t: fixed test plan count. REVERT: 98f482bfb1 bugfix: process may crash when a timer run failed and a function with arguments run inside this timer. (#1819) REVERT: e497ffc683 bugfix: ngx.resp.set_headers(): may cause an error when Content-Length field is larger than 2^32. REVERT: 411a9aed7a tests: 124-init-worker.t: made the test robust by changing the match pattern for TEST 22. (#1817) REVERT: 4653f2182e bugfix: fixed segfault caused by an incorrect format token introduced in commit 3e24a95a. REVERT: 65d8750748 bugfix: wrong pipelined request body length when request body is parent's request body. (#1814) REVERT: 8b9d7fdaef travis: openssl: enable threads. REVERT: 50de32e850 travis: upgraded openssl 1.1.1 to 1.1.1h. REVERT: 843e203016 bugfix: ngx.flush never blocks on http v2. REVERT: ea6b07cd65 feature: implemented the new tcpsok:setoption() function for setting options for the TCP socket. REVERT: 8ae3e73f20 tests: --- shutdown_error_log should be excluded from repeat_each() when counting plans. REVERT: 7bccbbff62 tests: skip t/163-signal.t under hup reload test mode. REVERT: de1c3c63b8 bugfix: entry threads would leak when exceeding the lua_max_running_timers limit. this regression had appeared in commit 4de59f5da or v0.10.18rc2. REVERT: e16d217a11 optimize: removed useless code for luajit without the lua_resetthread API. REVERT: 186c847382 debug: added more debug info to monitor the main lua stack size in timer creation code. REVERT: fdf752daf8 feature: added undocumented API for attaching arbitrary key-value pair data to a cosocket TCP connecton, which can survive connection pool reuse. REVERT: 7367a2314c bugfix: ngx.resp.get_headers(): may return a wrong (like: negative) value of the Content-Length field when it is larger than 2^32. REVERT: 57ebdd3439 bugfix: should still use timer instead of delayed_events when worker process is exiting, otherwise the new created 0 delay timer may have no chance to run. REVERT: ff81634233 optimize: added the "ev" to ngx_posted_delayed_events instead of the rbtree for 0 delay timer, so that we can save an epoll wait in such case. REVERT: df4033d13c travis-ci: bumped the NGINX core to 1.19.2. (#1793) REVERT: 0bccfb30fb style: added "static" for the "ngx_http_lua_module_ctx" (#1794) REVERT: 2c5b189334 feature: implemented the new ngx.ssl.server_port() API to get server port. REVERT: d8b408a7f1 bugfix: build error with nginx 1.7.4 or older version REVERT: 2d82f078a1 bugfix: we now only recycle light threads which are "entry threads" otherwise it is not safe to recycle user created threads since we have no idea whether the user may still hold refs to them. REVERT: b281121303 optimize: now we make use of the new lua_getexdata2 and lua_setexdata2 to attach coctx to the Lua thread objects directly which save the lookup overhead which can become the bottleneck when there are many Lua light threads around in a single request handler. REVERT: 021b75b889 travis: fixed the luajit branch. REVERT: 4de59f5dac feature: now we recycle lua thread GC objects for our "light threads" and added lua_thread_cache_max_entries directive to configure the cache size. REVERT: 4695419bd3 bumped the API version to 0.10.18. REVERT: ce30a08864 feature: added new C API ngx_http_lua_pcre_version to wrap the pcre_version() C API in libpcre. REVERT: ef9e7507a5 updated .gitignore a bit. REVERT: ac9836f97b bugfix: double values larger than int32_t were incorrectly printed out as 64-bit integers. REVERT: 85fb9b8395 test: make the 030-uri-args.t more robust since there is no fixed order in lua table. (#1797) REVERT: 4d2a04a081 test: increased time unit to make test less error-prone REVERT: db1999816e bugfix: the format in argerror messages are incorrect (#1787) REVERT: 97b91899c9 bugfix: when recreating balancer buffer, remove existing buffers first (#1770) REVERT: 172c2145e1 doc: fixed broken links. REVERT: 9416eadfaa doc: minor link tweaks. REVERT: b1a3b5d16a style: removed a line-trailing space found by ngx-releng. REVERT: 2db0e82469 doc: minor link tweaks. REVERT: b4f464a909 doc: added a link to new blog post "Introduction to Lua-Land CPU Flame Graphs". REVERT: e86d41f50a bugfix: added missing SSL feature macro (#1776) REVERT: 218af5ee90 feature: shared ngx.ctx among SSL_* phases and the following phases. (#1514) REVERT: d6a29d2611 feature(socket.tcp): enhance the logic of parameter verification in connect REVERT: 21cfd8ab26 doc: ported recent changes in mardkown to the wiki file. REVERT: b0875fa8f8 doc: added more blog post links. REVERT: 3e24a95a27 bugfix: the body size may overflow since the size_t is only int32 in 32-bit system (#1756) REVERT: eeee4069e0 doc: ngx.var.VARIABLE is available in the balancer_by_lua* context (#1761) REVERT: 49937fb69a doc: removed the useless semicolon in the example lua code REVERT: 83bfe91572 doc: added a blog post link. REVERT: f6b486b24e doc: fixed the wrong phase for lua_need_request_body (#1758) REVERT: bdfc4bfc07 doc: removed the useless semicolon in the example lua code (#1757) REVERT: e526caeeb2 feature: added the `ngx_http_lua_ffi_balancer_recreate_request` FFI function to allow recreation of request buffer in balancer phase. (#1734) REVERT: c0e460a538 feature: add FFI interface to verify SSL client certificate (#1666) REVERT: fd25474917 test: use official repo instead of third pard repo REVERT: 393c954700 feature: added exit_worker_by* to run Lua code upon nginx worker process exit. (#1682) REVERT: 1669904d53 * optimize: avoided use of lua_tolstring in ngx_http_lua_calc_strlen_in_table, ngx_http_lua_copy_str_in_table, ngx_http_lua_socket_udp_send, log_wrapper and ngx_http_lua_ngx_echo. REVERT: b050e1c944 sytle: added blank line after code block. (#1752) REVERT: af74842019 test: fix: add lua-resty-string to lua_package_path (#1748) REVERT: 4368a8ea27 bugfix: macro contains operator should be wrapped inside a bracket. REVERT: 635b6e864c feature: supported receiveany on ngx.req.socket(true?) socks (#1623) REVERT: a4d63f7f7f refactor: used 'yieldable context' to simpify the context list. REVERT: c366f3a9bd doc: fixed an unclosed <code> tag breaking the markup. REVERT: c48eeed509 tests: 161-load-resty-core.t: added vim mode line. REVERT: 2d23bc4f0a bumped version to 0.10.17. REVERT: 9ab38e8ee3 bugfix: prevented request smuggling in the ngx.location.capture API. REVERT: 6913b1b1e6 doc: updated the Version section to reflect the release date. REVERT: c2565fe799 tests: added test cases for sending HUP signal to nginx processes without the master process. REVERT: aa548f5385 tests: fixed an error message to reflect new changes in lua-resty-core. REVERT: bb045f2d8d feature: ngx.escape_uri: added new optional 'type' argument not_component argument for pure URI escaping (still defauls to URI component escaping). REVERT: 5d15172687 feature: ngx.req.set_uri(): added the 'binary' optional boolean arg to allow arbitrary binary data in the unencoded URI. REVERT: 8746f64051 doc: ngx.req.set_uri_args: fixed byte ranges for automatic escaping. REVERT: e1e335fd7f security: ngx.req.set_header(): now we always escape bytes in header names and header values which are prohibited by RFC 7230. REVERT: be35318272 doc: more typo fixes. REVERT: 2a6c9a63e2 doc: minor typo fixes. REVERT: c6ffcfbf37 tests: added test cases for the nginx core patch static_mod_escape_loc_hdr. REVERT: 785fb57094 feature: ngx.req.set_uri_args() now automatically escapes control and whitespace characters if the query-string is provided directly. REVERT: 99a5a6bcb4 test: used the iptable -I option to insert rule to the head of the filter chain. REVERT: f655b0e19a feature: add mergify.yml to manage our pr REVERT: c86819f0b0 doc: updated the docs on the limits of subrequests to reflect recent changes in the nginx core. REVERT: 8ac6cc7285 doc: made the code examples more realistic (better for direct copy&paste use). REVERT: d278043fb0 doc: added docs for working around memory fragmentation issues to the shdict:set() method. REVERT: 23d2bc10a1 bugfix: ngx.req.set_uri_args() threw an exception with wrong argument info. REVERT: 678988696a bugfix: set_by_lua_block allowed more than one arg (in addition to the block). REVERT: 8c9968bd47 doc: fixed a few typos/wording issues in readme. (#1712) REVERT: febd730062 travis-ci: bumped OpenSSL to 1.1.1g. REVERT: 50c1912ef7 misc: ngx_http_lua_logby.c: removed duplicate headers. REVERT: 6e48a804f7 style: ngx_http_lua_socket_tcp.c: ensured two blank lines between functions. REVERT: 896638287a style: fixed a minor styling issue in 'ngx_http_lua_initworkerby.c'. REVERT: efd284106b travis-ci: bumped OpenSSL to 1.1.1f and fixed older versions downloads. REVERT: beb5c6ba03 bugfix: allow the use of spaces in 'ngx.req.set_uri()'. REVERT: 6d270c32f1 doc: fixed the return value name in 'ngx.worker.id()' documentation. REVERT: 66026039d1 doc: clarify ngx.timer.every callback argument conventions, #1409. REVERT: f991f3e10f travis: fixed the warnings from build config validation. REVERT: f45d4e999c bugfix: overrided the input header only for the first time REVERT: f6ff2890cb misc: avoided warnings with old gcc versions due to incorrect inline definition and renamed functions for clarity. REVERT: 3908769d39 travis: upgraded pcre to 8.44. REVERT: ada56de571 updated .gitignore. REVERT: 79b3bd3cf2 config: more followup fixes in autoconf feature tests. REVERT: 3a37c9c618 bugfix: FFI availability feature test was broken on Windows. REVERT: 38f587a35e bugfix: ensured arguments of APIs mutating uri or request/response headers do not contain unsafe characters. (#1654) REVERT: be864c2afd travis-ci: upgraded OpenSSL to 1.1.1e. REVERT: 43220429e5 tests: fixed numbering thanks to the reindex script. REVERT: ec3b219e64 tests: fixed a newly failing test due to changes in openresty.org accepted ciphers. REVERT: 4c4bb0fcbd bugfix: fixed use of uninitialized cache_key in ngx_http_set_by_lua_file. REVERT: 52f0d95fa4 doc: sync the minor change (in the last commit) to README.markdown from the HttpLuaModule.wiki file. REVERT: 6b79cd4413 doc: minor grammar typo fix (#1642) (#1643) REVERT: 9259e7a343 tests: 139-ssl-cert-by.t: relaxed timing test cases for tvw test mode. REVERT: 8669e0985d bugfix: ngx.pipe: ensured reading while a process died returns the "closed" error. REVERT: 743773bfb0 tests: fixed a newly failing test due to openresty.org now rejecting TLSv1 connections. REVERT: 1d9298d643 bugfix: fixed use of an uninitialized value in ngx_http_lua_set_by_lua_file. REVERT: 028c0d4951 doc: mentioned that 1.17.8 is the latest NGINX core version tested. REVERT: c06793c3e1 travis-ci: bumped the NGINX core to 1.17.8. REVERT: d328e5620e tests: 025-codecache.t: updated a test case to avoid error logs in stderr. REVERT: c2390abb58 Revert "bugfix: ensured 'init_worker_by_lua*' does not mutate another NGINX module's main_conf." REVERT: e328645430 change: we now ignore 'lua_regex_*' directives when NGINX is compiled without PCRE support. REVERT: 8f518e7d92 travis-ci: bumped OpenSSL to 1.0.2u. REVERT: 760f7073da feature: implemented the FFI interface for the 'ngx_req.add_header()' API. REVERT: 7c5b11d737 tests: 124-init-worker.t: fixed a few failing test cases. REVERT: a3ac3f557e style: updated 'nginx_version' guard macros assuming it is always defined. REVERT: 771eb231e5 misc: ngx_http_lua_util.h: removed 'ngx_str_set' definition as it is defined in NGINX 1.6.0+ REVERT: d1e55394ea misc: removed dead code, guard non-OpenResty LuaJIT definitions, and fixed styling issues. REVERT: 478bae6fc1 doc: readme: mentioned that the latest tested NGINX core is 1.17.4. REVERT: 4e593c335f travis-ci: bumped the NGINX core to 1.17.4. REVERT: 69780f6769 bugfix: config: fallback to '--undefined' option for ld 2.25 and below. REVERT: d062170e94 feature: implemented the 'ngx.crc32_short' and 'ngx.crc32_long' C FFI APIs. REVERT: 50dabbc3ae travis-ci: bumped OpenSSL versions to 1.0.2t, 1.1.0l, and 1.1.1d. REVERT: fd1e0f89e4 feat: config: added a check for Lua language version 5.1. REVERT: 9b224957f6 doc: readme: minor updates to align with the ngx_stream_lua module README. REVERT: 4c943b9447 tests: 087-udp-socket.t: removed a duplicated test case. REVERT: 70484bcbe4 tweaks: ported adjustments and missing test cases from the ngx_stream_lua module. REVERT: 315330ac09 bugfix: config: ensured LuaJIT FFI check and static PCRE builds succeed on all platforms. REVERT: 2a190736a5 change: removed error logging on coroutine runtime errors. REVERT: 9a892b8d5d bugfix: coroutine.wrap: propagate errors to the parent coroutine. REVERT: c658e22606 tests: 139-ssl-cert.t: added test cases asserting support for 'ngx.thread.kill()' and 'ngx.socket.udp' in 'ssl_certificate_by_lua*'. REVERT: 97f0101e52 feature: enabled the 'ngx.thread' and 'ngx.socket.udp' APIs in ssl_session_fetch_by_lua*. REVERT: 97431d8141 bugfix: fixed compilation with NGINX cores < 1.11.11 REVERT: 189ba24ef4 feature: when a timer fails to run we now log the location of its function's definition. REVERT: 4b9e53f748 feature: ngx.pipe: allowed for calling resty.core 'ngx_pipe.shutdown()' on a sub-process when a light thread is waiting on it. REVERT: 8573c1c5d8 feature: ngx.pipe: allowed for specifying timeouts in resty.core 'ngx_pipe.spawn()'. REVERT: d154e5a7c1 doc: readme: removed all mentions of PUC-Rio Lua and fixed styling and grammatical issues. REVERT: c5135a0511 change: removed compatibility code for unsupported NGINX versions (< 1.6.0). REVERT: 947fa0088b change: retired the old CFunction API when newer FFI implementations are available. REVERT: 60736e686a change: 'resty.core' is now mandatorily loaded, and the 'lua_load_resty_core' directive is deprecated. REVERT: a96e99ab1a change: we now prevent compilation with PUC-Rio Lua; only LuaJIT 2.x is supported. REVERT: 2f270642bf bugfix: fixed file cache key size allocation. REVERT: 6b3822b18c bugfix: added missing arguments to an 'ngx_log_error()' call in ngx_http_lua_pipe.c. REVERT: 9fa316f50b tweak: updated the debug log in 'ngx_http_lua_socket_tcp_conn_op_ctx_cleanup()' to align with the meta_lua module. REVERT: ba182dd599 style: fixed some minor styling issues to align with the meta_lua module. REVERT: eed28fca8d optimize: fixed the pre-allocated number of keys in the 'ngx.socket.tcp' table. REVERT: 6c25b7bea9 optimize: removed declaration of obsolete 'ngx_http_lua_inject_logby_ngx_api' function. REVERT: d313bf8dea bugfix: ensured the 'pcre_version' symbol is also preserved on Darwin platforms. REVERT: c618d0d239 bugfix: fixed compilation errors encountered with ngx_stream_lua due to a recent commit. REVERT: 881bf91da6 bugfix: ensured arguments of APIs mutating response headers do not contain '\r' and '\n' characters. REVERT: 246ec8ac48 refactor: simplified Lua chunk and file cache key generation. REVERT: f45908cd32 refactor: reduced cache key size by removing unnecessary chunkname component. REVERT: bd83c656d5 tests: codecache.t: moved and reinforced a test case ensuring *by_lua directives with identical Lua chunks produce distinct cache keys. REVERT: 0c755ed892 bugfix: ensured set_by_lua_file with nginx variables re-computes closures code cache key. REVERT: 39c2ead3cb optimize: improved code cache lookup performance by using 'luaL_ref()' to avoid the costly 'lj_str_new()'. REVERT: bf11f67d8c tests: codecache.t: added tests for code cache behavior with *_by_lua_file directives containing NGINX variables. REVERT: e42f9b5f65 doc: updated the section on OpenSSL and NGINX patches in the 'ssl_certificate_by_lua*' documentation. REVERT: 09484e8fda bugfix: ensured 'init_worker_by_lua*' does not mutate another NGINX module's main_conf. REVERT: b6875300b7 doc: mentioned that we support NGINX 1.17.x. REVERT: cf77a42c4e doc: removed TODO items that have been taken care of. REVERT: de60e555a3 travis: added OpenSSL 1.1.1c to the tests matrix. REVERT: 467f0134db tests: added tests asserting that 'ssl_certificate_by_lua*' and 'ssl_session_fetch_by_lua*' can yield when reading early data. REVERT: d3dbc0c810 bugfix: skipped 'ssl_session_store_by_lua*' and 'ssl_session_fetch_by_lua*' when using TLS 1.3. REVERT: 2014dd80fe bugfix: ensured the 'pcre_version' symbol is preserved as undefined when PCRE is statically linked. REVERT: 277d382f51 api: bumped API version to 0.10.16. REVERT: 2524330e59 travis-ci: bumped the NGINX core version to 1.17.1. REVERT: 65bdd4a838 tests: 139-ssl-cert-by.t: downgraded error log level of SSL handshake failures from 'crit' to 'info'. REVERT: 4e974ba961 doc: updated ssl_session_fetch_by_lua_block documentation around OpenSSL and NGINX core patches. REVERT: b0c7373917 Revert "feature: added OpenSSL 1.1.1 support to ssl_session_fetch_by_lua*." REVERT: 81344434aa doc: fixed a mistake in ngx.location.capture() example in README.md. REVERT: 32dd6a34a1 style: fixed a minor alignment issue in ngx_http_lua_ssl_certby.c. REVERT: 59b6430f7b bugfix: LuaJIT sets currentline to -1 if it is unavailable. REVERT: a38d906678 feature: added OpenSSL 1.1.1 support to ssl_session_fetch_by_lua*. REVERT: 3a5872969c travis-ci: bumped OpenSSL to 1.0.2s and 1.1.0k. REVERT: 33a5517c9c tweak: fixed some warnings from the clang static code analyzer. REVERT: 4102b82cd0 tests: 161-load-resty-core.t: added a test asserting the directive honors 'lua_package_path'. REVERT: 1882c30a08 doc: we now work with nginx 1.14.x and 1.15.x. REVERT: a7afd56c66 feature: added support for specifying environment variables in ngx.pipe spawn() FFI API. REVERT: 1c756b385d doc: fixed a mistake in tcpsock:receiveany() example in README.md. REVERT: 30678fd5b9 tests: ssl-socket.t: fixed a failing test case due to openresty.org's default cipher. REVERT: 441c7f626a tests: re-enabled a test case for using ngx.re.match in init_by_lua*. REVERT: 28cf5ce3b6 feature: added the FFI API for 'str_replace_char()'. REVERT: f87d1f1651 bugfix: ngx.pipe: cleared the pending event after aborting the uthread. REVERT: 86941a706b tests: 123-lua-path.t: fixed a few test cases failing in EC2 to-ngx_lua suite. REVERT: 7be0a4dc93 doc: fixed a typo in README.md. REVERT: 61e4d0aac8 tests: fixed a few failing test cases due to loading resty.core. REVERT: fccf383ae8 tests: fixed default lua path to load resty.core from many test cases. REVERT: 87f0a09a60 feat: implemented the lua_load_resty_core directive which loads resty.core by default. REVERT: 7ac6f3f67d doc: fixed a typo in a comment from ngx_http_lua_common.h. REVERT: 95a2e59bfb tests: removed obsolete drizzle upstream block in init.t. REVERT: 12d991e182 api: bumped API version to 0.10.15. REVERT: afeeb84b08 bugfix: ngx.pipe: fixed a segfault when error_log is configured with syslog. REVERT: 2bc20ccb04 travis-ci: switch to xenial image REVERT: 15b01c66f7 tests: fixed the tests using iscribblet.org which would time out now. REVERT: a92cf7255c tests: fixed failures due to recent CDN changes. REVERT: 83ca6b57ae doc: bumped version to 0.10.14. REVERT: ee47e55eb5 bugfix: ngx.pipe: proc:wait() returns false only when the sub-process exited abnormally. REVERT: c368af2f07 tests: 159-sa-restart.t: avoided sending SIGWINCH to the test nginx worker process. REVERT: 761ddca72d bugfix: ensured we cleanup up aborted queued connect operations. REVERT: 8edb21abcc bugfix: only update connections count when cosockets are truly associated with the socket pool. REVERT: fd90f4e825 doc: one followup tweak. REVERT: 4ebab2b8a3 doc: emphasized that this module is a core component of OpenResty. REVERT: cf887654a2 tests: switched to 127.0.0.2 instead of agentzh.org for timeout-related tests. REVERT: 01735c27fe tests: hardened a few flaky test cases from recent CI runs. REVERT: 70dd0bee4c tests: fixed a test case in 068-socket-keepalive.t which always fails when a local dns server is running. REVERT: 9750a81731 tests: fixed new test failure due to openresty.org server changes. REVERT: b2af4d3690 bugfix: inlined Lua code snippets in nginx.conf failed to use the Lua source checksum as part of the Lua code cache key. thanks Oleg A. Mamontov for the report in #1428. REVERT: f627f4c546 tests: t/160-disable-init-by-lua.t: hardened test suite to prevent false positives. REVERT: 055bb17c6c bugfix: fixed a segfault introduced in 7c2b58e when testing an nginx configuration containing 'lua_shared_dict' directive(s). REVERT: aef03eb331 feature: added the C API to support the 'ngx.pipe' module provided by lua-resty-core. REVERT: 2c8984934c travis: bumped the nginx core version to 1.15.8. REVERT: bd9964e7f3 tests: fixed some test cases failing with the 1.15.8 nginx core. REVERT: c2940c132b feature: added backlog queueing to cosocket connection pools. REVERT: 2fb8f120c3 feature: added support for the Nginx builtin Link header. REVERT: 248060b813 feature: errors are now logged when timers fail to run. REVERT: 7c2b58ee7e change: we now avoid running init_by_lua* in signaller processes and when testing the nginx configuration. REVERT: e76292dee5 tests: reindexed the t/158-global-var.t suite. REVERT: fbb8919300 change: we now avoid generating the Content-Type response header when getting all response headers. REVERT: cec2a09def bugfix: ensured Content-Type header gets generated when other headers get set. REVERT: 637a4c645e doc: updated the copyright year to 2019. REVERT: 017e00462a bugfix: we now avoid generating a Content-Type header when getting/setting other response headers. REVERT: ab2e2718bf tests: updated the test suite so that it can be run in parallel mode. REVERT: 5d924cc637 tests: require: hardened lua_path and lua_cpath regexes. REVERT: f63af5dc0e travis-ci: upgraded openssl to 1.0.2q and 1.1.0j. REVERT: 11a31b5409 tests: increased the timeouts of some ssl cosocket tests. REVERT: ec0d5768b2 doc: noted that ngx.req.get_method can be used in the body_filter_by_lua* and log_by_lua* phases. REVERT: 60225ad19f bugfix: the lightuserdata mask was broken in WIN64. REVERT: b4ade78874 bugfix: we now only apply the lightuserdata mask on platforms that are at least 64bits. REVERT: 1c72f57ce8 feature: added an FFI API for retrieving env 'directives' values. REVERT: 2f7c65009d feature: implemented a new 'lua_sa_restart' directive, which sets the SA_RESTART flag on nginx workers signal dispositions. REVERT: c65f5738a2 bugfix: the 'dd' calls in ngx_http_lua_util.h are now guarded by '#ifdef DDEBUG' . REVERT: 3754757be7 change: we now print an alert when a non openresty-specific version of LuaJIT is detected since many optimizations would be missing. REVERT: 1a73e0ab79 doc: ported the Lua 5.1 interpreter removal to the wiki document. REVERT: 08a9baa92b bugfix: ngx.process: process.type() didn't return 'master' in master process. REVERT: 09a3654606 tests: declared many variables as local to avoid triggering the new _G write guard. REVERT: 5efd95d793 doc: updated the docs to reflect the change that we now no longer support the standard Lua 5.1 interpreter in this module. also recommended OpenResty's LuaJIT branch version instead of the stock LuaJIT. REVERT: c9eca03ebb misc: updated _G write guard message to be more accurate. REVERT: 84338ab85e typo: fixed a debug log in access and rewrite handlers. REVERT: ebfa66ceb7 misc: rename a test file to be properly ordered. REVERT: d067594ca2 bugfix: silenced -Wcast-function-type warnings. REVERT: 7286812116 feature: added support for ARM64 (Aarch64). REVERT: f64ec8c905 bugfix: tcpsock:setkeepalive: worker processes might take too long to gracefully shut down when the keep alive connections take a long max idle time. REVERT: e94f2e5d64 bugfix: fixed segfault in NGINX core >= 1.15.0 when init_worker_by_lua* is used. REVERT: 576a10d246 doc: mention that ngx.req.set_body_data() and ngx.req.set_body_file() must read the request body. REVERT: 8ba33dac05 optimize: removed a duplicated include directive in ngx_http_lua_regex.c. REVERT: 55743aeba3 bugfix: when variable is cacheable and indexed, setting the request "Host" header should clear any existing cached $host variable value so that subsequent reads return the expected result. REVERT: 70b843f825 tests: upgraded openssl version to 1.1.0h. REVERT: 6bbfffdece tests: we failed to enable master process when configuring multiple workers. REVERT: 9112536b15 api: bumped API version to 0.10.14. REVERT: b5ffb11fe1 feature: implemented the receiveany() upstream cosocket method. REVERT: 5a3c48d23c doc: fixed the links to ssl_session_store_by_lua_block. REVERT: 15e93a11ed restored the change in commit 4ff3dd14ed since it only changed the auto-generated README.markdown. alas. REVERT: 612931c0f1 doc: bumped version to 0.10.13. REVERT: 0605709c32 bugfix: fixed compatibility regressions on Win32. this regression had appeared in commit 012f3163e. REVERT: f341daa269 api: bumped API version to 1.10.13. REVERT: 52af63a5b9 feature: ngx.req.get_post_args(), ngx.req.get_uri_args(), ngx.req.get_headers(), ngx.resp.get_headers(), and ngx.decode_args() now would return an error string, "truncated", when the input exceeds the max_args/max_headers limits. REVERT: 19cc6bf8f5 tests: fixed a test case that cannot be run in parallel test jobs. REVERT: 4ff3dd14ed doc: fix the link to ngx.ocsp's docs. REVERT: 288ebdb93f doc: bumped version to 0.10.12. REVERT: 91a0ad236c optimize: switched exptime argument type to 'long' in the shdict FFI API to mitigate potential overflows. REVERT: 5196e65519 tests: remove google.com relevant ssl certificate test cases. REVERT: 9ea1c06a64 feature: ngx_http_lua_ffi_set_resp_header(): now add an override flag argument to control whether to override existing resp headers. REVERT: 53519cd7ac feature: allowed sending boolean and nil values in cosockets. REVERT: 6d4475ae3e tests: increased timeouts to avoid failing in mockagain writing test mode. REVERT: 809192c96c feature: api.h: exposed the ngx_http_lua_ffi_str_t type for other Nginx C modules. REVERT: 23e69fb200 bugfix: ngx_http_lua_ffi_ssl_set_serialized_session(): avoided memory leak when calling it repeatly. REVERT: 5cd103b1f6 optimize: avoided the string copy in ngx_http_lua_ffi_req_get_method_name(). REVERT: 80fa32c8d4 feature: added support for the 308 status code in ngx.redirect(). REVERT: 439a02ab99 typo: fixed an error message typo in set_der_priv_key(). REVERT: bb76eb123b change: switched to SSL_version() calls from TLS1_get_version(). REVERT: feae6e7753 doc: mentioned that OpenResty includes its own version of LuaJIT which is specifically optmized and enhanced for OpenResty. REVERT: 3cde1d8aa1 doc: fixed some code comment typo. REVERT: a698cb0989 doc: updated the NDK repo URL to github.com/simplresty. REVERT: 3078ca6138 bugfix: we now throw a Lua exception when ngx.location.capture* Lua API is used inside an HTTP2 request since it is known to lead to hanging. REVERT: df1b0198ff optimize: corrected the initial table size of req socket objects. REVERT: 988756924b tests: removed duplicate entries in valgrind.supress. REVERT: 00b92b3d00 style: fixed minor coding style issues found by ngx-releng. REVERT: fcd0deafff ssl: support enabling TLSv1.3 via lua_ssl_protocols. REVERT: 9e5cc6e239 bugfix: nginx rewrite directive may initiate internal redirects without clearing any module ctx and rewrite_by_lua* handlers might think it was re-entered and thus it might lead to request hang. thanks twistedfall for the report in #1235. REVERT: 90d7522342 doc: added the new 'init_ttl' argument to the shdict:incr() documentation. REVERT: a46862afec doc: updated the copyright years in markdown as well. REVERT: 11aa4636ba bugfix: avoided sharing the same code object for identical Lua inlined code chunks in different phases due to chunk name conflicts. REVERT: e343b3a14e tests: updated valgrind.suppress for latest glibc. REVERT: c2b6ae2ae3 doc: updated the copyright years. REVERT: d125123f8b tests: updated more uses of the server IP addr for agentzh.org to reflect recent changes. REVERT: 051f35240c doc: setting ngx.header.HEADER no longer throws out an exception when the header is already sent out; it now just logs an error message. REVERT: 9a3bbb6f2d tests: updated the server IP for agentzh.org to reflect recent changes. REVERT: 071bb0ff64 doc: typo fix: fix core constants "NGX_XX" to "ngx.XX". REVERT: 468403e371 feature: added the "init_ttl" argument to the pure C function for the shdict:incr() API. REVERT: 5f6e740611 feature: added pure C APIs for the remaining time related Lua APIs (for lua-resyt-core). REVERT: 6d0ecd617a doc: typo fix: fix "\d+" to [[\d+]]. REVERT: cf5fb98239 tests: corrected the No SNI, No verify case in 129-ssl-socket.t. REVERT: 01b3145227 travis-ci: enabled openssl-1.1.0g builds. REVERT: 7c8c503001 bugfix: fixed compatibility with older OpenSSL versions like 0.9.8 and 0.9.7. this regression had appeared in commit 7f108923b. REVERT: 858753bb0d travis: upgraded pcre to 8.41 and openssl to 1.0.2n. REVERT: 7f108923b0 feature: added support for OpenSSL 1.1.0. REVERT: e51a4739a6 doc: typo fix: fix constrolled to controlled. REVERT: 34d9298577 bugfix: ngx.req.raw_header(): the first part of the header would be discarded when using single LF as delimiter and the number of headers is large enough. REVERT: c2f68a48ee style: minor coding style fixes suggested by our ngx-releng tool. REVERT: 99a5ba2126 feature: added a pure C API function ngx_http_lua_ffi_raw_log for ngx.errlog module's rawlog() function in the lua-resty-core library. REVERT: 51b7d649aa feature: added pure C API function ngx_http_lua_ffi_master_pid() for the get_master_pid() Lua FFI API in ngx.process of lua-resty-core. REVERT: 20ffd853eb feature: implemented pure C function for the pure FFI version of the ngx.get_phase() API function in lua-resty-core. REVERT: b1b1504ac4 tests: fixed broken SSL tests due to switch in CA for openresty.org. REVERT: d6aa6ea1c7 tests: fixed typos in test tiles in t/124-init-worker.t. REVERT: 81e140c59b bugfix: pure C API for ngx.var assignment: we failed to output the error message length. REVERT: 18b5de576c bugfix: the upper bound of port ranges should be 65535 instead of 65536. REVERT: 9de3dc7ef2 tests: updated the expected debugging log message for freeing cosocket connection pools. REVERT: de3b7def1b feature: added pure C API for fetching client address in the SSL handshake phase. REVERT: 4577a6fbc8 bugfix: freed all connections when cleaning up socket pools. REVERT: 4e1a9e1d4f tests: relaxed the checks to account for timing races in error logs from multiple cache helper processes. REVERT: 9279612507 bugfix: use of lua-resty-core's ngx.re API in init_by_lua* might lead to memory issues during nginx HUP reload when no lua_shared_dict directives are used and the regex cache is enabled. REVERT: 012f3163eb optimize: destroy the Lua VM and avoid running any init_worker_by_lua* code inside cache helper processes. REVERT: 7c7b2e0b11 api: bumped version to 0.10.12. REVERT: 91d2cd61a7 bugfix: fixed a compilation error with nginx cores older than 1.11.2 due the lack of the ngx_inet_get_port() C API function (which was first added to nginx 1.11.2). thanks sumantdas for the report. REVERT: 4f76a377ed feature: logged the tcp cosocket's remote end address when connect() times out and lua_socket_log_errors is on. REVERT: 54135a03ef travis: always find out the external IP address of the current travis ci node to help debugging network issues. REVERT: 7dc97df412 change: fixed a typo in a comment in ngx_http_lua_rewriteby.c. REVERT: b2aae31a85 tests: use larger timeout threshold values for more openresty.org ssl tests. REVERT: 3eb1d2f64f tests: use longer timeout threshold. REVERT: 8af77d3ca7 doc: we should also work with nginx 1.12.x. REVERT: ba2b605930 doc: we now work with nginx cores as new as 1.13.6. REVERT: ed2c9f8e4d release 0.10.11. REVERT: c6089171de tests: added full GC cycle operations to avoid false positives in the "check leak" test mode. REVERT: 4b871b45e8 tests: made one stap-based test case less possible to fail due to timing error. REVERT: 38780280c0 updated valgrind suppressions for the hv test mode. REVERT: 5f766faf09 tests: added new valgrind false positives in the latest nginx core. REVERT: fd5201c571 tests: valgrind.suppress: removed too aggressive suppressions in nginx mem pools and luajit lj_str_new. REVERT: 201f7c051c travis: bumped nginx core version to 1.13.6. REVERT: 7730490c1e dev: util/build.sh: now we require ngx_stream_lua_module to build (for testing and development). REVERT: 56d3098816 bugfix: add fallthrough comment to silence GCC 7's -Wimplicit-fallthrough. REVERT: 5900df4a6d doc: added "413 Request Entity Too Large" to the possible short circuit response list. REVERT: 8dd4bdef6f doc: fixed strike-through in shdict.free_space. REVERT: f829065b79 feature: shdict: added pure C API for getting free page size and total capacity for lua-resty-core. REVERT: 59dff5eec3 tests: suppressed one more false positive. REVERT: 97fbeb0bef bugfix: the ssl connections might be drained and reused prematurely when ssl_certificate_by_lua* or ssl_session_fetch_by_lua* were used. this might lead to segmentation faults under load. thanks guanglinlv for the report and the original patch in #1162. REVERT: bf14723e4e tests: fixed a test case that might fail due to timing errors. REVERT: 0c8df2fa69 Revert "tests: try to make a test case less possible to fail on slow machines." REVERT: e5d7fc9fd5 tests: try to make a test case less possible to fail on slow machines. REVERT: 93d1f30c3f bugfix: a followup fix for the previous commit. REVERT: afbfe4cf74 bugfix: the timeout overflow checks did not work on 32-bit systems. REVERT: aee660bdf9 bugfix: suppressed the gcc warning "comparison between signed and unsigned integer expressions". REVERT: 4bbf39928c travis-ci: fixed the IPC::Run dep for Test::Nginx and also added nginx 1.13.5 to the matrix. REVERT: 3266b40c7c doc: typo fix from dongbeiouba in #1158. REVERT: 1d01a6d662 doc: documented the shdict:ttl() and shdict:expire() API functions. REVERT: 37cbafe4eb tests: minor tweaks for the http2 test mode. REVERT: 9a81a68641 feature: added pure C functions for shdict:ttl() and shdict:expire() API functions. REVERT: c338c7b3fd api: bumped version to 0.10.11. REVERT: ac7615a286 dev: util/build.sh: specify --with-pcre-jit for the nginx build. REVERT: 837cecb647 tests: fixed ssl ciphers to reflect recent changes in openresty.org's mini CDN network. REVERT: 1626aaa782 bugfix: *_by_lua_block might break nginx config dump (-T switch). REVERT: c97473b5e6 bugfix: segmentation faults might happen when pipelined http requests are used in the downsteram connection. thanks Gao Yan for the report. REVERT: 36d6ef406b bugfix: tcpsock:connect(): when the nginx resolver's send() immediately fails without yielding, we didn't clean up the coroutine ctx state properly. REVERT: 77a2851636 bugfix: tcpsock: settimeout/settimeouts: throw an error when the timeout argument values overflow. REVERT: 3fc5aea08f doc: simplified a Lua function call a bit. REVERT: aee499ac21 doc: minor fixes. REVERT: e96aec767d doc: fixed the stale Lua module preloading docs as reminded by Denis. REVERT: b87ad242dc tests: skipped a test case which is known to leak memory when lua_code_cache is off. REVERT: e9609d25cb valgrind: suppressed a known false positive inside the nginx core. REVERT: cdd2ae921f bumped version to 0.10.10. REVERT: 7b7178a958 bugfix: fixed a compilation error on Windows. this regression had appeaered in 0.10.9. REVERT: 89de780222 doc: bumped version to 0.10.9. REVERT: 82b2188712 tests: made 2 test cases less possible to fail on slower machines. REVERT: 691370ec27 Revert "bugfix: ngx.escape_uri: we did not escape URI reserved chars. #1124" REVERT: f170505186 bugfix: ngx.escape_uri: we did not escape URI reserved chars. #1124 REVERT: 0f0af50948 doc: fixed a typo in a code example for `ngx.re.match`. REVERT: 51c14a8981 bugfix: segmentation fault might happen when a stale read event happens after the downstream cosocket object is closed. thanks Dejiang Zhu for the report. REVERT: 2fd469d468 refactor: removed the duplicate C function decelaration for ngx_http_lua_socket_read_handler. REVERT: c26854856a tests: added a test case to make sure $proxy_add_x_forwarded_for is accessible on the Lua land. REVERT: 1e71ff2cba tests: fixed the vim mode line in a test file. REVERT: a509476670 bugfix: ngx.semaphore: when nginx workers exit, the harmless error message "semaphore gc wait queue is not empty" might be logged. REVERT: cc0a793a27 ocsp: removed a useless line of code, which unbreak the libressl build. thanks Kyra Zimmer for the original patch. REVERT: ef4a0b1db5 tests: skipped the test case for lua_code_cache off + ngx.timer.every in the "check leak" test mode since there is a known memory leak in this case. REVERT: 720bd5dbb9 bugfix: the fake requests/connections might leak when memory allocations fail. REVERT: c372e1cc0a optimize: made ngx_http_lua_log_ringbuf_header_t have the same size on linux i386 and x64. REVERT: 67664fef09 minor coding style fixes. REVERT: e84d69b269 tests: made a slow test less possible to time out on slow machines. REVERT: 81b8e4823d tests: made a test less possible to fail due to timing error. REVERT: 4527ec0bb8 tests: relaxed the expected ouptut constraint in tests for testing ssl host name mismatch. REVERT: 8827a7f833 bugfix: segmentation fault would occur when several server {} blocks listen on the same port or unix domain socket file path *and* some of them are using ssl_certificate_by_lua* configurations while some are not. thanks petrovich-ua for the report and original patch in #1055. REVERT: bb30f6d8b6 bugfix: ngx.escape_uri() did not escape "|", ",", "$", "@", and "`". REVERT: 3294b1dfd0 bugfix: ngx.encode_args() did not escape "|", ",", "$", "@", and "`". REVERT: 66f0731281 bugfix: fixed several bugs in ngx_http_lua_log_ringbuf.c. REVERT: 20d6558b07 feature: balancer_by_lua*: now the user Lua code can terminate the current request with arbitrary HTTP response status codes via ngx.exit(). REVERT: df708216cf feature: errlog capture: now we also record the UNIX timestamp (in sec with msec precision through the decimal part) for each error log entry. REVERT: 031e000042 doc: use the .ljbc file extension instead of .luac for LuaJIT bytecode files. REVERT: 9cb970978c tests: updated tests on ssl cosockets to reflect recent changes in our CDN network. REVERT: 6f49242a8f fixed tests to reflect recent changes. REVERT: 2360565f5f doc: fixed some typos detected by misspell. REVERT: 69d995513b bugfix: the running timer counter might go out of sync when non-timer handlers using fake requests are involved (like ssl_certficate_by_lua* and ssl_session_fetch_by_lua*). REVERT: 7a8798437a feature: added pure C API function +ngx_http_lua_ffi_errlog_get_sys_filter_level for ngx.errlog module's get_sys_filter_level() function in the lua-resty-core library. REVERT: e80d292571 tests: ssl: avoided those domains using startcom ssl certificates. REVERT: 993aec8eb4 refactor: removed the obsolete util/gdbinit script script. we have much better tools in openresty-gdb-utils already. REVERT: 0c29793993 doc: made it explicit that shdict methods are all atomic. REVERT: c1317e412f travis-ci: we no longer want to cover nginx 1.9.15. REVERT: 2dd44623d7 feature: ngx.sleep(0) now always yield the control to the nginx event loop. REVERT: 9b16e254e8 feature: implemented the ngx.timer.every() API function for creating recurring timers. REVERT: 2a87704933 feature: added new pure C API ngx_http_lua_ffi_process_signal_graceful_exit() for the signal_graceful_exit() function of the ngx.process module in lua-resty-core. REVERT: 76e2138975 change: renamed the C API function ngx_http_lua_ffi_errlog_get_logs to ngx_http_lua_ffi_errlog_get_msg. REVERT: eb0bb28537 lua_capture_error_log: various documentation fixes and API name changes. REVERT: ab63ba8df2 change: renamed lua_intercept_error_log directive to lua_capture_error_log. REVERT: 4ed1f96051 doc: added more material on capturing error log filtering. REVERT: 8d8f2c24a1 doc: documented the lua_intercept_error_log directive. REVERT: 1a5a33e61f feature: added new config directive lua_intercept_error_log for capturing nginx error logs on Lua land. REVERT: 6a2b4ff556 doc: a typo fix from Oleg Abrosimov. REVERT: edbded4056 change: bumped API version to 0.10.9. REVERT: 23cb8e8329 travis-ci: enable -msse4.2 when building luajit2. REVERT: b98da9a191 feature: added pure C functions ngx_http_lua_ffi_worker_type() & ngx_http_lua_ffi_worker_privileged(). REVERT: f5633cacc0 feature: added pure C API for tuning the jit_stack_size option in PCRE. REVERT: c03462637b change: removed util/reindex. put it into the openresty/openresty-devel-utils repo instead. REVERT: ca8ed0e8cd doc: minor tweaks. REVERT: 39bec7f40a doc: minor tweaks. REVERT: 6c7ac361f3 doc: more tweaks in the Installation section. REVERT: c7d9691e5b doc: more tweaks in the Installation section. REVERT: 398db9517c doc: more fixes in the Installation section for OpenResty. REVERT: 55f91d782b doc: updated the Installation section to reflect recent changes. REVERT: e39e442911 bugfix: fixed typos in error messages. REVERT: 0459a285ca feature: nginx 1.11.11+ can now build with this module. REVERT: 4b72493423 tests: added passing test cases for testing Lua errors thrown in init_by_lua*. REVERT: 975c3f8388 bumped version to 0.10.8. REVERT: 385ae4cd15 tests: a followup fix for the previous commit (2ba183d3). REVERT: 2ba183d3c2 tests: made a test for duplex cosockets less sensitive to timing error. REVERT: 94248d64e4 tests: added valgrind suppression rules for false positives in nginx 1.11.11+ and pcre 3.40+'s JIT compiler. REVERT: 844e842cb3 change: removed the use of luaL_getn() macro as it is no longer available in the latest LuaJIT v2.1. fixes #1029. REVERT: 113d138096 bugfix: lacking the fix from #936 in the C API for lua-resty-core. #1031 REVERT: 6b01840dc9 change: disabled the mmap(sbrk(0)) memory trick since glibc leaks memory when it is forced to use mmap to fulfill malloc(). REVERT: 743a10ab07 travis-ci: avoided installing the Test::Nginx perl module; just use it right away. REVERT: 312bf3ed18 tests: avoided flooding google dns servers in the check leak test mode. REVERT: 8a6448a390 travis-ci: upgraded pcre to 8.40. REVERT: 38dd154a78 doc: ngx.exit() also returns immediately in the balancer_by_lua* context. thanks Jinhua Tan for the patch in #1012. REVERT: 2fd7daa698 bugfix: typo fix in C POST args handler debug log. REVERT: fdbfdaecf8 semaphore: fixed a typo in a code comment. REVERT: e86dd96628 doc: added more hints as comments to installation commands. REVERT: 11495c28a0 util/reindex: tweaked the regex to avoid useless substitutions. this is a followup fix for commit 772e6fd. REVERT: 3217a07816 util/reindex: fixed the shebang line. REVERT: 2e7031f01d util/reindex: fixed the author and copyright notice. REVERT: 772e6fdaa9 tests: removed superfluous empty lines at the end of the test files. REVERT: 32fea9e665 util/reindex: trims the extra newline characters at the end of the test file. REVERT: 7f9387cedc doc: fixed a typo. REVERT: a14b9cd374 doc: various wording tweaks and more code examples. REVERT: e73cd4b900 tweak: guarded SSL related function declarations with the macro NGX_HTTP_SSL. REVERT: 4fb510f5fb fixed a function parameter name. REVERT: e958cb2caf tests: fixed a bug in testing the nullness of cdata pointers. REVERT: 827a5d6f83 feature: fixed build compatibility with BoringSSL. REVERT: 5ae4aba838 travis-ci: upgraded openssl to 1.0.2k. REVERT: 1028333e48 travis-ci: added checks for use of tabs and source lines exceeding 80 cols. REVERT: 0c37062988 fixed a coding style issue in the previous commit. REVERT: 5c54198a36 bugfix: tcp cosockets: sslhandshake(): typo in the error message. REVERT: 1ada6d0e59 tests: require PCRE 8.39 instead of 8.33 to run our test suite. REVERT: 39783100f5 feature: tcpsock:connect(): allows the options_table argument being nil. REVERT: 5fdbb56ad5 bugfix: setting response headers would change the Content-Type response header. REVERT: b3c872e124 added a passing test for #853. REVERT: da11870db6 bugfix: balancer_by_lua*: the number of retres might exceed the limit of proxy_next_upstream_tries or alike. REVERT: 5028d63536 doc: updated copyright notice. REVERT: 3cf7062366 travis-ci: cosmetic "wget" improvement. REVERT: e7031127e3 feature: added support for the 303 status code in ngx.redirect(). REVERT: 6e38c11eb4 tests: disable IPv6 in resolver. REVERT: 9ed76a7328 travis-ci: several improvements. REVERT: 26be99deff tests: t/090-log-socket-errors.t: avoided connecting to 8.8.8.8:80. REVERT: 7c95034935 tests: added a passing test for ngx.re.find + \G regexes. REVERT: db28ece8e4 doc: a typo fix from Andrei Belov. REVERT: aa43ca0639 doc: stripped line trailing whitespaces. REVERT: 793531df54 doc: removed ngx.re.split() from TODO section since it is already implemented in ngx.re. REVERT: 5e59e8c897 bugfix: compilation failures with nginx cores older than 1.9.0. REVERT: 4bc9042222 tests: fixed a perl warning "Unescaped left brace in regex is deprecated, passed through in regex". REVERT: a24db2cb99 tests: ngx_http_fake_module: removed the coyyright notice since the copyright is already granted. REVERT: 38dfb174a2 tests: fixed a bug in the example ngx_fake_delayed module. thanks Dejiang Zhu. also removed the copyright notice in this module since it is already granted. REVERT: 0a83639f19 tests: avoided solving IPv6 addresses in more tests. REVERT: 3b42b8bb8c tests: avoided solving IPv6 addresses. REVERT: 0a1de31ff6 bugfix: C API: ngx_http_lua_add_package_preload() might not take effect when lua_code_cache is off. REVERT: ce525fb506 tests: made tests less likely to fail due to bad network. REVERT: 75b03949c1 doc: added a note about the LRU regex cache used in the ngx.re.* implementation of lua-resty-core. REVERT: 0064324882 doc: bumped version to 0.10.7. REVERT: 3cbe5be4a6 tests: skipped the newly added test case that cannot run in check leak test mode. REVERT: 7bd68906b7 doc: log level constants are also available in init_by_lua* and init_worker_by_lua* contexts. REVERT: ea92f7ea86 doc: documented the support of 307 status argument value in ngx.redirect. REVERT: 5134a9c824 bugfix: segmentation faults might happen when ngx.exec() was fed with unsafe URIs (#905) REVERT: 397f3663eb bugfix: ngx.req.set_header: skips setting multi-value headers for bad requests to avoid segfaults. REVERT: 37e5362088 change: ssl_session_fetch_by_lua* and ssl_session_store_by_lua* are now only allowed in the http {} context. REVERT: cf0623c648 tests: 147-tcp-socket-timeouts.t was failing in mockeagain read/write test modes. REVERT: 521d802aaf tests: updated a shdict test case for i386 to reflect our recent optimizations in shdict storage layout. REVERT: 6b2c9a3bf5 tests: updated the IP address of our own test server. REVERT: 73bd64dbc1 feature: added public C API for 3rd-party NGINX C modules to register their own shm-based data structures for the Lua land usage (that is, to create custom siblings to lua_shared_dict). REVERT: 40b61f40b2 doc: fixed the version number since which settimeouts() was first introduced. REVERT: 28df10b166 feature: added a new api function tcpsock:settimeouts(connect_timeout, send_timeout, read_timeout). REVERT: 66405877d6 bumped the API version to 0.10.7; also documented that lua_malloc_trim was first introduced in ngx_lua 0.10.7. REVERT: 1173cc7c93 feature: added new config directive "lua_malloc_trim N" to periodically call malloc_trim(1) every N requests when malloc_trim() is available. REVERT: 91fc078c44 doc: use *_by_lua_block {} in the examples. REVERT: 74bad01b2c travis-ci: cache openssl-1.0.2h-sess_set_get_cb_yield.patch REVERT: f7a0d58a4e travis-ci: upgraded openssl to 1.0.2j REVERT: 5c491a59ce travis-ci: add nginx-1.11.2 (supported by openresty) REVERT: d26ca9052d fixed a hard-coded IP address in a test case. REVERT: da08f59ae5 optimize: optimized the shdict node struct memory layout which can save 8 bytes for every key-value pair on 64-bit systems, for example. REVERT: 3bd4227ce4 made a resolver test case more tolerante. REVERT: 7ecba5377f travis-ci: use openssl 1.0.2i. REVERT: 61621e0d3a doc: fixed the link to qa.openresty.org. REVERT: 8bfa895c30 fixed a code comment. REVERT: d521167535 doc: fixed a typo. REVERT: 92d1884250 doc: documented how to easily test the ssl_session_fetch_by_lua* and ssl_session_store_by_lua* locally with a modern web browser. REVERT: 7d242ff79a doc: bumped version to 0.10.6. REVERT: 4b8f26285a bugfix: *_by_lua_file: did not support absolute file paths on non-UNIX systems like Win32. thanks Someguynamedpie for the report and the original patch in #835. REVERT: d802dbd87c tests: fixed more shdict list test cases that could fail on i386. REVERT: 8d0ca5881f tests: fixed a shdict list test case that failed on i386. REVERT: 8f16084958 tests: wait longer for CPU-intensive test cases for shdict lists for valgrind test mode. REVERT: addfb0a809 bugfix: shdict lists: fixed new compilation warnings from the Microsoft C compiler. thanks itpp16 for the report in #836. REVERT: 5dcf4e19e9 travis-ci: removed the env LUA_CMODULE_DIR=/lib which caused problems. REVERT: f0687d94c6 doc: typo fix from Shuxin Yang. REVERT: 65ccb56448 bugfix: ngx.exit() did not work at all in ssl_session_fetch_by_lua* and ssl_session_store_by_lua* when the FFI API is used (e.g., via lua-resty-core). REVERT: 1de58835a5 feature: added new shdict methods: lpush, lpop, rpush, rpop, llen for manipulating list-typed values. REVERT: d6258dae42 bugfix: build would fail when the http ssl module is disabled. REVERT: ac89f23f57 travis-ci: disables caching the drizzle7 tarball. REVERT: f714417abb Merge pull request #829 from doujiang24/doc REVERT: aad4939877 doc: sync the change from README.markdown to wiki REVERT: c5ada99473 doc: ngx.worker.count() is available in the init_worker_by_lua* context. REVERT: b9bd8028fd feature: shdict:incr(): added the optional "init" argument to allow intializing nonexistent keys with an initial value. REVERT: dbb48e33a7 bugfix: segmentation fault might happen in ssl_session_fetch_by_lua*, caught by the clang static analyzer. REVERT: 5b2e1d20e5 tests: fixed a typo in the t/143-ssl-session-fetch.t test file. REVERT: 5bcc53cab6 feature: implemented ssl_session_fetch_by_lua* and ssl_session_store_by_lua* config directives for doing (distributed) caching of SSL sessions (via SSL session IDs) for downstream connections. REVERT: a5ac9fa2e6 bugfix: fake connections did not carry a proper connection number. thanks Piotr Sikora for the patch. REVERT: b4609c10f5 bugfix: ngx_http_lua_ffi_ssl_create_ocsp_request: we did not clear the openssl stack errors in the right place. REVERT: 3f4eba7aa8 skipped check leak mode for two test cases using malformed requests. REVERT: 7c69ccdf75 renamed macro HAVE_UPSTREAM_TIMEOUT_FIELDS to HAVE_NGX_UPSTREAM_TIMEOUT_FIELDS. REVERT: e90e0c1dd9 bugfix: ngx.sha1_bin() was always disabled with nginx 1.11.2+ due to incompatible changes in nginx 1.11.2+. thanks manwe for the report in #819. REVERT: 522d2d58cb tests: 070-sha1.t: checks error messages in nginx error logs. REVERT: 8a4328a3e7 feature: added pure C API for setting upstream request connect/send/read timeouts in balancer_by_lua* on a per session basis. thanks Jianhao Dai for the original patch. REVERT: 347bb2fba4 added the PULL_REQUEST_TEMPLATE file. REVERT: 83c07bd223 minor fixes in ISSUE_TEMPLATE. REVERT: d519039952 tests: added a passing test case for github #816 where ngx.log() is used in balancer_by_lua*. REVERT: 93f9f6036c feature: allow tcpsock:setkeepalive() to receive nil args. REVERT: a27c11f9f7 travis-ci: moved package management under travis-ci "apt" plugin, also cached apt packages. REVERT: 349ad466ee feature: ssl: add FFI functions to parse certs and private keys to cdata. REVERT: b63ccaf31c bugfix: "lua_check_client_abort on" broke HTTP/2 requests. REVERT: 473f7fa281 doc: documented that ngx.req.raw_header() does not work in HTTP/2 requests. REVERT: 1779464462 removed the obsolete Changes file. REVERT: d14871950f spelling corrections found via github.com/client9/misspell REVERT: 8e6456e563 bugfix: specifying the C macro NGX_LUA_NO_FFI_API broke the build. thanks jsopenrb for the report in #802. REVERT: b092aa6751 bumped the API version to 0.10.6. REVERT: e7f6de01a2 bugfix: segfaults might happen when calling ngx.log() in ssl_certificate_by_lua* and error_log was configured with syslog. thanks Jonathan Serafini and Greg Karékinian for the report in #723. REVERT: 6fb8a0e995 bugfix: fixed a typo in the error handling of the SSL_get_ex_new_index() call for our ssl ctx index. thanks Jie Chen for the report in #798. REVERT: cb09230414 fixed various spelling errors in docs, source code, and tests. REVERT: ff7e6a7a37 bugfix: fixed crashes in ngx.req.raw_header() for HTTP/2 requests. REVERT: bcecaa07e2 tests: added a regression test for buffer split in block parsing (#687) REVERT: e21d9b55e5 bugfix: when the nginx core does not properly initialize r->headers_in.headers (due to 400 bad requests and etc), more_set_input_headers might lead to crashes. thanks Marcin Teodorczyk for the report. REVERT: 3010cadedb added an issue template for github. REVERT: 1d3d441dc7 doc: bumped version to 0.10.5. REVERT: 3b4a96363b bugfix: ngx.flush(true) calls right after ngx.send_header() was broken due to the previous commit. REVERT: 547c961eff bugfix: ngx.flush() might lead to the "zero-size buf" alerts when ngx.print("") was called before. this regression had appeared in the previous commit. REVERT: 53e78f5df2 bugfix: ngx.print("") did not trigger response header sending. REVERT: be133bca5d bumped the API version to 0.10.5. REVERT: 5de1b1fac3 bugfix: use of ssl_certificate_by_lua* in the http {} scope might lead to process crashes. thanks Andreas Lubbe for the report in openresty/lua-resty-core#42. REVERT: d4f71ad087 doc: bumped version to 0.10.4. REVERT: 69818f459b bumped the API version to 0.10.4. REVERT: 816be0073c bugfix: only do the mmap(sbrk(0)) trick on Linux since it may cause problems on other operating systems. REVERT: c7d5cbdf4e travis-ci: various improvements. REVERT: b38aefeb72 travis-ci: enables clang builds. thanks Ilya Shipitsin for the patch in #769. REVERT: 6b8b060608 release 0.10.3. REVERT: 9f319e9565 travis-ci: supress some unuseful output. REVERT: 91c429a6d8 travis-ci: cache pcre-8.33 downloads and make sure we "exit 1" on any build failure. REVERT: 61e2d3a499 travis-ci: use dig to warm-up the DNS servers a bit before testing. REVERT: dce2361885 feature: added Travis CI support. thanks Ilya Shipitsin for the patch in #766. REVERT: c0efcd3bdc fixed a udp test case. REVERT: 54719b6f73 doc: util/build2.sh is now util/build.sh. thanks Ilya Shipitsin for the patch in #766. REVERT: c92e71bfe2 doc: updated the directive execution order diagram. thanks Emil Stolarsky again. REVERT: c28e172211 util/build.sh: use nginx's builtin ngx_http_auth_request module instead. thanks Ilya Shipitsin for the report in #765. REVERT: 7352fe869c doc: added diagram of the order of directive execution to README. thanks Emil Stolarsky for the contribution. REVERT: e7cdb4efdb made a shdict test case less likely to fail in slow testing modes. REVERT: 22566ed9b0 bugfix: ngx.exit() could not be used in the context of balancer_by_lua* when lua-resty-core was used. REVERT: 7e6445ef8e bugfix: a follow-up fix for commit 93321acd in the FFI implementation of ngx.status. REVERT: 70f7080715 bugfix: *_by_lua_block: fixed Lua long bracket parsing at buffer boundaries. thanks Maxim Ivanov and Tom Thorogood for the report in #762. REVERT: 7886a08100 style: fixed lines exceeding 80 cols. REVERT: 37b4765783 fixed a test case. REVERT: a6b960fe0a refactorings in the semaphore implementation. REVERT: 9a96f9e85a adjusted the test case for ngx.worker.id() for slow testing modes like valgrind. REVERT: 0b2093d2bc removed useless nginx logs from the nginx fake module in the test suite. REVERT: 97a6a169a9 made the test case for ngx.worker.id() more reasonable. REVERT: 766cde61ce tests: made a test less possible to get timed out on resolvers. REVERT: a0ed1bf29c bugfix: ngx.req.append_body() might enter infinite loops when ngx.req.init_body() has not specified a buffer size and the request header Content-Length is 0 (or client_body_buffer_size is configured to 0). REVERT: cda5f872cb bugfix: ngx.re.match: the 5th argument hid the 4th one. thanks iorichina for the report in #719 and rako9000 for the original patch in #727. REVERT: ebb648c191 try harder to get the ngx.worker.id() test pass. alas. REVERT: b90d7ad017 bugfix: wait a bit longer in the test case for ngx.worker.id(). REVERT: 1967998b0e further tweaks in the test case for ngx.worker.id(). alas. REVERT: 64499675d7 tests: ensured all the helper workers are indeed run in the test case for ngx.worker.id(). REVERT: 05ffc6e9da tests: wait a bit longer for helper processes to start up in the worker.id() test case. REVERT: a6e4e45830 ngx.worker.id() should still return something when the master process is off. REVERT: 92d2d44ac5 simplified the test case in commit 57d034f. REVERT: c9b02aa197 tests: avoided a memory leak in the test case itself. REVERT: 57d034f89b bugfix: ngx.worker.id() should return nil in non-worker processes like nginx's cache managers. REVERT: 8ec587aa7c tests: skip tests using local IPv6 addresses if it is not supported. REVERT: 0fddb590b9 feature: now we try limiting the growth of the data segment of the nginx processes to preserve as much lowest address space for LuaJIT as possible. thanks Shuxin Yang for the help. REVERT: 51d63b41c3 fixed dtrace static probes for systems other than Linux. REVERT: b60f53f97b bugfix: fixed a memory leak in ssl.cert_pem_to_der(), caught by valgrind. REVERT: 6683a8b254 refactor: simplifies the fix in commit 473926654a. REVERT: df5bf1d624 bugfix: ignore unexpected closing long-brackets in '*_by_lua_block' directives. REVERT: e6771593ba minor coding style fixes. REVERT: 473926654a bugfix: changing peers in balancer_by_lua* might lead to stale values of $upstream_addr. REVERT: 559243b2cf bugfix: clear errors in pem_to_der functions to avoid flooding nginx error logs (#695). REVERT: b88ed7fb5a bugfix: ssl: clear stacked errors in some of our Lua APIs to avoid flooding nginx error logs. REVERT: 1d9b530f7a removed a useless assignment in the timer impl caught by cppcheck and reported by Ilya Shipitsin in #745. REVERT: b0fbce3228 bugfix: sslhandshake() accepts up to 5 arguments now (including the object itself). REVERT: 256a59c363 added a test case for the previous commit. REVERT: 99866b50df bugfix: cosocket: sslhandshake() did not correctly check argument count. REVERT: d44f8e04db Merge pull request #725 from ctrochalakis/typo-fixes REVERT: a67957d074 Typo fixes REVERT: 93321acd0a bugfix: assignment to ngx.status might not affect subsequent ngx.status reads when error_page had already taken place. thanks wangwei4514 for the report. REVERT: 21231a443c bumped API version to 0.10.3. REVERT: 92c6b8d422 bugfix: init_worker_by_lua* did not honor http {} top-level configurations like lua_ssl_verify_depth and lua_ssl_trusted_certificate. thanks Vladimir Shaykovskiy for the report in #709. REVERT: 3d61bf4ed9 doc: bumped version to 0.10.2. REVERT: b68d7b4bde bugfix: fixed compilation warnings when http ssl module is disabled in the nginx build. this regression had appeared in commit c226a00567. REVERT: a22a40984e doc: release 0.10.1. REVERT: bf339b0f6f Merge pull request #699 from othree/patch/readme-typo REVERT: 493eaa784f Fix conf sample syntax error in README REVERT: c226a00567 bugfix: balancer_by_lua* might crash the nginx worker when SSL (https) is used for upstream connections. thanks Alistair Wooldrige for the report in #696. REVERT: e9b437160f minor doc updates. REVERT: 60ebb5c00d bugfix: hot loop might happen when balancer_by_lua was used with the "keepalive" directive. thanks GhostZch for the report in #693. REVERT: 6a422b6a49 fixed a test formatting issue. REVERT: fe96cf8356 ngx.req.get_post_args: return error message instead of raising an exception when request body is in temp file. REVERT: 78426ffa63 bugfix: fixed the compiler warning "unused variable" when compiling with nginx cores older than 1.7.5 (exclusive). thanks Marc Neudert for the patch in #684. REVERT: 4b063c93d1 Merge pull request #683 from thibaultCha/docs/get-phase-balancer REVERT: 9c603e3ff8 docs: add get_phase() result in "balancer" context REVERT: c6c905d8a1 tests: added a (passing) test case proposed by Mathew Heard in #681. REVERT: 2aa42d572d tests: added passing tests for using ngx.worker.count() in the context of init_by_lua*. REVERT: 5231d5fb67 doc: updated the markdown version accordingly. REVERT: d2cedd838d doc: updated the TODO list to reflect recent changes. REVERT: 20f2e889a9 tests: increased the waiting time of a test case. REVERT: b1a326eedf bugfix: fixed compilation errors with LibreSSL by disabling ssl_certificiate_by_lua* and some ngx.ssl API functions that are not supported by LibreSSL. thanks George Liu for the report in #654 and Bret for the report in openresty/openresty#148. REVERT: 3b46731e99 doc: updated the docs of get_phase() for the "ssl_cert" context. REVERT: 74103392e2 doc: typo fix from Prayag Verma in #675. REVERT: 01727a39c1 feature: added HTTP 2.0 support to ngx.req.http_version(). REVERT: 4f2954302c feature: this module can now be built as a "dynamic module" with NGINX 1.9.11+ via the --add-dynamic-module=PATH option of ./configure. REVERT: 91c65907bc config: more adjustments. REVERT: 5adcbefd26 config: refactoring. REVERT: 5abc7b6bbb bugfix: fixed compatibility issues with other nginx modules loaded as "dynamic modules" in NGINX 1.9.11+. REVERT: 64866bcf4d bugfix: fixed compilation errors with nginx 1.9.11+. thanks Charles R. Portwood II and Tomas Kvasnicka for the report in #669 and #668, respectively. REVERT: b28eefa2e4 tests: made two test cases less agreesive in allocations. REVERT: 320641adf5 optimize: use lua_pushliteral for string-literal. REVERT: db206ab856 doc: a follow-up fix for commit 4d77caeb8. REVERT: b6f5877d18 Merge pull request #671 from typhonius/docos-error-fix REVERT: 4d77caeb8c Small documentation fix to sample code REVERT: b98a7f7bbf bugfix: stream-typed cosockets: we did not set the "error" field of the ngx_connection_t object which MIGHT lead to socket leaks. REVERT: d7d4547344 bugfix: avoided a potential memory issue when the request handler is aborted prematurely (via ngx.exit, for example) while a light thread is still waiting on ngx.flush(true). REVERT: 740552fa74 doc: updated the doc for ngx.req.discard_body() to reflect recent changes. now ignoring request bodies indeed trigger disgarding the body upon request finalization. REVERT: 8d7549fe7e feature: added new API, ngx.config.subsystem, which always takes the Lua string value "http" in this module. REVERT: fcec9744cb made the tests more robust. REVERT: 43ec78432d renamed util/build2.sh to util/build.sh. REVERT: e920600f6e doc: mentions ngx_stream_lua_module. REVERT: 0dabb560c0 doc: updated the copyright year to 2016. REVERT: da30ad60af Merge pull request #667 from bjoe2k4/master REVERT: c16e1e4c02 doc: log_by_lua runs after nginx access log REVERT: 3bb11aa51a Merge pull request #665 from doujiang24/doc REVERT: 2a53bb4836 doc: add balancer_by_lua*, ssl_certificate_by_lua* to the context of some api REVERT: da16f8d71a doc: fixed an error in ngx.encode_base64 regarding streaming generation. REVERT: 5ee9b0dad7 feature: added new API function ngx.socket.stream() which is an alias to ngx.socket.tcp(). REVERT: 8961c49438 change: shdict: throws a Lua error when the exptime arg is invalid. REVERT: bb91590faf feature: ngx.log() and print() now accept tables with the __tostring metamethod. REVERT: 60bd1b1aad bugfix: support non-RSA private keys as well. REVERT: a43bc0a1b1 bugfix: ngx.re: memory over-reads might happen in DFA mode when the regex has submatch capturing groups. REVERT: 34985cc615 fixed coding style issues introduced in the previous commit. REVERT: 49d5256267 optimize: ngx.re: we always preserve the array part for the 0-indexed capture to avoid (expensive) lua table auto growth. REVERT: cfd4f904d4 change: unmatched captures are set to false in the captures table. REVERT: 701efd5caa bumped API version number to 0.10.1. REVERT: 753b0a2f81 minor tweaks in a test file. REVERT: 2c4984f0bf a followup fix for the previous commit. REVERT: e5992f7e41 bugfix: we might not respond to client abort events when lua_check_client_abort is on. REVERT: cd3c6bd2af minor style fixes. REVERT: bcdcd85b21 added more bytecode tests that can work with LuaJIT 2.1 and beyond without hard-coding bytecodes in the tests. REVERT: d44e90dcb1 added a passing tests using balancer_by_lua* inside a lua subrequest. REVERT: 6ba92a6748 bugfix: balancer_by_lua* did not respect "lua_code_cache off". thanks XI WANG for the report and Dejiang Zhu for the patch in #663. REVERT: 4c0bf09110 minor tweaks in tests. REVERT: 36403c1605 doc: ngx_openresty -> OpenResty. REVERT: 4bc2e2d9f3 doc: documented that ngx.req.get_body_data() is available in the context of log_by_lua*. thanks YuanSheng Wang for the patch in #660. REVERT: a5a6a12b3e Merge pull request #661 from doujiang24/style REVERT: f4db0b71ef style fix: variable name align with the previous line REVERT: 93ca1cb757 minor tweaks. REVERT: 489cc24577 various minor tweaks. REVERT: dc5ad60194 SSL: remove leading white space from error messages REVERT: 9de7841ee3 SSL: set error message on i2d_X509() failure as well REVERT: f86335b536 minor coding style fixes. REVERT: 1645a5f0d0 doc: fixed the year. my brain still lived in 2015. alas. thanks leemingtian for the report. REVERT: 09644c46a2 doc: bumped version to 0.10.0. REVERT: 17621837e9 bugfix: semaphore: memory invalid reads might happen when using ngx.semaphore in init_by_lua*. REVERT: 8ac6fe795c made a test case less possible to fail on slow machines due to timing errors. REVERT: b7fac12c42 Revert "tests: $TEST_NGINX_HTML_DIR might be too long for unix domain socket names." REVERT: 79527af679 tests: skipped tests for ssl_certificiate_by_lua* if OpenSSL is too old. REVERT: df130559fa tests: $TEST_NGINX_HTML_DIR might be too long for unix domain socket names. REVERT: 514e6d6114 doc: added a note to ssl_certificate_by_lua_block for the use of ssl_certificate and ssl_certificate_key directives. thanks eagle-china for the suggestion. REVERT: 832dcd1b9f doc: improved the docs for ngx.ctx a bit more. REVERT: 2293dd228e doc: made clear the ngx.ctx scoping issues. thanks Robert Paprocki for asking. REVERT: 08c32bc08b now we require at least NGINX 1.6.0. REVERT: 813d743ccd bugfix: fixed compilation errors with nginx cores older than 1.7.5 (exclusive). thanks Mejar Singh for the report. REVERT: 1fac985743 optimize: saved the event_posted flag maintained by ourselves since ngx_event_t already has such a flag. also moved all the event initialization code to the semaphore initializer. REVERT: 9f3eb280c1 bugfix: semaphore: always zero the whole ngx_event_t struct to avoid forward compatibility risks. REVERT: 3c3cca76e2 bugfix: fixed compilation failures with nginx cores older than 1.7.12. this regression had appeared in the semaphore commit. REVERT: 55d28401cc bugfix: we should cleanup the current light thread and run the static dtrace probe in ngx.exit() even for fake requests (used by ngx.timer.at and ssl_certificiate_by_lua*, for example). REVERT: f95d7b0b14 bugfix: remove a line of unreacheable code found by the Microsoft C compiler (via a warning). thanks itpp16 for the patch in #640. REVERT: 9880416153 util/build2.sh: added support for the OPENSSL_INC and OPENSSL_LIB environments. REVERT: 4fbd5da4c0 minor doc typo fixes. REVERT: 6667cb9592 doc: updated the links to reflect recent changes. REVERT: 0d470871e4 bugfix: ngx.get_phase() did not work in the context of balancer_by_lua*. REVERT: 6c9d2585a2 feature: better SSL/TLS handshake control. REVERT: 884f24eef2 doc: fixed the literal asterisk escaping in the correct way. REVERT: a46c07a2a7 doc: markdown: escaped the literal asterisks properly. REVERT: e44c9d8890 added even more nginx debugging logs to the ngx.semaphore API implementation. REVERT: 9799d27246 added more nginx debugging logs to the ngx.semaphore API implementation. REVERT: 295744eaa0 minor fixes. REVERT: b84801c484 updated .gitignore to reflect recent changes. REVERT: 9c3e3cf043 bugfix: balancer_by_lua*: fixed a warning from the Microsoft C compiler. thanks itpp16 for the report in #636. REVERT: 8c53a0d2d8 feature: implemented the balancer_by_lua_block and balancer_by_lua_file directives to allow NGINX load balancers written in Lua. REVERT: e5bf7d69f2 the next version will be 0.10.0. REVERT: 822341d8d6 doc: moved the document section "ngx.semaphore" to a better place. REVERT: 18551f7c90 doc: fixed the link to the ngx.semaphore module documentation. #584. REVERT: 9db3f54f45 feature: added pure C API for the ngx.semaphore Lua module implemented in lua-resty-core. REVERT: d6fa8dbbdd minor coding style tweak. REVERT: 04b05ff2a7 bumped API version to 0.9.21. REVERT: 9693828e7f doc: typo fix for the contexts of ngx.worker.id. thanks RocFang for the patch in #634. REVERT: c655905ebe style: various coding style fixes from Dejiang Zhu (found by his enhanced version of ngx-releng) via #630. REVERT: b21f7993b5 updated a test case that fail in recent versions. REVERT: 6a664c8393 doc: minor typo fixes. REVERT: 524be2ea8c fixed a C compiler warning on FreeBSD introduced in the previous commit. REVERT: 35ba732be8 bugfix: fixed a compiler warning on type mismatch when dtrace USDT is enabled in the build. REVERT: 0aa08037db doc: bumped version to 0.9.20. REVERT: feb634ab8f doc: stated that we work with nginx cores as far as 1.9.7. REVERT: 87a20d124b tests: fixed SSL cosocoket test cases for server configuration changes. REVERT: 1d9a77169e refactor: lua code cache: make load functions take a log directly. REVERT: 2c40455764 bugfix: we lacked detailed context info in error messages due to use of disabled Lua APIs in body_filter_by_lua*. thanks Dejiang Zhu for the patch in #623. REVERT: 97890587c5 documented that ngx.worker.id() requires nginx 1.9.1+. REVERT: fced532fe3 removed the empty .gitmodules file. REVERT: ed96fef21c bugfix: compilation failed with nginx <= 1.9.0. thanks huangzihao for the patch in #622. REVERT: 1ca69efbf6 a follow-up fix for the previous commit. REVERT: f54438b6aa bugfix: fixed compiler warnings "comparison between signed and unsigned integer expressions" on Windows. REVERT: c040f15916 improved the tests added in commit 3e086ed3. REVERT: 2bf7710118 fixed the initial table sizes for the tables "ngx" and "ngx.req" to reflect recent changes. REVERT: 7befc2c5fc added one more test case (for ngx.req.clear_header) for commit f48aef50. REVERT: c9b629ad90 doc: added a note about the full-buffering nature of the ngx.location.capture* API. thanks cmaion for the original patch in #607. REVERT: 00f62a5add feature: added new API function ngx.req.is_internal() for testing if the current request is an internal request. REVERT: c3ac14e23c feature: added many more HTTP status constants as ngx.HTTP_XXX. thanks Vadim A. Misbakh-Soloviov for the patch in #425. REVERT: f48aef50f6 bugfix: setting the built-in header X-Forwarded-For via ngx.req.set_header() or ngx.req.clear_header() might not take effect in some parts of the nginx core (like $proxy_add_x_forwarded_for). thanks aviramc for the patch in #491. REVERT: 932584be22 feature: added new constant ngx.HTTP_TEMPORARY_REDIRECT (307) and support for 307 in ngx.redirect(). thanks RocFang for the patch in #416. REVERT: b75aa9342c feature: added new config directive "access_by_lua_no_postpone". thanks Delta Yeh for the patch in #580. REVERT: 7c28017029 doc: documented the minimum size threshold in lua_shared_dict. thanks mlr3000 for the original patch in #616. REVERT: 3e086ed322 optimize: reduce memory allocations in stream cosockets. REVERT: f2228aef43 feature: added new API functions ngx.timer.pending_count() and ngx.timer.running_count(). thanks Simon Eskildsen for the patch in #550. REVERT: 1dee389208 feature: added new API functions ngx.worker.count() and ngx.worker.id() for returning the total count of nginx worker processes and the ordinal number (0, 1, 2, and etc) of the current worker. thanks YuanSheng Wang for the patch in #531. REVERT: 91f9846c06 bugfix: ngx.req.get_uri_args/ngx.req.get_post_args: avoided allocating a zero-size buffer in the nginx memory pool since it might cause problems. thanks Chuanwen Chen for the report and patch in #605. REVERT: 91bd1e4e35 optimize: avoid allocating in the nginx request memory pool in stream cosockets' receive*() methods. thanks Lourival Vieira Neto for the patch in #519. REVERT: 72244ea07d bugfix: fixed a potential data alignment issue in the ngx.var setter API. REVERT: 87bdfc1a1b bugfix: we had data alignment issues in the subrequest API which can explode on systems like ARMv6. thanks Stefan Parvu for providing the test environment. openresty/ngx_openresty#131. REVERT: 9fc3a1f2d0 style: fixed a line exceeding 80 columns in the previous commit. REVERT: 8b18616798 bugfix: there was a data alignment issue in the tcpsock:setkeepalive() implementation which might lead to crashes on ARM systems. thanks Stefan Parvu for the report in openresty/ngx_openresty#130. REVERT: fd76e196a8 bumped the ABI version to 0.9.20. REVERT: 049feaffd0 a follow-up fix for #611. REVERT: 94f68befa3 bugfix: bogus nginx.conf parse failure "Lua code block missing the "}" character" might happen when there are many Lua code blocks inlined. thanks Andreas Lubbe for the report and test case in #611. REVERT: 2b93087210 bugfix: bogus "subrequests cycle" errors might occur with nginx 1.9.5+ due to the recent changes in the nginx core. REVERT: 1fae289285 Revert "tweaked .gitattributes a bit more." REVERT: 4ab399199a develper build script: disabled the spdy module since it is already removed. REVERT: fe50cff389 tweaked .gitattributes a bit more. REVERT: 2fa55e8638 added a .gitattributes file to correct GitHub's language tag. REVERT: 7b1ff62c21 bumped version to 0.9.19. REVERT: 905d7d0f04 bugfix: using quotes inside a pair of long brackets might lead to parse failures. this is similar to the issue reported by Dejiang Zhu in #596. REVERT: c317742742 doc: ngx.var: documented the values for undefined and uninitialized nginx variables. thanks Sean Johnson for asking for this explanation in #595. REVERT: ea33435022 doc: bumped version to 0.9.18. REVERT: f8e1a7ae78 doc: emphasized that we target NGINX's HTTP subsystem in this module. REVERT: 4e897529d7 bugfix: use line comments inside a pair of long brackets might lead to parse failures. thanks Dejiang Zhu for the patch in #596. REVERT: 809c674327 bugfix: fixed errors and warnings with C compilers without variadic macro support. REVERT: ec86ade221 bumped the API version to 0.9.18. REVERT: 9fb2948c49 feature: now we support LuaJIT 2 on Windows (in the form of lua51.dll). REVERT: 4a9d4b11fb bugfix: subrequest response status codes between the range 100 .. 299 (inclusive) might get lost in the return values of ngx.location.capture*() calls. thanks Igor Clark for the report. REVERT: 2f65b0fff0 bugfix: we might return the wrong shm zone in the public C API function ngx_http_lua_find_zone(). thanks qlee001 for the report in #589. REVERT: 2cbeb0c5a8 doc: bumped version to 0.9.17. REVERT: 04a57a1d38 doc: fixed a typo. REVERT: e5c01f3dc3 doc: use *_by_lua_block {} in the examples in Synopsis; also updated the TODO and Special Escaing Sequeneces sections to reflect recent changes. REVERT: 9afe2066a0 documented the log_by_lua_block {} directive. REVERT: acc8239910 documented the body_filter_by_lua_block {} directive. REVERT: d76317b62a documented the header_filter_by_lua_block {} directive. REVERT: 51be770acd documented the access_by_lua_block {} directive. REVERT: 2ba17fd197 documented the rewrite_by_lua_block {} directive. REVERT: 37167ce58a documented the content_by_lua_block {} directive. REVERT: def5d55008 documented the init_worker_by_lua_block {} directive. REVERT: 8daa9a672c doc: use proper wiki syntax. REVERT: 0025a9827a documented the init_by_lua_block {} directive. REVERT: 95dd9cd617 documented the set_by_lua_block directive. REVERT: bf9436adef tests: removed a bogus test case for set_by_lua_block. REVERT: 195baff55d feature: implemented the set_by_lua_block directive. REVERT: effd1d1d5b fixed the test serial numbers in t/028-req-header.t. REVERT: 62e31a3f25 bugfix: fixed typos due to copy&paste mistakes in some error messages. REVERT: cecc0e789b bugfix: setting builtin request header Upgrade via ngx.req.set_header and etc might not take effect with some bultin nginx modules. REVERT: 1d640d6e84 a followup fix for commit c96625866. REVERT: b948841c0d bugfix: setting builtin request headers Depth, Destination, Overwrite, and Date via ngx.req.set_header() and etc might not take effect at least with ngx_http_dav_module. thanks Igor Clark for the report. REVERT: c96625866b refactor: reordered the request header entries in the ngx_http_lua_set_handlers array to match ngx_http_headers_in in the nginx core. REVERT: da089df2d8 doc: updated the wiki file to reflect recent changes. REVERT: 311539270b tests: removed the useless "use lib" directives from the Perl test files. thanks Markus Linnala for the report in #464. REVERT: 8b32f3616d feature: initial fixes when being used with the new ngx_http_v2 module since nginx 1.9.5. thanks itpp16 for the patch in #569 and #570. REVERT: 8a0a3e4706 doc: nginx 1.9.3 is compatible. REVERT: bccf4dab24 bugfix: the user specified ./configure's --with-cc-opt and --with-ld-opt might override the LUAJIT_INC/LUAJIT_LIB and LUA_INC/LUA_LIB environment settings. thanks Julian Gonggrijp for the report in openresty/ngx_openresty#117. REVERT: ec4076ef3a reverted the last commit. REVERT: e801097952 skipped test cases that do not make sense for the "check leaks" testing mode. REVERT: bec51155f2 fixed line numbers in 132-lua-blocks.t. REVERT: a688d5a068 doc: a code example misses a "return". thanks YuanSheng Wang for the patch in #572. REVERT: 6b558cd4bd feature: implemented the *_by_lua_block {...} directives that do not require extra escaping when inlining Lua code in nginx.conf. REVERT: b5de0c2f9d bugfix: fixed one -Wmaybe-uninitialized warning when compiling with gcc -Os. REVERT: 7e415bbbd5 optimize: fixed the hash-table initial sizes of the cosocket metatables. REVERT: c93567d704 doc: more typo fixes from Lance Li in #565. REVERT: 74aecfe720 doc: typo fixes from Lance Li in #564. REVERT: 1885b4d299 doc: typo fixes from Lance Li in #562. REVERT: 8269883035 doc: added links to more lua-resty-* libraries. REVERT: a05e1eb546 bugfix: use of shared dicts resulted in (unwanted) registrations of shared dict metatables on all the lightuserdata in the Lua space. thanks helloyi for the report in #548 and patch in #557. REVERT: 14f2b88b5a bumped the API version to 0.9.17. REVERT: b6189f87f5 fixed the test plan. REVERT: 69d1a6988a bugfix: if a 3rd-party module calls ngx_http_conf_get_module_srv_conf to fetch its current srv_conf construct in its merge_srv_conf callback, then use of init_worker_by_lua might lead to segmentation faults (the same also applied to merge_loc_conf). thanks chiyouhen for the report and patch in #554. REVERT: ee30b7ce02 doc: updated the wiki format to reflect recent changes. REVERT: 73bdb53911 Merge pull request #546 from doujiang24/doc REVERT: 3043b71631 doc fix: ngx.exit is not disabled within header_filter_by_lua REVERT: ea195bd819 typo fixes in recently added test cases. REVERT: b661ff10ed bugfix: the if_unmodified_since "shortcut" field in ngx_http_headers_in_t was first added in nginx 0.9.2. REVERT: 2979422c41 Merge branch 'master' of github.com:openresty/lua-nginx-module REVERT: bc0d619240 bugfix: ngx.req.clear_header/ngx.req.set_header: we did not update the shortcut fields in ngx_http_headers_in_t added since nginx 1.3.3 which may confuse other nginx modules accessing them. REVERT: 5e45843126 doc: typo fix from Lance Li. REVERT: cc2df46d42 minor doc tweaks. REVERT: 5399898ea3 bugfix: setting Content-Type response values including "; charset=xxx" via the ngx.header API might bypass the MIME type checks in other nginx modules like ngx_gzip. thanks Andreas Fischer for the report. REVERT: a22bfb94a5 Merge branch 'master' of github.com:openresty/lua-nginx-module REVERT: 7087978d1a fixed SSL cosocket tests with google https in non-US regions. REVERT: a7857abf14 Merge pull request #538 from tatsuyafw/fix-typo REVERT: 6d45420d4d Fix typo: use a double quote instead of a single quote REVERT: b8fc6c5894 tests: disabled the test cases exercising multiple http {} blocks since this undocumented feature has been disabled since nginx 1.9.3. REVERT: 7e201d7508 Merge pull request #535 from doujiang24/typofix REVERT: 336ed3f51c typo fix in debug log REVERT: 1bf0757a3a Merge branch 'master' of github.com:openresty/lua-nginx-module REVERT: 289d86b372 valgrind.suppress: suppressed a false positive in the latest version of glibc on Amazon Linux. REVERT: 51a311c04f removed the old util/build.sh script and also added notes as comments to util/build2.sh #527. REVERT: f67aefc96a bugfix: we might miss the linker option -ldl when we shouldn't. REVERT: 91ff51faf4 bugfix: access nonexistent fields in the "ngx" table in init_by_lua* could lead to the exception "no request object found" because of the overreacting __index metamethod of the "ngx" table. REVERT: ec3f150cc1 doc: bumped version number to 0.9.16. REVERT: b59129ff6e doc: fixed a bug in an example where both rewrite_by_lua and content_by_lua produce response outputs. thanks fengidri for the report in #460. REVERT: 721fff24fc bugfix: fixed compiler warnings at least with gcc 4.7 and clang 3.5. this regression had appeared in commit 9e0503b035. REVERT: 601044eb32 bugfix: ngx.resp.get_headers(): some built-in headers were not accessible via lowercase. thanks Nick Muerdter for the patch in #529. REVERT: 9e0503b035 bugfix: raw downstream cosockets did not support full-deplexing. thanks aviramc for the bug report in #478 and the original patch in #481. REVERT: 0be132078d fixed buggy test cases stuck on request body reading, which were exposed by the previous commit. REVERT: 6fa6e97cc4 bugfix: we did not always discard the request body if the user Lua handlers don't, which might cause 400 error pages for keep-alive or pipelined requests. thanks Shuxin Yang for the original patch in #493. REVERT: 255d40b126 fixed a test case for Mac OS X. REVERT: 5b35451cd1 doc: fixed the context for the lua_need_request_body directive. thanks Tatsuhiko Kubo for the patch in #492. REVERT: f4e131118e feature: fixed compilation failures with nginx 1.9.0. thanks Charles R. Portwood II for the original patch in #500. REVERT: 847bc0f47e minor fixes in doc. REVERT: 76dc20d4d4 Merge pull request #486 from itpp16/patch-3 REVERT: 1db65c1056 Update ddebug.h REVERT: 42d62e4b7b doc: mentioned the "auth_request", "add_before_body", and "add_after_body" directives in the section "Locations Configured by Subrequest Directives of Other Modules". REVERT: 0fff5888f6 more coding style fixes in function declarations. REVERT: edad9bb063 fixed a test case to reflect recent changes in lua-resty-core. REVERT: 3eadb55c1b more coding style fixes. REVERT: 65b65bfd9a minor coding style fixes. REVERT: c9f2b8656d follow-up fix for the previous commit. thanks Tatsuhiko Kubo for the patch in #475. REVERT: 9531e5e753 bugfix: removed the dead code for the old NGX_THREADS mode which breaks the new nginx (1.7.11+) with thread pool support. thanks Tatsuhiko Kubo for the patch in #475. REVERT: e7a7079cbf add no_padding option to ngx_http_lua_ffi_encode_base64 REVERT: bbc64d40c6 removed the git submodule deps/ngx_devel_kit because this is just an optional dependency and it is painful to maintain submodule pointers. REVERT: ac48bd2b67 doc: added new section "Obsolete Sections" to hold renamed or removed documentation sections so as to keep links valid over the web. thanks Dayo Akanji for the suggestion. REVERT: 5fa6ff1b64 Updated docs. REVERT: e3cda9cb8d bugfix: fixed compilation failures with very old versions of PCRE, like 4.5. REVERT: 054f80f6a9 bugfix: we might still pick up Lua/LuaJIT headers/libraries in the paths specified by nginx ./configure's --with-cc-opt=OPTS and --with-ld-opt=OPTS optons even when the LUAJIT_INC/LUAJIT_LIB or LUA_INC/LUA_LIB environments are explicitly specified. REVERT: 6222f0c53d feature: ngx.encode_base64: added support for the "no_padding" boolean argument to disable padding when a true value is specified. thanks Shuxin Yang for the patch. REVERT: 0f0c2f814d bugfix: we should never automatically set Content-Type on 304 responses. thanks Simon Eskildsen for the patch in #468. REVERT: e086440cb9 bumped the API version to 0.9.16. REVERT: 7c37b4bbdb bugfix: use of ngx_http_image_filter_module might lead to request hang due to duplicate header filter invocations. thanks Antony Dovgal for the report. REVERT: 3dbb2b00ec tests: fixed nondeterminism due to unordered Lua table iterations. thanks Markus Linnala for the patch in #465. REVERT: b2b061d323 Merge pull request #466 from maage/env_lua REVERT: ff23175f02 fix env tests REVERT: 8f6790de7d doc: fixed the code sample for ngx.redirect() to reflect recent changes there. thanks Zi Lin for the report. REVERT: 4388b1e483 doc: bumped version to 0.9.15; also stated that we work with nginx 1.7.10. REVERT: f88d4a9fb7 tests: fixed the test plan in 041-header-filter.t. REVERT: dde606203e Revert "bugfix: header_filter_by_lua*: now we ensure we always forward the exact return value of the ngx_http_filter_finalize_request() calls." REVERT: e9fa313ffc bugfix: header_filter_by_lua*: now we ensure we always forward the exact return value of the ngx_http_filter_finalize_request() calls. REVERT: 82d0c265bb bugfix: using error codes (ngx.ERROR or >=300) in ngx.exit() in header_filter_by_lua* might lead to Lua stack overflow. REVERT: d427d9a1d1 feature: improved the debugging event logging for timers created by ngx.timer.at(). REVERT: 6f63b97301 optimize: fixed padding holes in our struct memory layouts for 64-bit systems to save a little memory. REVERT: 31265f7830 bumped the API version number to 0.9.15. REVERT: 05a4a71432 bugfix: the value of the Location response header set by ngx.redirect() might get overwritten by nginx's header filter to the fully qualified form (with the scheme and host parts). REVERT: 8f908775c1 bugfix: the value of the Location response header set by the ngx.header.HEADER API might get overwritten by nginx's header filter to the fully qualified form (with the scheme and host parts). REVERT: 23afdc0b12 bugfix: lua_shared_dict: use of Lua numbers as the value in shared dict might lead to unaligned accesses which could lead to crashes on architectures sensitive to address alignment (like ARMv6). thanks Shuxin Yang for the fix and thanks Stefan Parvu and Brandon B for the report in openresty/ngx_openresty#84. REVERT: a024673046 optimize: header_filter_by_lua*: removed a piece of useless code. thanks Zi Lin for the report. REVERT: 23c2ceae40 doc: emphasized the capability of using nginx variables in the Lua file path in content_by_lua_file/rewrite_by_lua_file/access_by_lua_file. REVERT: cea0699a57 updated the copyright years. REVERT: 20d968bc8f doc: bumped version to 0.9.14. REVERT: 93a056c846 doc: typo fix from lneto in #451. REVERT: fe0e22d357 bugfix: tcpsock:setkeepalive(): we did not check NULL connection pointers properly. thanks Yang Yue for the report. REVERT: a05073d715 doc: typo fix from Harold via #446. REVERT: 8e79804e0e bugfix: ngx.quote_str_str() incorrectly escaped "\026" to "\z" while "\Z" is expected. thanks laodouya for the original patch in #447. REVERT: bd51d8196e added passing test cases for #445. REVERT: 39ff3e697f added tests for using the ngx. API functions in the user callback functions for ngx.re.gsub's replacement. these tests exposed a bug in lua-resty-core. REVERT: 521e4f4544 reindexed the tests in t/036-sub.t. REVERT: bc120f9a22 bugfix: fixed a compiliation error in the timer module when the DDEBUG macro is set to 1 or a C compiler without variadic macro support (like the Microsoft Visual C++ compiler) is used. thanks itpp16 for the patch in #443. REVERT: 4cd7644ac2 bugfix: ngx.timer.at: fixed a small memory leak in case of running out of memory (which should be extremely rare though). REVERT: c317feeaea optimize: save our own log ctx for timers. REVERT: c6930f018d tests: fixed a test case which expects 127.0.0.1:53 has nothing to listen on, which is not true when a local DNS caching server is enabled. REVERT: ac009a2487 bugfix: ngx.re.gsub/ngx.re.sub incorrectly swallowed the character right after a 0-width match that happens to be the last match. thanks Guanlan Dai for the patch in #442. REVERT: af16d1f994 feature: added the Lua global __ngx_cycle which is a lightuserdata holding the current ngx_cycle_t pointer. REVERT: f24a96b80a doc: added two more TODO items. REVERT: cd01e7b985 doc: updated our TODO list. REVERT: f9709b6dde api: bumped the version number to 0.9.14. REVERT: 452640db94 doc: ngx.var: named more readonly nginx builtin variables, as per adamonduty's request in #440. REVERT: b3a3e5ea28 doc: fixed some formatting issues in markdown. REVERT: 4c633dd346 doc: added a warning for the "share_all_vars" option for ngx.location.capture*. REVERT: 7a97d09024 doc: bumped version to 0.9.13 and also claimed the compatibility with nginx cores up to 1.7.7. REVERT: 5d063412ee Merge branch 'master' of github.com:openresty/lua-nginx-module REVERT: 4720940e8c fixed some new test failures according to the Amazon EC2 report. REVERT: 3085f32e70 Various improvements in ngx.timer and fake connections/requests. REVERT: e6132eab93 feature: added nginx configuration file names and line numbers to the rewrite/access/content/log_by_lua directives' Lua chunk names in order to simplify debugging. REVERT: e226845119 Various downstream writing fixes. REVERT: bda5b97950 style: minor fixes. REVERT: 60c64cc144 doc: documented the 0-delay timer workaround for contexts where cosockets are not available (yet). also documented the "connection in dubious state" error message for tcpsock:setkeepalive(). REVERT: 20bbbfbe44 bugfix: compilation failed when http ssl is not enabled in the nginx build. this regression had appeared in commit 5eb3f8c6f. REVERT: 3c1918df8d bugfix: ngx.get_phase() does not work in the context of init_worker_by_lua*. REVERT: 5eb3f8c6f8 bugfix: tcpsock:sslhandshake(): memory invalid read and/or bogus "lua ssl ceritficate does not match host" errors might happen when checking certificates with the SNI name. REVERT: da31a5e653 doc: documented that ngx.exit() is enabled in the context of ngx.timer.* callbacks. REVERT: 0846f27663 tests: increased the timeout threshold for the test cases involved with expensive SSL handshakes to prevent them from getting timed out on slow boxes. REVERT: 75eaf07844 feature: ngx.flush(true) now returns the "timeout" and "client aborted" errors to the Lua land for the cases that writing to the client is timed out or the client closes the connection prematurely, respectively. REVERT: 0c33b9e0aa feature: ngx.flush(true) can now wait on delayed events due to nginx's limit_rate config directive or "$limit_rate" variable settings. thanks Shafreeck Sea for the original patch in #432. REVERT: a4f8b8ad0e bugfix: use of "ngx.flush(true)" with the "limit_rate" config directive or the $limit_rate variable may hang the request forever for large volumn of output data. thanks Shafreeck Sea for the report in #430. REVERT: db428bfc6d doc: added a new section, "Cocockets Not Available Everywhere", under the "Known Issues" section. REVERT: 1506812afd updated valgrind.suppress to suppress a false positive on Amazon Linux i386. REVERT: 2fe0d8dda2 more fixes in the tests regarding the resolver. REVERT: bba7058e76 tests: avoid using hard-coded DNS nameserver address but the TEST_NGINX_RESOLVER environment. REVERT: d427517315 suppressed a warning in the libc resolver. REVERT: c2f88f8dfd bugfix: compilation error when PCRE is disabled in the nginx build. thanks Ivan Cekov for the report in #428. REVERT: 9ea909bae2 doc: typo fix from e路相扶. REVERT: 0162afd715 doc: fixed some broken in-page links, as reported by smallfish in #421. REVERT: cc9e738a72 doc: various wording improvements and link fixes from Dayo Akanji. REVERT: c135f05f2c tests: use larger timeout limit for a test case revolved with external DNS resolving. REVERT: 5c8957b2d1 tests: fixed a failure due to recent changes in the nginx core. REVERT: 05e8499c89 tests: fixed a test failure due to the misuse of the $TEST_NGINX_PORT variable. REVERT: 0d736bf228 tests: suppressed a warning from the test scaffold for a timer test case. REVERT: 6706ec2148 bugfix: when syslog was enabled in the "error_log" directive for nginx 1.7.1+, use of init_worker_by_lua or ngx.timer.at() would lead to segmentation faults. thanks shun.zhang for the report in #426. REVERT: 8a4e8a72d4 minor test file format fixes. REVERT: 25c4bdd6b6 tests: suppressed a warning from the test scaffold due to an expected [crit] error log message in 2 test cases. REVERT: c9128e50f9 tests: added a passing test case for connecting to IPv6 addresses via cosockets. REVERT: 4323f3bc13 tests: 129-ssl-socket.t: use limited timeout threshold for the cosockets. REVERT: 0c4528e50d bugfix: fixed compilation error with nginx 1.7.5+ because nginx 1.7.5+ changes the API in the events subsystem. thanks Charles R. Portwood II and Mathieu Le Marec for the report in #422. REVERT: 14fbf40317 doc: made clarification about ngx.exec() requested by Dayo Akanji. REVERT: e9139a954b doc: typo fix from tianchaijz in #419. REVERT: 227a5f0e5f api: bumped version to 0.9.13. REVERT: 3349791778 bugfix: ngx.req.raw_header(): buffer overflow and the "buffer error" exception might happen for massively pipelined downstream requests. thanks Dane Knecht for the report. REVERT: ddb3636252 refactor: ngx.req.raw_header(): simplified the implementation. REVERT: 62fd4c5f70 bugfix: ngx.req.raw_header(): we might change nginx's internal buffer pointers, which might cause bad side-effects. REVERT: 73884588f6 doc: bumped version to 0.9.12. REVERT: ffe7b34de7 doc: added more discussions for the potential race conditions in worker-level changeable data sharing to the "Data Sharing within an Nginx Worker" section. thanks Jon Keys for asking. REVERT: d7378122d0 tests: fixed a small bug in a test case. REVERT: be1655d239 bugfix: added extra delays to some of the test cases with systemtap involved. REVERT: 8e6aa11dcc tests: updated test suite according to the latest changes in Test::Nginx::Socket. REVERT: 9688c645ba doc: documented the behavior in the case that one does not call close() nor setkeepalive() in a cosocket object's lifetime. thanks Bogdan Irimia for asking. REVERT: eb128df045 bugfix: added allocation failure check for ngx_array_init(). thanks Tatsuhiko Kubo for the patch in #414. REVERT: 0e49fe7462 tests: fixed a case with expired CRL. REVERT: 5662ddd9b7 bumped internal code version to 0.9.12. REVERT: 7e4f1af7fc bugfix: init_worker_by_lua*: memory corruptions would happen when no server {} is defined in nginx.conf. this regression had appeared in v0.9.11. REVERT: df70a5e7ec bugfix: fixed build failures with OpenSSL older than 0.9.8f. thanks FFCZ for the report in #413. REVERT: 044f861881 bugfix: create_loc_conf did not return NULL on error. REVERT: 96d4608efd tests: fixed a case for raw req socket to reflect recent changes in the debugging logs for tcp_nodelay. REVERT: 3acb8dd905 bugfix: the "tcp_nodelay" directive configuration was not honored by upstream TCP cosockets, which could lead to extra delays for small messages. thanks Shun Zhang for reporting this issue. REVERT: 947f82d1b2 bugfix: compilation failed with nginx 1.3.6 or older. this regression had appeared in the v0.9.11 release. REVERT: 1565a068e1 bugfix: compilation failed with nginx 0.9.x. REVERT: e2aef6d038 doc: bumped version to 0.9.11; also claimed that we work with nginx 1.7.4. REVERT: 4c19852c0d doc: typo fix. REVERT: da0ced8a4b bugfix: init_worker_by_lua* would conflict with some other nginx C modules (like ngx_proxy) when their merge_loc_conf callbacks (or alike) produce side-effects in cf->cycle. thanks Ruoshan Huang for the report. REVERT: d4dbba59d6 config: now we also explicitly check the Lua ABI/language version in our feature test for a Lua lib. REVERT: 90bdd9744b fixed the build failure introduced in commit 109fd454a. REVERT: b6978cde6e Merge pull request #409 from cubicdaiya/feature/vim REVERT: e4691cb5c0 Merge pull request #410 from cubicdaiya/feature/use_macro REVERT: 99cc06d0f1 Merge pull request #411 from cubicdaiya/feature/ues_luapushliteral2 REVERT: 109fd454a1 use lua_pushliteral for string-literals. REVERT: 8e464f9ae5 Style: use macro instead of magic-number. REVERT: 7f739a9838 Style: added vim modeline. REVERT: d957eefee4 tests: made a test case for ngx.on_abort() more tolerant. REVERT: e0cd3ccf1b bugfix: ngx.resp.get_headers(): sometimes we might omit the builtin-headers Content-Type, Content-Length, Connection, and Transfer-Encoding. thanks Jon Keys for the report. REVERT: 75cc29ea64 bugfix: ngx.req.socket(true): it incrrectly returned the error "chunked request bodies not supported yet" for *raw* request sockets with chunked request bodies. thanks Xiaofei Yang for the report. REVERT: 5f62a55846 tests: fixed a test case that could fail randomly. REVERT: 3ffe48ccef bugfix: tcpsock:sslhandshake() incorrectly returned failures when the SSL handshake operation succeeded immediately. REVERT: 03a74d445b tests: fixed a test case to reflect latest change in ngx_set_misc. REVERT: ad3364515a Merge pull request #408 from cubicdaiya/issues/use_luapushliteral REVERT: 06652edb18 bugfix: we did not check allocation failures while compiling the pattern for tcpsock:receiveuntil(). thanks Tatsuhiko Kubo for the patch in #407. REVERT: 141725f4c1 use lua_pushliteral for string-literals. REVERT: 05e2ad61f2 doc: removed the SSL cosocket item from the TODO list. REVERT: 92d92fbff3 style: fixed tab indentation. thanks Tatsuhiko Kubo for the patch in #406. REVERT: e482cdab37 doc: more clarification in the docs for the res.truncated flag returned by ngx.location.capture(). thanks Jon Keys for asking. REVERT: 2b40b44dcd doc: documented the new SSL cosocket feature. REVERT: fd3f4ee250 bugfix: tcpsock:sslhandshake(): the "host" parameter did not accept the nil value. REVERT: 45cb4feb1f doc: added missing method name "get_keys" under "ngx.shared.DICT" and also fixed the method order. thanks George Bashi for the patch in #404. REVERT: e7d89c0435 bugfix: builds without --with-http_ssl_module were broken. this regression had appeared in commit a6a0ed5. REVERT: b55d0ecf59 feature: tcpsock:sslhandshake(): when the "session" argument is a boolean "false", then no SSL session userdata will be returned and only a boolean "true" value is returned when successful. REVERT: 2078657621 tests: use iscribblet.org instead of agentzh.com in tests because the latter is currently served by Chinese name servers, which are not quite stable. REVERT: 90751a0711 tests: fixed a case regarding ngx.on_abort(). REVERT: 82188a1e82 tests: made a test regarding ngx.re.sub less possible to fail in slow testing modes. REVERT: 937dfb35e2 tests: a minor style fix in a case. REVERT: a844a13ce1 bugfix: we did not set the c->pool->log properly where c is an upstream stream-typed cosocket connection. this regression had appeared in the ssl cosocket patch, i.e., commit 5aed1966. REVERT: 3f9ab4bf68 tests: suppressed a valgrind false positive in the nginx core. REVERT: a6a0ed5200 bugfix: memory leak cound happen when both cosocket connection pools and "lua_code_cache off" were used. this regression had appeared in the ssl cosocket patch, i.e., commit 5aed1966. REVERT: 531fb5a080 tests: one minor Perl code style fix. REVERT: 348d359dd8 tests: fixed the test case added in commit 6ef948150. REVERT: 5aed1966cc feature: SSL/TLS cosocket API REVERT: 6ef948150f added a test case to exercise a bug in ngx_proxy's ssl handshake timeout handling (see http://mailman.nginx.org/pipermail/nginx-devel/2014-July/005627.html ). REVERT: 8acc73f2c4 bugfix: stream-typed cosocket might read uninitialized memory bytes when logging errors due to sending to or receiving from a closed socket. REVERT: 766ab667c7 tests: fixed a test case regarding unix domain cosockets. REVERT: 353563226d optimize: we now cache the userdata metatable (for the __gc metamethod) in the lua registry for the datagram-typed cosockets. REVERT: 3fd3234f38 optimize: we now cache the userdata metatable (for the __gc metamethod) in the stream-typed cosocket implementation. REVERT: 58f916f13d bugfix: the datagram-typed cosocket resolver handler did not handle some special errors correctly. REVERT: 2cc788b426 improved the fix in commit 48e48305. REVERT: 48e483050e bugfix: the stream-typed cosocket resolver handler did not handle some special errors correctly. REVERT: c2f4dda29e trivial optimizations. REVERT: 66c45338ca doc: markdown: fixed the "Back to TOC" links for the sections ("Nginx API for Lua" and "Directives") with inlined TOC. thanks Pierre-Yves Gérardy and Simon Eskildsen for the reports in #370 and #399, respectively. REVERT: 92e22bc432 bugfix: body_filter_by_lua*: reading ngx.arg[1] after clearing ngx.arg[1] (by assigning nil or "") could lead to segmentation faults. this regression had appeared in v0.9.10. thanks Jason Stangroome for the report in #398. REVERT: f3870f6a73 bugfix: ngx.req.raw_header() would return garbled data when LF instead of CRLF is used as the line terminator in the original header. REVERT: b5d23b9e4d bugfix: ngx.req.raw_header() could lead to buffer overflow and the "userdata length overflow" error due to misuse of r->header_end while modules like ngx_fastcgi and ngx_proxy can change r->header_end to point to buffers of their own. thanks sadmedved for the report. REVERT: e4e0f4b37b doc: improved the wording in the "Lua Coroutine Yielding/Resuming" section. thanks Hungpu DU for the report in #394. REVERT: dfb61faeb1 bugfix: we did not use lua_checkstack() to prevent Lua stack overflow in our own C-land Lua backtrace generator. REVERT: e1b24308a9 refactor: removed a piece of duplicate code from the stream-typed cosocket implementation. REVERT: 35e174b4f3 optimize: reading ngx.header.HEADER: eliminated dynamic allocations and data copying when there is no need to ransform "_" to "-" in the header name. REVERT: ee2a206b25 feature: added pure C API function for FFI-based implementation of reading ngx.header.HEADER. REVERT: b6e991ba9f tests: improved the test cases for the ngx.header API a little bit. REVERT: d380c975ba doc: improved the wording of the documentation for ngx.req.clear_header() to prevent ambiguity. thanks Christophe-Marie Duquesne for the report in #393. REVERT: ed096adaf3 style: fixed coding style in the header files consts.h and args.h. thanks Tatsuhiko Kubo for the report in #392. REVERT: f83fa0d4d4 bugfix: fixed an incorrect error message. thanks aviramc for the patch in #290. REVERT: 4969b87a2b style: preserved a blank line after the goto labels. REVERT: 790e57dee8 optimize: reading ngx.header.HEADER: reduce allocations in the nginx request memory pool. REVERT: c37e6a6e51 change: use the type ngx_http_lua_ffi_str_t instead of ngx_str_t in the pure C function ngx_http_lua_ffi_req_get_headers. REVERT: cee6659f63 doc: documented that the standard coroutine API is now available in the context of header_filter_by_lua* and body_filter_by_lua*. REVERT: 1238bdd9fd doc: documented the NGX_LUA_NO_FFI_API C macro. REVERT: 7ff3ef1f11 renamed the NGX_HTTP_LUA_NO_FFI_API macro to NGX_LUA_NO_FFI_API. REVERT: e94a4f371b feature: added pure C API functions for FFI-based implementations of ngx.worker.pid() and ngx.worker.exiting(). REVERT: a2e53c4f5f bumped the code version to 0.9.11. REVERT: 17c28f1acb feature: the standard coroutine API is now enabled in the context of header_filter_by_lua* and body_filter_by_lua*. thanks ngo for the request in #389. REVERT: 0778f2b04f feature: for content/rewrite/access_by_lua_file directives, we now return 404 status code instead of 500 in case that the specified .lua file cannot be opened. thanks Sam Lee for the suggestion. REVERT: 76c70010b8 doc: fixed a wrong statement regarding require() in the "Lua Variable Scope" section. thanks Hungpu DU for the report in #390. REVERT: 34ecd2f131 bugfix: ngx.escape_uri() now uses uppercase hexadecimal digits for percent-encoding according to the recommendation in RFC 3986. thanks Piotr Sikora for the suggestion. REVERT: 5e94463789 bugfix: for statically linked luajit, we need to pass -ldl to the linker. thanks cf2012 for the report in openresty/ngx_openresty#40. REVERT: 6929e7de92 doc: documented the behavior of init_by_lua* when lua_code_cache is off. REVERT: cea9ee2cd2 doc: bumped version to 0.9.10. REVERT: f3102fef30 minor fixes in the NGX_LUA_ABORT_AT_PANIC macro. REVERT: de46d204b2 bugfix: fixed a compilation error regression when using the Microsoft Visual C/C++ compiler. thanks itpp16 for the patch in #388. REVERT: 1e07b1ead5 bugfix: we should use "c->buffered & NGX_HTTP_LOWLEVEL_BUFFERED" instead of "c->buffered" for testing if the downstream connection is busy writing. REVERT: aa6054a135 change: throw out the "no memory" Lua error consistently (instead of "out of memory") when failing to allocate on the nginx side. REVERT: 9c79180b72 bugfix: we did not handle an out-of-memory case in ngx.req.set_body_data(). REVERT: 5ad9b3fbb9 bugfix: rewrote the buggy patch in commit 4c215c556 for #386 because it did not handle flush bufs correctly and had other issues. REVERT: bda34bb099 fixed 2 minor lua stack manipulation mistakes. REVERT: 88be205838 bugfix: ngx_http_lua_chain_get_free_buf(): avoided returning zero-sized memory bufs. REVERT: fd8af73d23 refactor: renamed ngx_http_chains_get_free_buf() to ngx_http_lua_chain_get_free_buf(). also omitted the buf tag argument which is a constant anyway. REVERT: 6b8ca4a35e doc: typo fix. REVERT: c29f33adf1 doc: documented the NGX_LUA_USE_ASSERT and NGX_LUA_ABORT_AT_PANIC C macros. REVERT: 4c215c5562 bugfix: body_filter_by_lua*: we might incorrectly pass zero-size bufs (in the form of "special sync bufs") at the beginning of a chain, which could get stuck in the buffer of ngx_http_writer_filter_module (or in other words, being "busy") while could still get recycled in the content handler (like content_by_lua), leading to buffer corruptions. thanks westhood for the report and patch in #386. REVERT: 26fd007048 bugfix: we did not clear all the fields in ngx_buf_t when recycling chain link buffers. REVERT: fdd10bf3a9 tests: use larger timeout threshold for test cases involved with external resolvers. REVERT: b106ccdb44 fixed the test plan in 014-bugs.t. REVERT: 8613ed6e93 bugfix: the *_by_lua_file directives failed to load .lua files of exactly the size n*LUAL_BUFFERSIZE bytes with the error "'end' expected (to close 'function' at line 1) near '<eof>'". thanks kworr for the report in #385. REVERT: db9fe7ab98 bumped version to 0.9.10. REVERT: 745a7107b4 optimize: now we turn off our C-land assertions by default unless the user explicitly specifies the C compiler option -DNGX_LUA_USE_ASSERT. REVERT: 3abfb1fc62 bugfix: when the ngx.on_abort() user thread was created but never run *and* some other pending user thread was aborted prematurely, the latter thread might get leaked. thanks Dane Knecht for the report. this regression had appeared in the v0.9.9 release. REVERT: 1250c5bf49 tests: use larger resolver_timeout settings. REVERT: 09e0944d67 change: now we always iterate through all the user light threads to ensure all threads are de-anchored even when the "uthreads" counter gets out of sync. also added an assertion on the "uthreads" counter. REVERT: 24953436fc doc: documented the new full-duplex stream cosocket feature. REVERT: f408dd51a9 doc: documented the ngx.thread.kill() API function. REVERT: 0950973adc doc: bumped version to 0.9.9. also states that we work with nginx 1.7.2. REVERT: f40e371be0 Revert "refactor: we no longer call ngx_pfree() in our own pcre_free hook." REVERT: fcbbf523d7 tests: fixed timing issues in some of the test cases for full-duplex cosockets. REVERT: d56a2af528 bugfix: fixed the initial size of the ngx.worker table and the misleading comment due to a copy&paste mistake. thanks Suraj Jaiswal for the report. REVERT: 934e33e6d1 feature: cosockets are now full duplex: a reader "light thread" and a writer "light thread" can operate on the same cosocket simultaneously. thanks shun zhang and aviramc for the original patches in #367 and #290, respectively. REVERT: 6885462e91 feature: added new API function ngx.thread.kill() for killing a user "light thread". thanks aviramc for the original patch in #288. REVERT: 52b76a7199 removed some dead code from the stream cosocket implementation. REVERT: d6bc02eb3f bugfix: the coroutine API table introduced by require("coroutine") was not working in the context of ngx_lua. thanks Paul K and Pierre-Yves Gérardy for the report (in #381). REVERT: c2e29483d9 a minor coding style fix. REVERT: 9f0f9eaf12 tests: made a test case in 124-init-worker.t less possible to fail in slow testing mode. REVERT: b773bcabc2 bumped version number to 0.9.9. REVERT: fd41af2d04 bugfix: we incorrectly overrode coctx->data before calling coctx->cleanup, which could lead to memory corruptions. this regression had appeared in the previous commit, f19e27e777. REVERT: f19e27e777 bugfix: the coctx cleanup handler might not be called before being overidden by other operations. this could happen when failing to yield in an error handler (for xpcall). REVERT: 053f40e79b bugfix: fixed an incorrect error message. thanks doujiang for the patch in #373. REVERT: 75c98cb5f6 fixed the test plan in 058-tcp-socket.t. REVERT: 8fd50ad874 ensured that the resolver handler will not call into the dead request context. REVERT: 06b7476b27 doc: added performance notes to the sections for ngx.var and ngx.ctx. REVERT: 7a20b07705 doc: fixed a typo. REVERT: ab8bd1b022 doc: documented the values can be passed to the timer callback function. REVERT: 73e831f044 bumped version to 0.9.8. REVERT: 2b721c7fd2 doc: markdown format: inlined the TOC for the long sections "Directives" and "Nginx API for Lua" as per Pierre-Yves Gérardy's suggestion in #370. REVERT: c91e1f5258 doc: moved the "Directives" and "Nginx API for Lua" sections to the end because they are too long and kinda boring :) thanks Pierre-Yves Gérardy for the patch in #371. REVERT: a9e0111fe9 doc: moved important sections to the front. thanks Pierre-Yves Gérardy for the patch in #371. REVERT: 91e3307fb9 use ngx_http_lua_assert() instead of plain assert() across the code base. REVERT: ec2498a815 added assertions to the coroutine scheduler to ensure that we do not pop or push the wrong number of stack slots for yielded coroutines. REVERT: 5318f3a697 resolved merge conflicts. REVERT: d3ab0edd45 bugfix: ngx.req.set_method(): we incorrectly modified r->method when the method ID was wrong. REVERT: 31e0015572 feature: added a pure C API function for FFI-based implementations of ngx.req.set_header() (single-value only) and ngx.req.clear_header(). REVERT: 3a01812d88 feature: added a pure C API function for FFI implementations of shdict:flush_all(). REVERT: 62b2ac5cb0 feature: added pure C API function for FFI-based implementations of ngx.req.set_method(). REVERT: f9ce770d78 feature: added pure C API functions for FFI-based implementations of ngx.req.get_method(). REVERT: 1c3a841620 Revert "optimize: use lua_pushinteger instead of lua_pushnumber in ngx_http_lua_ngx_time()." REVERT: 9bb1f3586b the "int" return type of ngx_http_lua_ffi_time might lead to data loss. thanks itpp16 for the report. REVERT: e9b8563c32 optimize: use lua_pushinteger instead of lua_pushnumber in ngx_http_lua_ngx_time(). REVERT: 99e5171c64 renamed ngx_http_lua_ffi_ngx_now to ngx_http_lua_ffi_now. REVERT: d9fff3b70a feature: added pure C API function ngx_http_lua_ffi_time for FFI-based implementations of ngx.time(). REVERT: 8666424db5 fixed the wrong return type of the ngx_http_lua_ffi_req_start_time function in the previous commit. REVERT: 50dbfcefd1 feature: added pure C API function ngx_http_lua_ffi_req_start_time for FFI-based implementations of ngx.req.start_time(). REVERT: 34ab51f89f updated tests to reflect recent changes in rewrite_by_lua* and access_by_lua*. REVERT: 4f0be44f75 doc: added more explanation for some user FAQs. REVERT: ec78bf1019 fixed a source line exceeding 80 cols. REVERT: 32960150ff minor doc love. REVERT: 9383236449 change: rewrite_by_lua* will now terminate the current request if the response header has already been sent (via calls like ngx.say and ngx.send_headers) at that point. REVERT: a1ea105f4c change: access_by_lua* will now terminate the current request if the response header has already been sent (via calls like ngx.say and ngx.send_headers) at that point (otherwise nginx might crash when other modules try to generate their own response). thanks yaronli and Sophos for the report in #364. REVERT: c478f41e1b change: access_by_lua* will now terminate the current request if the response header has already been sent (via calls like ngx.say and ngx.send_headers) at that point (otherwise nginx might crash when other modules try to generate their own response). thanks yaronli and Sophos for the report in #364. REVERT: b438f972d5 feature: now we save the original pattern string pointer value into our ngx_http_lua_regex_t struct, to help runtime regex profiling and debugging. REVERT: 7f184ec4c1 feature: now we save the original pattern string pointer value into our ngx_http_lua_regex_t struct, to help runtime regex profiling and debugging. REVERT: fb5f975418 feature: attempt to allow use of 3rd-party pcre bindings in init_by_lua*. thanks ikokostya for the feature request in #368. REVERT: cae7259280 added a fix for the leftover cases in commit b57d60d4c9d REVERT: c178302bd1 updated the test index in 109-timer-hup.t. REVERT: 0a11b402aa feature: added pure C API function, ngx_http_lua_ffi_ngx_now, for FFI-based implementation for ngx.now() like lua-resty-core. REVERT: 0a845986a3 126-shdict-frag.t: force a full GC cycle at the end of the Lua handler to help the "check leaks" testing mode. REVERT: a43bca8d10 fixed the wait time for slow testing mode. REVERT: eb4f986764 126-shdict-frag.t: increased the timeout threshold. REVERT: 0f68763de5 bugfix: nginx does not guarentee the parent pointer of the rbtree root is meaningful, which could lead to inifinite loops when ngx_lua tried to abort pending timers prematurely (upon worker exit). thanks pengqi for the patch in #362. REVERT: a2dee0c626 added more code comments to the timer implementation. REVERT: af2d3570bf added a (passing) fuzz testing for aborting many pending timers. REVERT: 3b3239c229 added (passing) tests for yielding failures in cosocket DNS resolving. REVERT: 5d614b0945 added a (passing) fuzz test case for shdict. REVERT: b57d60d4c9 bugfix: we did not call our coroutine cleanup handlers right after our coroutine completes (either successfully or unsuccessfully) otherwise segmentation fault might happen when the Lua VM throws out unexpected exceptions like "attempt to yield across C-call boundary". thanks Lipin Dmitriy for the report in #361. REVERT: 509bb9819e removed an obsolete code comment. REVERT: ed1eb4f7ff bugfix: the ngx.ctx table might be released prematurely when ngx.exit() was used to generate the response header. thanks Monkey Zhang for the report. now we release ngx.ctx in a request pool cleanup handler. REVERT: f7443edc12 fixed the test index in 126-shdict-frag.t. REVERT: 373376ce0f try to make a test case for shdict fragmentation pass on i386. REVERT: fa83bb5fda added tests for exercising the memory fragmentation issue in nginx's built-in allocator for blocks larger than the page size REVERT: d8c45b8725 feature: make use of the new shm API in nginx 1.5.13+ to suppress the "no memory" error logging when the shared dicts run out of memory. REVERT: ae2207bf8f bumped version to 0.9.8. REVERT: 1255864049 feature: added C macro NGX_LUA_ABORT_AT_PANIC to allow generating a core dump when the Lua VM panics. REVERT: 506728da23 doc: fixed the links to ngx_rewrite in the "set_by_lua" section. REVERT: 39d3e74cbc updated docs to reflect recent changes. REVERT: 6c555ed505 bugfix: bugs in the error handling for pure C API functions for shared dict. thanks Xiaochen Wang for the patch in #365. REVERT: c11ceb40ad updated the tests to reflect the new openresty server at agentzh.org. REVERT: b111180c17 added a (passing) test case for reading ngx.header in the context of log_by_lua. REVERT: c1ee08e8a6 Merge pull request #359 from cubicdaiya/issues/use_ngx_str_null REVERT: 0d48124c9d added a (passing) test for timeout error on tcpsock:receive(N). REVERT: 0375856d8f use ngx_str_null REVERT: e52a2631ec doc: now we have tested with nginx 1.5.12; also put the 0.9.7 release date. REVERT: 40691f409a Revert "added assertions for the pcre pool management." REVERT: 1117f043ca Merge pull request #355 from lhmwzy/master REVERT: 8192b9745f Update ngx_http_lua_string.c REVERT: 4e284f73cc bumped version to 0.9.7. REVERT: 5c27180048 added assertions for the pcre pool management. REVERT: 5c788b8b98 refactor: we no longer call ngx_pfree() in our own pcre_free hook. REVERT: 988ac5d84e bugfix: when lua_code_cache was off, cosocket:setkeepalive() might lead to segmentation faults. thanks Kelvin Peng for the report. REVERT: f08bddccd8 suppressed a false positive in libdl. REVERT: 3f7e04cf8e made a test case less likely to fail on slow machines. REVERT: cbf054f12c made a test case less likely to fail on slow machines. REVERT: 01cd00c40b Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 8542d4365a refactor: improved the error handling and logging in the Lua code loader and closure factory. REVERT: 5719c60cf3 Merge pull request #351 from cubicdaiya/issues/use_luapushliteral REVERT: f07a55b289 use lua_pushliteral instead of lua_pushlstring REVERT: bbb7e05d91 added stronger assertions to the stream-typed cosocket implementation. REVERT: 5d4afab7ae optimize: we no longer clear "ctx->user_co_ctx" in ngx_http_lua_reset_ctx. REVERT: bec802ea9c bumped version to 0.9.6. REVERT: e5eefed328 updated docs to reflect the change in commit 382c7201. REVERT: f9917b93eb skipped 2 test cases that are nonderterministic. REVERT: 4cb8dda8bd bugfix: accessing a datagram cosocket object from a request which does not create it could lead to segmentation faults. now we throw out a Lua error "bad request" properly in this case. REVERT: 414db1a80b bugfix: accessing a cosocket object from a request which does not create it could lead to segmentation faults. now we throw out a Lua error "bad request" properly in this case. thanks Ross Timson for the report. REVERT: 382c72010b change: it is now the user's responsibility to clear the captures table for ngx.re.match(). REVERT: a4db3e1b2d bugfix: we should prefix our chunk names for from-string lua source (which also leads to nicer error messages). thanks Mike Pall for the catch. REVERT: 6c56337d7a bugfix: init_worker_by_lua should honor the lua_socket_log_errors directive's configuration in the http {} block. REVERT: 9b18ca311b bugfix: the "resolver" directive's toplevel configuration in the http {} block was not respected by init_worker_by_lua. thanks Heero Zhang for the report. REVERT: 37c86d67f8 bumped version to 0.9.6. REVERT: be08630ba2 bugfix: subrequests initiated by ngx.location.capture* with the HEAD method did not result in responses without response bodies. thanks Daniel for the report in #347. REVERT: 97d9162338 updated docs for the 0.9.5 release. REVERT: cfc593bb93 test: skipped two invalid test cases that use cosockets beyond the creating request boundary. REVERT: 3898993ebd fixed a bad regressoin in commit 1b615c46. REVERT: fb06f39586 fixed a test case that could fail in the "check leak" mode due to GC delays. REVERT: 1b615c46e5 bugfix: segfault might happen in the FFI API for destroying compiled pcre regexes, which affects libraries like lua-resty-core. REVERT: c6e28fdc05 fixed the waiting time for a test case that could fail on slow machines. REVERT: e0c5d58f20 doc: typo fix in a code sample for ngx.req.get_post_args(). thanks Evan for the patch in #344. REVERT: 880a1c85bc refactor: adjusted the globals table handling a little bit. REVERT: 911c395539 increased the waiting time in two ngx.abort test cases that might fail on slow boxes. REVERT: dc8e88cc2d feature: explicitly check Lua langauge version mismatch; we only accept the Lua 5.1 language (for now). REVERT: 9ef3ca51e7 removed the spdy mode check from ngx.location.capture*() to renable this API again for SPDY requests. REVERT: d74878969c bugfix: an attempt to fix subrequests initiated by ngx.location.capture*() in the SPDY mode. REVERT: 48af6433b6 doc: documented the new ngx.config.nginx_configure() function. REVERT: 1916d0c2fd renamed ngx.config.ngx_configure to ngx.config.nginx_configure. REVERT: 441d9c28bb feature: added new API function ngx.config.ngx_configure() to return the NGINX ./configure arguments string to the Lua land. thanks Tatsuhiko Kubo for the patch in #339. REVERT: f862915839 doc: documented the ngx.resp.get_headers() API function. REVERT: 887f0f99d5 feature: added new API function ngx.resp.get_headers() for fetching all the response headers. thanks Tatsuhiko Kubo for the patch in #335. REVERT: 4a0036c074 optimize: coroutine status string look-up is now a bit more efficient by specifying the string lengths explicitly. thanks Tatsuhiko Kubo for the patch in #338. REVERT: eab56942ac doc: fixed a typo in the doc for coroutine.yield(). thanks Ruoshan Huang for the report. REVERT: f7db5fddb8 doc: fixed linkrot of mod_lua. thanks Tatsuhiko Kubo for the patch in #336. REVERT: ec368b46fc refactor: removed an unused parameter, "len", in ngx_http_lua_ffi_script_eval_data. REVERT: df7bf56af9 doc: documented the new ngx.worker.pid() API. REVERT: 7460a8d16c adjusted a test case that could fail on slow machines. REVERT: e5c1105bee bugfix: fixes for small string buffer arguments in the C API for FFI-based implementations of shdict:get(). REVERT: 4112e749d6 bugfix: fixed the error message buffer overwrite in the C API for FFI-based ngx.re implementations. REVERT: 7668963788 skipped tests that could fail in the "check leak" testing mode. REVERT: 3eafa8df14 better context info in the error messages for init_by_lua* and init_worker_by_lua*. REVERT: a1c15f46bb fixed an erorr message in ngx_http_lua_report. REVERT: 92219bba5e feature: added new API function ngx.worker.pid() for retrieving the current nginx worker process's pid. REVERT: a6e0f512e0 reindexed the tests in t/058-tcp-socket.t. REVERT: 6525ec0d01 change: turned off lua_socket_log_errors in init_worker_by_lua*. REVERT: 2c4534ab26 test: now we require the ngx_lua_upstream module for the test suite. REVERT: 096e2ff8ed doc: updated the "TODO" section to reflect recent changes. REVERT: 870b9a7f16 test: use smaller port numbers to reduce the chance of conflicting with local ports. REVERT: 2079446fae bugfix: use of the public C API in other nginx C modules (extending ngx_lua) lead to compilation errors and warnings when the Microsoft C compiler is used. thanks Edwin Cleton for the report. REVERT: 47836cec16 bugfix: segmentation faults might happen when multiple "light threads" in the same request manipuate a stream cosocket object in turn. thanks Aviram Cohen for the report. REVERT: c005354029 bugfix: timers created by ngx.timer.at() might not be aborted prematurely upon nginx worker exit. thanks Hamish Forbes for the report. REVERT: 1d85a61f64 doc: mentioned ngx.timer.at for doing background jobs in ngx.eof's documentation. REVERT: c5c8a12812 doc: markdown formatting fixes from Peter Cawley in #326. REVERT: d633e34a31 added a test case to exercise a bug in $args (it requires the setting_args_invalidates_uri patch for the nginx core to pass). REVERT: 7e96a2dda6 doc: typo fix from Zheng Ping. REVERT: c07aac16e7 bugfix: fixed some new warnings when using Microsft's C compiler. thanks Edwin Cleton for the patch. REVERT: bbaa57d2a8 doc: added a code example for init_worker_by_lua. REVERT: 484e7df2f2 doc: documented init_worker_by_lua and init_worker_by_lua_file. also updated the copyright years. REVERT: 9fc675f684 added more (passing) tests for init_worker_by_lua*. REVERT: 356661d6b3 feature: added new configuration directive, init_worker_by_lua, to run Lua code upon nginx worker process startup. REVERT: 81daa53565 updated .gitignore a bit. REVERT: 6ba574878b minor label name fixes. REVERT: 50f5b1b925 bugfix: the return value sizes of the C functions ngx_http_lua_init_by_inline and ngx_http_lua_init_by_file were wrong. REVERT: 8c74fb9225 bumped version number to 0.9.5. REVERT: c18e03c5cf refactor: made C functions ngx_http_lua_report and ngx_http_lua_do_call global. REVERT: 238ace2f79 refactor: abstracted out the ngx_http_lua_create_fake_request function from the ngx.timer code base. REVERT: b90bb2a578 refactor: abstracted out the ngx_http_lua_create_fake_connection function from the ngx.timer code base. REVERT: 6169a191d1 documented the 5th optional argument, "res_table", for ngx.re.match(). REVERT: eb43c9c7de doc: fixed the year. it is 2014 now :) REVERT: 388094027a updated docs to reflect recent changes. REVERT: b4fe8acdd8 bugfix: when ngx_http_lua_get_co_ctx returns NULL, it no longer means that the coroutine is dead. REVERT: 5581dedcbc added a test to exercise the bug in nginx's resolver that domain names with a trailing dot is rejected. REVERT: c27f65b2bd updated tests to reflect the changes in commit 60999efe3. REVERT: 60999efe35 bugfix: segmentation fault might happen when the downstream cosocket objects were GC'd. this regression had appeared in commit e768e151ab3. REVERT: 2444f32db2 ngx.shared: improved the error handling in incr() a bit. REVERT: e768e151ab bugfix: segfault might happen when aborting a "light thread" pending on downstream cosocket writes. thanks Aviram Cohen for the report. REVERT: 5948300738 ngx.re: added the whole regex flags string to the error message when there is an unknown regex flag. REVERT: b8efc2749b added a (passing) test for error status to improve code coverage. REVERT: 01f3cef146 reindexed the test file 043-shdict.t. REVERT: f6d309ffd8 shdict: improved the error handling a bit and also added more (passing) tests. REVERT: 5bf928ede0 ngx.var: added a (passing) test for writing to a non-changeable nginx variable. REVERT: c3d8da3766 ngx.var: improved the error handling a bit. REVERT: 4c1d0bd10c feature: ngx.escape_uri() and ngx.unescape_uri() now accept a nil argument, which is equivalent to an empty string. REVERT: a4323aab82 shdict: improved the error handling a bit and also increased the tests' code coverage. REVERT: 0afaeec3d0 added (passing) tests for using lua numbers in response header names and values for the ngx.header.HEADER API. REVERT: 76fc8a7c82 feature: added new pure C API, ngx_http_lua_ffi_max_regex_cache_size, for FFI-based implementations like lua-resty-core. REVERT: dce53afc62 feature: added the optional 5th argument to ngx.re.match() which is the user-supplied result table for the captures. REVERT: ed3e68fc0a added a (passing) test for providing the resulting match table to ngx.re.match(). REVERT: 73d74a0943 added (passing) tests for feeding lua numbers to ngx.md5(), ngx.md5_bin(), and ngx.sha1_bin(). REVERT: 2d0f587ec4 ngx_http_lua_ffi_set_ctx_ref: return the error code NGX_HTTP_LUA_FFI_NO_REQ_CTX properly. REVERT: 52dfc3fbf6 refactor: avoided the magic error code -3 in ngx_http_lua_ffi_get_ctx_ref. REVERT: 7e7b944ad6 change: ngx.decode_base64() now only accepts string arguments. REVERT: fc52e157ef Merge pull request #322 from zh-ang/master REVERT: 1b96235e51 reduce compiling warning(avoid halting compiling) REVERT: c50f3cd3cc doc: documented that the coroutine.* API can be used in init_by_lua since 0.9.2. thanks Ruoshan Huang for the reminder. REVERT: 26c1accef8 tweaked a test case that could fail randomly on slow machines. REVERT: eafad29902 bugfix: we did not set the shortcut fields in r->headers_in for request headers in our subrequests created by ngx.location.capture*(). thanks Aviram Cohen for the original patch in #318. REVERT: f64993565f optimize: we no longer clear the lua_State pointers for dead "light threads" such that their coroutine context structs could be reused by other "light threads" and user coroutines. REVERT: 8f4c485326 bugfix: coroutines might incorrectly enter the "dead" state even right after creation with coroutine.create(). thanks James Hurst for the report. REVERT: 8d14598123 minor debugging log tweaks. REVERT: 80c8bc0aa9 reindexed test file t/041-header-filter.t. REVERT: 3f8a592ac4 feature: allow use of ngx.exit() in the context of header_filter_by_lua*. but in this context ngx.exit() returns immediately. REVERT: 9b76f74de4 updated the tests to reflect recent changes in ngx.exit(). REVERT: f364c82039 fixed incompatiblities in nginx 1.5.8 which breaks the resolver API in the nginx core. REVERT: 5a4199bb93 bugfix: we might try sending the response header again in ngx.exit() when the header was already sent. REVERT: 20c41e1adb version bump. REVERT: 779702a17b fixed issues in the test suite exposed by nginx 1.5.7. REVERT: 0787f2c2a2 fixed the tests for truncated subrequests to reflect the changes in nginx 1.5.3+. REVERT: 685f5eaf7a bugfix: subrequests initiated by ngx.location.capture() might send their own response headers more than once. this issue might also lead to the alert message "header already sent" and request aborts when nginx 1.5.4+ was used. REVERT: 4f2b35ddbe doc: bumped version to 0.9.3 and also stated that we work with nginx 1.4.4. REVERT: 31e2212797 doc: documented the new behavior regarding zero-delay timers upon nginx worker process exiting. REVERT: 6e4a22b523 doc: documented the ngx.worker.exiting() API. REVERT: 3c5e109e31 bugfix: ngx.req.set_header() did not completely override the existing request header with multiple values. thanks Aviram Cohen for the report in #314. REVERT: 0b9558cb1a bugfix: fixed compilation warnings when ngx_devel_kit is missing in the build. REVERT: 02abcec8a6 doc: minor formatting fixes in the markdown version. REVERT: d11dda108b added test cases for commit 2a121317. REVERT: 04a7a2cca8 use Test::Nginx::Socket::Lua from the test-nginx project in our test suite. REVERT: de86661c61 fixed the test plan in 025-codecache.t. REVERT: af1b72ec1e bugfix: when lua_code_cache was off and timers created by ngx.timer.at() was exceeding the lua_max_running_timers limit, memory leak would happen. this bug had appeared in the new per-request Lua VM refactoring. REVERT: 1de82ab6e4 bugfix: memory leak would happen in the pure C API function ngx_http_lua_ffi_destroy_regex for FFI-based ngx.re implementations. REVERT: 2a121317d7 bugfix: when lua_code_cache is off, per-request Lua VMs should inherit package.path and package.cpath from the global Lua VM because the LUA_PATH and LUA_CPATH environments might not be inherited by nginx worker processes. thanks leaf corcoran for the report. REVERT: 1820423869 refactor: introduced the type ngx_http_lua_ffi_str_t for FFI-based APIs. REVERT: 5ed4aa8b8a bugfix: modifying request headers in a subrequest could lead to assertion failures and crashes. thanks leaf corcoran for the report and test cases. REVERT: d37d7475f0 refactor: removed the useless "conf" field from ngx_http_lua_socket_pool_t. REVERT: 69b0e98dc0 refactor: cleaned up the code for Lua VM instance management. REVERT: f61d7ba10d bugfix: turning off lua_code_cache and using cosocket connection pools might lead to memory issues (like segfaults). this regression had appeared in commit 5fc80b5b0. thanks Zheng Ping for the report. REVERT: 77fb072570 better debugging logs for "lua_code_cache off" and better test cases. REVERT: 4eade06890 doc: tweaked the wording for lua_code_cache a bit more. REVERT: 26e148a0a7 removed an unimportant subtest from 025-codecache.t. REVERT: 80944815ab doc: updated the docs for lua_code_cache to reflect recent changes. REVERT: 9a9c511fed added more tests for "lua_code_cache off". REVERT: 250ab08928 added more debugging logs to the (global) Lua VM instance managing code. REVERT: 5fc80b5b0e bugfix: turning off lua_code_cache could lead to memory issues (segfaults and LuaJIT assertion failures) when Lua libraries using LuaJIT FFI were loaded. now we always create clean separate lua VM instances for every Nginx request when the Lua code cache is disabled. thanks Ron Gomes for the report. REVERT: 8acecfef69 refactor: introduce the ngx_http_lua_get_main_lua_state function to abstract away where the global lua state is stored. REVERT: f07a73ef55 refactor: made the main Lua VM state creation and initialization code detached from the configuration loading phase. REVERT: bb9b2b341b feature: added pure C API for FFI-based implementations of the ngx.header.HEADER API (the write part). REVERT: d87ded2fe2 fixed an issue in commit 8e6b4e3cb7: cygwin linker only issues a warning about the use of -E rather than an error, so our previous feature test for -E always succeeds. thanks Heero Zhang for the report. REVERT: 9dd88ffcdb bugfix: fixed compiler warnings and errors when using the Microsoft Visual C++ compiler. thanks Edwin Cleton for the report. REVERT: 5a9a6f1cc5 feature: added pure C API functions for FFI-based implementations for ngx.req.get_uri_args(). REVERT: 8e6b4e3cb7 bugfix: the linker option -E is not support in Cygwin's linker; we should test --export-all-symbols when -E is unavailable. thanks Heero Zhang for the report. REVERT: 5d7e08ce01 documented the new "nth" argument for ngx.re.find. REVERT: 6213b040ca bugfix: ngx.re.find: fixed the case when "nth" is greater than or equal to "rc" but not exceeds the number of captures. REVERT: a8c0b5f2b6 bugfix: ngx.re.find: we incorrectly returned negative indexes for nil submatch captures; also we returned the "nth out of bound" when there was a trailing nil submatch capture. REVERT: 27b804d4c9 bugfix: ngx.re.find() did not return an error when the "nth" argument is out of bound. REVERT: 55adcc6b04 feature: ngx.re.find() now accepts the optional 5th argument "nth" to control which submatch capture's indexes are returned. thanks Lance Li for the feature request in agentzh/lua-resty-core#1. REVERT: 590ac5c941 updated the test suite to reflect recent changes in Test::Nginx. REVERT: 5e0db0e9a5 fixed the "ngx" table preallocation space. REVERT: 014de9d9b6 doc: typo fix from Zheng Ping. REVERT: 77f24ba4a3 fixed a test case in t/014-bugs.t. REVERT: 5130517798 bugfix: 0-delay timers created after the worker starts shutting down should not always expire prematurely. REVERT: 002b68ec75 feature: added new API function ngx.worker.exiting() for testing if the current worker process is exiting. REVERT: 4d6dc5804a feature: allow creating 0-delay timers upon worker process existing. REVERT: e5f63816bf doc: more formatting tweaks. REVERT: 55623aca75 doc: fixed regressions in the markdown version. REVERT: f5b78fc808 doc: markdown: removed unnecessary indentation from code samples. REVERT: 159be4c9b8 doc: documented how to link against a static library (or object file archive) consisting of (many) compiled Lua module files. REVERT: 736fce1ad4 doc: added new section "Statically Linking Pure Lua Modules". REVERT: 5cb9d9d48c doc: mention LuaJIT 2.1 wherever we mention LuaJIT 2.0. REVERT: 98f9420bf7 added ljson.lua for the test suite so that we can have sorted keys in the JSON encoded output. REVERT: 9401a60cbd fixed the table pre-allocation space for the ngx.config table. REVERT: 86a08bab42 documented the new ngx.config.nginx_version and ngx.config.ngx_lua_version API. REVERT: 797fa5cac6 feature: added new API for version numbers of both nginx and the ngx_lua module itself: ngx.config.nginx_version and ngx.config.ngx_lua_version. thanks smallfish for the patch. REVERT: 3748896d6a minor debugging log message tweaks. REVERT: e4e085f733 Merge branch 'master' into ffi REVERT: 93bc3c505a updated docs to reflect the new support for loading LuaJIT 2.1 bytecode directly. REVERT: 358f9a5907 feature: added support for loading LuaJIT 2.1 bytecode files directly in *_by_lua_file directives. REVERT: 11dee4a44f feature: added pure C API for FFI-based implementations of ngx.req.get_headers. REVERT: 3e63ceba3c feature: added pure C API for FFI-based implementations for storing operations in the shared dictionaries. REVERT: 6e0a5c528c bugfix: the FFI API for ngx.var incorrectly used the storage of the input buffer. REVERT: 15e53e3a15 Merge branch 'master' into ffi REVERT: 1523ab0ac1 removed the plain text README file. REVERT: 622f12aad3 feature: added pure C API for implementing ngx.var writes via LuaJIT FFI. REVERT: 6c1e4d6218 optimized the default implementation of ngx.headers_sent a bit. REVERT: 97d6a8c948 feature: added pure C API for FFI-based implementations of ngx.headers_sent. REVERT: 12920fffb8 feature: added pure C API for FFI-based implementations of ngx.is_subrequest. REVERT: a7a41fd0cd feature: added pure C API for FFI-based API for ngx.status. REVERT: 7358557db4 feature: added pure C API for FFI-based implementations of ngx.ctx. REVERT: 7b9d886562 Merge branch 'master' into ffi REVERT: d516e4e31a bumped version to 0.9.2. REVERT: 229a22142c documented the new ngx.config.prefix() API function. REVERT: 8228e98448 bugfix: reading ngx.header.HEADER could result in Lua string corruptions. thanks Dane Knecht for the report. REVERT: 1bedc5d4c8 ngx.re.find now returns a single nil value when no match is found. REVERT: 2d6cf5c7f9 documented the new ngx.re.find API function. REVERT: d577a63e8c merged branch "master" into "ffi". REVERT: 87dd3cf157 updated valgrind.suppress a bit. REVERT: e454b0b1c9 Merge branch 'master' into ffi REVERT: a442980372 updated .gitignore a bit. REVERT: e6db9d3ae4 added tests for ngx.re.find. REVERT: 279da4d090 feature: added new API function ngx.re.find, which is similar to ngx.re.match, but only returns the beginning index and end index of the whole match. REVERT: 91d701d199 updated tests to reflect the fix in commit ccb0cbe0d. REVERT: d333a369e9 minor coding style fixes. REVERT: f5944933b9 updated docs to reflect recent changes. REVERT: ccb0cbe0d0 bugfix: ngx.re.match: the ctx table's "pos" field should start from 1 instead of 0. REVERT: 8fe00e8fc9 fixed a test title. REVERT: 3c0a9d90bd add debugging logs for the Lua VM initialization and shutdown. REVERT: 0c85bec1b8 removed valgrind suppression rules for LuaJIT. REVERT: f4af449f62 updated valgrind.suppress when the sysmalloc is used. REVERT: 93493ea7d4 no longer set RPATH for luajit lib in the developer build script; also updated valgrind.suppress for luajit using system malloc. REVERT: 0bd56bb8c4 updated valgrind.suppress when the sysmalloc is used. REVERT: 483a3a9d7d no longer set RPATH for luajit lib in the developer build script; also updated valgrind.suppress for luajit using system malloc. REVERT: df91a47b61 bugfix: compilation errors with nginx older than 1.0.0. REVERT: 642db29e55 Merge branch 'master' into ffi REVERT: 22f4c67a15 fixed the test plan for 119-config-prefix.t. REVERT: 5536b8540c merged branch "master" to "ffi". REVERT: 014c6b51be bugfix: localizing the coroutine.* API functions in init_by_lua* for future use in contexts like content_by_lua* might hang the Lua code. thanks James Hurst for the report in #304. REVERT: cd52bd3692 feature: added new API function ngx.config.prefix() to return the nginx server prefix path. REVERT: c99ebeb4de documented the new lua_use_default_type directive. REVERT: a95851bb18 doc: updated the docs for ngx.req.socket(raw) to reflect the recent change that allows reading raw request body data directly. REVERT: b6715395c0 doc: bumped version to 0.9.1; also added a new section "System Environment Variable Support". REVERT: 594f55bcb0 added a test case to exercise a bug in ngx_gunzip module with which ngx.flush(true) could hang forever. thanks Maxim Dounin for the catch. to make this test pass, we need the gzip_flush_bug patch applied to the nginx core. REVERT: 4615fd5912 bugfix: use of ngx.exit() to abort pending subrequests in other "light threads" might lead to segfault or request hang when HTTP 1.0 full buffering is in effect. REVERT: 4ec0347d9b Merge branch 'master' into ffi REVERT: b1ec275486 optimize: made ngx.re.match and ngx.re.gmatch faster for LuaJIT 2.x when there is no submatch captures. REVERT: 9f134736c8 added a test for accessing $proxy_host and $proxy_port in Lua. this test requires the proxy_host_port_vars patch for the nginx core to pass. thanks saravsars for the report in #301. REVERT: b361a101f6 updated valgrind.suppress to reflect recent changes. REVERT: db87600eba doc: added language syntax highlighting to the markdown version. REVERT: 647706f5b0 added a test case that exercises a bug in nginx's cache lock, which could lead to infinite request hang when cache_lock_timeout is exceeded. this test requires the cache_lock_hang_in_subreq patch to pass. thanks Akos Gyimesi for the report in #298. REVERT: a8396e505a bugfix: downstream write events might interfere with upstream cosockets that are slow to write to. thanks Aviram Cohen for the report. REVERT: 1f65751fce bugfix: removing a request header might lead to memory corruptions. thanks Bjørnar Ness for the report. REVERT: 82ba941d26 bugfix: reading the value of ngx.status might get different values than ngx.var.status. thanks Kevin Burke for the report. REVERT: 1c0a9e831d added a test for using ngx.flush(true) with the standard ngx_gzip module. it could hang in mainline nginx cores older than 1.5.3. REVERT: 350e38a348 bugfix: the bookkeeping state for already-freed user threads might be incorrectly used by newly-created threads that are completely different. thanks Sam Lawrence for the report. REVERT: 0f3c249a9a bugfix: calling ngx.thread.wait() on a user thread object that is already waited (i.e., already dead) would hang forever. thanks Sam Lawrence for the report. REVERT: dad8ba3ab8 doc: fixed the context for the lua_package_path and lua_package_cpath directives. thanks duhoobo for the report in #297. REVERT: 22ba5b114e fixed the test plan in 082-body-filter.t. REVERT: 9e39cfd622 bugfix: the alert "zero size buf" could be logged when assigning an empty Lua string ("") to ngx.arg[1] in body_filter_by_lua*. REVERT: 9bae5adf3f refactor: eliminated introducing NULL chain link in body_filter_by_lua*, which simplied the implementation a lot. REVERT: 45319bfe5e doc: markdown: added lots of "Back to TOC" links to each sections but the beginning ones. REVERT: 71d42c6d93 doc: markdown: added a "Table of Contents". REVERT: b22569669e docs: markdown: made the module name more readable. REVERT: d8c8e86c0f docs: markdown: fixed more external links that still point to wiki.nginx.org. REVERT: f026151f09 docs: markdown: fixed links that were pointing to wiki.nginx.org, wherever possible. REVERT: 70ecf928f8 docs: fixed the links in the markdown source. now they no longer point to the (broken) nginx wiki site. REVERT: 82cbbd8334 bugfix: subrequests initiated by ngx.location.capture* could trigger unnecessary response header sending actions in the subrequest because our capturing output header filter did not set "r->header_sent". REVERT: f17fc09419 bugfix: the Lua error when ngx.sleep() was used in log_by_lua* was not friendly. thanks Jiale Zhi for the report. REVERT: 39ac6421af bugfix: ngx.req.set_header("Host", value) would overwrite the value of $host with bad values. thanks aviramc for the patch in #293 (and issue #292). REVERT: 335ad8cc92 added a code comment regarding the "active_connections" field in ngx_http_lua_socket_pool_t. REVERT: b41f546c7b fixed the preallocation size for the "coroutine" Lua table. REVERT: 9a986c9f91 Merge branch 'master' into ffi REVERT: ca90ef434e optimize: pre-allocate space for the resulting Lua tables in ngx.location.capture*. REVERT: 054444dd41 optimize: preallocate some space in our Lua registry tables to reduce the initial requests' "warm-up" time a bit. REVERT: 0b3c47a3bf optimize: preallocate the space for the metatable for the global environment table for header_filter_by_lua*, body_filter_by_lua*, and log_by_lua*. REVERT: 101f8d9ed4 optimize: preallocate 4 hashtable slots in the ngx.ctx tables. REVERT: ace93e66fa optimize: preallocate space for the "ngx.thread" lua table during API initialization. REVERT: d7e8ff8caf resolved a merge conflict. REVERT: 136087f328 optimize: preallocate space for the "coroutine" lua table. REVERT: bc84964477 optimize: preallocate space for the "coroutine" lua table. REVERT: 330fe6e597 merged "master" into "ffi". REVERT: c304f35921 bugfix: when there were no existing Cache-Control response headers, "ngx.header.cache_control = nil" would (incorrectly) create a new Cache-Control header with an empty value. thanks jinglong for the patch. REVERT: 01bf02aa04 bugfix: the original lettercase of the header name was lost when creating the Cache-Control response header via the ngx.header.HEADER API. REVERT: 487618a801 bugfix: header_filter_by_lua*, body_filter_by_lua*, and ngx.location.capture* might not work properly with multiple http {} blocks in nginx.conf. thanks flygoast for the report in #294. REVERT: bc43c4367a docs: added more explanation on subrequests' request body handling. thanks Jędrzej Nowak for the suggestion. REVERT: cd669b5560 made a test case in 024-access/client-abort.t less possible to fail due to timing errors. REVERT: fc03bfec34 bugfix: now ngx.req.socket(raw) returns proper error when there is some other "light thread" reading the request body. REVERT: ebf9cc8679 feature: now the raw request cosocket returned by ngx.req.socket() no longer requires the request body to be read already, which means that one can use this cosocket to read the raw request body data as well. thanks aviramc for the original patch. REVERT: 3740962968 added tests for the new lua_use_default_type directive. REVERT: e5d47c4488 bugfix: we always printed the "lua hit request header limit" debug log message even when the limit is not hit at all. this regression had appeared in commit d8a266497a. REVERT: 789e36b49b feature: added the new configuration directive "lua_use_default_type" for controlling whether to send out a default Content-Type response header (as defined by the "default_type" directive). default on. thanks aviramc for the patch in #286. REVERT: d8a266497a optimize: now we pre-calculate the exact size of the resulting Lua table and preallocate the table space, which makes it 8%+ faster for a request with a dozen request headers and 40%+ faster for a hundred request headers. REVERT: f998256247 reindexed the 025-codecache.t test file. REVERT: 2063a94b2b docs: bumped version to 0.9.0 and mentioned lua-resty-websocket and lua-resty-lock. REVERT: eabadd9b22 docs: documented the new ngx.req.socket(true) API, upon which fancy protocols like WebSocket can be implemented. REVERT: 04e53ee374 bugfix: Lua VM might run out of memory when lua_code_cache is off; now we always enforce a full Lua GC cycle right after unloading most of the loaded Lua modules when the Lua code cache is turned off. REVERT: 8e6c9a312d change: raised the "lua_code_cache is off" warning to an alert. REVERT: c4657a35b2 feature: now we allow use the raw request cosocket returned by ngx.req.socket(true) to send the raw HTTP response header. thanks aviramc for requesting this in #242. also we now always enable "lingering close" in the nginx core when raw req sockets are used. REVERT: 42567bd245 docs: made the "Test Suite" section up to date (I hope). REVERT: 7720bc7d9d removed the ngx_upstream_keepalive module from the developer build script because it has been included in the official nginx distribution. REVERT: 5dfd547141 tests: removed the "single" option from the "keepalive" directive because it is not a public feature. REVERT: 095ed4a235 bugfix: compilation regressions with nginx older than 1.3.13, introduced recently by the ngx.req.socket(true) API. REVERT: 0387a89e7c bugfix: Windows compatibility issue in the Lua/LuaJIT bytecode file loader: it assumed that ngx_fd_info accepts integral fd as the 1st argument. thanks Edwin Cleton for the report (#283) and thanks jinglong for the original patch in #284. REVERT: a41567b64c bugfix: the standard Lua coroutine API was not available in the context of init_by_lua* and threw out the "no request found" error. thanks Wolf Tivy for the report. REVERT: c6b6b315df more warning fixes for the Microsoft Visual C++ compiler. thanks Edwin Cleton for the report. REVERT: 585e7af92e bugfix: fixed most of the compiler warnings from the MinGW C compiler, some of which are real overflow issues. thanks Edwin Cleton for the report. REVERT: 33832b1f7a fixed bad request header lines in the tests in 116-raw-req-socket.t, which caused test bailout in the "check leak" testing mode. REVERT: a0ff192218 bugfix: memory invalid reads might happen when ngx.flush(true) was used: the "ctx" struct could get freed in the middle of processing and we should save the state explicitly on the C stack. REVERT: 19f6f2f366 Merge branch 'master' into websocket REVERT: add6df63bb Merge branch 'master' into ffi REVERT: e78dea9e0f bumped version to 0.8.10. REVERT: 1d4c76d172 bugfix: we did not declare the "level" local variable of ngx_http_lua_ngx_log at the beginning of the code block. thanks Edwin Cleton for the report. REVERT: db35efd18d docs: documented more limitations in the current implementation. REVERT: a98ff5f802 docs: avoided using module() and also recommended the lua-releng tool to locate misuse of Lua globals. REVERT: c218ed706a testing: fixed the stap probes for the new ffi implementation. REVERT: 8fdfc79838 bugfix: use of the ctx->headers_sent field that was already removed. REVERT: ca27b9e36b Merge branch 'master' into ffi REVERT: 6597dc5919 Merge branch 'master' into websocket REVERT: a641101a5e bumped version to 0.8.9. REVERT: 235875b5c6 refactor: removed our own ctx->headers_sent field because we should used r->header_sent instead. REVERT: 4256020e47 Merge branch 'master' into websocket REVERT: 95e293160b bugfix: the "pool" option value could not be nil in tcpsock:connect(). REVERT: 7b726b32cd change: we now temporarily disable the Lua API functions ngx.location.capture, ngx.location.capture_multi, and ngx.req.socket that are known to have problems with the SPDY requests for now. we will fix them eventually in the near future. REVERT: 0557e44aaa Merge branch 'master' into websocket REVERT: 22e09118b2 bugfix: the nginx core does not send a default status line for 101 status code. now we construct one for 101. REVERT: 8bbd6aae27 bugfix: the nginx core does not send a default status line for 101 status code. now we construct one for 101. REVERT: 876beeef5d Merge remote-tracking branch 'origin/master' into websocket REVERT: 36157b4cd7 bugfix: tcpsock:receive(0) could hang when no data arrived; now it always returns an empty string immediately. this new behavior diverges from LuaSocket though. REVERT: aa2104931c Merge remote-tracking branch 'origin/master' into websocket REVERT: 38ebe9a317 bugfix: we did not honor the tcp_nodelay config directive in the raw downstream cosockets. REVERT: 5b7c567cb6 documented the "always_forward_body" option for ngx.location.capture() and ngx.location.capture_multi(). REVERT: 4c6dc4f7a2 updated docs to reflect recent changes. REVERT: 410930fa32 feature: added support for raw downstream cosocket via the ngx.req.socket(true) API, upon which http upgrading protocols like WebSocket can be implemented with pure Lua. REVERT: 55776b7b55 tests: use larger timeout settings to account for slow DNS servers. REVERT: ba7c1766b7 fixed those recently-added test cases that could fail in slow testing modes on slow machines. REVERT: 0f7948d528 bugfix: we did not escape \z, \t, and \b properly in ngx.quote_sql_str(). REVERT: 6e4b5745a9 bugfix: the null character ('\0') was not escaped in ngx.quote_sql_str() according to the MySQL quoting rules. thanks Siddon Tang for the report. REVERT: fe3c318fae change: we now limit the number of nested coroutines in the backtrace dump for uncaught Lua exceptions by 5. REVERT: 7c5e3548ae bugfix: Lua backtrace dumps upon uncaught Lua exceptions did not work with the standard Lua 5.1 interpreter when the backtrace was deeper than 22 levels. now we just dump the top 22 levels in the backtrace for simplicity. also optimized the Lua string concatenation operations when constructing the backtrace string. REVERT: 2926596a29 feature: now timeout errors in tcpsock:receive() and the reader returned by tcpsock:receiveuntil() no longer close the current cosocket object automatically. thanks Aviram Cohen for the original patch. REVERT: 1a9f044dc1 now we allow application of the mockeagain reading mode to the test files that require the mockegain writing mode. REVERT: 438bbca78e added a (passing) test for recalling the send() method on the same tcp cosocket object right after a send timeout error happens. REVERT: 75d2524ba5 added a (passing) test for recalling the connect() method on the same tcp cosocket object right after a connecting timed out error happens. REVERT: 45f430a006 feature: added new option "always_forward_body" to ngx.location.capture(), which controls whether to always forward the parent request's request body to the subrequest. REVERT: 9d5bb2aa58 refactor: made the "processing flushing coroutines" process a separate C function. REVERT: 37a502108b minor code refactoring to make the ngx_http_lua_wev_handler function shorter. REVERT: 29a253b558 Revert "bugfix: ngx.flush(true) might hang when there was a buggy output body filter. now we only test the condition "r->connection->buffered & NGX_LOWLEVEL_BUFFERED"." REVERT: 4ed6e7a54b bugfix: ngx.flush(true) might hang when there was a buggy output body filter. now we only test the condition "r->connection->buffered & NGX_LOWLEVEL_BUFFERED". REVERT: 539a3021fe one minor optimization in ngx.req.socket(). REVERT: 138bc9d912 documented the new ngx.config.debug API and also updated docs to reflect other recent changes. REVERT: db7a8c90c1 feature: added new FFI C API function ngx_http_lua_ffi_var_get for reading ngx.var.VARIABLE. REVERT: b6d19752e3 feature: added new FFI C API ngx_http_lua_ffi_shdict_incr for shdict:incr(). REVERT: 6473e2242a minor coding style fixes. REVERT: e7f3b02645 feature: added new FFI C API for shdict:get(). also we use double instead of lua_Number when storing Lua numbers into shdict. REVERT: b68729345b bugfix: the FFI C API function ngx_http_lua_ffi_compile_regex could leak memory when pcre failed to compile the regex pattern argument. REVERT: d9400dc435 skipped the regex tests for checking bad data types, which cannot pass with lua-resty-core. REVERT: 6227668ef0 bugfix: the FFI version of the PCRE API did not generate debug logs indicating the result of PCRE JIT compilation. REVERT: 65010dd091 feature: added support for lua_regex_match_limit in the FFI C API function for PCRE. REVERT: 527009f210 Merge remote-tracking branch 'origin/master' into ffi REVERT: c752049275 optimize: fixed the initial table sizes for "ngx", "ngx.config", and "ngx.re". REVERT: 9577e5fc58 feature: added new API ngx.config.debug to indicate whether this is a debug build of nginx. REVERT: 021645c5ec Merge remote-tracking branch 'origin/master' into ffi REVERT: fdec270356 fixed test cases that tried to send the response header twice, which were caught by nginx 1.5.4. REVERT: 3e049c5945 minor cleanup in a recently added test case. REVERT: 1e13a16b34 minor refactoring in the closure factory. REVERT: c9a04a9c2c bugfix: when a Lua line comment was used in the last line of the inlined Lua code chunk, a bogus Lua syntax error would be thrown. REVERT: d9a48d86cf bugfix: the error message for failures in loading inlined Lua code was misleading. REVERT: a0343434b8 bugfix: ngx.exit(204) could try to send the response header for twice. nginx 1.5.4 caught this issue. REVERT: f4c4667b51 fixed a potential test failure in a recently added test case in 025-codecache.t. REVERT: 3abd78b2f9 Merge branch 'master' into ffi REVERT: e549fc2df0 feature: log_by_lua now always runs before the standard ngx_http_log_module (for access logging). thanks Calin Don for the suggestion in #254. REVERT: 334afb35d6 fixed a test case index number in 025-codecache.t. REVERT: b3734f0020 bugfix: the global Lua state's _G table was cleared when lua_code_cache was off, which could confuse the setup in init_by_lua. thanks Robert Andrew Ditthardt for the report in #257. REVERT: 4042f7bd63 bugfix: ngx.flush() triggered response header sending when the header was not sent yet. now it just returned the error string "nothing to flush" for this case. thanks linbo liao for the report. REVERT: 940429a5c6 bumped version to 0.8.6. REVERT: 2db5028ad8 bugfix: segfaults would happen in ngx.req.set_header() and ngx.req.clear_header() for HTTP 0.9 requests. thanks Bin Wang for the report in agentzh/headers-more-nginx-module#14. REVERT: 65d4b419bf minor test fixes. REVERT: e72ab1dba5 minor coding style fixes. REVERT: c7237efd8a made the test for shdict:get_stale less possible to fail. REVERT: 7dbd2a5118 bugfix: reading ngx.header.location did not work when auto-redirect was in action. this is a further fix for #260. REVERT: 547d299463 bugfix: segfault might happen when reading or writing to a response header via the ngx.header.HEADER API in the case that the nginx core initiated a 301 redirect. this issue was caused by an optimization in the nginx core where ngx_http_core_find_config_phase, for example, does not fully initialize the "Location" response header after creating the header. thanks Vladimir Protasov for the report in #260. REVERT: e0626c3127 added tests to improve the code coverage in file ngx_http_lua_headers_out.c. REVERT: 87a4f346b8 documented the new "get_stale" method for shdict objects. REVERT: 424232deb9 updated docs to reflect recent changes. REVERT: 124f50fd46 feature: added new method "get_stale" to shared dict objects, which returns the value (if not freed yet) even if the key has already expired. thanks Matthieu Tourne for the patch in #249. REVERT: 2f5ebebcd3 bugfix: the "connect() failed" error message was still logged even when lua_socket_log_errors was off. thanks Dong Fang Fan for the report. REVERT: 52f48e0761 bugfix: we incorrectly returned 500 in our output header filter, body filter, and log-phase handlers upon inlined Lua code loading errors. bugfix: Lua stack overflow might happen when we failed to load inlined Lua code from the code cache. REVERT: c7a52824a4 more coding style fixes. REVERT: abaa7f4272 more coding style fixes. REVERT: e4641a3c77 more coding style fixes. REVERT: 5edc4b3fc0 one minor coding style fix. thanks Guanlan Dai. REVERT: c6426fb5ed fixed the test plan in t/033-ctx.t. REVERT: 0aa9332f59 bugfix: we incorrectly returned 500 in our output header filter, body filter, and log-phase handlers upon errors. bugfix: Lua stack overflow might happen when we failed to load Lua code from the code cache. REVERT: 629330431d bugfix: memory leak would happen when using ngx.ctx before another nginx module (other than ngx_lua) initiates an internal redirect. REVERT: 32aadb76d9 fixed a test case. REVERT: e24ffb7518 bugfix: use of the ngx.ctx table in the context of ngx.timer callbacks would leak memory. REVERT: ffe89f2264 refactor: abstracted the ngx.ctx releasing logic to eliminate code duplication. REVERT: 00c5fb4118 one minor coding style fix. REVERT: 6859f6f8ba minor error message fixes in the Lua code cache. REVERT: 197332049e added a (passing) test for using .lua files with a shebang line in the content_by_lua_file directive. REVERT: d1c654b3ef bugfix: the error message was misleading when the *_by_lua_file directives failed to load the Lua file specified. REVERT: fb38e4b277 various coding style fixes in the closure factory. REVERT: 1db1e71f18 refactor: removed the useless code for reading Lua code from stdin. REVERT: fadd28a11e Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 918f9a2391 refactor: removed the unused C function ngx_http_lua_clfactory_loadstring. REVERT: df35583dd8 Merge pull request #262 from cubicdaiya/issues/traditional_definition REVERT: 60902726d4 give the argument of 'void' to function definitions which has no arguments REVERT: eecb52bc48 bugfix: when our atpanic handler for Lua VM gets called, the Lua VM is not recoverable for future use. so now we try to quit the current nginx worker gracefully so that the nginx master can spawn a new one. REVERT: 0d81430914 bumped version to 0.8.5. REVERT: 4516e5adf9 docs: documented the memory freeing behavior of shdict:flush_all and shdict:flush_expired. REVERT: f36a35d39f documented the lua_regex_match_limit directive. REVERT: 9d017a21ed feature: added new directive lua_regex_match_limit for setting PCRE match_limit for regex matching. REVERT: 0aca2046ff bugfix: when compiling with -DDDEBUG=1, there was a compilation error in ngx_http_lua_uthread.c. thanks tigeryang for the report in #259. REVERT: 8708f604f5 docs: typo fixes in the code sample for body_filter_by_lua. thanks cyberty for reporting this issue as #261. REVERT: fe467e52bc bugfix: the ngx.ctx tables would leak memory when ngx.ctx, ngx.exec()/ngx.req.set_uri(uri, true), and log_by_lua were used together in a single location. thanks Guanlan Dai for writing the gdb utils to catch this. REVERT: a184a91112 util/build2.sh: default to nginx 1.4.1 now. REVERT: 76c2427ac5 test: made the resolver less possible to time out in two test cases. REVERT: 4656a290b3 docs: bumped version to 0.8.4; also mentioned Nginx Systemtap Toolkit. REVERT: 4d27348ccb bugfix: tcpsock:send("") resulted in the error log alert message "send() returned zero". REVERT: 6977e95185 bugfix: setting ngx.var.VARIABLE could lead to stack buffer over-read in luaL_error when an error happened. REVERT: 25ef1f9426 feature: added pure C API for ngx.exit, which is expected to be used with LuaJIT FFI (or lua-resty-core in particular). also added coroutine._yield for the original std version of coroutine.yield. REVERT: d86d3dc6f8 Merge remote-tracking branch 'origin/master' into ffi REVERT: 5e256f8bf5 refactor: now we store the nginx request object as a named Lua global variable __ngx_req to help FFI-based Lua code access it. REVERT: d82196f7fd bugfix: t::TestNginxLua: env TEST_NGINX_INIT_BY_LUA would break existing init_by_lua_file directive in the test case. REVERT: 0e5d1a8925 Merge branch 'master' into ffi REVERT: 569cabe178 refactor: no longer store cf->log into the lua registry table because we can directly access the global ngx_cycle->log thing. REVERT: d9e3e8feea refactor: added inline functions ngx_http_lua_get_req and ngx_http_lua_set_req to eliminate code duplication when storing or fetching the nginx request object from the lua global variable table. REVERT: fe27fc2a4c updated README.markdown to reflect recent changes in docs. REVERT: f05ef37b99 optimize: avoided use of the nginx request objects in ngx.encode_args. REVERT: 5a0bb76e66 optimize: avoided use of the nginx request objects in ngx.escape_uri, ngx.unescape_uri, ngx.quote_sql_str, ngx.decode_base64, ngx.encode_base64, and ngx.decode_args. REVERT: 488ab67c00 Merge branch 'master' into ffi REVERT: d8aa2fedac updated docs to reflect recent changes. REVERT: ff9580dd35 bugfix: ngx.flush(true) might not return 1 on success. REVERT: 5a880aea93 change: made ngx.say/ngx.print/ngx.eof/ngx.flush/ngx.send_headers return nil and a string describing the error in case of most of the common errors (instead of throwing out an exception), and return 1 for success. REVERT: cf4f62a620 updated .gitignore a bit. REVERT: b07a3d3c5f fixed failing test cases to reflect the multi-value header change in nginx 1.4.1. REVERT: f40a504274 tests: replaced the domain name "direct.agentzh.org" with "agentzh.org". REVERT: 34f4042f23 Revert "bugfix: use of LuaJIT FFI when disabling the Lua code cache would lead to LuaJIT GC assertion failures like "g->gc.total == sizeof(GG_State)" because we unloaded the standard "ffi" module. thanks Ron Gomes for reporting this issue." REVERT: b3218be266 bugfix: use of LuaJIT FFI when disabling the Lua code cache would lead to LuaJIT GC assertion failures like "g->gc.total == sizeof(GG_State)" because we unloaded the standard "ffi" module. thanks Ron Gomes for reporting this issue. REVERT: 48067c830c feature: added pure C API for ngx.re.sub and ngx.re.gsub, which is expected to be used by lua-resty-core and etc. REVERT: ef8779b188 Merge remote-tracking branch 'origin/master' into ffi REVERT: 39151875d7 updated docs to reflect recent changes. REVERT: 63a9915d33 added (passing) tests for use of the $invalid_referer variable in Lua. this requires the patch invalid_referer_hash for the nginx core (for now). thanks Fry-kun for reporting this issue as github #239. REVERT: f50c7789bc bugfix: a test case would fail when TEST_NGINX_PORT was set to port numbers other than 1985. REVERT: 9e4f9272d5 Merge remote-tracking branch 'origin/master' into ffi REVERT: 603c7a4796 refactor: made the error messages for replacement template compilation failures less verbose in ngx.re.sub and ngx.re.gsub. REVERT: 52bc573451 Merge remote-tracking branch 'origin/master' into ffi REVERT: bd679f20ef refactor: save the ngx_log_t pointer instead of the ngx_http_request_t pointer in ngx_http_lua_script_engine_t. this will make the new FFI-based Lua API easier to implement. REVERT: f20bc66109 added custom test scaffold t::TestNginxLua which subclasses Test::Nginx::Socket. it supports the environment TEST_NGINX_INIT_BY_LUA which can be used to add more custom Lua code to the value of the init_by_lua directive in the nginx configuration. REVERT: 300b167bd4 fixed a test that may time out unexpectedly. REVERT: 5cd82926fc bugfix: no longer automatically turn underscores (_) to dashes (-) in header names for ngx.req.set_header and ngx.req.clear_header. thanks aviramc for the report. REVERT: 9cfcb06ba8 bugfix: segmentation fault might happen in nginx 1.4.x when calling ngx.req.set_header on the Cookie request headers because recent versions of nginx no longer always initialize r->headers_in.cookies. thanks Rob W for reporting this issue as #237. REVERT: 06da40f9b9 style: fixed one line's indentation. REVERT: 71e16c46d2 added custom test scaffold t::TestNginxLua which subclasses Test::Nginx::Socket. it supports the environment TEST_NGINX_INIT_BY_LUA which can be used to add more custom Lua code to the value of the init_by_lua directive in the nginx configuration. REVERT: 1f1a31c7bd feature: added pure C API for ngx.re.match, which is expected to be used by lua-resty-core and etc. REVERT: 170d8f9d7a bugfix: ngx_http_lua_ffi_escape_uri did URI unescaping instead of URI escaping. REVERT: 1bf2344ca0 Merge remote-tracking branch 'origin/master' into ffi REVERT: 31a80431cc fixed some expected error messages in the ngx.re test cases for Lua implementations of the ngx_lua API like lua-resty-core. REVERT: e8ec21e9ab Merge remote-tracking branch 'origin/master' into ffi REVERT: 9b8a7b5e03 change: made more error messages for regex exec failures less verbose. REVERT: a80d4e1d67 Merge remote-tracking branch 'origin/master' into ffi REVERT: 5c5a0a87ba change: made the error messages for regex exec failures less verbose. REVERT: ece37a98ef Merge remote-tracking branch 'origin/master' into ffi REVERT: 35e6a65f9f change: made the error messages for regex compilation failures less verbose. REVERT: 0e9fbdfb7d Merge remote-tracking branch 'origin/master' into ffi REVERT: 4806fc2eef bugfix: fixed the warning "argument 'nret' might be clobbered by 'longjmp' or 'vfork'" when compiling with Ubuntu 13.04's gcc 4.7.3. thanks jacky and Rajeev's reports. REVERT: 41e3c2f5b9 docs: documented the new WebDAV request methods; also fixed a small typo. REVERT: b4c2ad1f8e feature: added ngx.HTTP_MKCOL, ngx.HTTP_COPY, ngx.HTTP_MOVE, and other WebDAV request method constants; also added corresponding support to ngx.req.set_method and ngx.location.capture. thanks Adallom Roy for the patch. REVERT: 601ddff378 optimize: ngx.escape_uri now runs faster when the input string contains no special chars to be escaped. REVERT: b7b728926a bugfix: temporary memory leaks might happen when using ngx.escape_uri, ngx.unescape_uri, ngx.quote_sql_str, ngx.decode_base64, and ngx.encode_base64 in tight Lua loops because we allocated memory in nginx's request memory pool for these methods. REVERT: f442858bb9 minor coding style fixes and micro optimizations in ngx.md5, ngx.encode_base64, and ngx.decode_base64. REVERT: 1cc76f5978 feature: allow injecting new APIs into the "ngx" table. REVERT: c04c51a232 bugfix: ngx.req.set_body_file() always enabled Direct I/O which caused the alert message "fcntl(O_DIRECT) ... Invalid argument" in error logs on file systems lacking the Direct I/O support. buffer corruption might happen in ngx.req.set_body_file() when nginx upstream modules are used later because ngx.req.set_body_file() incorrectly set r->request_body->buf to the in-file buffer which could get reused by ngx_http_upstream for its own purposes. thanks Matthieu Tourne for reporting this issue. REVERT: 5cb2b4946e feature: added pure C API for ngx.escape_uri and ngx.unescape_uri, which is expected to be used by lua-resty-core and etc. REVERT: 0ab77f9640 feature: added pure C API for ngx.encode_base64 and ngx.decode_base64, which is expected to be used by lua-resty-core and etc. REVERT: c355f0b5bc bugfix: failed to compile when SHA1 support is missing. this regression had appeared in cea321f7f9e2614c9e0932e367d15502507fa7e9. REVERT: 6ef7cef0dc feature: allow injecting new APIs into the "ngx" table. REVERT: cea321f7f9 added pure C API for ngx.md5, ngx.md5_bin, ngx.sha1_bin, which is expected to be used with LuaJIT FFI (or lua-resty-core in particular). such API can be excluded by specifying the C macro NGX_HTTP_LUA_NO_FFI_API. REVERT: 34411875fb added error log checks to the bytecode tests. REVERT: e7dff1b301 updated the docs in plain text and markdown format to reflect recent changes. REVERT: c558c4347b bumped version to 0.8.1. REVERT: 04c81b1f84 minor coding style fixes. REVERT: 65ff8d86da fixed a test case that may behave slighly differently on slow machines. REVERT: 790a74e043 bugfix: when lua_http10_buffering is on, for HTTP 1.0 requests, ngx.exit(N) would always trigger the nginx's own error pages when N >= 300. thanks Matthieu Tourne for reporting this issue. REVERT: 3052bcd8a3 updated .gitignore a bit. REVERT: f41226883a refactor: removed the unused parameter, "no_create", from the ngx_http_set_header_helper function. REVERT: 30cbc33074 fixed several places in the header API where we should return NGX_ERROR instead of NGX_HTTP_INTERNAL_SERVER_ERROR. REVERT: d1eca0c72e fixed one test case's title. REVERT: 7695a31e04 documented the new "U" regex option for the ngx.re API. REVERT: 7e515f189e bugfix: modifying the Cookie request headers via ngx.req.set_header or ngx.req.clear_header did not update the Nginx internal data structure, r->headers_in.cookies, at the same time, which might cause issues when reading variables $cookie_COOKIE, for example. thanks Matthieu Tourne for the patch. REVERT: 0ac676f654 feature: added the "U" regex option to the ngx.re API to mean enabling the UTF-8 matching mode but disabling UTF-8 validity check on the subject strings. thanks Lance Li for the patch in #227. REVERT: 766563fba3 one minor coding style fix. REVERT: b90e7dd1ab bugfix: modifying the Via request header with ngx.req.set_header/ngx.req.clear_header did not update the special field r->headers_in.via when the ngx_gzip module was enabled. REVERT: 97425f8dc6 bugfix: ngx.req.set_header/ngx.req.clear_header did not update the special field r->headers_in.x_real_ip when the ngx_realip module was enabled. thanks Matthieu Tourne for the patch. REVERT: a07df6151a bugfix: modifying the Connection request header via ngx.req.set_header or ngx.req.clear_header did not update the special internal flags in the Nginx core, "r->headers_in.connection_type" and "r->headers_in.keep_alive_n". Thanks Matthieu Tourne for the patch. REVERT: 55555a78a0 bugfix: modifying the User-Agent request header via ngx.req.set_header or ngx.req.clear_header did not update those special internal flags in the Nginx core, like "r->headers_in.msie6" and "r->headers_in.opera". Thanks Matthieu Tourne for the patch. REVERT: 2aa12ab3df bumped version to 0.8.0. REVERT: 656551e618 documented ngx.timer.at, lua_max_pending_timers, lua_max_running_timers, and other recent changes. REVERT: 6afcc17ff1 feature: ngx.get_phase() now returns the string "timer" when being invoked within a user callback function for ngx.timer.*. REVERT: d98a193d4c added a (passing) test for using ndk.set_var.* in the context of ngx.timer callbacks. REVERT: d997f7401f refactor: replaced "ngx_lua_" with "ngx_http_lua_" in the identifiers used in ngx_http_lua_regex.c. REVERT: d43a39c59e bugfix: setting ngx.header.etag could not affect other things reading the ETag response header (like the "etag" directive introduced in nginx 1.3.3+). thanks Brian Akins for the patch in #213. REVERT: e2d299e500 Merge branch 'timer' REVERT: f081f212d3 bumped version to 0.7.21. REVERT: b2ae68b7ac merged "master" into "timer". REVERT: 6717d1153f feature: added support for user arguments to the user callback function specified in ngx.timer.add(); the user callback function has the prototype "function(premature, user_arg1, user_arg2, ...)". REVERT: 26d679f8d4 bugfix: ngx.req.raw_header() would return an empty string value when the default header buffer (c->buffer) can hold the request line but not the whole header. thanks KDr2 for reporting this issue in #229. REVERT: 10edc8cb03 added a passing test for calling ngx.timer.at() after HUP reload. REVERT: 069f07541d feature: when the nginx worker process is quitting (as in server shutdown or HUP reload), all the pending ngx.timer timers expire immediately and their Lua callbacks get called with a true value as the first argument (to indicate whether it is a premature expiration or not). REVERT: f820e5476b Merge branch 'master' into timer REVERT: 4e8c4bfcbd bugfix: boolean values in an array table were rejected with the exception "attempt to use boolean as query arg value" while encoding a lua (hash) table as URL arguments. thanks Calin Don for reporting this issue. REVERT: 5df2ec9faf Merge branch 'master' into timer REVERT: a414691b8e updated docs to reflect recent changes. REVERT: 71bf29a2f3 merged "master" branch to "timer". REVERT: 7c6484dc20 updated tests to reflect recent changes in the upstream_truncation patch for the nginx core. REVERT: 59fe204e92 added error log checks in 000--init.t. REVERT: 4eeb47626c removed too short proxy read timeout settings in two cases that are expected to pass. REVERT: 9e3b32f90c fixed a test case that might fail in slow testing modes. REVERT: b408d5be9d feature: ngx.location.capture and ngx.location.capture_multi now return a lua table with the boolean field "truncated", which indicates whether the subrequest response body is truncated. bugfix: we no longer override the subrequest response status code later when error happens. REVERT: e9f9fdd3af bugfix: request hung when rewrite cycled in ngx.req.set_uri(uri, true) instead of throwing out an error log message and a 500 page properly. thanks Calin Don for the report. REVERT: 74617ac4c9 bugfix: the debug log message "lua set uri jump to <uri>" generated by ngx.req.set_uri(uri, true) was wrong for <uri> was the old URI. REVERT: 8dc910197c tests: made two systemtap-based test cases less possible to fail in slow testing mode. REVERT: 40bc1bb0f4 tests: ensure that TEST_NGINX_USE_STAP is unset when TEST_NGINX_USE_HUP is set. REVERT: 3c6379264e Merge remote-tracking branch 'origin/master' into timer REVERT: c7a0cf5f24 Merge remote-tracking branch 'origin/master' into timer REVERT: 2ac8d89439 feature: added new Lua API, ngx.timer.at(time, callback), for defining timers that can run the user callback as a Lua "light thread" (detached from the current request) after the time (in seconds) specified. also added new configure directives lua_max_pending_timers and lua_max_running_timers for limiting the number of pending timers and "running" timers. REVERT: a352e1fd6b feature: now we allow zero time argument in ngx.sleep(). REVERT: 66e2ccbfae bugfix: assignment to ngx.status did not take effect when the response status line had already been generated (by ngx_proxy or others). thanks eqiuno for reporting this issue in #221. REVERT: d4b8c7d84e bumped version to 0.7.19. REVERT: f203b5f460 ngx.req.raw_header: added a buffer size assertion and two more (passing) tests regarding some special cases. REVERT: 664d74ed7f bugfix: ngx.req.raw_header() would return the first part of the request body when request body was read before the call. thanks Matthieu Tourne for reporting this issue. bugfix: ngx.req.raw_header() might not work properly in a subrequest. REVERT: 5193cff298 updated docs to reflect recent changes. REVERT: c7879f30fb raised the error log level back to "warn" for 087-udp-socket.t, which contains test cases that can flush error logs a lot which may lead to timeouts. REVERT: 168eb3878b typo fixes in the tests for udp cosockets. REVERT: 357f25d10a added a (passing) test for ensuring the resolver gets shut down properly when it fails to resolve a domain. REVERT: 84c4d18339 bugfix: ngx.socket.udp: memory leaks or invalid memory accesses might happen when the DNS resolver failed to resolve. REVERT: 7f94cb208c fixed some test cases which may fail in slow testing modes. REVERT: 16db13b887 eliminated the use of the cjson library in a recently-added test case. REVERT: a38ceeb002 optimize: we now use the bind() call to do autobind for datagram unix domain sockets in ngx.socket.udp() on Linux instead of abusing the side effect of SO_PASSCRED. thanks Dirk Feytons for the suggestion. REVERT: 57e3a3a9fa added a test case for github issue #218, which requires the run_posted_requests_in_resolver patch for the nginx core to get passed. REVERT: dbde4c3907 optimize: fixed the initial size of the ngx.shared table and also updated the tests accordingly. REVERT: 4751625f89 Merge branch 'ngx-re-no-exceptions' REVERT: 3ad47790ed Merge branch 'shdict-safe-store' REVERT: d52ed6c2a8 Merge branch 'master' into subreq-body-in-file REVERT: f4ffb4f932 one minor coding style fix. REVERT: b582064ecc bugfix: when a non-table value was specified for the "args" option in the ngx.location.capture or ngx.location.capture_multi call, memory invalid access might happen, which resulted in garbage data at least. thanks Siddon Tang for reporting this issue. REVERT: 182f2e08bf Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: dfc7a4cd71 feature: datagram unix domain sockets created by ngx.socket.udp() can now receive data from the other endpoint via "autobind" on Linux. thanks Dirk Feytons for the patch. REVERT: d3c549e9f5 bugfix: (large) in-file request bodies could not be inherited correctly by multiple subrequests issued by ngx.location.capture. thanks Matthieu Tourne for reporting this issue. REVERT: 0c8fb04d6b one minor coding style fix. REVERT: 3ea32c9693 api-change: the ngx.re.match, ngx.re.gmatch, ngx.re.sub, and ngx.re.gsub functions used to throw Lua exceptions aggressively for all the error conditions; now they return an additonal string describing the error for almost all common errors instead of throwing exceptions, including pcre compile-time and exec-time failures. thanks Matthieu Tourne for requesting this change. REVERT: 17b349e972 feature: added new methods safe_set and safe_get to ngx.shared.DICT objects, which never override existing unexpired items but immediately return nil and a "no memory" string message when running out of storage. thanks Matthieu Tourne for requesting this. REVERT: 835aea95fa bugfix: invalid memory access might happen when the UDP cosockets were used. this regression had appeared in the commit f84ca22c30091c75955d44bd790a714b1ef0bbe9. REVERT: a62eadd492 bugfix: invalid memory access might happen when the TCP cosockets were used. this regression had appeared in the commit 04775502b2e348181282345320b727ab1a5a8808. REVERT: 5c4c4e429c tests: avoided using taobao.com in the test suite; also decreased the resolver_timeout setting. REVERT: f84ca22c30 bugfix: when the Lua code using UDP cosockets + resolver was run in a subrequest, the subrequest could hang due to missing calls to ngx_http_run_posted_requests in the UDP cosocket resolver handler. thanks Lanshun Zhou for reporting this issue in #215. REVERT: 04775502b2 bugfix: when the Lua code using TCP cosockets + resolver was run in a subrequest, the subrequest could hang due to missing calls to ngx_http_run_posted_requests in the TCP cosocket resolver handler. thanks Lanshun Zhou for reporting this issue in #215. REVERT: a768a65b25 updated docs to reflect recent changes; also bumped the version number to 0.7.17. REVERT: 88b4fda412 fixed the timeout settings for large header test cases in 104-req-raw-header.t. REVERT: d86bb17130 bugfix: rewrite_by_lua_no_postpone can only work globally and did not reject contexts like "server" and "location" configuration blocks. thanks Matthieu Tourne for reporting this issue. REVERT: ba594765fa fixed ill-formed HTTP requests in a recently-added test case, which caused issues under the "check leaks" testing mode. REVERT: 545b03fd5e fixed tests to reflect output format changes in agentzh/echo-nginx-module@2adcf59ec5. REVERT: cf568da596 fixed tests to reflect the typo fix in 4927e75b0507477f425a7296cf44119453363b2d. REVERT: 53a46aaef9 docs: made it explicit that redirecting to external domains is also supported in ngx.redirect(). thanks Ron Gomes for asking. REVERT: c95456c872 feature: implemented the ngx.req.raw_header() function for returning the original raw HTTP protocol header string received by Nginx. thanks Matthieu Tourne for requesting this. REVERT: 4927e75b05 fixed a typo in an error message. thanks Matthieu Tourne for reporting it. REVERT: 89861df1c3 feature: implemented ngx.req.http_version() that returns the HTTP version number for the current request. thanks Matthieu Tourne for requesting this. REVERT: 5361c95299 bugfix: ngx.req.get_headers(limit, true) would still return header names in the all-lower-case form when the "limit" argument was an integer. thanks Matthieu Tourne for reporting this issue. REVERT: 76910a32d2 fixed tests that may fail in slow testing modes. REVERT: eff99d5dba bugfix: use of ngx.req.socket() could make socket reading hang infinitely when the request did not take a request body at all (that is, when the Content-Length request header is missing). thanks Matthieu Tourne for reporting this issue. REVERT: 40fabb23bb bugfix: ngx.re.match: when the "D" regex option was specified, an empty Lua table would always be created even when the named capture was actually empty. thanks Matthieu Tourne for reporting this issue. REVERT: e30ea025c3 updated docs to reflect recent changes. REVERT: eb2d846311 fixed test cases in uthread-spawn.t for slow testing modes. REVERT: 85841a721f refactor: renamed ngx_http_lua_script_copy_capture_code_t to ngx_http_lua_script_capture_code_t. REVERT: 5d114acb42 optimize: removed the unsed "size" field and related computatins from the script engine. REVERT: 4beec04baa added (passing) tests for using $0 in the replacement template when no capturing parenthese are used in the regexes. REVERT: e9dd328489 minor optimizations in the script engine to save a little memory. REVERT: 57a6471bf1 updated docs to reflect recent changes; also bumped version to 0.7.15. REVERT: 96a18a054f fixed more test cases using systemtap that could fail expectedly in slow testing modes. REVERT: 414c6605ad added a (passing) test for github issue #208: coroutine as iterator doesn't work REVERT: 6f34716158 fixed a test case that may fail expectedly in slow testing mode. REVERT: 49eab61c23 bugfix: the original Lua VM error messages might get lost in case of Lua code crashes when user coroutines were used. thanks Dirk Feytons for the report in github issue #208. REVERT: b5492eedbc fixed test cases using the deprecated math.mod() method. REVERT: 6d4150994b added more info about r->main->count to the debugging logs. REVERT: e829556764 massive coding style fixes. REVERT: d931db4573 bumped version to 0.7.14. REVERT: 85bab3a9e4 added a (passing) test to ensure that ngx.req.get_body_data can handle request body bufs more than 2. REVERT: 7c37f85300 updated valgrind.suppress a bit. REVERT: c0f62e590e bugfix: for nginx 1.3.9+, rewrite_by_lua* or access_by_lua* handlers might hang if the request body was read there, because the nginx core now overrites r->write_event_handler to ngx_http_request_empty_handler in its ngx_http_read_client_request_body API. REVERT: 58506f7622 added a (passing) test for chunked request body + ngx.req.read_body (for nginx 1.3.9+). REVERT: bbdb695682 bugfix: for nginx 1.3.9+ compatibility, we return an error while using ngx.req.socket() to read the chunked request body (for now), because chunked support in the downstream cosocket API is still a TODO. REVERT: af944b1790 fixed the style in t/044-req-body.t. REVERT: 5af60191ef updated docs to reflect recent changes. REVERT: e37b58e372 bugfix: for nginx 1.3.9+ compatibility, we now throw an error in ngx.req.init_body(), ngx.req.set_body_data(), and ngx.req.set_body_file() when calling them without calling ngx.req.read_body() or after calling ngx.req.discard_body(). REVERT: 480ff88583 removed most of the leak false positives from valgrind.suppress because we now pass the option --show-possibly-lost=no to valgrind by default. REVERT: 7422139777 bugfix: recent versions of ngx_lua failed to compile with old PCRE versions like 6.6 due to the "D" and "J" regex options; now these two regex options require at least PCRE 8.12. thanks Wenhua Zhang for reporting this issue. REVERT: a1fe49f434 optimize: we no longer traverse the captured body chain everytime we append a new link to it. REVERT: 22cf24c3f2 minor documentation tweaks. REVERT: 07d4873968 feature: implemented the "J" regex option for the PCRE Javascript compatible mode in the ngx.re API. thanks lhmwzy for requesting this. REVERT: b8af0b925e fixed the missing bits for commit 0d120033. REVERT: a6d8faf2bb feature: implemented named subpatterns for ngx.re.match, ngx.re.gmatch, ngx.re.sub, and ngx.re.gsub; also added new regex option "D" to allow duplicate named subpatterns. thanks Ray Bejjani for the patch in github pull #182. REVERT: e46baf0adc bugfix: commit 2875695b was incomplete. REVERT: c8c5688397 docs: documented the ngx.quote_sql_str API. also updated the docs for body_filter_by_lua* regarding the "eof" argument in subrequests. REVERT: 2875695b7b bugfix: setting the "eof" argument (i.e., ngx.arg[2]) in body_filter_by_lua for a subrequest could truncate the main request's response data stream. REVERT: 329907fd05 tests: stopped hitting Google's open DNS server's 12345 port. REVERT: 0d12003313 tests: eliminated hitting Google's web servers (but we still make use of its public DNS servers). REVERT: 2603780dd4 added a test case for a segfault in the nginx core when using ngx_poll_module + ngx_resolver together. REVERT: ab02c1203a bugfix: failed to compile with the SPDY patch 58_1.3.11 because that patch removed the field from the Nginx core. thanks Chris Lea for reporting this in github issue \#203. REVERT: bc53e62bca fixed those recently-added tests for 100 continue that may fail expectedly. REVERT: b9ac4139d9 refactor: when the nginx core fails to send the "100 Continue" response in case of the "Expect: 100-continue" request header (or just running out of memory), ngx.req.read_body() will no longer throw out a "failed to read request body" Lua error but will just terminate the current request and returns the 500 error page immediately, just as what the Nginx core does in this case. REVERT: 00bd9a4c35 added (passing) tests for using ngx.req.read_body in the "rewrite" and "access" phases when nginx fails to send the "100 Continue" response. REVERT: 6398a90485 updated tests to reflect recent changes in the DNS settings for my agentzh.org domain. REVERT: fec300b736 bugfix: we did not get the request reference counter right when lua_need_request_body was turned on and nginx versions older than 1.2.6 or 1.2.9 were used. REVERT: f71e4700f1 fixed a failing test case in normal testing mode. REVERT: 7786f978e0 bugfix: because of the recent API behaviour changes in nginx 1.2.6+ and 1.3.9+, the "http request count is zero" alert might happen when ngx.req.read_body() was called to read the request body and nginx failed to send out the "100 Continue" (short) response (like client connection early abortion and etc). thanks stonehuzhan for reporting this issue. REVERT: 1a52a5819d feature: setting ngx.header.HEADER after sending out the response headers now only produced an error message in the nginx error logs and does not throw out a Lua exception. this should be handy for Lua development. thanks Matthieu Tourne for suggesting this. REVERT: f6e62d5631 bugfix: in body_filter_by_lua, the "eof" flag (i.e., ngx.arg[2]) was not set in subrequests. REVERT: 7837e433e3 Merge pull request #200 from chipitsine/master REVERT: 4b1adde524 OpenBSD-5.2 REVERT: 93e0e2929f docs: bumped version to 0.7.13. REVERT: e059eac045 bugfix: using a key with underscores in ngx.header.KEY resulted in Lua string storage corruption. thanks rkearsley for reporting this as github issue #199. REVERT: 87d109fce3 docs: bumped version to 0.7.12. REVERT: 9354740483 bugfix: ngx.decode_args() might modify (read-only) Lua strings in-place, which could lead to bad Lua string values. thanks Xu Jian for the report and Kindy Lin for the patch. REVERT: d3280ab61b docs: typo in the code sample for tcpsock:receiveuntil. thanks Yecheng Fu for the patch in github pull #196. REVERT: 58e14a62f5 bumped version to 0.7.11. REVERT: d3c0f25469 docs: fixed a typo in the Lua code sample for ngx.re.gmatch (we forgot to add "do" there). thanks Guo Yin for reporting this issue. REVERT: 3f69addea1 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: a78ee75610 bugfix: removed the unnecessary dot from the "config" file. thanks Rafael Souza for reporting this regression. REVERT: b802870d70 docs: declared compatibility with nginx 1.2.6; also bumped version to 0.7.10. REVERT: 6e162fd013 minor coding style fixes in ngx_http_lua_variable.c. REVERT: eabefc7970 bugfix: accessing ngx.var.VARIABLE allocated tempory memory buffers in the request memory bool, which could lead to unnecessarily large memory footprint. not it allocates such bufferes via Lua GC. REVERT: 5084866842 updated the tests in 005-exit.t for nginx 1.2.6+. REVERT: d1613a6475 feature: automatically detect LuaJIT 2.0 on FreeBSD by default. thanks rkearsley for the patch. REVERT: cf18fcbbb6 docs: explained why "local foo = require 'foo'" is required to load a Lua module. thanks rkearsley for asking. REVERT: 362fcfe460 documented the request body automatic inheritance behavior in ngx.location.capture; also bumped version to 0.7.9. REVERT: 6eeb8fb81c minor coding style fixes. REVERT: 59fc4aea8c bugfix: ngx.status assignment would always be overridden by the later ngx.exit() calls for HTTP 1.0 requests if lua_http10_buffering is on (the default setting). thanks chenshu for reporting this in github issue #193. REVERT: 543169dfbd bugfix: typo in the error message when accessing an nginx variable that has not been defined. REVERT: eb3a36bb48 updated docs to reflect recent changes. REVERT: 515658747a Merge pull request #186 from mizzy/fix-date-format-in-readme REVERT: 457cdf79e1 Fix date format REVERT: d4eb39b40e bumped version to 0.7.8. REVERT: d54a03ebd2 made the tests in uthread-exec.t less possible to fail the systemtap subtest on slow machines. REVERT: 477f82efcc made the tests for ngx.on_abort() less possible to fail due to random timing issues. REVERT: d270ade767 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 46e32a2915 bugfix: ngx.req.set_body_file() might lead to memory issues because it directly used the storage of lua strings allocated by the lua GC (we should allocate a new memory block on the nginx side and copy the string data over). REVERT: 94d950eed7 bumped version to 0.7.7. REVERT: b39743aa57 bugfix: when a user coroutine or user "light thread" dies with an error, our Lua backtrace dumper written in C may access one of its dead parent threads which could lead to segmentation faults. REVERT: fd7b70de6f refactor: now we use the TEST_NGINX_SERVER_PORT env consistently in the test suite. REVERT: fd51c766cd fixed a test case that uses the hard-coded port 8888 which may not be available especially in the "check leak" testing mode that often runs into port shortage. REVERT: c400c31152 minor coding style fixes in ngx_http_lua_regex.c. REVERT: 614d6a6ef0 updated the docs for ngx.req.start_time and ngx.now a bit. REVERT: 4a4bdd9506 Merge remote-tracking branch 'origin/master' into req-start-time REVERT: 5768a6824d feature: added ngx.req.start_time() to return the request starting time in seconds (the milliseconds part is the decimal part just as in ngx.now). thanks Matthieu Tourne for the patch. REVERT: f85899f503 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 6969518525 fixed an english typo in the error message for init_by_lua*. REVERT: e83fabb0e5 attempted to fix a test that may fail unexpectedly in the "hup reload" testing mode. REVERT: 50e41da5d8 fixed a test case in 020-subrequest.t for slow testing modes. REVERT: e3d3ec3f58 added more docs regarding using ngx.exit() to abort pending subrequests in other "light threads" and setting ngx.status after sending out the response headers. REVERT: 3583cb08d5 added tests for the "ngx_slab_alloc() failed: no memory" error message. these require the patch https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.4-slab_alloc_no_memory_as_info.patch REVERT: 15fac2963b feature: setting ngx.status after sending out response headers no longer yield a Lua exception but only leave an error message in the error.log file, which is useful for Lua-land debugging. thanks Matthieu Tourne for requesting this. REVERT: 930b938d46 fixed several test cases which may fail unexpectedly due to timing errors. REVERT: 2b48ef43c5 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 442b453333 bugfix: when the user callback function registered by ngx.on_abort() discarded the client abort event, the request would be aborted by force when the next client abort event happened. REVERT: 164ef98f45 feature: the user can now call ngx.exit(444) to abort pending subrequests in other light threads from within a light thread. REVERT: 780b826862 refactor: we did not need to reset the on_abort_co_ctx field in reset_ctx. REVERT: cc57703fbf updated docs to reflect recent changes. REVERT: 5feda1fee3 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: e1dd6ff662 added a test case for a regression introduced by the upstream_pipeline patch of openresty. REVERT: 857ed86f09 increased the timeout threshold for the slow tests in slow testing modes. REVERT: 4f7eb4f05e made a test case less possible to fail in slow testing modes like "mockeagain w + valgrind memcheck". REVERT: 3986c47877 Merge pull request #181 from smallfish/patch-1 REVERT: 4bd0744086 Update src/ngx_http_lua_log.c REVERT: ff1949b075 bugfix: the "light thread" object created by ngx.thread.spawn() might be prematurely collected by the Lua GC because we did not correctly register its coroutine object into the Lua regsitry table. this bug may crash the Lua VM and nginx workers under load. thanks Zhu Dejiang for reporting this issue. REVERT: 7b0d7daca9 bugfix: the "light thread" object created by ngx.on_abort() might be prematurely collected by the Lua GC because we did not correctly register its coroutine object into the Lua regsitry table. this bug may crash the Lua VM and nginx workers under load. thanks Zhu Dejiang for reporting this issue. REVERT: 2ecf5afa83 bugfix: ngx.thread.wait() might hang infinitely when more than 4 user "light threads" are created in the same request handler due to the incorrect use of ngx_array_t for ngx_list_t. thanks Junwei Shi for reporting this issue. REVERT: 5abd74c3d6 minor test file style fixes. REVERT: e6b20cb2eb feature: added new dtrace static probe http-lua-user-thread-wait. REVERT: d3214ca9c4 bugfix: subrequests with error status code did not trigger output header filtering any more. this bad had appeared in the last commit. REVERT: 6d7e0c0a5b bugfix: ngx.location.capture/ngx.location.capture_multi might hang infintely because the parent request might not be waken up right after the first time the post_subrequest callback was called. now we also always skip the special response handler altogether for our subrequests. REVERT: 9ad04360ce ported all the documentation tweaks from the nginx wiki site. REVERT: a9d1383bd9 minor test case style formatting. REVERT: 0b838944d1 fixed various issues in the test suite. REVERT: 15a5793b5f ngx.exit(N) now no longer throws out a Lua exception when N >= 300 and a response header with a different status code has already been sent (but an error message will still be printed into the error.log file). this change makes Lua code debugging based on ngx.say/ngx.print much easier. thanks Matthieu Tourne for the suggestion. REVERT: 35b86cd530 bugfix: ngx.exit(N) threw out exceptions when N was 408, 499, or 444 and the response header was already sent. thanks Kindy Lin for reporting this issue. REVERT: ca262cb466 bumped version to 0.7.5. REVERT: 8d92e6c670 bugfix: ngx.log() would truncate the log messages with a null character (\0) in it. thanks Wang Xi for reporting this issue. REVERT: 7c0948a08e bugfix: ngx.req.clear_header() would result in memory invalid reads when removing the 21st request headers. thanks Umesh Sirsiwal for reporting this issue in github issue #176. REVERT: 1a44b73fa6 updated docs to eliminate use of package.seeall in code samples and also to explicitly discourage the use of it. REVERT: a55fd25065 documented the special case that client closes the connection before ngx.req.socket() finishes reading the whole body. REVERT: fc4391e072 documented lua_check_client_abort and ngx.on_abort; also bumped version to 0.7.4. REVERT: e06f7e3a24 polished the test cases that could expectedly fail. REVERT: 0990bdef77 ported the tests for ngx.on_abort() to access_by_lua and rewrite_by_lua. REVERT: 75be85db63 made the tests less possible to fail in slow testing modes. REVERT: 1d5b18a81d bugfix: calling ngx.on_abort() twice in a single handler will result in memory leaks; now it returns an error upon subsequent calls. REVERT: b3a7787023 bugfix: request might hang when a callback function is registered via ngx.on_abort() and there was no client abort event at all. also ensured that the on_abort callback will not get called when the request is already done. REVERT: 0b9466ac13 feature: ngx.exit(N) can now abort pending subrequests when N = 408 (request time out) or N = 499 (client closed request) or N = -1 (error). feature: added ngx.on_abort() for registering user Lua function callback which will get called automatically when client abortion happens. REVERT: 52e971cb0c renamed the config directive "lua_on_client_abort stop|ignore" to "lua_check_client_abort on|off". REVERT: ec5214cfca added a test case for testing the kqueue-specific bug in the ngx_http_upstream_test_connect function of the nginx core. REVERT: 5ba9195e59 fixed a test case regarding cosocket set_keepalive on FreeBSD. REVERT: 8ed15a432b tweaked the test cases for one-way shutdown for the mockegain writing testing mode because nginx does not really support the one-way shutdown on the client side. REVERT: 8f8cb23f36 bugfix: using "lua_on_client_abort stop" and doing internal redirects might lead to segmentation faults. REVERT: 9649c8ba6b bugfix: fixed the -Werror=unused-variable gcc warning on systems without kqueue, which was introduced by commit 9205848. REVERT: 92058483d5 bugfix: ngx_lua cosocket's connect() method could not detect errors like "connection refused" when kqueue was used. tests: fixed the compatibilty issues in those test cases that were failing on non-Linux systems like FreeBSD. REVERT: 31089a419c bugfix: we could not compile on FreeBSD due to the recent work on lua_on_client_abort. REVERT: 1937d58112 updated --- stap_wait to --- wait in the test suite to reflect the new changes in Test::Nginx::Socket. REVERT: c5dc5dc147 bugfix: reading on ngx.req.socket() now returns the error "client aborted" in case request body truncation even when lua_on_client_abort is "ignore". bugfix: for edge-triggered events, use of ngx.req.socket() might prevent "lua_on_client_abort stop" from detecting the connection shutdown event. REVERT: 83f8f95542 bugfix: receiving data on ngx.req.socket() did not return any errors when the request body got truncated; now we return the "closed" error (or "client aborted" when lua_on_client_abort is not configured as "ignore"). feature: implemented new config directive lua_on_client_abort which (atm) takes two possible values, "ignore" (the default) and "stop". REVERT: 642e541129 Merge branch 'master' into client-abort REVERT: 5cc8de8e7d code refactoring in the module configuration part. REVERT: 41243bfa87 code refactoring in the module configuration part. REVERT: 7b1f3323a2 documented the new shdict:get_keys() API. also bumped version to 0.7.3. REVERT: f928feae8d feature: added the "get_keys" method for the shared dictionaries for fetching all the (or the specified number of) keys (default to 1024 keys). thanks Brian Akins for the patch in pull \#170. REVERT: e607b639be bumped version to 0.7.2. REVERT: b5531ff5be feature: now we can automatically detect the vendor-provided LuaJIT-2.0 package on Gentoo. thanks Il'ya V. Yesin for the patch in github pull #167. it is still recommended, however, to explicitly set the environments LUAJIT_INC and LUAJIT_LIB. REVERT: db2d5310b3 docs: massive wording improvements from Dayo. also bumped version to 0.7.1. REVERT: 3875a33976 bugfix: ngx.re.gsub() might throw out the "attempt to call a string value" exception when the "replace" argument is a Lua function and the subject string is large. thanks Zhu Maohai for reporting this issue. REVERT: 7ee528b203 docs: documented the new ngx.thread API. also fixed the __newindex metamethod definition for catching writes to undeclared global varaibles in a Lua module. REVERT: 1690add7f8 docs: added a warning for ngx.var.VARIABLE that memory is allocated in the per-request memory pool. also made it clear why "return" is recommended to be used with ngx.exit(). thanks Antoine. REVERT: 4d8cbe95cd fixed those test cases using the UDP cosockets to be prepared for data read in a single run (without EAGAIN, that is). REVERT: 5d0fb9feae bugfix: the lua light threads would leak in case of nginx filter finalization. this issue was caught by the "check leak" testing mode provided by Test::Nginx while running on Amazon EC2. REVERT: 2694d7758c bugfix: older gcc versions might issue warnings like "variable 'nrets' might be clobbered by 'longjmp' or 'vfork'", like gcc 3.4.3 for Solaris 11. thanks Wenhua Zhang for reporting this issue. REVERT: bfcb77b126 resolved conflicts while merging "master" into "thread". REVERT: 73d8dd231b bumped version to 0.6.10. REVERT: d3f55d7a7c bugfix: ffi.copy() was used incorrectly in the test cases in 099-c-api.t: it might write out of the buffer. this issue was caught by valgrind on linux i386. REVERT: 95b2761743 fixed a test case using shdict for the "use hup" testing mode. REVERT: cc5d928cb4 renamed ngx_http_lua_shared_dict_lookup to ngx_http_lua_shared_dict_get; fixed various issues in this public C function. also added tests for it. REVERT: ea456890a5 feature: added public C API ngx_http_shared_dict_get and ngx_http_lua_find_zone as per Piotr Sikora's request. REVERT: 7fc1dc720f fixed a compilation warning in the cosocket code from some old gcc. thanks Dirk Feytons for reporting this issue as as #162. REVERT: 0f66b1b337 bumped version to 0.6.9. REVERT: a30c2d8313 made a test case less possible to fail unexpectedly in slow testing mode. REVERT: beb2bfff4d updated docs to reflect recent changes in ngx.req.get_headers(). REVERT: a90cc0d99e feature: now ngx.req.get_headers() will return a table with keys in all lowercase by default. made the second argument be "raw". when the "raw" argument is true, the header names will be the original form. REVERT: b09f157844 feature: when the lowercase argument to ngx.req.get_headers() is true, then any keys like "My-Header-Name" and "my_header_name" will be able to index the "my-header-name" entry in the Lua table returned. (behind the scene, we ngx.req.get_headers() just adds a __index metamethod to the resulting table when the lowercase argument is true.) thanks Matthieu Tourne for the proposal. REVERT: 0263ef747c feature: ngx.req.get_headers() now takes a second (optional) boolean argument that can be used to convert all header names into the lowercase form. thanks James Hurst and Matthieu Tourne for proposing this feature. REVERT: 661c261bc3 refactor: disabled ngx_http_lua_probe_info by default. REVERT: fe4130e0f3 feature: ngx.thread.spawn(f, ...) can now take multiple arguments for the "light thread" coroutine's first resume. REVERT: 56b9b8a46c polished the test for ngx.thread.wait a bit. REVERT: 0ef27947a2 bugfix: ngx.thread.wait() did not croak when the argument coroutine is not a user thread at all. also added more tests for bad arguments to ngx.thread.wait(). REVERT: 009911b4ef enabled all the test cases in 098-uthread-wait.t. REVERT: d680b6b2ec added (passing) tests for ngx.thread.wait(a, b) and the slower thread is aborted. REVERT: 4d0e77f5db feature: ngx.thread.wait() can now take multiple user threads as its arguments and wait on all of them at the same time. it will return the first terminated user thread's result as soon as possible (that is, without waiting for other pending user threads to finish). REVERT: b842f16a1b refactor: removed the ctx->fatal field and just used ctx->no_abort instead. REVERT: 5d5edcf028 feature: implemented ngx.thread.wait() for synchronously waiting on a child user thread, which also returns the final results of the last implicit call of coroutine.resume() on the user thread coroutine. so now an non-captured Lua exception in a user thread will not abort other running threads in the same nginx request. REVERT: a408327324 Merge remote-tracking branch 'origin/master' into thread REVERT: 97f4474a95 bumped version to 0.6.8. REVERT: 171de5a7c3 refactor: renamed ngx_http_lua_uthread_create to ngx_http_lua_uthread_spawn for consistency with the Lua API name. REVERT: b051763cc0 refactor: renamed t/*uthread.t to t/*uthread-spawn.t. REVERT: bcfa399848 Merge branch 'master' into thread REVERT: 1ff7288eb2 added a (passing) test for empty pattern in ng.re.match. REVERT: d37c193a93 bugfix: ngx.re.gsub might enter infinet loops because it could not handle patterns matching emptry strings properly. bugfix: ngx.re.gsub incorrectly skipped matching altogether when the subject string was empty. REVERT: 4b9100c1dd bugfix: pattern matching an empty substring in ngx.re.gmatch did not match at the end of the subject string. REVERT: ad5e7f7c3b bugfix: ngx.re.gmatch might loop infinitely when the pattern matches an empty string. thanks Lance Li and xingxing for tracking this issue down. REVERT: 0b6685c20c bumped version to 0.6.7. REVERT: 8589412e86 Merge branch 'master' into thread REVERT: 15d8550b6f minor coding style fixes in the lua/luajit bytecode loader. REVERT: e6297a5db0 Merge pull request #152 from jinglong/bytecode REVERT: 00e99d519f bugfix: the ngx.thread API did not work in access_by_lua*. REVERT: f4e8894e2d api: renamed ngx.thread.create() to ngx.thread.spawn(). REVERT: 7ba928b52a bugfix: the ngx.thread API did not work in rewrite_by_lua*. REVERT: 3a30a00ff3 added some (passing) tests for ngx.redirect + ngx.thread. REVERT: 3b48d03d1d bugfix: aborting ngx.thread coroutines with pending subrequests caused problems and now we just prohibit this by raising Lua exceptions and aborting the main request. REVERT: 8f2f149c2d updated t::StapThread to reflect recent changes. REVERT: c25f2df8aa bugfix: ngx.thread abortion did not abort ngx.flush(true) in time. REVERT: de36decd70 Merge remote-tracking branch 'origin/master' into thread REVERT: 2bea02618c bugfix: the write event timer might not be removed in time in ngx.flush(true) when ngx_handle_write_event failed. REVERT: f30e42d944 Merge remote-tracking branch 'origin/master' into thread REVERT: d3e2e646bd bugfix: ngx.flush(true) might not return immediately when it should. REVERT: 33756e1cd0 bugfix: ngx.thread abortion did not abort tcpsock:send() in time. REVERT: 7c65ad1b90 bugfix: ngx.thread abortion did not abort ngx.req.read_body() in time. REVERT: 73cd491de9 Merge remote-tracking branch 'origin/master' into thread REVERT: 51b5421fe0 refactor: changed the way ngx.req.read_body() handles r->main->count, which opens the door for abortion in the middile. REVERT: 94e623f6fe added a (passing) test for aborting the receive() invocation on the ngx.req.socket() object. REVERT: 1d74cad199 Merge remote-tracking branch 'origin/master' into thread REVERT: 9e127b09a7 bugfix: always remove the read event timer during downstream cosocket finalization if it is not removed yet. REVERT: 198e48d161 bugfix: NULL pointer access might happen on u->co_ctx in *handle_success and *handle_error functions. this bug had appeared in the previous commits. REVERT: 1d05ac6149 bugfix: ngx.thread abortion did not abort udpsock:receive() in time. REVERT: c60ea6817f bugfix: ngx.thread abortion did not abort the reading iterators returned by tcpsock:receiveuntil() in time. REVERT: 0e54fcd7aa bugfix: ngx.thread abortion did not abort tcpsock:receive() in time. REVERT: be896210d9 bugfix: ngx.thread abortion did not abort tcpsock:connect() in time. REVERT: 05d4a3b7e5 refactor: now we use ngx_http_lua_request_cleanup for complete cleanups in all the places. REVERT: c22c625ec0 bugfix: ngx.thread abortion did not abort the nginx resolver for ngx.socket.udp in time. REVERT: ee02a8ca07 updated .gitignore a bit. REVERT: cd5522dcea Merge remote-tracking branch 'origin/master' into thread REVERT: 9fdf63663c bugfix: the nginx resolver might not be destroyed in time when it was used by ngx.socket.tcp and ngx.socket.udp. REVERT: 5c22e1d4b0 bugfix: ngx.thread abortion did not abort the nginx resolver for ngx.socket.tcp in time. REVERT: 3a916d1e94 Merge remote-tracking branch 'origin/master' into thread REVERT: b771a2e400 bugfix: when a coroutine aborts with errors, its status might not be updated to "dead". REVERT: 535edec693 renamed t/094-uthread-exit to t/094-uthread-exit.t. REVERT: 9e28c48a39 resolved conflicts when merging "master" into "thread". REVERT: 3b5dc53b86 refactor: removed unnecessary code from the sleep handler for ngx.sleep(). REVERT: 5e6a5b3e74 bugfix: ngx.thread abortion did not clean up the ngx.sleep timer in time. also refactored the uthread tests a bit. REVERT: b63c3156ae refactor: now we introduce an explicit is_uthread flag for each user thread. REVERT: b6cb3a1367 resolved conflicts while merging "master" into "thread". REVERT: 07b9b3b6ca bugfix: when the entry coroutine was yielded by coroutine.yield() then after it was resumed automatically its status would still be "suspended". REVERT: 889a24afdf refactor: ensure that we always bypass ngx_http_postpone_filter_module when we generating downstream outputs. also removed all the legacy code handling postponed outputs. REVERT: c1f40cd904 added (passing) tests for ngx.req.socket() + ngx.thread and ngx.req.read_body() + ngx.thread. REVERT: b4e6bf1742 added (passing) tests for UPD/TCP cosockets + ngx.thread. REVERT: 985c4a5e94 added (passing) tests for ngx.flush(true) + ngx.thread. REVERT: 518c94eaad feature: added support for manual time-slicing between lightweight threads via the coroutine.yield() API. REVERT: 3b0d04b956 added a (passing) test for creating user threads in a user coroutine. also tracked user coroutine creation in the test cases for user threads. REVERT: 4282176462 added (passing) tests for the "coroutine status" of user threads. REVERT: c0ac119784 added (passing) tests for nested user threads. REVERT: 10c7a07392 Merge remote-tracking branch 'origin/master' into thread REVERT: 377bcd3789 updated docs to reflect recent changes. REVERT: f02a7323db added several (passing) tests for ngx.thread + ngx.location.capture. REVERT: 12903c20dc test: enabled repeat_each(2) in 093-uthread.t. REVERT: 6d854044cf feature: first prototype for the ngx.thread API (aka the lightweight thread API for ngx_lua) that passes the first bunch of tests. REVERT: 903a3e55cf refactor: even more coding style fixes. REVERT: 681f0dd61d refactor: massive coding style fixes. REVERT: 639cc398fb refactor: removed the unused function ngx_http_lua_has_inline_var. REVERT: 946e907416 bugfix: the "resume_handler" field of the subrequest ctx was not properly initialized. REVERT: 3a7075dcd1 added comments to the ngx_http_lua_run_thread function; also fixed a coding style issue. REVERT: 51a68ac94a bugfix: better error handling in ngx_http_lua_wev_handler. REVERT: cf474bcb9f refactor: improved status code handling in content/access/rewrite_by_lua*. REVERT: 213acb96ff refactor: removed the ctx->entry_co field and also made the coctx->co_status and coctx->flushing fields smaller. REVERT: 1fc023b26a removed the declaration of the non-existent function ngx_http_lua_resume; also fixed a warning from clang. REVERT: 7d5d923400 docs: fixed the documenation for ngx.req.set_header and made it explicit that the modified request headers will be inherited by the subrequests. thanks James Hurst for reporting this nit. REVERT: d0d9140e11 optimize: tcpsock:send() now calls c->send() instead of ngx_output_chain(), which gives about 4src/tcp.c ~ 5src/tcp.c performance boost for a simple test case accessing redis for several times. REVERT: 67f8bbbde3 removed the valgrind suppression rules for sendmsg/ngx_channel_write since we already fix these issues via the channel-uninit-params patch: https://github.com/agentzh/ngx_openresty/blob/master/patches/nginx-1.2.3-channel-uninit-params.patch REVERT: 2e50b19433 updated valgrind.suppress for valgrind 3.8.0. REVERT: 66e2d98b05 docs: bumped version number to 0.6.5 and also documented the trick for doing background async jobs by using ngx.eof() + keepalive_timeout 0. REVERT: 0c14852af3 suppressed the warnings reported by valgrind 3.8.0. REVERT: 5b5a02dbed fixed a test case in 068-socket-keepalive.t by properly flushing the redis store first. REVERT: 62a0b69609 updated docs to reflect recent changes. REVERT: b1289817d9 added (passing) tests for using parallel subrequests after ngx.eof(). REVERT: e0adfe5ec4 bugfix: the UDP and TCP cosockets could not keep track of the current Lua coroutine. now we also explicitly clear the current Lua coroutine context in the main request context to ensure that the I/O scheduler can indeed keep track of the current Lua coroutine itself. REVERT: e49622d8b6 added a (passing) test case for using ngx.flush(true) in a user coroutine. REVERT: fe8d7be132 optimize: we now skip processing in the default write event handler when the write event is not ready. REVERT: 79dee2697a coding style fixes and also fixed a warning in clang. REVERT: 2fbb4ada99 refactor: removed the "cur_co" field from ngx_http_lua_ctx_t because it is not necessary at all. REVERT: 644b0b15c9 cleaned up the code a bit in ngx_http_lua_wev_handler. REVERT: 240caaa72e refactor: made ngx.flush(true) keep track of the current Lua coroutine automatically. REVERT: 59c5231b8c refactor: renamed the confusing "waiting" field of ngx_http_lua_co_ctx_t to "pending_subreqs". REVERT: 9155f9400d refactor: made ngx.req.read_body() keep track of the current Lua coroutine automatically. REVERT: 6fba5e1bff refactor: made ngx.req.socket() use the existing req_body_reader_co_ctx field in the context struct. REVERT: 12981c9044 refactor: made the ngx.req.socket() objects keep track of the current Lua coroutine themselves. also disabled the ngx.req.socket() API in subrequests to prevent potential problems. REVERT: 357d4d7613 refactor: made the UDP/datagram cosockets schedule their I/O automatically on the Lua coroutine level. REVERT: b88aa3eaff refactor: removed the unused "socket_busy" flag from ngx_http_lua_co_ctx_t. REVERT: 9cb0d829d3 refactor: made TCP/stream cosockets schedule their I/O automatically on the Lua coroutine level. REVERT: e2f8b2a6b4 enabled the http-lua-info static probes in ngx_http_lua_wev_handler. REVERT: 2f884b83e0 refactor: made ngx.location.capture() and ngx.location.capture_multi schedule themselves at the coroutine level (instead of the request level). REVERT: 27dd2bab82 minor cleanup in ngx.sleep(). REVERT: 7134d428a7 refactor: made ngx.sleep() schedule itself at the coroutine level. REVERT: 4abd896cd5 fixed a test case in 020-subrequest.t for slow machines. REVERT: 85c658475a made the new subrequest test cases less possible to fail unexpectedly on slow machines. REVERT: 9fe21af577 use google.com instead of taobao.com in the test suite. REVERT: a7d6962c21 upgraded version to 0.6.4. REVERT: e572d87726 fixed the test cases for the mockeagain (W) testing mode. REVERT: 73faa581d8 added more tests for bad upstream in subrequests. REVERT: b3255acdae bugfix: reset the subrequest status code when the non-buffered ngx_http_upstream request in the subrequest fails due to timeout errors or premature connection close and etc. this requires the patch for the nginx core to fix an issue in ngx_http_upstream: https://raw.github.com/agentzh/ngx_openresty/master/patches/nginx-1.2.3-nonbuffered-upstream-truncation.patch REVERT: d06e260181 made a test case requires DNS resolving less possible to fail in slow testing modes. REVERT: c56a98cd80 bugfix: we should not always return NGX_OK in our post_subrequest handler even if rc >= 300 because it will prevent response headers from being sent. REVERT: 865cb1981b added a (passing) test for returning NGX_ERROR in the output body filter for the subrequest issued by ngx.location.capture(). REVERT: 46a3c3d524 updated .gitignore a bit. REVERT: 9728454afd bugfix: the main request might be prematurely terminated if a subrequest issued by ngx.location.capture (or its friends) was finalized with error codes. REVERT: 75c8c30980 updated valgrind.suppress for i386. REVERT: 3a90b57408 bugfix: we did not compile with nginx cores without the allow_request_body_updating patch. thanks Dirk Feytons. REVERT: 3b6f584be3 tweaked a test case to make it less possible to fail in slow testing modes. REVERT: fd0a8fb182 refactor: now ngx_lua issues subrequests without updating r->postponed at all so as to allow the parent requests flush outputs immediately without waiting for its running subrequests. this will pave a way for subrequest integration with the upcoming lightweight thread model. REVERT: 7819b4284a fixed typos in the test titles. REVERT: ce1bcd53cb bugfix: when a user coroutine died with an error, its parent coroutine's status was still 'normal'. thanks jinglong for reporting this issue. REVERT: 62d67ad2f2 optimize: removed a duplidate ngx_memzero invocation in ngx_http_lua_reset_ctx. thanks jinglong. REVERT: 35c1fcd04e docs: removed the note for the issues regarding "normal" state user coroutines in coroutine.resume() and coroutine.status() because we have already fixed them. REVERT: 50f20351b6 merged "master" into "thread". REVERT: 5cb6e9fa52 refactor: now every lua coroutine takes its own context state for its nginx-side activities. bugfix: coroutine.status() returned "suspended" for "normal" coroutines. bugfix: coroutine.resume() did not return an error immediately when operating on "normal" coroutines. feature: added new dtrace static probes http-lua-user-coroutine-yield and http-lua-entry-coroutine-yield. REVERT: a819a192e7 docs: documented the new shdict:flush_expired() method. bumped the version to 0.6.3. also mentioned lua-resty-dns in the SEE ALSO section. REVERT: f09867d915 feature: implemented shdict:flush_expired(max_count) for flushing out expired items up to max_count (or unlimited when max_count == 0). thanks Brian Akins for the patch. REVERT: b771643dba bumped version number to 0.6.2. REVERT: e650dd1180 bugfix: the dtrace static probes did not compile on non-Linux systems like FreeBSD. REVERT: e64d60bd20 increated the timeout threshold for a test case requires resolving three domain names. REVERT: 52018289b1 bugfix: tcpsock:send() might send garbage if it was not the first call: we did not properly initialize the chain writer ctx for every send() call. thanks Zhu Dejiang for reporting this issue. REVERT: 28317770f0 feature: added new dtrace static probes http-lua-socket-tcp-send-start, http-lua-socket-tcp-receive-done, and http-lua-socket-tcp-keepalive-buf-unread. REVERT: ccc4af2a1c bugfix: ngx_http_lua_probe.h was not listed in the NGX_ADDON_DEPS list in the "config" file. REVERT: e46e4907a5 bugfix: the send timeout timer for downstream output was not deleted in time in our write event handler, which might result in request abortion for long running requests. thanks Demiao Lin (ldmiao) for reporting this issue. REVERT: e282c1c6c1 bumped version to 0.6.1. REVERT: 936653cbd8 removed the req_header_cached field from ngx_http_lua_ctx_t because it is not used at all. REVERT: 43de06a0cf merged merge conflicts. REVERT: c2f3cffd54 bugfix: removed unnecessary code that was for the old coroutine abortion mechanism based on Lua exceptions. we no longer need that at all because we have switched to using coroutine yield to abort the current coroutine for ngx.exec, ngx.exit, ngx.redirect, and ngx.req.set_uri(uri, true). REVERT: 912707780e bumped version to 0.6.0. REVERT: ce791df20f documented the limitation in the current coroutine.resume() implementation. REVERT: 2b560d3590 documented the limitation in the current coroutine.status implementation and also included other documentation updates. REVERT: 7feb3f4f04 fixed a source line exceeding 80 cols. REVERT: 5c1603354c style: renamed ctx->cc to ctx->cur_co, ctx->cc_ref to ctx->entry_ref, and ctx->cc_op to ctx->co_op. REVERT: c52320f5f2 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 4e5cb24490 bugfix: there was no proper error messages when we tried to resume running coroutines. bugfix: there was error logs for resuming dead user coroutines, which was too chatty. REVERT: bed05ac93d fixed the developer build script for FreeBSD. REVERT: c4d7962601 avoided using qq.com, taobao.com, and baidu.com in the test cases because the "check leak" testing mode will flush these 3rd-party sites which is very very bad. REVERT: d6c32ea394 feature: yielding entry coroutines from within the user Lua code will make them resume immediately. REVERT: 5065194922 added a comment. REVERT: 347214c055 documented the new user coroutine API and claimed that we work with nginx 1.3.4. also updated the TODO list to reflect recent changes. REVERT: 9228475a52 removed the unused ngx_http_lua_dump_postponed function that was used for subrequest debugging. thanks Dirk Feytons. REVERT: 47f0bf1933 properly handled the errors when the user coroutine does not have a parent. REVERT: 1c2cae9c70 Merge branch 'master' into coroutine REVERT: 7b363ee7b2 bumped version to 0.5.14. REVERT: 1462d9650e resolved conflicts while merging "master" into "coroutine". REVERT: afb26d2846 more fixes in the dtrace provider file. REVERT: f7858fffb6 fixed the argument type again in the dtrace provider. REVERT: f9dc0dc01d fix strict-aliasing warnings in ngx_http_lua_clfactory_bytecode_prepare REVERT: c9d779e471 avoided declaring new C types in our dtrace provider. REVERT: 8e5ebad473 bugfix: redeclared the ngx_http_request_t type in our dtrace provider file. REVERT: 2c6a88c42b Merge branch 'master' into coroutine REVERT: a70c1e4c75 bumped version to 0.5.13. REVERT: 592d24f5aa Merge branch 'master' into coroutine REVERT: 1acd7e93c0 fixed a source line exceeding 80 cols. REVERT: a394080606 bugfix: reads of unitialized memory might happen when variadic macros is defined and logging socket errors is enabled: when NGX_HAVE_VARIADIC_MACROS is defined, ngx_log_error_core does not take a va_list typed argument which disallows C function wrappers. REVERT: bcaf634a27 bugfix: segmentation faults might happen when 1. the nginx worker was shutting down (i.e., the Lua VM is closing), 2. ngx.re.gmatch was used, and 3. regex cache is enabled via the "o" flag. this bug had appeared in ngx_lua 0.5.0rc30 (and ngx_openresty 1.0.15.9). REVERT: d010f01434 bugfix: pcre_pool_resumed should be initialized to 1. REVERT: 9043e7af98 bugfix: the pcre pool might not be properly resumed when lua panic happens in the lua coroutine scheduler. REVERT: 8e3ee4b1e0 renamed 090-coroutine.t to 091-coroutine.t. REVERT: f77dffbf3b Merge branch 'master' into coroutine REVERT: de65585f38 optimize: make the coroutine scheduler faster for the entry coroutines (in contrast with user coroutines). REVERT: 93d12de226 checked in files that are missing in the previous commit for lua_socket_log_errors. REVERT: 1efea1b3da docs: documented the new lua_socket_log_errors directive and also updated the TODO list. REVERT: f6bd4f7e6e feature: added new directive lua_socket_log_errors that can be used to disable automatic error logging for both the TCP and UDP cosockets. thanks Brian Akins for the patch. REVERT: 45461af3a4 fixed a source line exceeding 80 columns. REVERT: f9e7f3703b now we explicitly disable the user coroutine API in running contexts other than content_by_lua*, rewrite_by_lua*, and access_by_lua*. REVERT: 2f5f9550cd updated the systemtap-based test cases for user coroutines. REVERT: 9c54ac2d21 improved the comments for the first few fields of ngx_http_lua_ctx_t. REVERT: 626cb4a95c eliminated short enum names NONE, YIELD, and RESUME to prevent naming collisions. also use only 2 bits for the cc_op filed in the ctx struct. REVERT: 75d2d7ab12 added new static dtrace probe http-lua-user-coroutine-resume. REVERT: 4679f459a8 added (passing) tests for calling ngx.exit() and ngx.exec() in deeply nested user coroutines. also added new static probe http-lua-user-coroutine-create. REVERT: 849492e5bb added a (passing) test for deeply nested coroutines. also avoided using 3rd-party web sites in the test cases to prevent flushing them in the "check leak" testing mode. REVERT: c314499de7 fixed a source line exceeding 80 cols. REVERT: da5e425422 Merge branch 'master' into coroutine REVERT: 44e38b134a fixed a place where we did not check the pointer returned from ngx_array_push. REVERT: 646b0129d8 added a subtest for the error logs when resuming dead coroutines. REVERT: bd78705a1a bugfix: ngx_http_lua_resume didn't recognize dead coroutine if the coroutine was resumed with args REVERT: 6add2a5937 avoided using hard-coded port number of the redis service in the test cases. REVERT: d476dec566 added a test for using the coroutine-based pubsub API provided by Daniele Alessandri's lua-redis library. REVERT: dc33fb3396 optimize: now we use lightuserdata as the key to the coroutine parents table in the lua registry. we also use lua_rawset and lua_rawget wherever possible. REVERT: 3572114b51 do not call the public C API in ngx_http_lua_coroutine.c for the sake of consistency. also checks if the request pointer is null in the Lua coroutine API implementations. REVERT: 4f5e8e2f87 better error handling in inlined Lua loading and running. REVERT: 9c4c72c5c3 bugfix: we should avoid complicated stack operations that might require memory allocaitons in the lua atpanic handler because it would produce another exception in the handler leading to infinite loops. REVERT: a2543aa221 removed C macros that are no longer used. this was a merge mistake happened on the git "coroutine" branch. REVERT: 9494c12208 bugfix: we should avoid complicated stack operations that might require memory allocaitons in the lua atpanic handler because it would produce another exception in the handler leading to infinite loops. REVERT: fc2194ac7b more coding style fixes. REVERT: e695275643 eliminated hard-coded nameserver IP address in the test cases in coroutine.t. REVERT: 22a252dee5 bugfix: the main vm stack leaked memory when the entry coroutine completed successfully or tried to yield. REVERT: abd231c014 even more coding style fixes. REVERT: 9e90fbefe8 more coding style fixes. REVERT: e7ca4988d5 more coding style fixes. REVERT: df844cb8e2 fixed the test plan in coroutine.t and made it work with "check leak" testing mode; also added error message tests to all the test cases there. REVERT: 676c3dbf84 various coding style fixes. REVERT: 50357f146a Merge branch 'master' into coroutine REVERT: 4cb88e2053 display the stack top as debugging logs in ngx_http_lua_run_thread. REVERT: 8d63530b72 fixed the serial number in t/089-coroutine.t. REVERT: 6f402674bd merged branch "master" into "coroutine". REVERT: 3388d424f6 updated docs to reflect recent changes, especially the new "openresty-en" mailing list for English speakers. REVERT: 0ee0c49cfd bugfix: the UDP cosocket object could no longer be used after an read or write error happened. REVERT: d577a3818b bugfix: ngx.exit(status) always resulted in 200 OK response status when status > 200 and status < 300. thanks Nginx User for reporting this issue. REVERT: 63daa75712 minor coding style fixes. REVERT: f0efac25b3 updated the error message in docs to reflect recent changes. REVERT: dfe6202049 bumped version to 0.5.11. REVERT: 1dc7634b5b improved error message when calling ngx.req.socket() when the request body aleady exists. REVERT: ef4a8acd75 documented that ngx.req.socket() is required to be called before ngx.req.init_body(). REVERT: a071d3ee6e fixed two test cases for ngx.req.socket + ngx.req.append_body. also added a test for calling ngx.req.socket *after* ngx.req.init_body. REVERT: 04ef7a4995 bugfix: ngx.req.init_body/ngx.req.append_body/ngx.req.finish_body could not work with ngx.req.socket and resulted in infinite loops when the nginx request header reader has pre-read the beginning part of the request body. thanks Matthieu Tourne for reporting this issue. bugfix: the ngx.req.socket() object could not handle pipelined requests in some special cases. feature: added new dtrace static probe nginx_lua:::http-lua-req-socket-consume-preread. REVERT: db0bebedb6 documented the ngx.req.init_body, ngx.req.append_body, and ngx.req.finish_body APIs; also bumped the version number to 0.5.10. REVERT: 4697b1dc2c skipped the hup tests in "check leak" testing mode. REVERT: d29e8b3307 various fixes in the test suite for the "use hup" testing mode. REVERT: 3ef8844b1f minor test updates REVERT: d07f971631 fixed the test plan in 089-phase.t so that it works with different repeat_each settings. REVERT: b994240df1 added stap based tests for client body temp file cleanups. REVERT: 446e3477d3 fixed two places of variable set but never read reported by the clang static analyzer. REVERT: 88ad0a0014 fixed various corner cases for ngx.req.init_body/append_body/finish_body. also added some test cases for these new API. REVERT: 20620cb322 fixed a clang warning regarding strncmp. REVERT: d322946125 Merge branch 'master' into req-body REVERT: 3fc42b4178 fixed the ngx. table initial size. REVERT: 15aef44c83 resolved conflicts while merging branch "master" into "req-body". REVERT: 9b3bbf4f8c documented the ngx.get_phase() API. REVERT: 28a022db22 updated .gitignore to reflect recent changes. REVERT: 02a8b7ba94 minor fixes in the ngx.get_phase() call. REVERT: c1cd173157 feature: added new Lua API, ngx.get_phase(), for fetching the name of the current running phase from within Lua. possible return values are "set", "rewrite", "access", "content", "log", "header_filter", "body_filter", and "init". thanks James Hurst for the patch. REVERT: bd66f77fe6 bumped version number to 0.5.9 REVERT: d1cfc94c86 bugfix: buffer error would happen when the "args" option table to ngx.location.capture (and ngx.exec) contained a multi-value argument whose key also required uri escaping. thanks Matthieu Tourne for reporting this. REVERT: 0f62a62e33 bugfix: 3rd-party nginx C modules that use the public C API function, ngx_http_lua_add_package_preload, could result in segfault at nginx server startup due to uninitialized Lua VM pointer. thanks Ray Bejjani for reporting it. REVERT: ebeb4ea8eb fixed the provider name in stability attributes in ngx_lua_provider.d. REVERT: d3a9ba25b1 feature: initial support for dtrace static probes. it requires nginx-dtrace though: https://github.com/agentzh/nginx-dtrace REVERT: c25689b93a updated docs and bumped version to 0.5.8. REVERT: a624ee9482 updated .gitignore a bit. REVERT: 3eab7b0361 ensured that proper error message is always thrown when the iterator returned by ngx.re.gmatch is used in the context of another nginx request. REVERT: e73e244431 bugfix: ngx.re.gmatch() might result in segfaults during nginx request cleanups if the iterator returned by ngx.re.gmatch() was collected (by Lua GC) before request cleanups. this bug had appeared in ngx_lua 0.5.0rc30 (and ngx_openresty 1.0.15.9). thanks Wayne for reporting this issue. REVERT: 54c0a35490 bumped version to 0.5.7. REVERT: d17a942ca1 Merge pull request #141 from dirkfeytons/no_pcre_compile_fix REVERT: 8df3747ec7 Fix issue with unused variable when compiling without PCRE support. REVERT: 6d67fc4b12 tweaked a test case to make it less possible to fail in slow testing mode. REVERT: 1cae67d5e4 fixed a test case. REVERT: 24fc460b40 documented the new options table argument and the "pool" option for the tcpsock:connect() method. REVERT: 992e4f0266 bugfix: tcpsock:connect(): numeric pool option values did not really work. also nil pool option was caused trouble too and we disallow that now. REVERT: 31aa26383a rename coroutine testsuite name REVERT: 8c03cc5a42 Merge branch 'coroutine' of https://github.com/chaoslawful/lua-nginx-module into coroutine REVERT: 927ef1e86a Merge branch 'master' into coroutine REVERT: 6a375a6514 Merge pull request #138 from jinglong/coroutine REVERT: 4f208bff2c delete useless comment in ngx_http_lua_thread_traceback REVERT: 0976365ca0 update ngx_http_lua_thread_traceback to print the full traceback for the current coroutine and his ancestors REVERT: 1d8d1578f9 feature: added an optional "optional table" to tcpsock:connect() which accepts a "pool" option to allow the user specify a custom pool name intead of the automatically generated one based on the host-port pair or the socket file path. thanks Brian Akins for the patches. REVERT: 06abbea6b9 documented the UDP/datagram cosocket API. REVERT: 0a2d1d2467 bugfix: udpsock:send() might crash on null pointer access when the request object is absent or the u pointer is null. REVERT: 4ae7d6a3c5 added (passing) tests for the size argument of the udpsock:receive(size) method. REVERT: 49c29a0810 feature: added the udpsock:close() method. REVERT: 1a8bd0f141 merge with master REVERT: 2684939001 Merge remote-tracking branch 'origin/master' into udp-socket REVERT: 405efbabd5 tweaked the test case a bit. REVERT: 05c3a1e756 bugfix: the udp cosocket API could not talk over a unix domain socket. REVERT: 24991b68ae added a (passing) test for receive() timeout. REVERT: 8b1040d259 bumped version number to 0.5.6. REVERT: 053999e59b added a test case for successive udpsocket:setpeername() calls. REVERT: 010d17d482 removed a useless comment from ngx_http_lua_socket_udp.c. REVERT: 06d654b02e documented the ngx.req.get_method() and ngx.req.set_method(method_id) methods. REVERT: 80e86f5540 updated docs to reflect recent changes. REVERT: 3b51a96c29 merged branch "master" into "udp-socket". REVERT: 0cf6c86fac bugfix: the tcp/stream cosocket object might hang when another concurrent request is accessing it while its operation is still in progress; now we always check for potential access conflicts and return the "socket busy" error string if it is indeed the case. REVERT: fd412f72ea bugfix: the udp cosocket object might hang when another concurrent request is accessing it while its operation is still in progress; now we always check for potential access conflicts and return the "socket busy" error string if it is indeed the case. REVERT: b6b23570a3 fixed the test suite to reflect recent changes. REVERT: 0280aaa4f8 Merge remote-tracking branch 'origin/master' into udp-socket REVERT: 3824e4466b udpsock:connect(): now we fetch ngx_socket_errno in case of error as soon as possible. REVERT: 567da366dd bugfix: the tcpsock:connect() method always returned the (vague) error strng "connect peer error" instead of the (detailed) system error string. REVERT: 3232eb0784 added more tests for udp cosockets. REVERT: 8157284b8a bugfix: the udpsock:connect() method always returned the (vague) error strng "connect peer error" instead of the (detailed) system error string. REVERT: 4a79d1b8db optimize: udp cosocket: now we use a global (static) receive buffer to avoid dynamic allocations on heap. REVERT: f85139757f Merge remote-tracking branch 'origin/master' into udp-socket REVERT: 42d9617e82 merged branch "master" to "udp-socket". REVERT: 787a7b122a fixed a minor coding style issue. REVERT: e9a74f68bb feature: implemented the UDP cosocket API, ngx.socket.udp(). REVERT: 30601c71f8 bugfix: the tcp cosocket object might automatically re-connect to the remote after it connected successfully in a single run (that is, no EAGAIN returned in the middle) and DNS domain names were used. REVERT: 007d61a7c5 bugfix: tcpsock:receive() and tcpsock:send() always returned "error" as the error message. now it properly returns the system error string. REVERT: 61858d95de bugfix: ngx.req.clear_header() did not remove all the instances for the builtin headers or custom headers. bugfix: ngx.req.clear_header() might accidentally remove request headers that are not specified at all and leave the specified headers with just empty header values when removing multiple built-in headers. thanks Matthieu Tourne for reporting the issues. REVERT: e9d5d601a3 feature: added new Nginx API for Lua: ngx.req.set_method(method_id) and ngx.req.get_method. thanks Matthieu Tourne for suggesting these. REVERT: 4960e01ec4 bugfix: we should always test if the request object pointer is null in the ngx.req.*_body API. REVERT: c2f74d15e8 checked in a (skipped) test case for subrequest request headers handling. REVERT: 05c0f5a8c3 bugfix: ngx.exec() did not accept the nil value for its second (optional) argument. REVERT: 166de0c46d updated the TODO list in docs to reflect recent changes. REVERT: 584ec028b1 bugfix: ngx.exit(404/403/500/...) would throw out Lua errors when the response headers with exactly the same status code had already been sent. thanks Matthieu Tourne for reporting this. REVERT: 4275482f49 documented the init_by_lua* directives and also bumped version number to 0.5.5. REVERT: 6e5e1738f5 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module into coroutine REVERT: 588ee4dcbb removed a test in t/023-rewrite/exit.t. REVERT: 5126e81531 fixed a test case in 085-if.t that hard-coded TEST_NGINX_CLIENT_PORT in nginx config. REVERT: ce4314d46f bugfix: init_by_lua* might be skipped altogether when HUP config reload was used. REVERT: 5445e0e8ca bugfix: invalid memory reads might happen on HUP config reload when lua_shared_dict is used. REVERT: 608c89bbf5 fix typo in config REVERT: 8f1a443631 fix compiling errors REVERT: 9c3c01aa4d remove unexpected merged codes REVERT: 35bf172eb0 merge jinglong's commit REVERT: bb7d35eaa4 merge master and jinglong's commit REVERT: 2d3c907f48 Merge pull request #135 from jinglong/coroutine REVERT: 27366974e6 improve coroutine apis REVERT: c984bedd25 fix a harmless typo in ngx_http_lua_run_thread REVERT: 943b3fe7a9 Merge branch 'init' REVERT: ae9b7893c7 enlarged the timeout setting for TEST 16 in 082-body-filter.t to make it less possible to fail in slow testing modes. REVERT: 8149324c2a feature: enabled print() and ngx.log() in the context of init_by_lua*. REVERT: 15ec277585 bugfix: init_by_lua* might result in segmentation faults when multiple lua_shared_dict instances are defined. REVERT: f4a15e29ad feature: added new directives init_by_lua and init_by_lua_file. REVERT: ab41caaf5c feature: now we print backtrace to error.log when Lua errors happen in body_filter_by_lua*. REVERT: dae23ad7dc fixed the test plan in t/041-header-filter.t. REVERT: 240fc4ab32 feature: now we print backtrace to error.log when Lua errors happen in header_filter_by_lua*. REVERT: b75195c407 fixed the test plan in 001-set.t. REVERT: 97ba958d00 feature: now we print backtrace to error.log when Lua errors happen in set_by_lua*. REVERT: e876411bd2 feature: now we print traceback to error.log when Lua errors happens in log_by_lua*. REVERT: 7ce7fb2e29 coding style fixes in ngx_http_lua_socket_tcp.c. REVERT: 924d093eaf Merge branch 'master' into backtrace REVERT: c035746310 Merge branch 'udp-socket' REVERT: f8074dca43 renamed ngx_http_lua_debug_traceback to ngx_http_lua_thread_traceback, and other naming changes. REVERT: dbc4ca7646 renamed ngx_http_lua_debug_traceback to ngx_http_lua_thread_traceback, and other naming changes. REVERT: 2902f9ff2a Merge branch 'master' into udp-socket REVERT: 5a539500c1 bugfix: upstream data buffers were not marked as fully consumed when body_filter_by_lua* is used and ngx.arg[1] is overritten. this could result in connection hang for large response bodies. thanks Tzury Bar Yochay for reporting this issue. REVERT: 418024960d updated .gitignore. REVERT: a04e204d07 renamed ngx_http_lua_socket* to ngx_http_lua_socket_tcp* to prepare for the udp cosocket API addition. REVERT: a96dd55152 bumped version to 0.5.4. REVERT: d2dc908390 optimize: fixed the initial table size for ngx.req. REVERT: 9ae5a3435a Merge branch 'master' into req-body REVERT: 3074fddd12 fixed some english grammatical issues in the comments. REVERT: e1e5b7f3b7 use ngx_memzero instead of memset in the previous patch from chaoslawful. REVERT: 47eff35e91 bugfix: fix issue #132 dereferencing type-punned pointer will break strict-aliasing rules REVERT: 538b97ae92 updated docs to reflect recent changes. REVERT: 0178d4e7b8 bugfix: ngx.say and ngx.print might cause nginx to crash when table-typed arguments were given. thanks sztanpet for reporting this in github issue #54. REVERT: 0428b88fc3 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: c2d095a1f8 added some (passing) tests for "location if" compatibilities. REVERT: f73785c643 updated docs to reflect recent changes. REVERT: 09f063024b fixed an issue in the test case in 082-body-filter.t: we should not use "echo" and "content_by_lua" in the same location. REVERT: 553432b593 bugfix: header_filter_by_lua* did not run at all when body_filter_by_lua* is defined at the same time. thanks Tzury Bar Yochay for reporting this issue. REVERT: 5d59d498a5 reindexed the test in t/041-header-filter.t. REVERT: 9f633c860e added a (passing) test for clearing the Content-Length response header in header_filter_by_lua. REVERT: 0ff8afe0e2 fixed test cases that rely on the old (broken) HTTP 1.0 support in ngx_echo. REVERT: 7d6547aeb5 docs: added more documentation for the Lua/LuaJIT raw bytecode support. thanks Wayne. REVERT: 17fbfb7712 optimize: merged two successive nginx pool allocations in ngx_http_lua_socket_resolve_handler to reduce overhead. REVERT: 37a9fcd87d bumped version number to v0.5.1. REVERT: a35ff3636e ngx.req.init_body: when the size argument is specified, honor that exactly; when the size argument is omitted, use the same logic as ngx_http_read_client_request_body to calculate the buffer size. REVERT: 3a8d8dadcf Merge branch 'master' into req-body REVERT: 0bb38b0bd1 made tests less possible to fail in tcp-socket-timeout.t when the DNS nameserver happens to be slow. REVERT: cd0139dc9a fixed some coding style issues. REVERT: a8e1f16f06 docs: redocumented the "inclusive" option for the cosocket:receiveuntil method. REVERT: c4d5e3a24d Merge branch 'master' into inclusive REVERT: e0a6a36c79 added a (passing) test for default_type + charset + content_by_lua. REVERT: 2b6c95cfe9 updated README and README.markdown by the tools. REVERT: 5654520515 bumped version number to v0.5.0rc32. REVERT: 0eba3537bb Merge branch 'master' into inclusive REVERT: e0cabf0438 added more (passing) tests for the "inclusive" option of cosocket:receiveuntil(). REVERT: 2b8ea405f5 improved the error handling of the "inclusive" option for cosocket:receiveuntil and also added some test for this. removed the tests for the "inclusive" option to a separate test file, 084-inclusive-receiveuntil.t. REVERT: 2174ed2e58 fixed a bad test case in 083-bad-sock-self.t. REVERT: 9905167e32 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 51bc8fb496 bugfix: the lua VM might crash when calling the cosocket methods with a bad-typed self argument. REVERT: 5545cfaad5 Merge branch 'master' into inclusive REVERT: cdb6a6f94a fixed a coding style issue in the previous commit. REVERT: 146fe0c614 bugfix: the zero-size buffer alert could occur in body_filter_by_lua* when the current buf is a special "eof" buf and the user has turned off the "eof" flag by assigning false to ngx.arg[2]. REVERT: cea3929874 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: c66daf057a Merge remote-tracking branch 'jinglong/bytecode' into bytecode REVERT: bad3eee543 Use more descriptive names in ngx_http_lua_clfactory.c(like LUA_LITTLE_ENDIAN_4BYTES_CODE) REVERT: 33e62fcf33 docs: documented the body_filter_by_lua* directives and the new bytecode file loading support. REVERT: d92a14d7b8 Merge branch 'master' into body-filter REVERT: 5fa0dbc1fd merged jinglong's "bytecode" branch into "master". REVERT: 1c6280f578 docs: documented the lua_transform_underscores_in_response_headers directive. REVERT: f81ceeb406 feature: added new directive lua_transform_underscores_in_response_headers. thanks Kindy Lin. REVERT: b09b8ee445 1,fix a bug in loading bytecode(faild to load no-stripped bytecode of luajit) REVERT: 55153ceaf8 fixed the test plan in t/082-body-filter.t. REVERT: f9e534f059 Merge remote-tracking branch 'origin/master' into body-filter REVERT: 9cabf1c4af minor tweaks of the error messages and coding style issues in the byte-code support patch from jinglong in github pull #124. REVERT: 3e9984a031 various coding style fixes. REVERT: 71467020dd added (passing) tests for the on-demand handler registration of body_filter_by_lua*. REVERT: 2a63a168bd docs: added a note for installation with lua 5.1 on ubuntu 11.10. thanks Dan Sosedoff. REVERT: 81964d5a89 bufix: fixed the directive context for set_by_lua and set_by_lua_file. they really work in the contexts "server", "server if", "location", and "location if". thanks Liu Taihua. REVERT: 119b85e162 feature: the lua statement "return ngx.ERROR" can now be used to abort the output stream in body_filter_by_lua*. REVERT: 91b23e692f feature: ngx.arg[1] now also accepts a lua table of lua strings as its new value. REVERT: 9f488b0ecb feature: ngx.arg[1] and ngx.arg[2] now support overwriting in body_filter_by_lua*. REVERT: 5591fb0cbc Merge remote-tracking branch 'origin/master' into body-filter REVERT: 19c803d766 merged "master" into "body-filter". REVERT: 6183ad4f53 docs: fixed a typo: ngx.now returns time of the resolution of milliseonds, rather than microseconds. thanks Wang Xi. REVERT: dffaf4896a fixed the test "unexpected globals sharing by using _G (header_filter_by_lua*)" by chaoslawful which did not really test what it was supposed to test. REVERT: 6ef34e54f2 bugfix: lua main thread stack might leak when header_filter_by_lua* is used. REVERT: 1ecb2f40c7 bugfix: too many values on the lua stack might be concatenated when generating backtraces for lua errors and the lua vm would crash when there happened to be values on the stack that could not be concatenated (like nil). stylefix: renamed the debug_traceback function to ngx_http_lua_debug_traceback. optimize: eliminated unnecessary string concatenations when generating backtraces for lua errors. REVERT: 46019a2714 reindexed the tests in t/075-logby.t. REVERT: dff9bb8984 fixed the test plan for 081-bytecode.t for the "check leak" testing mode. REVERT: 172fe05aa7 Merge remote-tracking branch 'upstream/master' into inclusive REVERT: 2e90054ca6 Merge remote-tracking branch 'upstream/master' into req-body REVERT: 5c14bcd251 Adding code similar to nginx core, to prevent allocating buffers much larger than the request itself. REVERT: 427d3d572d Update code, still using GLOBALS_SYMBOL_REQUEST. See Commit 89a997. REVERT: 5078b14431 bugfix: the ngx.arg API was not usable within external lua module files in set_by_lua*. diagnosis: now we issue user-friendly error messages when the nginx lua APIs are used in the wrong directive contexts (e.g., using ngx.location.capture in set_by_lua*). REVERT: 4e4e0b32c9 fixed more coding style issues in common.h. REVERT: 64912a7b2d fixed coding style issues in common.h. REVERT: 725c3a14e4 renamed ngx_http_lua_create_ng_table to ngx_http_lua_create_new_global_table; also fixed some coding style issues in 001-set.t. REVERT: b42f6c8c56 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: acb1b47aaa minor coding style fixes in ngx_http_lua_logby.c. REVERT: 6ce7490d64 Merge branch 'master' into body-filter REVERT: 3520a90a6f merge conflictions REVERT: e5363496e4 bugfix: ngx.arg could not be used in user lua modules. REVERT: 9bcb50325f feature: initial cut on the body_filter_by_lua and body_filter_by_lua_file directives. REVERT: 6c650fafd1 bugfix: fixed unexpected globals sharing by using _G in log_by/header_filter_by/set_by REVERT: fede5ccb58 minor coding style fixes in ngx_http_lua_logby.c. REVERT: 02824efe05 Merge pull request #124 from jinglong/bytecode REVERT: c5fde025d4 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 40af5cdd85 cleaned up the "config" file, making lines shorter and easier to merge. thanks Matthieu Tourne for the patch. REVERT: 656f6e2721 eliminated including C headers that we do not actually use. REVERT: 5347f9174d Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 08b0433d0f bugfix: fixed unexpected globals sharing by using _G REVERT: 8481276e1a optimize: now we register the "ndk" and "ngx" lua tables for log_by_lua* at config time rather than request time. this gives significant performance boost. also improved error handling in log_by_lua*. REVERT: f3a3757c26 enforced lua garbage collection full cycles in those shdict test cases to prevent memory leak false alarms. REVERT: 294ba6fe67 1, fix code style REVERT: b79953e0ed fix merge conflict REVERT: 9ea8ba052a add simple test for coroutine support REVERT: f4ed28d2db improved lua error handling in header_filter_by_lua*. REVERT: 0f652c040c optimze: explicitly specified non-zero initial size for certain lua tables. REVERT: 7ce0102d1f optimize: now we register the "ndk" and "ngx" lua tables for header_filter_by_lua* at config time rather than request time. this gives significant performance boost. REVERT: b8e5b02194 fixed the "ngx" table initial size for set_by_lua*. REVERT: f196863306 optimize: now we initialize the "ngx" and "ndk" tables at config time instead of at request time. bugfix: the lua vm crash protection based on longjmp for set_by_lua* was not really working. REVERT: d6d7f872a9 renamed function init_ngx_lua_registry to ngx_http_lua_init_registry, and init_ngx_lua_globals to ngx_http_lua_init_globals. REVERT: df104f916e optimize: now we store the metatables for ngx.req.socket() and ngx.socket.tcp() objects into the lua registry. REVERT: 89a997acac optimize: changed the string keys to light user data for various tracking tables (coroutines table, regex cache table, cosocket connection pool table, ngx.ctx table, and etc). This gives minor performance improvement from eliminating key hashing and etc. thanks Dirk Feytons. REVERT: 5cc8fd50fa fixed a typo in program comments. thanks Dirk Feytons. REVERT: f7f744efd6 Fix typos in error message. REVERT: 1ce845313f docs: fixed the sample code for log_by_lua. REVERT: 7292647a75 docs: marked the APIs that are available in the log_by_lua* context. REVERT: ead78b766d bumped version to 0.5.0rc31. REVERT: 1bf725345b updated the docs for log_by_lua and log_by_lua_file. REVERT: 285b72716e bugfix: memory leak would happen when accessing a location using ngx.ctx in Lua contexts other than log_by_lua* but there is also another location that uses log_by_lua*. REVERT: 445b916a72 bugfix: header_filter_by_lua would leak memory when it is the only directive of ngx_lua configured in a location *AND* ngx.ctx is used. REVERT: 113c65818f reindexed the test numbers in t/025-codecache.t. REVERT: c8063a8bb7 updated .gitignore again. REVERT: cd825f51cf updated .gitignore. REVERT: 2a3d31d38e Merge branch 'logby' REVERT: 3b1e9aaff7 updated docs to reflect recent changes. REVERT: a58ebf89f7 1, add more test cases for loading bytecode REVERT: 76dcccdfd5 updated valgrind.suppress for linux i386. REVERT: cfd3a0e439 now we use environments in the developer build script instead of hard-coded paths. REVERT: e72096a478 1, check the version when loading bytecode REVERT: fa64f36281 added downstream cosocket tests for the rewrite phase. REVERT: 429b603c5e optimize: now we no longer call ngx_http_post_request to wake up the request associated with the current cosocket upstream from within the cosocket upstream event handlers, but rather call r->write_event_handler directly. this change can also make backtraces more meaningful because we perserve the original calling stack. REVERT: 54d8736f6d added cosocket tests for lua code running at the rewrite phase. REVERT: 26db2dda18 bugfix: cosocket:connect() might hang on socket creation errors or segfault later due to left-over state flags. REVERT: 39b9138cfa 1, add a test case for loading bytecode REVERT: 1099cd3b62 minor fixes in cosocket. REVERT: 2a418d8bbb 1, add support for loading bytecode(both lua and luajit) REVERT: 802e95b301 bugfix: the _G special table did not get cleared when lua_code_cache is turned off. thanks Moven. REVERT: 95857be6f0 feature: ngx.log() now checks if the log level number is in the valid range (0 ~ 8). thanks Xiaoyu Chen (smallfish) for suggesting this. REVERT: 154f5af33b fixed the newly added test case for log_by_lua + shared dict. REVERT: 7ba84a74a1 Merge branch 'master' into logby REVERT: 2afa6bfb3a added one (passing) test for log_by_lua + shared dict. REVERT: 86f97f00b1 bugfix: ngx.sub() could leak memory when the "replace" template argument string is not well formed and the "o" regex option is specified. this issue was caught by Test::Nginx::Socket when setting environment TEST_NGINX_CHECK_LEAK=1. REVERT: fd681f8d07 bugfix: fixed a compilation error in the previous commit. REVERT: b30b56cf3d bugfix: ngx.re.gmatch leaked memory when the "o" option was not specified. this bug was caught by Test::Nginx::Socket when setting the environment TEST_NGINX_CHECK_LEAK=1. REVERT: 9c96a3aafb Merge branch 'master' into leak REVERT: f9e61f0447 docs: massive wording improvements from the nginx wiki site. thanks Dayo. REVERT: f74372491b Merge branch 'master' into leak REVERT: d2d1904b6e fixed test plan for 056-flush.t for the "check leak" testing mode. REVERT: 8c0221fc0d fixed test plan for 056-flush.t for the "check leak" testing mode. REVERT: a058363c1d fixed another issue in the test case for the memory leak issue that was in receiveuntil(). REVERT: d803598149 fixed an issue in the test case for the memory leak issue that was in receiveuntil(). REVERT: 225fc72fc8 fixed invalid HTTP request headers in the req-body test cases. REVERT: 1aab859283 bugfix: receiveuntil could leak memory, especially for long pattern string arguments. this bug was caught by Test::Nginx::Socket when setting the environment TEST_NGINX_CHECK_LEAK=1. REVERT: 6440e4e61b updated valgrind.suppress further for linux i386. REVERT: c7374aaa38 updated valgrind.suppress for the "hup reload" + valgrind/memcheck testing mode. REVERT: a8dd2d70ef added 080-hup-shdict.t to test if the data in shared dict is survived through nginx HUP reload. also updated valgrind.suppress accordingly. REVERT: 9fbba9aeb6 added tests for the on-demand handler registration mechansim for log_by_lua*. REVERT: dbac005035 resolved conflicts while merging "master" into "logby". we now adopt the new on-demand handler registration mechansim for our log_by_lua* directives. REVERT: a287451c11 Refactored on-demand handler registration REVERT: acb1cde11a minor coding style fixes in capturefilter.c. REVERT: e1a91744d6 reindexed tests in 079-unused-directives.t REVERT: ce09217899 added tests for handlers registered on-demand (i.e., determined whether their config directives are actually used in nginx.conf). REVERT: 564d2bb8c1 minor coding style fixes and debug log message adjustments. REVERT: 6d2e7a0f67 Merge branch 'master' into logby REVERT: a830b61eb8 078-hup-vars.t: no need to use the debug log level. REVERT: a486c4cf00 added tests for the nginx core bug regarding nginx variables under HUP reload: http://mailman.nginx.org/pipermail/nginx-devel/2012-May/002223.html REVERT: ab5069e5d6 merged branch "master" into "logby". REVERT: 1075c325ee fixed tests to work-around an issue with nginx listening on a unix domain socket (we have to remove the socket file before sending HUP). REVERT: f1548c48df fixed tests to work-around an issue with nginx listening on a unix domain socket (we have to remove the socket file before sending HUP). REVERT: c503785625 fixed ngx. table initial size for content/rewrite/access_by_lua*. REVERT: 6ab79176d0 Reverting to da5e60c949dcd4d8ed68b838aaf681a933c3bae7 REVERT: 609255f1b1 Merge branch 'cleanup' REVERT: d6ef8d61ab Cleanup config, make line shorter and easier to merge Adding cleanup branch for potential other style refactoring REVERT: 104b80949f Merge remote-tracking branch 'upstream/master' REVERT: da5e60c949 fixed tests for floating point number inaccuracy issues on linux i836. REVERT: e49edfa9d3 fixed typos in the tests. REVERT: 54a0e568c0 minor optimizations in ngx.sleep handling. REVERT: a89d8ce471 added more tests for calling ngx.location.capture before and after ngx.sleep. REVERT: 2362917a68 updated docs to reflect changes (including documenting ngx.sleep.) REVERT: c5be5ff2f4 optimize: fixed the ngx. table initial size. REVERT: d6ba6b4505 renamed t/074-sleep.t to t/077-sleep.t because we already have t/074-prefix-var.t (from the "prefix-var" branch). REVERT: 4e7379f93f reindexed the test numbers via the "reindex" script. REVERT: cc3de56b1e Merge branch 'master' into sleep REVERT: 5a55dd6f42 bugfix: fixed various issues in jinglong's patch for adding ngx.sleep() in github pull request #120. REVERT: 6446ee71b8 documented the rewrite_by_lua_no_postpone directive. REVERT: 8f6fab6218 Merge branch 'master' into no-postpone REVERT: e7754953d6 updated docs to reflect recent changes. REVERT: 8e750fa1bc bugfix: the receiveuntil iterators would have memory issues with very small lua_socket_buffer_size settings in the inclusive mode. REVERT: 1f8c3818ff Adding test for inclusive mode REVERT: 8f306812a5 Fix receiveuntil("pattern", { inclusive = false }) REVERT: 05dee24fae Adding documentation for the receiveuntil option { inclusive = true } REVERT: d509d07ec2 Adding logic for the receiveuntil option { inclusive = true } REVERT: 92b47f9da6 fixed typos in the test case names in 075-logby.t REVERT: 6e732efe68 1, fix a bug in sleep() (the number of argument must be 1) REVERT: b2481bebea 1, update t/062-count.t(total count of ngx.* to 88) 2, update t/074-sleep.t REVERT: 080990db7c 1,add test cases for ngx.sleep() REVERT: 4c207e5403 1, add ngx.sleep() REVERT: 0782f475c7 merged from master REVERT: 2fd7a3a503 initial implementation works REVERT: 3ac6f26141 various coding style fixes in Matthieu Tourne's patch for adding ngx.req.init_body(), ngx.req.append_body(), and ngx.req.finish_body(). also made the size argument optional in ngx.req.init_body() in which case the client_body_buffer_size configuration is honored. REVERT: 2057997368 Adding ngx.req.init_body() ngx.req.append_body() ngx.req.finish_body() REVERT: 46aa878051 fixed coding style in Matthieu Tourne's patch for adding the rewrite_by_lua_no_postpone directive; also added some tests for it. REVERT: 436cd30a95 Adding directive rewrite_no_postpone REVERT: b241806f23 Merge branch 'master' into logby REVERT: f229fccc52 various fixes in ngx.decode_args(). REVERT: df2ec5acfc added tests for the optional max_args argument to ngx.decode_args(); also documented this optional argument. REVERT: 56d992b1aa docs: documented how relative paths are processed when *_by_lua_file directives are used; also documented the $prefix and ${prefix} notations in lua_package_path and lua_package_cpath directive values. REVERT: 5be3f2b365 Merge branch 'master' into prefix-var REVERT: 3d6f752a0f docs: updated docs to reflect recent changes in set_by_lua. REVERT: 89ba489830 Merge branch 'master' into setby REVERT: 47ec23a33e updated docs to reflect recent changes in the logging API. REVERT: e9cb510437 fixed a test case in 009-log.t for luajit 2.0. REVERT: d823b84542 Merge branch 'master' into logging REVERT: 2bd1f0f80e updated docs to reflect recent changes. REVERT: 732fe370a6 added many more tests for log_by_lua* and also fixed issues with ngx.ctx in log_by_lua*. REVERT: 447c7488b3 fixed some coding style issues in Matthieu Tourne's patch for log_by_lua* and also added a simple test for log_by_lua. REVERT: 3987107006 Adding log_by_lua and log_by_lua_file and documentation REVERT: fd193aa4c5 fixed ngx. table initial size for ngx.decode_args(). REVERT: 77ca488a52 Adding documentation for ngx.decode_args() REVERT: 6a61f43845 added some tests for ngx.decode_args(). REVERT: ecd83e9a1b minor coding style fixes in Matthieu Tourne's patch for adding ngx.decode_args(). REVERT: 674b8709a3 Add ngx.decode_args() REVERT: 4b4f48007e resolved conflicts while merging master into prefix-var. REVERT: 2178f0bac5 updated README and README.markdown to reflect recent changes in both the .wiki doc and wiki2markdown.pl. REVERT: 69a3d8970a Merge pull request #118 from zhuzhaoyuan/master REVERT: c5016c17f9 Fixing incorrect merge from prefix-var branch REVERT: 886792c5fe Adding documentation for ngx.decode_args() REVERT: 50f47a99b2 Merge branch 'devel' REVERT: d0f5ed3630 Merge remote-tracking branch 'upstream/prefix-var' REVERT: 849ca03dc2 Merge remote-tracking branch 'upstream/logging' REVERT: cb5c37ec76 generated README.markdown by using wiki2markdown.pl REVERT: b1ca2dd5b0 updated the wiki file (http://wiki.nginx.org/HttpLuaModule had been updated) REVERT: a3524ab96b synchronized the wiki from http://wiki.nginx.org/HttpLuaModule REVERT: 54d4b8fe15 Merge branch 'master' of https://github.com/chaoslawful/lua-nginx-module REVERT: 087694f4a2 feature: special nginx variable $prefix is now available in the lua_package_path and lua_package_cpath, which evaluates to the server prefix string (as specified by the -p PREFIX command-line option of the "nginx" executable). thanks Matthieu Tourne for the patch. REVERT: efb33ad7cb added a leading comment to README.markdown to indicate that is is generated automatically. REVERT: 1e6de3d933 optimize: eliminated unnecessary lua-side operations in ngx.log() and print(). REVERT: 33b3d45ea6 modified the message prefix of print() from "[lua] print: " to just "[lua] "; also updated tests to reflect recent changes. REVERT: 932a748a41 Merge remote-tracking branch 'upstream/logging' REVERT: 227b9c3efd Merge remote-tracking branch 'upstream/master' REVERT: 0a258abde2 fixed some typos REVERT: 0538286ea6 Merge pull request #117 from zhuzhaoyuan/master REVERT: 77c715d454 fixed some minor grammatical errors REVERT: 5f1c7c32ce lua -> Lua REVERT: fd0fa3e54d Merge branch 'master' of https://github.com/chaoslawful/lua-nginx-module REVERT: 2ca579687d Merge pull request #116 from dirkfeytons/master REVERT: 34d6f7da0b bugfix: the set_by_lua directive did support nginx variable interpolation and there was no easy way to use the dollar sign characters in the literal Lua source. the set_by_lua_file directive still supports nginx variable interpoloation in its lua file path argument. thanks Vittly for reporting this in github issue #111 and jinglong for the test in github pull #115. REVERT: edd3e3f629 Only include lua_regex_cache_max_entries if NGX_PCRE is defined. REVERT: 2cd7586ce7 feature: added the "[lua]" prefix to the log messages produced by ngx.log() and print(). thanks Matthieu Tourne for the patch. REVERT: 28da7e3f9b changed the chunk name of set_by_lua from "set_by_lua_inline" to "set_by_lua". REVERT: f75f20d186 feature: ngx.log() and print() now output more debugging info, i.e., the current lua source file name (if any), the current source line number, and the current calling lua function name (if any), into the nginx error.log file. thanks Matthieu Tourne for the patch. REVERT: f8e612af32 changed the chunk name of set_by_lua from "set_by_lua_inline" to "set_by_lua". REVERT: 57a189a552 Merge pull request #114 from monadbobo/master REVERT: 8e2e4a9e72 remove some dead assignment via scan-build. REVERT: e841106d16 added a (passing) test for setting ngx.header.content_encoding that should bypass the ngx_gzip output filter. REVERT: c465d2bdc6 Add ngx.decode_args() REVERT: 57e8d99917 added a (passing) test case for cosocket:send(""), that is, sending an empty string. REVERT: a3961fe7bc bugfix: cosocket:receive(0) was not allowed and would throw an error saying "0" is a bad pattern. thanks huang kun for reporting this issue. REVERT: ca3239a25d Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: cd04674b83 deleted a reduntant blank line REVERT: c4f3716711 fixed minor coding styles REVERT: 54f5a70d72 deleted a reduntant blank line REVERT: 4174f0c6b5 fixed minor coding styles REVERT: 61960c5ade Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 0d1db00cf6 remove duplicate string conversion REVERT: 7a7ac79f3d removed dead code found by Simon Liu. REVERT: d457e01b24 enlarged the timeout threshold of TEST 10 in 027-multi-capture.t. REVERT: a7bd2ef07b enlarged the resolver timeout for TEST 4 in 058-tcp-socket.t. REVERT: a11ba9b040 enlarged the timeout threshold of TEST 5 in 067-req-socket.t. REVERT: 3584b61d25 Merge remote-tracking branch 'zhuzhaoyuan/master' REVERT: fbbc89d93c cosocket: simplified the code for downstream cosockets a bit. REVERT: 8e24cd1ef8 Merge remote-tracking branch 'upstream/master' REVERT: 581e0495bf lua -> Lua, luajit -> LuaJIT, and fixed some minor typos REVERT: a34f9b6ea5 bugfix: gcc 4.6 complaint about comparing size_t values with off_t values. REVERT: 754d547ca1 bugfix: ngx.req.socket() did not honor the "Expect: 100-continue" request header and could hang. thanks Matthieu Tourne for the patch in pull request #107. REVERT: 21450b7c58 bugfix: the ngx.req.socket() object (i.e., the downstream cosocket object) did not work with HTTP 1.1 pipelined requests at all. REVERT: e7f56d0214 bugfix: downstream cosockets might lose the last part of the request body when receiving data. this regression had appeared in v0.5.0rc25. thanks Matthieu Tourne for reporting it. REVERT: 9144d24876 Fix receiveuntil("pattern", { inclusive = false }) REVERT: 8cd749f33e Adding failing test REVERT: 8e6877379c minor coding style fixes in the patch for adding Lua backtraces. also added 073-backtrace.t to test it. see github pull request #107. REVERT: f079f8b3a1 Adding trace to errors REVERT: dbe0dc4e4f now we call ngx_http_lua_socket_finalize in cosocket:setkeepalive() to help buffer reuse. REVERT: d00976d807 bugfix: nginx could crash on request fialization when running the cosocket cleanup handler due to the lack of check of the ctx pointer. thanks shaneeb for reporting this in github issue #110. REVERT: b440e5b2db updated t/024-access/exit.t a bit. REVERT: d4b111b617 Merge remote-tracking branch 'upstream/master' REVERT: 8f1b3d9aa3 added a test for If-Unmodified-Since and 412 error page. REVERT: eeb1816c65 optimize: now ngx.log is much faster when the log level argument is lower than the actual error_log level specified in nginx.conf. thanks Matthieu Tourne for providing the patch. REVERT: 02b1db9e53 minor optimizations. REVERT: 0ceb1045f1 added (passing) tests for conditional GET requests. REVERT: decdf01290 added error log tests to t/044-req-body.t. REVERT: e9a5eb1a08 bugfix: ngx.req.get_body_data() could not handle multi-buffer request bodies and discarded the body data after the first buffer. REVERT: df32739d00 fixed test index in 024-access/subrequest.t. REVERT: 8e2faf71b1 added tests to expose the bug in the nginx core reported by drdrxp in agentzh/nginx-eval-module#1. REVERT: becf72a1a5 added a (passing) test for github issue #110. REVERT: 34a36afa1d Adding documentation for the receiveuntil option { inclusive = true } REVERT: 20b3395712 Adding logic for the receiveuntil option { inclusive = true } REVERT: ef8e2bf8cb Adding test for inclusive mode REVERT: add1a0ad8a updated .gitignore. REVERT: 9e935ee316 add skeleton of coroutine api REVERT: 2db0ae3061 Merge remote-tracking branch 'upstream/master' REVERT: 77eb003330 Adding README.markdown REVERT: 1901199ad2 Adding log_by_lua and log_by_lua_file and documentation REVERT: 8d287851e4 bugfix: the previous patch for using ngx.ctx in set_by_lua* could result in memory leaks; now we ensure that the request cleanup handler is always registered when set_by_lua* is used. REVERT: ef9112084a added error log tests to 033-ctx.t. REVERT: bee1cabcba bugfix: ngx.ctx was not accessible at all in set_by_lua*. thanks Pierre. REVERT: 4e56036c26 minor code refactoring. REVERT: 004b7c8ba4 bugfix: fixed typo "on-array", which should be "non-array", in an error message. REVERT: 6de0c1c6c9 bugfix: cosocket connections from the connection pool might lead to segfaults if it is not used immediately. thanks xukaifu for reporting this as github issue #108. REVERT: 370955d214 removed too restrict timeout settings in the test suite. REVERT: c7ec9c97d9 bugfix: debug logging in the cosocket receive line method could lead to invalid memory reads under extreme network conditions. this issue was caught by mockeagain in reading mode. REVERT: f3f561f1ea updated valgrind.suppress for linux i386 further. REVERT: 76bf73c7e0 updated valgrind.suppress. REVERT: 200bac2c2a test: enlarged resolver timeout for the cosocket tests even more. REVERT: 7667027d45 enlarged resolver timeout for the cosocket tests. REVERT: d611eeee7b added more error_log tests for the cosocket tests. REVERT: 776f4999d6 Merge remote-tracking branch 'upstream/master' REVERT: e0eea5355c Fix issues with POST using http 1.1 (test for expect) REVERT: b80b502be0 Adding ngx.req.init_body() ngx.req.append_body() ngx.req.finish_body() REVERT: a12d72f25e Adding "variable" $ngx_prefix to lua_package_path REVERT: 2ee6f4694d Adding trace to errors REVERT: fa3eeb01ab Adding directive rewrite_no_postpone REVERT: 2bb9d6fd8b still use 2 sec as the resolver timeout setting in 058-tcp-socket.t TEST 8. REVERT: e442e7661e fixed tests for mockeagain in reading mode. REVERT: 00d05f26d8 bugfix: downstream cosockets might hang on the receive(size) method call for slow connections. mockeagain in reading mode caught this issue. REVERT: 1c0e24a3ce various fixes in the test suite. REVERT: 4591dc7049 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 6667bf6280 feature: made ngx_http_lua_api.h visible to other nginx modules by adding src/api to the CORE_INCS variable value in the config file. thanks Brian Akins for suggesting this in github issue #105. REVERT: 8a6fc75fa7 change lua_pop macro to lua_settop function in gdbinit script REVERT: a84e94623b added support for PCRE_INC and PCRE_LIB to the developer build script. REVERT: 1cb522d499 fixed the developer build script. REVERT: f5aaee3d6c updated .gitignore. REVERT: 43cac16e51 renamed ngx_http_lua_add_preload to ngx_http_lua_add_package_preload; also added new public C API ngx_http_lua_get_global_state, as suggested by Brian Akins in github issue #100. REVERT: 6e92774042 minor code refactoring: we no longer include ddebug.h in common.h; and we put publich API functions into ngx_http_lua_api.h and ngx_http_lua_api.c. REVERT: 5692c8f391 Merge pull request #101 from bakins/ngx_http_lua_add_preload REVERT: caecbe2e5f add gdbinit script to ease lua debugging REVERT: 95aa6577c7 Merge branch 'master' of https://github.com/chaoslawful/lua-nginx-module REVERT: 6ff5df6160 updated docs to reflect recent changes (documented the ngx.HTTP_OPTIONS constant). REVERT: 68638bd3a3 feature: added new constant ngx.HTTP_OPTIONS for the HTTP OPTIONS method; also added support for OPTIONS method in the subrequest capture APIs. thanks Jónas Tryggvi Jóhannsson for requesting this in github issue #102. REVERT: 2b3f5f90e4 bugfix: we no longer forcibly quit the lua threads by clearing out its environment and running it blindly to the end because Lua GC will collect all those unfinished coroutines anyway. REVERT: 4cfc2488f4 bugfix: improved the longjmp handling. REVERT: 31378f14fc add ngx_http_lua_get_request REVERT: f7003733b4 add ngx_http_lua_add_preload REVERT: e96822a5ad bugfix: certain compilers might complain about missing declarations for types like int8_t. now we explicitly included stdint.h. thanks runner-mei for reporting it in github issue #98. REVERT: 19bd32224b cosocket: various optimizations in timeout handling. this gives about 2.5+% performance boost in some benchmarks using lua-resty-redis and lua-resty-mysql. REVERT: c746674070 updated docs to reflect recent changes. REVERT: bbac7d623b bugfix: made the sha1 library an optional dependency, as suggested by runner-mei in github issue #94. REVERT: 1a1cde4caa fixed a coding style issue: we did not declare C variables at the beginning of the current code block in ngx_http_lua_del_thread, reported by runner-mei in github issue #93. REVERT: e84711d082 bugfix: incorrectly used ngx_conf_log_error by using NGX_ERROR as the first argument, as reported by runner-mei in github issue #92. REVERT: 37f749eb2c fixed typos in lua exception messages. REVERT: 2ac3aa2a05 updated docs to reflect recent changes. REVERT: c9c5f9486f Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: b4c2a37d38 fixed 061-lua-redis.t a bit. REVERT: 1dc6c21e4f minor coding style fixes. REVERT: 6de0dae34a feature: added new directive lua_http10_buffering which is on by default. REVERT: 58cd006b08 fixed a test case in 024-access/satisfy.t. REVERT: ee0bf0b89d feature: added new constant ngx.DECLINED. bugfix: access_by_lua could not work with the "satisfy" config directive. REVERT: b6a6d5b1bf Merge branch 'master' of https://github.com/chaoslawful/lua-nginx-module REVERT: 04332d929d optimize: now we recycle the special flush buf and chain link for ngx.flush() to prevent request-scoped memory leaks when emitting long data streams to the downstream. REVERT: 58cd7f0f25 added a (passing) test case for multi-value args to ngx.req.set_uri_args. REVERT: 3dfd00aff2 bugfix: timestamp could overflow on 32-bit systems in the shared dict API; now we use 64-bit integers. REVERT: fcfdd73d24 documented the shdict:flush_all() method. REVERT: ae7b5e9729 shdict: now we aggressively remove three items from the store in the flush_all method. REVERT: 17bb70935e improved Weiqiang Li's patch by fixing the coding style and avoiding unnecessary operations. also added a test case for the new flush_all method. REVERT: f5d9b6c907 add flush_all api to shared dict REVERT: 2b37a7c7a1 docs: documented the max concurrent subrequest count limitation and max error log line size limit. REVERT: 9da8286dff added a test case for emitting large messages via ngx.log(). REVERT: 215a9f7af5 updated docs to reflect recent changes. REVERT: 3ff937f3ae bugfix: the shared dict storage might leak memory in the store: ngx_http_lua_shdict_lookup incorrectly assumed that nodes with identical keys are linked together, which might not be true after tree rebalance. thanks the patch from Lanshun Zhou. REVERT: 2610206460 optimize: removed a redundant piece of code for subrequest headers_in fixes in ngx_http_lua_adjust_subrequest. REVERT: f21bd80b0f bumped the version number in docs. REVERT: 99b02286f7 now we use the buf tag literal everywhere and removed the "tag" field from the location conf struct. REVERT: ec4becfead bugfix: the exptime argument to shdict:set/add/etc methods was incorrectly ignored when the flags argument is also specified. thanks the patch from Brian Akins. REVERT: 81f1d7ca4a fixed typos in docs. thanks 王斌. REVERT: 6c713ea689 removed an unnecessary line of code. REVERT: 34f8f272c1 updated docs to reflect recent changes. REVERT: cdcbef3101 Merge branch 'master' into cosocket REVERT: ef311cd1c7 updated developer build script. REVERT: 003650d1b1 bugfix: fixed a debug log message. REVERT: e8aa2495f3 bugfix: for big input data, the cosocket reading methods could result in crashes due to incorrect use of luaL_Buffer. now we eliminate luaL_Buffer altogether by managing the recv buffers ourselves. the recv buffers can also be recycled. REVERT: 87ebe182f4 updated the developer build script. REVERT: 32e8ad4e14 bugfix: fixed various typos in source comments also avoided using luaL_checkstring which could do another longjump on its own. thanks 王斌. REVERT: 67c79c0d25 added tests for cycled subrequests; also increased the "repeat_each" count in 027-multi-capture.t to make an issue with too small MAX_SUBREQUESTS easier to reproduce. REVERT: aaab8c750b fixed shdict tests on i386; also ensure to configure "postpone_output 1" for the sync flush test case that requires buf reuse. REVERT: e7f8eb729e bugfix: tcpsocket:setkeepalive() will return errors when the current connection has readable data or there is still unread data in the ngx_lua upstream buffer. bugfix: cosocket methods no longer explicitly return nil error strings upon success. REVERT: ae6b59a0ac refactored the test suite a bit. REVERT: aa4bd38780 bugfix: when the parent request takes a request body, the subrequest does not take any bodies, and the subrequest's method is neither "PUT" nor "POST", then the subrequest will no longer inherit the parent request's request body. thanks 欧远宁 for reporting this issue. REVERT: 9026d59fd4 bugfix: data might be accidentally read into the lua space on idle sockets when the last operation is a read operation *and* a read event suddenly arrives for edge-triggered event models. the same might also apply to write operations too. bugfix: invalid reads might happen in the reading iterators returned by the receiveuntil() method which could lead to segfaults. REVERT: 1bce88568d added tests for the various "lua socket blah blah timed out" error messages; also tweaked other cosocket test cases for different test modes. REVERT: f95c55f7ab bugfix: "closed" error would occur for long-running requests that hold the idle cosocket object for a period of time that is longer than the read timeout setting: we should delete the read event timer in time when the receive call has already got a read event. thanks 欧远宁 for reporting this issue. REVERT: 1b702e5403 added error logs for socket timeout errors. REVERT: 78ed3f5738 added error logs for closed errors. REVERT: 7cb4e0957f introduced a minor optimization that we can save one recv call when the read event is active *and* the read event is not ready. REVERT: e633e75d9d Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: fc7893d05f now we recycle the downstream output buffers to save memory and dynamic allocation times for long-running requests. REVERT: 60e70ef7e5 bugfix: now we require the SHA1 library in the "config" file. REVERT: 060e9bf495 Merge branch 'devel' REVERT: d4167c1a11 bugfix: macro directives were used inside a macro argument which made gcc 3.2.3 unhappy. thanks Feng Bin. REVERT: 11a13f0694 bugfix: cosocket API could not be used before ngx.location.capture and its friends for fast network access: tcpsock:send() method did not reset u->waiting properly. thanks 欧远宁. REVERT: 89af745e12 updated docs to reflect recent changes. REVERT: cbc1fd22aa add gdb script to ease Lua debugging REVERT: 96e9b3038e feature: allow use of ngx.null in ngx.log() and print() arguments. REVERT: 2f1c2a5e00 opt: fixed the "ngx." table initializing sizes. REVERT: d29c611c87 bugfix: could not compile with nginx 0.8.x. thanks 欧远宁. REVERT: 25abe98ca8 feature: added the ngx.sha1_bin method which returns the binary form of the SHA-1 digest. REVERT: 60335f37b4 minor fixes in the tests. REVERT: 2614f3ffd1 bugfix: we incorrectly allowed ngx.null in the string table argument to cosocket:send() method. REVERT: c73f874807 updated docs to reflect recent changes. REVERT: 14e079ccaf fixed ngx. table entry count during table initialization. REVERT: 2c5a75838a feature: added constant ngx.null which is a NULL light userdata to represent "nil" values in lua tables and etc. this is compatible with at least lua-cjson library's cjson.null constant. REVERT: 51a6bdfad0 minor coding style fixes. REVERT: e3123d322d Merge branch 'last_modified' REVERT: cef7991100 add last-modified test REVERT: 90ae315163 last modified jumbo REVERT: d1085f9e98 fixed typos in docs. thanks @cyberty. REVERT: a8cad73ed9 updated docs to reflect recent changes. REVERT: 1d7626f423 cosocket: feature: now cosocket:send() method supports lua tables of string fragments which can save unnecessary string concatenation operations on the lua land that are usually quite expensive. REVERT: 907f825a48 cosocket: fixed bugs in debugging logs. REVERT: 5a3e31777e updated docs to reflect recent changes. REVERT: 1e8f8e5f54 Merge branch 'dict_flags' REVERT: 8d576f2cec use uint32_t as the type of shdict user flags. REVERT: c8967e5a60 match new error message REVERT: 9ef0b86d61 do not return flags if not set for backwards compatibility REVERT: 24177e8ed6 expect nil REVERT: de5e7bf19f user flag test REVERT: edc9633d98 Add user flags REVERT: 170c5484e4 updated docs to reflect recent changes. REVERT: ef46b7f334 cosocket: documented the in-pool connection monitoring feature requested by @ldmiao. REVERT: 653d1ec1f5 bumped the version number in docs. REVERT: 750b928090 cosocket: reverted casual changes to the developer build script in the last commit. REVERT: 1cec504101 cosocket: bugfix: fixed -Werror=unused-but-set-variable warnings from gcc 4.6. REVERT: 07329405e1 cosocket: bugfix: when the object returned from ngx.req.socket() is used across the request boundary, segfault would occur; so now we protect the downstream cosocket object from being used outside the current request lifetime. REVERT: 72f7fb5b06 cosocket: documented the ngx.req.socket() function. REVERT: 0b99b35053 cosocket: documented the sock:receiveuntil method. REVERT: 44459f5dde cosocket: documented most of the cosocket API. REVERT: c6f165e395 cosocket: added a (passing) test for keepalive unix domain sockets. REVERT: bc4baee257 Merge branch 'cosocket' REVERT: 204ce2b3db updated docs for the v0.4.1 release. REVERT: 9e30acfec0 cosocket: fixed compilation failures without --with-debug: misuse of the ngx_log_debugN macros. REVERT: 7848542c88 cosocket: added a test case for extremely small buffers when calling sock:receiveuntil. REVERT: a6183a1a0c minor tweaks in tests. REVERT: 8d7cc5fba0 cosocket: optimized the chainlink and buf recycle logic for the subrequest API and cosocket API. REVERT: ba7a62fbb5 cosocket: bugfix: the request cleanup handler could access the (invalid) upstream userdata after Lua GC frees it. also fixed the lua table initialization for ngx._tcp_meta. REVERT: 3bb79438c4 cosocket: feature: implemented "timeout" and "size" arguments to the setkeepalive() method to override the config settings via the directives lua_socket_keepalive_timeout and lua_socket_pool_size. REVERT: 2bb7ba793c cosocket: check zero connection pool size. REVERT: d65eeee425 cosocket: feature: "lua_socket_keepalive_timeout 0" now means unlimited connection idle time. REVERT: ce5b54349c cosocket: added tests for the default lua_socket_pool_size value (30). REVERT: fa07de06ca cosocket: feature: added config directive lua_socket_pool_size to control the connection pool size (in terms of number of connections) per host-port pair. REVERT: bc8a9097d9 cosocket: added debugging output for keepalive timeout values. REVERT: 154fce40d2 Merge remote-tracking branch 'origin/master' into cosocket REVERT: fb3d82db97 Merge branch 'master' into cosocket REVERT: f1269407d4 cosocket: bugfix: we did not reset c->read->handler and c->write->handler for connections got from the connection pool which could lead to segfaults; feature: new config directive lua_socket_keepalive_timeout to specify the max idle time for connections in the pool. REVERT: a95e02faa4 bugfix: ngx_http_lua_header_filter_init was called with an argument which actually accepts none. this could cause compilation errors at least with gcc 4.3.4 as reported in github issue #80. thanks bigplum (Simon). REVERT: 9d5e827c76 cosocket: call ngx_close_connection() directly instead of introducing ngx_http_lua_socket_keepalive_close(); also added a (passing) test case for premature close of upstream sockets for idle connections in the pool. REVERT: dcd633f97b cosocket: fixed connection pool cleanup logic and added support for max idle timeout. REVERT: 5b2a977b37 cosocket: initial prototype for the builtin connection pool support via the new cosocket method "sock:setkeepalive()". also always reset u->length and u->rest for the "sock:receive()" method. REVERT: e60a948145 cosocket: did a minor optimization for receiveuntil patterns no longer than 2 bytes. REVERT: 7a4cbfb4a3 cosocket: bugfix: fixed a minor inconsistency in the reading iterator returned from sock:receiveuntil when the "size" argument is specified. also added some (passing) tests for a true multipart parser. REVERT: 54a6f750df cosocket: use 8.8.8.8 as the default TEST_NGINX_RESOLVER env value in the test suite. REVERT: 4cecc53e3b cosocket fixed a typo in ngx_http_lua_socket_read: we should use r->headers_in.content_length_in instead of r->content_length_n. REVERT: 9a7a12a461 cosocket: fixed lua table entry count in table initialization. REVERT: bc93b61f71 cosocket: minor coding style fixes. REVERT: 83d972e385 cosocket: bugfix: request sockets reading should honour the Content-Length request header (if any). REVERT: 7bd0fdbeb5 cosocket: feature: ngx.req.socket() works. REVERT: 9c461bf15b fixed lua table initial entry count; also added initial skeleton for ngx.req.socket() but not working yet. REVERT: 9e4abfdcd2 minor test fixes. REVERT: 2f20b7acd8 cosocket: added support for the "size" argument to the reading iterator returned by the sock:receiveuntil(). REVERT: 51b793007e cosocket: introduced a minor optimization that we could save the first two elements in the cp->recovering array. REVERT: 38c4fa0741 cosocket: added a lot more tests for sock:receiveuntil. REVERT: b045cfae41 cosocket: bugfix: use the luaL_addchar macro to simplify the state machine logic. REVERT: d8548e4a42 cosocket: decreased memory usage for unambiguous boundary patterns in sock:receiveuntil(). REVERT: 9a673b787a added support for ambiguous boundary patterns. REVERT: 19b071c3e2 feature: first cut on the socket:receiveuntil(pattern) method. ambiguous boundary patterns and the "size" parameter to the reading iterator are not implemented yet. REVERT: 92e0e6ef0f added (passing) test cases for cosocket send timeout settings. REVERT: 75a52b4653 RecvUntil.pm: fixed Makefile. REVERT: 30a17916c1 checked in a perl prototype for the receiveuntil method implementation. REVERT: 17ee6b60c4 updated .gitignore. REVERT: 884ae49bf2 feature: implemented method settimeout() for ngx.socket.tcp() objects. REVERT: 7962a9fb14 Various fixes in cosocket REVERT: b1b92000bc fixed test index. REVERT: a2859d4feb fixed test index. REVERT: 735355c98b Merge branch 'master' into cosocket REVERT: 6e8c4aba5d renamed .t files. REVERT: 30cf86dd66 merged master to cosocket. REVERT: dc37474df0 bugfix: fixed all the warnings from the clang static analyzer. REVERT: fb84d6fe07 adjusted the tests a bit. REVERT: 733d26d16b bugfix: ngx.exit, ngx.redirect, ngx.exec, and ngx.set_uri(uri, true) could return (they should never return as per the documentation). this bug had appeared in v0.3.1rc4. thanks @cyberty for reporting it. REVERT: b166210bcf added change log for v0.4.0 and also documented the way to confirm that pcre jit is actually enabled. REVERT: bc9142cb36 allow use of the DDEBUG macro from the outside (via the "-D DDEBUG=1" cc opton). REVERT: 7bdd8505bb updated README. REVERT: 37c4880eb2 docs: massive wording improvement from Nginx User. REVERT: e43eab96a2 now we state that ngx.re API requires pcre 8.21+ for its regex JIT support in the docs. REVERT: 805f6a24a9 updated docs to reflect recent changes. REVERT: 11ddbdf9f9 added debug logging when ngx.req.get_headers() hits header count limit. REVERT: d40fcc6690 added debug log when ngx.req.get_uri_args and ngx.req.get_post_args hit max args limit. REVERT: 8e8517c644 updated valgrind.suppress a bit. REVERT: 85f876ec16 bugfix: hash table collision attacks were possible in ngx.req.get_headers() and now it only parses at most 100 headers (can be controlled by the C macro NGX_HTT_LUA_MAX_HEADERS. ngx.req.get_headers() now also takes an optional argument that can be used to specify a custom header count limit (defaul to 100). one can disable the header count limit altogether by feeding ngx.req.get_headers() with a zero value argument. REVERT: 0ece0793ec added more tests for max_args argument. REVERT: 3a2b80b054 tweaked the timeout settings for two test cases. REVERT: 75876b67c6 bugfix: ngx.req.get_uri_args and ngx.req.get_post_args now only parse up to 100 arguments by default. but one can specify the optional argument to these two methods to specify a custom maximum number of args. thanks Tzury Bar Yochay for reporting this. REVERT: 2b18629c2f bugfix: removing builtin headers in huge request headers with 20+ entries could result in data loss. thanks Chris Dumoulin for the patch. REVERT: f9efd32881 bugfix: ngx_lua could not compile with nginx 1.1.12+. thanks deltay for reporting it in github issue #76. REVERT: b0f1582325 fixed the test cases regarding invalid escape sequences for LuaJIT 2.0.0 beta9. REVERT: 81b9bbb510 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 6f9a1f9b75 now we use pcre 8.21 jit build in the developer build script. REVERT: 33844f1b8d fixed a test case in t/057-flush-timeout.t on FreeBSD. REVERT: f6ea32e0e3 removed --with-cc=gcc46 from util/build2.sh. REVERT: 4f0d035cdb updated docs to reflect recent changes. thanks Nginx User. REVERT: 78014b6475 bugfix: request header value strings must be null terminated and was possible to introduce memory invalid reads in the past. thanks Maxim Dounin. REVERT: 66d35ae23c cosocket: fixed the lua-redis test case a little. REVERT: a5e501045a cosocket: fixed ngx_log_debugN for non-debugging builds. also added a passing test case for running Daniele Alessandri's lua-redis library by emulating LuaSocket via ngx.socket :) REVERT: 166a71112b cosocket: we now allow string-typed size argument for sock:receive(). also added a (passing) test case for running Neil Richardson's lua-memcached library by mocking LuaSocket with ngx.socket :) REVERT: 74738a7216 cosocket: minor coding style fixes. REVERT: 976d3e1fdc cosocket: implemented the ngx.socket.connect() shortcut. REVERT: 7ec21aeeae cosocket: fix buffer recycling logic for the "receive" method; also added "buffer too small" error handling. REVERT: 66f4d22e1b cosocket: fixed receive(n) to only return exactly n bytes of data as per LuaSocket's behavior. also made receive() return the 3rd value for the partial result when error occurs, just like LuaSocket. REVERT: aeaddfe41b cosocket: implemented the number-typed pattern parameter for the "receive" method as per the LuaSocket TCP API. REVERT: 592a534464 cosocket: fixed resolver error handling for cached negative results. REVERT: 3ca2a900e4 cosocket: implemented the "*l" and "*a" pattern argument for the receive() method as per the LuaSocket TCP API. REVERT: 0724569972 cosocket: fixed resolver error handling a bit. REVERT: ecb161cf01 Merge remote-tracking branch 'origin/master' into cosocket REVERT: f63c914375 Merge branch 'master' into cosocket REVERT: 83a1e64a40 cosocket: added a (passing) test case for resolver timeout handling. REVERT: f79766317c cosocket: fixed bugs in resolver failure handling. REVERT: 9b21eb38dc cosocket: various coding style fixes. REVERT: 5353b5bd34 cosocket: various fixes in the unix domain socket support. REVERT: 33fcd577bc bugfix: ngx.var.VARIABLE might evaluate to nil even if there is a valid value because the nginx variable value's valid flag might not be initialized properly. this bad had appeared in v0.3.1rc40. REVERT: 4e4fe381cf cosocket: fixed timeout handing in the connect() method. REVERT: 6da957c937 now we return the errstr "closed" when manipulating a closed socket object, just like LuaSocket. REVERT: 202336c408 better socket errstr handling. REVERT: c0e3795753 added a (passing) case to test the "connection refused" error. REVERT: 1810fb0bc7 eagerly free u->buffer in ngx_http_lua_socket_finalize. REVERT: 32b1a58999 cosocket: now we support unix domain socket address for the "connect" method; also improved the error messages. REVERT: 4b65f824cf first cut on the nginx builtin nonblocking resolver support for ngx.socket.tcp(). REVERT: eea55f5904 implemented the socket:close() method. REVERT: 978c9779b2 bugfix: socket:receive() will ignore all the CR char in the inputs, just like LuaSocket. REVERT: 1afdd52658 turned off ddebug and also fixed source lines exceeding 80 cols. REVERT: 6c0edbd843 fixed a serious bug in socket:receive(). the test case is passing for multiple receive calls. REVERT: fa1d4b5f1d completed the first cut on the socket:receive() method. the first test case is now passing, but sock:receive() is still buggy. REVERT: 37d7fd4576 now we use dummy handler as the read/write event handler wherever possible (a complete fix would require deleting and adding read/write events for level triggered event models). REVERT: 563e14b1a0 ngx.socket.tcp()'s send method is mostly working now :D REVERT: c6113b309c added new directives lua_socket_connect_timeout, lua_socket_send_timeout, and lua_socket_read_timeout. only really implemented the first one ;) REVERT: 04e3122dec minor fixes in socket:connect(). REVERT: 220af136e7 socket:connect() kinda works. REVERT: 37cc4a24a0 updated valgrind.suppress further for Valgrind SGCheck. REVERT: 709d62db35 updated valgrind.suppress further for Valgrind SGCheck. REVERT: f0faa955e3 Merge branch 'master' into cosocket REVERT: 4fc7a965cb updated valgrind.suppress for Valgrind SGCheck. REVERT: 9161a993be bugfix: more_set_input_headers did not handle the Accept-Encoding request headers properly. thanks 天街夜色. REVERT: 29e8b41e99 bugfix: there were various places where we did not check the pointer returned by the memory allocator. REVERT: b35bcb2d64 updated README and README.markdown. REVERT: e9de829c9b docs: updated docs to reflect recent changes. thanks Nginx User. REVERT: b1d8d62270 bugfix: ngx.flush(true) could not be used before I/O calls like ngx.location.capture. this bug had appeared in v0.3.1rc34. REVERT: 9e811fbbb5 more work done on the cosocket scaffold. REVERT: 0e1770ac43 initial scaffold for ngx.socket.tcp(). also did minor optimization for the "ngx" table and the metatable for "ngx.shard.DICT" objects. REVERT: 2c6a22a29a fixed some small bugs in the ngx.socket.tcp test case. REVERT: a44b8ce963 added a test case for the ngx.socket.tcp API. not passing yet. REVERT: 8153df5c65 bugfix: ngx.var.VARIABLE evalues to nil when the nginx variable is purely invalid. REVERT: ea24c93c82 documented ngx.HTTP_GATEWAY_TIMEOUT and also included edits from Nginx User. REVERT: f88d229ce6 added a test for ngx.HTTP_GATEWAY_TIMEOUT. REVERT: a3bc3fceea added constant ngx.HTTP_GATEWAY_TIMEOUT (504) per Fry-kun in github issue #73. REVERT: 9cbf7c3762 docs: massive documentation improvements. thanks Nginx User. REVERT: 7a4617ff8f fixed two spots of gcc 4.6 warnings. REVERT: c9f5e028b7 enable the default -O in the developer build script. REVERT: a635ab8bea bugfix: use of the ngx.re API might lead to errors like "pcre_compile() failed: failed to get memory" due to incorrect pcre_malloc and pcre_free handling. thanks Vittly for reporting this in github issue #72. REVERT: 745b47fd27 more fixes in 057-flush-timeout.t REVERT: 34ee97908f fixed the flush-timeout test script. REVERT: bd1da870a6 bugfix: fixed ngx_log_debugN which fails to compile without --with-debug. thanks @ldmiao for reporting it. REVERT: 47d977391a checked in the tests for the bug regarding connection timeout error checking fixed in the previous commit. REVERT: 06fd57947a bugfix: now we check timed out downstream connections in our wev handler. REVERT: 28ae78f0e0 updated docs to reflect recent changes. REVERT: 09ccd15b5e feature: added "wait" boolean argument to ngx.flush() to support synchronous flushing; ngx.flush(true) will not return until all the data has been flushed into the system send buffer or the send timeout has expired. REVERT: db85756a08 fixed gcc 4.6 compilation warnings by removing some dead code. REVERT: 6b8c2d8a21 more docs love. REVERT: 4626334810 updated the docs to reflect recent changes. thanks Nginx User for polishing the documentation a lot. REVERT: c598e718c1 feature: added new API ngx.update_time which calls ngx_time_update in the Nginx core. REVERT: 79a19650a7 reformatted the tests. REVERT: 2a134b1799 omitted unnecessary checks in our lua hooks. REVERT: 11617ee1ed Merge remote-tracking branch 'origin/master' into ngx-now REVERT: 1e7bd81f5f fixed the test case for ngx.now REVERT: 08318e606f add missing test file for ngx.now REVERT: d6ae4883b6 feature: added "ngx.now" for get time with msec(float) REVERT: 5fcb1a7b8b updated docs to reflect recent changes. REVERT: 806a99a3f7 feature: added opions "copy_all_vars" and "vars" to ngx.location.capture and ngx.location.capture_multi. thanks Marcus Clyne for the patch; also fixed a bad regression in ngx.location.capture_multi when the request option table is specified. REVERT: c43d510fb9 updated docs to reflect recent changes. thanks Nginx User. REVERT: 881a0ae604 fixed a gcc 4.6 warning. REVERT: 3e0c15ace1 reverted build2.sh. REVERT: 4db4603b17 fixed a gcc compilation warning for pcre < 8.20. REVERT: 99f45c46c4 now we check if pcre jit indeed works by scanning error.log in the related tests. REVERT: 951103f3be tested the "d" and "j" regex options for DFA and JIT modes for ngx.re.gsub. REVERT: 5c2a86cb3c now "j" and "d" regex options are confirmed to work with ngx.re.sub(). REVERT: c444de8e4a ngx.re: now we disable jit automatically when in dfa mode. REVERT: 85fb303ffa bugfix: ngx.re.gmatch may free the pcre study data too early when the "j" option is specified to enable pcre jit, which might cause crashes. REVERT: 5a729fca9c coding style fixes. REVERT: 85a74e0689 fixed pcre pool management in the cleanup handler. REVERT: df000b92d2 feature: ensured that the "j" (JIT) option for ngx.re.gmatch works properly. REVERT: 8f28c7f0a0 turned off ddebug. REVERT: f360e6903e feature: implemented "d" and "j" regex options for ngx.re.match to enable PCRE DFA mode and JIT mode, respectively. thanks @姜大炮. the support of these two new options in ngx.re.gmatch, ngx.re.sub, and ngx.re.gsub is currently broken and needs fixes in future commits. REVERT: 4572801361 massive documentation improvements. thanks Nginx User. REVERT: 09fc7c73ee tweaked drdrxp's hmac-sha1 patch a bit and also added a test case for it. REVERT: fd47016fa8 Merge remote-tracking branch 'drmingdrmer/hmac' into hmac REVERT: 6dd6f02e01 updated valgrind.suppress a bit. REVERT: 5beba3733d add ngx.hmac_sha1 REVERT: a5dc446cd4 tweaked the developer script a bit. REVERT: efd374014f bugfix: Cache-Control header modification might introduce empty value headers when using with the standard ngx_headers module. REVERT: ae29491ddb added one more passing test. REVERT: fa5cafdcff updated docs to reflect recent changes. REVERT: 64a2b730a7 renamed ngx.req.encode_args to ngx.encode_args. REVERT: 1259fbc817 fixed various issues in shrimp's commits for ngx.encode_query_args. also renamed ngx.encode_query_args to ngx.encode_args. REVERT: 131f13d6b3 Merge branch 'master' into args REVERT: 82c566aaed confirmed that we work with nginx 1.0.9. REVERT: 860199f994 updated docs to reflect recent changes. REVERT: 30a2e898e1 minor tweaks. REVERT: b92cbf4562 ngx.req.encode_query_args is now supporting args value to be lua table REVERT: f0942d7a35 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module into args REVERT: c3a6737b7c add encode_query_args function into ngx.req REVERT: e5c62d0843 added one line of comment. REVERT: dc49eb2067 feature: added "ctx" option to ngx.location.capture: you can now specify a custom Lua table to pass to the subrequest as its "ngx.ctx". thanks @hugozhu. REVERT: 9942742eb9 made tests more stable. REVERT: 4d92cb1589 fixed compatibility with nginx 0.8.54. thanks 郭颖. REVERT: 74755eb0e2 bugfix: ndk.set_var.DIRECTIVE had a memory issue and may pass empty argument values to the directive being called. thanks dannynoonan. REVERT: 1eb73d67c1 updated docs to reflect recent changes. REVERT: edde16355e now incr returns the new numerical value as its first return value. REVERT: d01adf7d7d now we still enable --with-debug in our developer build script. REVERT: 259524953f fixed compilation warnings without --with-debug for gcc 4.6.0. REVERT: a9842859ba fixed another spot of -Werror=unused-but-set-variable warning issued by gcc 4.6.0. REVERT: 9656a97f00 fixed one spot of -Werror=unused-but-set-variable warning issued by gcc 4.6.0. REVERT: 24da181717 feature: implemented new methods "add", "replace", and "delete" for ngx.shared.DICT. also made the "set" method return 3 values: "success", "err", and "forcible". REVERT: a935e6fdbf enable the ngx.shared API in set_by_lua* and header_filter_by_lua* too ;) REVERT: 9c26604bf4 documented the shared dictionary API. REVERT: d4224b9794 no longer set too many worker connections in t/030-uri-args.t. REVERT: d7c8be39cc fixed test cases for 32-bit systems. REVERT: e6f6002756 reindexed the tests. REVERT: 8d31d75cce shared_dict set: now we try harder when failing to allocate new entry by forcily removing up to 30 least recently used entries. REVERT: aad4815f74 shared_dict: now we use uint8_t for value type and uint32_t for value_len. REVERT: 4518fcf71d implemented shared_dict set nil, which effectively removes the key from the dict. REVERT: b9d28596d1 now we support 0 expiration time to denote infinite expiration time in shared_dict set. and it is default to 0 when the set method does not take an "expire" argument. REVERT: f32e5ed8fc added more tests for various error cases and LRU. REVERT: 192ec1e9df bugfix: shared dict get: we should not unlock the mutex too soon. thanks drdrxp. REVERT: 2549ab48eb added more (passing) tests for the shared dict API. REVERT: f5a4f7243e the shared_dict get and set are now complete and usable :D REVERT: b71a0b52a6 resolved conflicts while merging the "master" branch to "shm". REVERT: 5973268d3a updated docs and turned off ddebug. REVERT: d3e601fc93 added tests for setting ngx.var.VAR to nil values. REVERT: 3638fd09cc bugfix: no longer free request body buffers that are not allocated by ourselves. REVERT: 61b9d83fe5 now we allow setting ngx.var.VARIABLE to nil. REVERT: a79cc75007 added a small test case. REVERT: b25d06b326 improved the README file's formatting. REVERT: 58d6bc91e2 fixed reading size_t as an off_t in ngx.req.set_body_data() which may lead to memory issues on 32-bit systems. REVERT: 0a8a11b994 put the debug log outputs to the right place. REVERT: 739825a7c4 no longer set the NGINX_ALLOW_REQUEST_BODY_UPDATING macro in developer build script. REVERT: f03ac7ca36 fixed -Wset-but-not-used warning issues caught by gcc 4.6.0. REVERT: 0cb010bb3f bugfix: lua_need_request_body should not skip requests with methods other than POST and PUT. thanks Nginx User. REVERT: 8eef13e10b updated docs to reflect recent changes regarding the request body API. REVERT: 5cef7124ff no longer use the NGINX_ALLOW_REQUEST_BODY_UPDATING macro and r->content_length_n. now calling ngx.req.read_body() after ngx.req.discard_body() is a no-op. REVERT: ad0300696a fixed compatibility with standard nginx. REVERT: 5c36f6e8ca now we complete the work for ngx.req.set_body_file(), ngx.req.set_body_data(), and ngx.req.discard_body(). REVERT: 893f7e72a5 now we also override Content-Length for ngx.req.set_body_data(). REVERT: 2fbea05b93 initial cut on the ngx.req.set_body_file() API. REVERT: ea81bb2f01 implemented new function ngx.req.set_body_data() to override the current request body with in-memory data. REVERT: 1122cbd49d fixed a test cause because Test::Nginx fixed a bug in its Content-Length handling. REVERT: a0a9fb49a2 documented the new APIs: ngx.req.read_body(), ngx.req.discard_body(), ngx.req.get_body_data(), and ngx.req.get_body_file(); also improved the coding style and the test suite a bit. REVERT: 569e3511c5 added (passing) tests for ngx.location.capture + ngx.redirect under http pipelining. REVERT: 982cb581a9 refactored the code for access_by_lua and access_by_lua_file to reduce code duplication. REVERT: 2c9a564a4d refactored the code for rewrite_by_lua and rewrite_by_lua_file to reduce code duplication. REVERT: b6c7dd053d bugfix: fixed hanging issues when using ngx.exec() within rewrite_by_lua and access_by_lua. thanks Nginx User for reporting it. REVERT: b0474ca750 implemented new function ngx.req.get_body_file(). REVERT: aefb1c4906 implemented new method ngx.req.get_body_data. REVERT: 38c8325938 implemented ngx.req.discard_body() function to let user lua code to discard request body. REVERT: 18f30a16a9 now we use ngx_http_block_reading instead of ngx_http_empty_request handler or read event handler. REVERT: 0f18d9936b implemented ngx.req.read_body() which does synchronous non-blocking request body reading in full buffered mode. REVERT: b45910b44e minor code refactoring. REVERT: b298984e03 fixed compilation failures when --with-debug is turned off. REVERT: 6c1c1666b0 now we prohibit use of true jump argument in ngx.req.set_uri() in contexts other than rewrite_by_lua and rewrite_by_lua_file. a lua exception will be thrown if the context is incorrect. REVERT: 6ff491bd19 now we change the ngx.req.set_uri() API a bit by changing the optional argument "break_cycle" to "jump". so now it will not trigger location jump by default (because "jump" argument is false by default) and in case "jump" is given true, the function will re-search locations and jump to the new location and never return. REVERT: 6be7dad626 added more complex samples to the docs for ngx.req.set_uri(). REVERT: 89dcc5b8d3 documented the new APIs ngx.req.set_uri() and ngx.req.set_uri_args(). thanks Vladimir Protasov (utros) and Nginx User for suggesting this feature in github issue #62 and the nginx mailing list, respectively. REVERT: f72eb473cb documented that rewrite phase Lua code will be skipped if location re-lookup is triggered by the standard ngx_rewrite module's rewrite directive. thanks Nginx User. REVERT: 95faaaa2d4 now we skip rewrite phase lua handlers altogether if ngx_rewrite's rewrite directive issue a location re-lookup by changing uris (but not including rewrite ... break). REVERT: a2d115e652 added more (passing) tests for ngx.req.set_uri and ngx.req.set_uri_args. REVERT: 2df39a9e10 now we implemented ngx.req.set_uri() and ngx.req.set_uri_args() to emulate ngx_rewrite's rewrite directive (without redirect or permanent modifiers). REVERT: 0bb8899566 updated docs to reflect recent changes. REVERT: 75f960b068 added constant ngx.HTTP_METHOD_NOT_IMPLEMENTED. thanks Nginx User. REVERT: 3c4b1ff31d added one more (passing) test case. REVERT: c5fbee750c now we explicitly clear all the modules' contexts before calling ngx_http_named_location. REVERT: 0457ff206d more treatment of the previous fix. REVERT: 8f84964193 fixed the download page links in docs. REVERT: e5b8c8f46e bugfix: calling ngx.exec() to jump to a named location did not clear the context object of ngx_lua properly and might cause evil problems. thanks Nginx User. REVERT: 4c71768761 turned off the master mode. REVERT: d5e1642083 the first test case is passing! REVERT: b77bf67fc7 first cut on the shared dict feature. REVERT: 65e4759651 updated docs to state that we work with nginx 1.0.8 and 1.1.5. REVERT: 05fbec6439 updated developer build script a bit. REVERT: 0ebffdfb4c no longer set header hash to 1. use ngx_hash instead :) REVERT: c3acd88c23 minor style fixes. REVERT: 8b586da4f0 fixed regression in the last commit: we should hash the header key, not value. REVERT: 32efa828b1 we should not set header->hash to 1, we should use ngx_hash_key_lc to generate it. REVERT: 4ad6d40e0d updated .gitignore. REVERT: bb2539bb5f now we properly support setting the Cache-Control response header via the ngx.header.HEADER interface. REVERT: eac237f88c fixed a test case for HTTP 1.0 streaming output. REVERT: 3cbf39f3aa now for HTTP 1.0 requests, we disable the automatic full buffering mode if the user sets the Content-Length response header before sending out the headers. this allows streamming output for HTTP 1.0 requests if the content length can be calculated beforehand. thanks 李子义. REVERT: 752be5db1f use lua_Number instead of lua_Integer for crc32 functions' return values because 32-bit signed integers are too short for the crc32 digest. REVERT: 0727d20dd5 documented the ngx.crc32_short and ngx.crc32_long methods. REVERT: 9e043c690a exposes the CRC32 API of the Nginx core to the Lua land, in the form of the ngx.crc32_short and ngx.crc32_long methods. thanks @Lance. REVERT: 6800229f00 documented the new feature that ngx.exec accepts a Lua table as its "args" argument value. REVERT: fffdb93170 turned off ddebug. REVERT: 2b625542df now ngx.exec() supports lua table as the second "args" argument value. thanks sexybabes. REVERT: 60a8b4a614 documented the new ngx.headers_sent API. REVERT: 47bee750d9 implemented the ngx.headers_sent API to check if response headers are sent (by ngx_lua). thanks @hugozhu. REVERT: ab61a0331c renamed ngx_http_lua_patch.[ch] to ngx_http_lua_pcrefix.[ch]. REVERT: 319800188a even more refactoring of the lua hooks. REVERT: 8a1367756b more refactoring of the lua hooks. REVERT: 2684f5b078 massive refactoring of the lua hooks. REVERT: 87f360c9f3 fixed doc formatting issues. REVERT: f5c7c9d1d9 updated docs from wiki. REVERT: 88b551d3da now we also return Last-Modified for the subrequest response object. thanks @cyberty and sexybabes. REVERT: 259d378ddb refactored ngx_http_lua_wev_handler a bit to make it smaller. REVERT: cd53678b39 minor refactoring of the various lua hooks. REVERT: 7a5016e6b6 fixed an issue in ngx.redirect, ngx.exit, and ngx.exec: these function calls would be intercepted by Lua pcall/xpcall because they used lua exceptions. now they use lua yield just as ngx.location.capture. thanks @hugozhu for reporting this. REVERT: f147ba4e94 rewording the doc for ngx.exit a bit. REVERT: ac24af7f0e documented the way to output error pages with custom dynamic bodies in Lua. thanks rik1083. REVERT: 6c7e74fb6e Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 0e2b7993bd enlarged a timeout setting for one of our test cases. REVERT: 71993f12ae documented the reading ngx.header.HEADER feature. REVERT: bdf56a9da9 * fixed a bug when setting a multi-value response header to a single value (via writing to ngx.header.HEADER): the single value will be repeated on each old value. * added support for multi-values of reading ngx.header.HEADER. * added more tests for reading non-existent response headers. REVERT: b0c96e306d simplified the ngx.header.HEADER reading logic. but multi-value headers are still not supported yet. REVERT: 577de863d2 implemented reading response headers: VALUE = ngx.header.KEY. REVERT: 1a3b82be83 do not use ngx_flag_t in internal implementation. we use unsigned for boolean values consistently. REVERT: 71fba5afba updated the documentation from wiki.nginx.org. REVERT: 8dc5c9bb10 fixed a bug when the both the main request and the subrequst are POST requests with a body: we should not forward the main request's Content-Length headers to the user subrequests. thanks 朱峰. REVERT: dd0d4d0966 releng work for v0.3.0. REVERT: 7e997bbbd3 added header_filter_by_lua test for config merge REVERT: 9255687efe added test for overriding header_filter_by_lua config REVERT: 8924e72f1d fixed bug, header_filter_by_lua didn't worked in server or http config REVERT: 69da13b5dc added more debugging outputs to the capture filters. REVERT: 5a14de4a43 updated valgrind.suppress for archlinux. REVERT: 864bf02749 removed those ugly lua_package_cpath from the exit.t test files. REVERT: 8ef144d5c2 now we use lua-cjson in our test suite instead of lua-yajl. REVERT: 951420328d renamed 050-header-filter.t to 041-header-filter.t. REVERT: 4bdd154892 fixed -Wunused-but-set-variable warnings issed by gcc 4.6.0. REVERT: 97d6c28a20 fixed test plan in ndk.t. REVERT: eb666c15b1 marked nginx APIs available in the context of header_filter_by_lua* in the docs. REVERT: 644b1da68c added more tests for header_filter_by_lua (confirmed that various APIs are properly injected). REVERT: 138064090c added a (passing) test for header_filter_by_lua_file. REVERT: 2b53d74b58 renamed the old filter.c to capturefilter.c. REVERT: e4d00091ab only register our capture header/body filters when relavant directives are actually used in nginx.conf. REVERT: 010297e8f7 Merge branch 'header_filter' of github.com:chaoslawful/lua-nginx-module into header_filter REVERT: 13d8ffe6e7 now we initialize the ngx_http_lua_requires_header_filter in pre config handler. REVERT: 7d01579b7d Merge branch 'header_filter' of github.com:chaoslawful/lua-nginx-module into header_filter REVERT: 210b38348e added more test for header_filter_by_lua REVERT: e3ca6ee3a2 Merge branch 'header_filter' of github.com:chaoslawful/lua-nginx-module into header_filter REVERT: 2a4a22d6f9 we will not register an access handler if nginx.conf does not use rewrite_by_lua* after HUP reload. REVERT: 534dc1d9ac we will not register a rewrite handler if nginx.conf does not use rewrite_by_lua* after HUP reload. REVERT: f6cd4f54b8 added test for capture and header_filter_by REVERT: 16606038d5 fixed some coding style issues. REVERT: a7f05f3a5a cleaned up the API registration code. REVERT: da21df0698 merged master into the header_filter branch. REVERT: d8b5cff814 Merge branch 'master' into header_filter REVERT: 02d5ac66ae refactored the Lua API injection code into groups. REVERT: 0959786f19 added test for wrong lua code REVERT: 4fa354eb27 Merge branch 'master' into header_filter REVERT: a5b756c4f9 rename file name for ngx_links script REVERT: 66fdc880f3 we should set the ctx->headers_sent flag after we have actually called ngx_http_send_header. this should pave a way to the new header_filter_by_lua* directives. REVERT: c2cbbeac2f fixed issues for HEAD requests. REVERT: a1aae4b114 checked in util/build2.sh. REVERT: 06edf2a0d6 checked in util/build2.sh REVERT: f6fa44f609 return NGX_ERROR after run lua failed in header_filter_by_lua REVERT: f415f81869 go on next header filter when error found in header_by_filter REVERT: 89af708199 fixed filter chain bug REVERT: 2b1788528a added header_filter_by_lua command REVERT: d41f205df3 updated docs in markdown and plain text accordingly. REVERT: 0b733c4af0 explicitly documented the "ngx" and "ndk" standard packages introduced by this module, which are also the Nginx API exposed to the Lua land by ngx_lua. also documented the (new) ability to explicitly require them in the user Lua code. REVERT: 4355225aa1 fixed a small formatting nit in the docs. REVERT: 8e91a6a050 documented the new "o" regex option for the ngx.re.* API, as well as the new lua_regex_cache_max_entries directive. REVERT: cc12d56e7a now we add "ngx" and "ndk" table into package.loaded such that the user can write "local ngx = require 'ngx'" and "local ndk = require 'ndk'". thanks @Lance. REVERT: f291379d75 checked in t/040-gsub-o.t. REVERT: 09afd869f9 fixed compilation errors while bulding nginx without --with-debug; splitted source lines exceeding 80 cols. REVERT: 59eba8b24e implemented the "o" regex option for ngx.re.sub(). REVERT: 1f1b0f0f8f implemented the "o" option for ngx.re.gmatch, so as to cache compiled regexes. REVERT: 108cca013d implemented lua_regex_cache_max_entries directive to control the upper limit of the global regex cache size. when the user lua code is exceeding the regex cache, it will revert to non-compile-once mode and print out a warning to error.log REVERT: 5d887904cc added debugging outputs by ngx_log_debugN for ngx.re.match. REVERT: e90a5a550d implemented the "o" regex option (i.e., the compiled-regex cache) for ngx.re.match(). REVERT: 2097cef560 Revert "bumped the version number." REVERT: de284ea913 bumped the version number. REVERT: 6381eba76d splitted source lines exceeding 80 cols and also updated the docs from the wiki page. REVERT: 75a9a0dbf6 Merge branch 'regex' REVERT: 91f12efcfe fixed a bug in the ngx.re regex API that look-behind assertions in PCRE regexes did not work properly. REVERT: 3ef84e0f8e updated docs to reflect recent changes. REVERT: e92921609f now we enable ngx.re.* regex API in set_by_lua* too :) REVERT: 9eda6ccc78 minor tweaks of the tests. REVERT: 16aa083ca9 fixed < and > symbols in the markdown docs. REVERT: 3ce0b7a241 updated links in the doc. REVERT: e0b45fe69e use HttpBlahModule instead of NginxHttpBlahModule in the doc. REVERT: 7f09f235a8 renamed the wiki file. REVERT: 39556de949 fixed issues found by gcc 4.6 -Wunused-but-set-variable warnings. REVERT: f3653cede9 fixed github issue #52: compile error with nginx 1.0.5 on Ubuntu natty. REVERT: 188cd41039 documented the new ngx.re.gsub function. REVERT: 9c6595514c splitted source lines exceeding 80 cols. REVERT: bd8e4a1fed implemented the ngx.re.gsub method. REVERT: 2be93496f7 documented the optional "ctx" table argument to ngx.re.match. REVERT: 53574fba94 added support for the ctx argument to ngx.re.match. REVERT: b73bb88a97 refactored the code a bit and introduced auxiliary function ngx_http_lua_ngx_re_parse_opts. REVERT: a713340e9b documented the new ngx.re.sub method. REVERT: 6be0d9cead now we support function to be passed as the "replace" argument to ngx.re.sub(). REVERT: 4a497814c2 added support for anchored match modifer "a" to ngx.re.match, ngx.re.gmatch, and ngx.re.sub. REVERT: 10609bced6 implemented ngx.re.sub(subj, regex, repl, opts?) method for PCRE regex subsitution. now a template scripting language is supported in the "repl" argument, for example, "$0: $1". "repl" does not support lua function yet. REVERT: 14c0f0e0cc refactored logging related APIs to a separate C compilation unit. REVERT: 9d842d0f53 minor code refactoring. REVERT: d32ab9731f refactored subrequest related APIs to a separate C compilation unit. REVERT: da18e0b4c8 refactored code for NDK related APIs to a separate C compilation unit. REVERT: 2c862bb012 checked in missing files. REVERT: a35f8213b2 refactored code for redirect related APIs to a separate C compilation unit. REVERT: 799bd9dff3 refactored code for time related APIs to a separate C compilation unit. REVERT: a6c779c8a9 refactored code for echo related APIs to a separate C compilation unit. REVERT: ef08db33c2 refactored code for headers related APIs to a separate C compilation unit. REVERT: 791ef6cd23 refactored the ngx.req.get_*_args API to a seperate C compilation unit. REVERT: e2560a43a6 refactored the ngx.ctx API to a seperate C compilation unit. REVERT: bd41801bcf refactored the ngx.re API to a seperate C compilation unit. REVERT: cafd7842ff documented the ngx.re.gmatch interface. REVERT: aa747edf65 fixed a memory bug in ngx.re.gmatch(); also added more tests. REVERT: 8be276db7d first cut on the ngx.re.gmatch() implementation. the first test case is passing now :) REVERT: bf52ee08be documented the new ngx.re.match() API; fixed unmatched subpattern capturing (we should return nil instead of "" here); only enable ngx.re.match when PCRE is enabled in the nginx core. REVERT: 8f021621f2 checked in the first version of the ngx.re.match() regex API implementation. REVERT: f4f4b62967 sync'd docs from the nginx wiki page. REVERT: dca8a24b7f made setting ngx.header.HEADER after sending out response headers throw out a Lua exception to help debugging issues like github issue #49. thanks Bill Donahue (ikhoyo). REVERT: 24772d3f72 sync'd docs from the nginx wiki. REVERT: c2f3d0edc2 fixed special char escaping in internal cross links in README.markdown. REVERT: d3800ccf23 added internal cross-links to README.markdown. REVERT: 982c664f58 fixed links in README.markdown. REVERT: fba615a89a added more hyper-links to docs. REVERT: ccec92f6c5 added hyper-links to NginxHttpBlahModule tags. REVERT: e6f3425f8f massive doc improvements. REVERT: 94c51becfe added two samples tiddlers on openresty.org to the See Also section in the doc. REVERT: 9ca18712e9 fixed formatting issues in README.markdown. REVERT: 89cdf6e7f9 updated README.markdown. REVERT: 82cab4e247 updated docs from wiki. REVERT: 507c108311 now we generate README.markdown from doc/manual.wiki. REVERT: 3659ede680 more formatting improvements. REVERT: 1d13a1ca27 try markdown links. REVERT: d49e3fe409 fixed more formatting issues. REVERT: fd0ef5bb1e more README formatting fixes. REVERT: dea32100cc even more formatting fixes. REVERT: 3048d74cd8 more formatting fixes. REVERT: 3565203544 more formatting fixes in the wiki doc. REVERT: d88e97af4f udpated docs. REVERT: 05956d68e6 updated doc/manual.wiki accordingly. REVERT: 2871af3845 more README tweaks. REVERT: dce23b6c1f updated manual.wiki. REVERT: 205506be95 more README love. REVERT: 7a2ee2e9e7 massive README updates. REVERT: 4372290055 some cross-link love. REVERT: 62b0e84d6d checked in doc/manual.wiki. REVERT: f3a628ab2e updated README.markdown to ease converting to wiki. also checked in doc/manual.wiki. REVERT: 5d318deafd updated docs to reflect recent changes. REVERT: c43294e8bc now ngx.ctx = {...} assignment is also supported. REVERT: fc44ddb7b5 fixed a typo in README found by 万珣新. REVERT: 4b93450884 documented the ngx.ctx "magic table"; also checked in the tests for ngx.ctx. REVERT: f26d17a89e fixed a memory leak when setting ngx.ctx and later doing an ngx.exec() internal redirect. REVERT: cfa5eb7725 added lots of ngx_log_debugN invocations; completed the first run of the ngx.ctx implementation (still buggy). REVERT: 445c7309b2 minor edits in the tests. REVERT: 302edda861 added tests for outputing lua tables. REVERT: 9880409151 now ngx.print/ngx.say allow (nested) array-like table arguments. the array elements in them will be sent piece by piece. this will avoid string concatenation for templating engines like ltp. REVERT: d9f68ec6aa updated tests to reflect recent changes; also updated README to require identical values in client_max_body_size and client_body_buffer_size when turning lua_need_request_body on. REVERT: cf52bc17a2 renamed ngx.req.get_query_args to ngx.req.get_uri_args; the old ngx.req.get_query_args is now deprecated. REVERT: 5b2eb96332 documented that lua_need_request_body is required to be turned on for ngx.req.get_post_args(). REVERT: bd6e572148 documented the ngx.req.get_post_args() method in README. REVERT: 8de549eab3 added tests for ngx.req.get_post_args(). REVERT: f2ad70e1b7 implemented the ngx.req.get_post_args() method for Lua. REVERT: c8c75c35e6 fixed a bug in ngx.req.get_query_args(): args requiring unescaping could corrupt r->args buffer. REVERT: 0e03a44146 updated docs to reflect recent changes in print() and ngx.log(). REVERT: 10aea81c8b now we also allow Lua booleans and nils in arguments to ngx.log() and print(). REVERT: 44182153f3 documented the ngx.req.get_query_args method. this new interface resolves github issue #15. thanks Bertrand Mansion (golgote). REVERT: 5f0744c150 now we support multi-value keys in ngx.req.get_query_args(). REVERT: 2502bdcd00 now we allow boolean and nil values as args to ngx.print/ngx.say; also done the first cut on the ngx.req.get_query_args() API. REVERT: db34dab6b2 updated valgrind.suppress according to nginx 1.0.5. REVERT: 52d265b024 reverted bad commits. REVERT: e31406fa1c worked-around the "stack overflow" issue while using luarocks.loader and disabling lua_code_cache, as described as github issue #27. thanks Patrick Crosby. REVERT: f2fbc1f241 worked-around the "stack overflow" issue while using luarocks.loader and disabling lua_code_cache, as described as github issue #27. thanks REVERT: d40eb065e8 worked-around the "stack overflow" issue while using luarocks.loader and disabling lua_code_cache, as described as github issue #27. thanks REVERT: 281f7487fb we should have returned NGX_DONE instead of NGX_DECLINED when waiting for more request body at rewrite and access phases. this should fix the "zero size buf" alert while combining lua_need_requesty_body on + access_by_lua/rewrite_by_lua + proxy_pass/fastcgi_pass. thanks 万珣新. REVERT: 1cf8f4fa64 minor coding style fixes. REVERT: e06c869a01 fixed the support for macros LUA_DEFAULT_PATH and LUA_DEFAULT_CPATH: we get these custom paths work even when the config directives lua_package_path or lua_package_cpath are not used at all. REVERT: 65f178f598 documented the ngx.parse_http_time() method. thanks James Hurst. REVERT: 3592818769 polished the implementation of ngx.cookie_time, ngx.http_time, and ngx.parse_http_time a bit: removed request object fetching code because we never use it and also added code to test NGX_ERROR returned by ngx_http_parse_time (we return nil in that case). REVERT: 2fbc16dba6 Merge remote-tracking branch 'pintsized/master' into devel REVERT: 243eb9e5b4 added support for user C macros LUA_DEFAULT_PATH and LUA_DEFAULT_CPATH. for now we can only define them in ngx_lua's config file because nginx configure's --with-cc-opt option hates values with double quotes in them. sigh. REVERT: 2d285e9830 Added ngx.parse_http_time() REVERT: dc3fa1cd18 Added ngx.parse_http_time() REVERT: a2eb4c6b98 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 0457c06c04 fixed an issue regarding defining global variables in C header files: we should have defined the global ngx_http_lua_exception in a single compilation unit. thanks @姜大炮. REVERT: 9b65b67145 fixed the date in the Changes file. REVERT: 96f72bd3d3 fixed a source line exceeding 80 cols. REVERT: 8e7d37eb99 checked in the Changes file. REVERT: 4dffb3cea4 removed the limitation that we cannot capture subrequests with internal redirects from the doc. REVERT: 5cd3b677b6 documented setting nginx special variables $limit_rate/$args, and reading special variables $1, $2, $3, and etc. REVERT: 31bcaa821c ensure that we can compile when pcre is disabled in the nginx build. REVERT: 95528f5114 Merge branch 'devel' REVERT: c808ce7c37 Merge branch 'devel2' into devel REVERT: 7c835bde1a now we support ngx.var[1], ngx.var[2], and etc to refer to the nginx regex capturing variables \$1, \$2, and etc in Lua. this resolved github issue #43. thanks Tobia Conforto for reporting it. REVERT: a28d67ad06 minor test suite refactoring. REVERT: 40e8a644f2 now we use the same value overriding mechanism as ngx_rewrite's set command for ngx.var.VAR = new_value. Assigning values to special variables like $limit_rate and $args should now work; also writing to built-in variables that are not changeable (like $arg_PARAMETER) will result in a 500 error page, as expected, now. thanks Richard Kearsley for reporting it. REVERT: 3d1ec74e88 fixed the lua_code_cache off warning when the lua_code_cache is explicitly on. thanks Feng Xingguo. REVERT: 9d47445743 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 9ff893ff83 applied the patch from cyberty to add ngx.http_time() function to expose the nginx core function ngx_http_time to the Lua land. REVERT: 8e76765ae7 applied the patch from Feng Xinguo (@cyberty) to add ngx.http_time() function to expose the nginx core function ngx_http_time to the Lua land. REVERT: dcdcf87ca2 confirmed that we work with nginx 1.0.4. REVERT: ef3605b130 updated the ngx_openresty bundle link to openresty.org. REVERT: ae7b7b8d1f we should have used off_t consistently. mixing it with size_t can cause Bad Things. this should have fixed github issue #42. REVERT: f39821aaa4 fixed a formatter mismatch issue in ngx_http_echo_adjust_subrequest. thanks 王斌. REVERT: 1fa2e121ed added two passing tests for setting content-type response header with a charset. REVERT: bcb1f2c1c6 suppressed one more valgrind false-alarm for nginx 1.0.x. REVERT: c52525b3a1 now in the subrequest capturing processor, we worked around an issue in ngx_http_static_module that when it issues 301 redirect for directory access w/o a trailing slash, it does not inject r->headers_out.location into the r->headers_out.headers list. thanks moodydeath for reporting it in the discussion of github issue #41. REVERT: b9a84fc3a9 fixed a tiny bug in the subrequest + internal redirect fix: we should not override the current ctx completely, as mentioned in github issue #41. REVERT: 6709d16c01 reindexed the tests. REVERT: a7c0136677 added a test for internal redirects by the "index" directive. REVERT: c3b03fed24 fixed a bug in ngx.location.capture() and ngx.location.capture_multi() that we could not capture locations with internal redirections in them. thanks moodydeath for reporting it in github issue \#41. REVERT: 1a58a29314 fixed redundant last chunk issue for ngx.exec() invocation at rewrite and access phases: we should quit the current core_run_phases cycle; this also fixed github issue #40: 2 Subrequest calls when using access_by_lua, ngx.exec and echo_location. REVERT: 9c8b21969e Merge branch 'exit-fixes' REVERT: 6c147f4e2b used longer timeout for access/exit.t REVERT: 0f2c228ffd updated the documentation for ngx.exit() in README. REVERT: 7492a1ea69 fixed ngx.exit(status) where status >= 200 and status < 300 for access_by_lua*: it should quit the whole request altegother and skip all those subsequent phase handlers (if any). REVERT: 15229c2d6e now exit(status) where status >= 200 and status < 300 will successfully quit the current request altogether if being used in rewrite_by_lua or rewrite_by_lua_file. thanks moodydeath for reporting this issue. REVERT: 1ab26d0153 repeat each test case twice in t/016-resp-header.t. REVERT: e4e299409d fixed github issue #39: setting differnt headers with common prefix might interfere with each other. thanks moodydeath. REVERT: 43345dcbe4 documented that ngx.req.get_headers() and its friends only operate on the current request. it has no effect on the current request's subrequests. thanks moodydeath. REVERT: e8c9ea9e04 fixed GitHub issue #38: request headers did not forward to subrequests when the "method" or "body" option is explicitly specified by a non-nil value for ngx.location.capture(). thanks Richard Kearsley. REVERT: 2081f73a5e fixed the link to ngx_openresty. REVERT: d0026ac6d5 added pointer to the ngx_openresty bundle in the Installation section. REVERT: ce83076c74 minor formatting. REVERT: 0dca6659bf minor formatting. REVERT: 2e5d420240 fixed a bug in output header set; we should always set the header->hash to 1. thanks moodydeath for reporting it. REVERT: 33f2decc4d confirmed that we work with nginx 1.0.2 as well. REVERT: 75e67b6bb5 confirmed that we work with 1.0.1. REVERT: f337896d44 fixed a spot that triggers the "variable set but not used" warning issued by gcc 4.6.0. REVERT: 670d12b5ea splitted source code lines exceeding 80 cols. REVERT: 6071175d73 suppressed the false alarms on nginx 1.0.1. REVERT: 6cfe38e071 minor coding style fixes. REVERT: 4ffeefec27 fixed test failures due to randomness involved in Lua table's pair order; the test suite is passing completely with LuaJIT2.0 now. REVERT: 9739fccaa5 added support for multi-value request headers in ngx.req.get_headers(). REVERT: 23cad91f06 now we turn the ngx.req.header table into an ngx.req.get_headers() function; we also added ngx.req.set_header(name, value) and ngx.req.clear_header(name). thanks moodydeath. REVERT: 7bba8bfec7 renamed the 016-headers.t to 016-header-out.t. REVERT: 098838e5ce minor code refactoring for the headers out stuffs. REVERT: cfa8109d97 minor coding style fixes. REVERT: 35b4c8d86d implemented the ngx.req.header table interface for retrieving all the request headers for Lua. thanks moodydeath. REVERT: c230c16f58 no longer use request_eval and respones_eval sections in the tests because they are deprecated now in Test::Nginx. REVERT: 08ac368102 marked features that require the ngx_devel_kit (NDK) module. REVERT: 25ff9e40d6 Merge branch 'optional-ndk' of github.com:chaoslawful/lua-nginx-module into optional-ndk REVERT: 28b3882d7a now we make ngx_devel_kit (NDK) optional. thanks Kirill A. Korinskiy. REVERT: 1f8751d1cf now we make ngx_devel_kit (NDK) optional. thanks XXX. REVERT: babcd9e22c documented that we work with nginx 1.0.0. REVERT: ff7f769766 updated build10. REVERT: a367a9e57f removed a duplicate definition of the ngx_str_set macro caught by ctags; also fixed a warning thrown by gcc -O3 on Mac OS X 10.6. REVERT: 0e0b0fc267 also apply PCRE patch to set_by_lua* directives REVERT: a49c175e6c add patch to use PCRE related LUA extensions in ngx_lua REVERT: 580279dd39 add warns about data sharing trick in readme REVERT: 30170eff2f added a quick note regarding ngx.OK/ngx.DONE/ngx.AGAIN/ngx.ERROR. thanks wendal. REVERT: ce944e1f63 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 86d6b00f97 documented one known issue that ngx_lua cannot capture locations with internal redirections (either via error_page or ngx_echo's echo_exec directives or ngx_lua's ngx.exec()). REVERT: 4ffe58d828 added more complex tests (using memcached) for the ngx.exec() after ngx.location.capture() bug; it is already passing. REVERT: 271a7e184a now we change the way we process HTTP 1.0 requests by automatically buffering all the user outputs generated by ngx.print()/ngx.say() calls, which is much more natural than the old broken way. REVERT: bd65090474 fixed a regression in the previous ngx.exec() fix when using nginx 0.7.x and 0.8.x < 0.8.11. REVERT: 241ba237b3 fixed the "ngx.exec() after ngx.location.capture() hanging" bug for rewrite_by_lua* and access_by_lua* as well. also added tests for these cases. REVERT: 2431340d87 fixed the bug regarding use of ngx.exec() after ngx.location.capture(), which led to hang. REVERT: 8a37e835ba replace readlink cmd in order to make build.sh working under OSX REVERT: d6f7dd5600 more README tweaks. REVERT: 52f027bb02 fixed another typo in README. REVERT: f496213182 fixed a typo in README. REVERT: f7b3925bb2 emphasized that the data sharing is per-worker not per-server. REVERT: ae8c97c8cd added a separate section "Data Sharing within an nginx worker. REVERT: 7a05704807 fixed a typo. REVERT: d63963efba documented in details about data sharing and race conditions by means of required Lua user modules. REVERT: 74ba36fea8 updated README to reflect the changes that we always add those extra linking options on darwin systems because it is too hard to tell if it is a x86_64 system or not. REVERT: c7907e0318 added a test for the hanging bug regarding ngx.exec() used after ngx.location.capture(). REVERT: a51a2a7efb Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: daad6fcefc fixed a typo in the error messages. REVERT: 6bb9a260c7 fix luajit linking opt on OSX REVERT: 5a57432cbd add missing module info for unit-test; remove unused code; update ndk dependency REVERT: 98924adaea documented the ngx.is_subrequest attribute and enabled ngx.status and ngx.is_subrequest in set_by_lua* as well. REVERT: 03b3d311d9 applied a patch from moodydeath to introduce the "ngx.is_subrequest" attribute. REVERT: a32193bdc0 now we encourage use of the client_body_in_single_buffer directive instead of big client_body_buffer_size. REVERT: ccaf132169 updated the contexts each config directive can be used within. REVERT: 4d4ba140f1 now we allow rewrite_by_lua(_file) and access_by_lua(_file) at server and http config levels. REVERT: 0b08a6e654 updated valgrind.suppress. REVERT: e42cdc0f42 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 4781ccc5c7 set vv->no_cacheable too for ngx.var.foo = xxx. REVERT: 28aa858ebb Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 49788e19e8 fixed typo in config; added extra linking options needed by LuaJIT in 64bit OSX REVERT: 1db066e645 emphasized in README that Mac 64-bit users have to edit the "config" file themselves when building with LuaJIT 2.0 (for now). REVERT: fde4b44e63 updated the Status section of README. REVERT: 06c71b8cc6 minor tweaks of README. REVERT: 48063d36a2 skip more false-alarms for valgrind when building nginx using -O3. REVERT: 8bc6ec53b5 fixed the zero size alert caused by ngx.print("") in Lua. REVERT: 4a7afc2428 now we always allocate r->request_body for subrequests when the method option is specified for ngx.location.capture*. this prevents accidental inheritance of parent request's request body when client_body_buffer_size < client_max_body_size. REVERT: 44fb570985 fixed indentation. REVERT: 4de07de5dd fixed a typo in README. REVERT: 699c4abd8c added notes about variable number of subrequests for ngx.location.capture_multi to README. thanks Marcus Clyne. REVERT: 0b39e1e251 optimized the buffer management process a bit for ngx.location.capture*: one the response body is a single buf chain, do not bother concatening it into a new buffer. REVERT: 149fea4b47 states that we no longer require openssl in README. REVERT: 0a6ecfe67c now we no longer explicitly require OpenSSL crypto, we now use ngx_md5.h exclusively, and no NDK_HASH pain any more. REVERT: 6d4ab5ee12 fixed various minor coding style issues. REVERT: 92520b0ced mentioned the "cosocket" mechanism in the Future Plan section. REVERT: 19ad8e7a5e minor test adjust. REVERT: f408e32f7d now we report an error at config time when rewrite_by_lua* are used with nginx 0.8.42 ~ 0.8.53. REVERT: a6e80250b6 minor README tweaks. REVERT: f0b0540b87 updated the TODO, Known Issues, and Future Plan sections in README. REVERT: af1ebf104d fixed regressions while building with nginx 0.7.x and also confirmed that rewrite_by_lua* work with nginx 0.7.x. REVERT: 63901b1fb3 added notes regarding cases when ngx.location.capture and ngx.location.capture_multi fail to capture subrequests' outputs. REVERT: 9729332036 now we recycle the chain links and associated bufs among subrequests issued by one or more ngx.location.capture_multi() calls within a single (parent) request. REVERT: 4b9c29c6bf we now free unused memory chunks more aggressively to reduce memory usage. REVERT: 60a88383a8 added some tests for using ngx.location.capture_multi() at rewrite, access, and content phases at the same time and these tests are all passing :) REVERT: c8aeedc87a we now cancel the ctx->body field and use the parent request's ctx->bodies instead, thus saving some bytes per request. REVERT: ca4a243228 now we make ctx->waiting a counter and cancel the ctx->waitings array. REVERT: 5aee1af160 we now post the parent request ourselves in the post_subrequest callback in some extreme condition that the current (sub)request is not active AND it has some weird postponed requests associated with it. this work-around makes those crazily complicated test cases for ngx.location.capture_multi() pass now. REVERT: a5819c8a71 no longer set the NGX_HTTP_SUBREQUEST_WAITED flag for subrequests. REVERT: 71fa89025f minor optimizations: we only pass NULL chains down the output filter chain when we really need (that is, the current request is active *AND* there is postponed outputs in r->postponed). REVERT: 4265dbdc25 minor optimizations in ngx.location.capture_multi() and also fixed a bug in its request options handling (we did not initialize the options properly for *every* request). REVERT: 3ad08c9e3f updated the TODO list in README to reflect recent changes :) REVERT: ce540ead33 documented ngx.location.capture_multi() in README. REVERT: 0048b1fbc0 the post subrequest callback may be called multiple times (due to finalizing in-active requests) and those useless left-over calls may cause segfaults while accessing parent requests' ctx struct. now we add checks to post_subrequest to prevent its main logic from running twice or more. REVERT: b6e2e55176 added more tests for ngx.location.capture_multi: 4 parallel subrequests are confirmed to work ;) REVERT: ef2dbff1fc ngx.location.capture_multi(): now we actively switch the active request to the next (postponed) subrequest if the current request is still waiting for its subrequests. REVERT: 079cb2aab4 added tests for ngx.location.capture_multi(). REVERT: 8b19dd8b1c implemented ngx.location.capture_multi(). REVERT: 4f8f26daed mentioned bad race conditions while reloading lua modules when the lua code cache is off. REVERT: 2ed82042ea minor config cleanup. REVERT: 65b587c6ee added notes for installation on Ubuntu/Debian/Fedora/RHEL/CentOS. REVERT: 9303bdaf7c added a failing test that ngx.location.capture() cannot capture subrequests with internal redirects because ngx_http_internal_redirect() clears module ctx structs. REVERT: 4f3607b935 now we skip those lua5.1 and luajit2.0's builtin packages while clearing package.loaded when lua_code_cache is off. REVERT: 64c6b34970 when subrequest status is 0, assuming 200. REVERT: adf6c00994 added a test case to demonstrate how to kill timed out mysql queries and also confirmed that we also work with nginx 0.9.4. REVERT: 6bf0898784 added more test cases for phase postponing. REVERT: 43513dddf6 added more docs for the Lua code cache. REVERT: 7d9e041879 updated README to reflect recent changes regarding the lua code cache control. REVERT: e1522b1d9f added more test cases. REVERT: c201c8892f now we also pre-calculate cache keys for lua file paths that do not contain nginx variables. REVERT: d0de36b0ab inlined lua code now calculates the digest key only once at config time, this will save some CPU cycles per request. REVERT: 68b171b73a now we make use of the new ngx_http_complex_value_t struct and related utility functions provided by the nginx core for nginx variable handling in lua file paths. REVERT: 8b30373dff added more code-cache tests for set_by_lua_file. REVERT: 7ea8bd5a4c fixed a typo in README. REVERT: 4dceab188f documented the new "lua_code_cache" directive. REVERT: 47ef132c01 now we forcibly flush "package.loaded" for each http request when lua_code_cache is off. REVERT: baaaabcc96 first cut on the "lua_code_cache off" directive. mostly working but reloading lua modules still needs some work. REVERT: 7b30e29842 now ngx.log and those log level constants are available in the context of set_by_lua and set_by_lua_file. REVERT: 92d7a4f712 minor test code cleanup. REVERT: 7db7ae1347 fixed a typo in README. REVERT: b626757ed9 fixed README's wording a bit. REVERT: c8f59c7fb7 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 284c7f1b58 documented that subrequest issued by ngx.location.capture always inherit all the request headers of the parent request. REVERT: 18293939af Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: ac1b3de7ea updated todos REVERT: d2006cbfd3 fixed a typo: $LIB_LIB should be $LUA_LIB. thanks Vladislav Manchev. REVERT: de270bf8e7 fixed -lcrypto library search under /lib for Solaris. ngx_lua should build out of the box there. REVERT: 5f6813866c No ONLY in exit.t REVERT: 0fbf2c8483 updated config to check openssl and -W,-E support on the fly. REVERT: f2541c2d57 minor edits. REVERT: ee1cb7dd66 added a more complicated sample for access_by_phase. REVERT: 68069101e9 checked in auth.t. REVERT: 96b9bbe631 removed unused debug options REVERT: 84131c0fd0 resolved conflictions REVERT: 45de0f0c0e add tests in subdirs into run_test script REVERT: a910ced9de fixed test cases for earlier versions of nginx. REVERT: 1660f57316 updated test requirements REVERT: 0745d1e936 modified doc to reflect *_file directives' change REVERT: c689ef5141 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 4ba628259a allow using nginx vars in *_by_lua_file directives REVERT: 44798330a5 added missing vim modeline REVERT: 4d153cbae2 updated the Installation section. REVERT: ae257b0c24 added one more (passing) test case from Sirsiwal, Umesh REVERT: e9502dd238 now we no longer emit anything (even special bufs) after eof. REVERT: 80bb55a3e9 updated the year list in the copyright notice. REVERT: 92381c521c edited my names in README. REVERT: c62a7a5237 removed a --- ONLY flag from the test suite. REVERT: 57d1f80cf3 rewritten the HTTP 1.0 handling section in README. we can actually automatically generate a Content-Length header for HTTP 1.0 requests. REVERT: f2374de190 fixed a typo in README. REVERT: 69527323ab added a section in HTTP 1.0 outputs to README. REVERT: 17bffb5c26 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: ed48b9303f fixed an issue regarding HTTP 1.0 outputs. REVERT: face45b54c Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: e1da316365 fixed comment mark REVERT: 44bbe7068d applied a modified version of neilljordan 's patch to add support for multi-value response headers returned from subrquests. REVERT: 9a7c06c4a8 fixed a bug in rewrite_by_lua* and access_by_lua* regarding automatic response headers sending. thanks Roman Vasilyev. REVERT: c2ec0b3ab1 added a test for auth_request + ngx_access. REVERT: 077ee1a4da documented that access_by_lua* also supports lua_need_request_body. REVERT: 417e3a7602 added a sample for mixing rewrite_by_lua_file, access_by_lua_file, and content_by_lua_file. REVERT: d2e6375c83 added more tests for access_by_lua. REVERT: 3da14bc61b added t/024-access/*.t. REVERT: 02f32dd21b added more sample configs to Synopsis section. REVERT: 20e919d612 access_by_lua and access_by_lua_file are passing tests now. REVERT: 2606b2f2fd updated .gitignore. REVERT: 51971a48f3 added compatibility notes regarding 0.9.x. REVERT: 5545242581 resolved conflicts REVERT: b0da782fb9 added typecasts to suppress clang warnings REVERT: 0590c96d56 now we return NGX_DONE when ngx_http_read_client_request_body returns NGX_AGAIN in content_by_lua. REVERT: f5187bff39 specified which context a specific lua nginx API is available, like being available in rewrite_by_lua and content_by_lua. REVERT: 77a036c5a7 documented that rewrite_by_lua will NOT work with nginx 0.8.41 ~ 0.8.53. REVERT: 0d2001b022 massive code layout refactoring. REVERT: 17d56682c6 moved the handler functions out of directive.[ch]. REVERT: 657bea5b29 moved t/024-mixed.t to t/023-rewrite/. REVERT: 530be0965d checked in more tests for rewrite_by_lua. REVERT: 2f2b1b6668 fixed a bug regarding content handler reading request body. REVERT: 3a25d18663 documented the current behavior of the "lua_need_request_body" directive. REVERT: 2b53d0d527 re-implemented the "lua_need_request_body" directive. now it is both working for rewrite_by_lua and content_by_lua. REVERT: 18df04491f now we postpone rewrite_by_lua to the end of the rewrite phase; also reset ctx in content_by_lua to avoid left-over ctx flags set by rewrite_by_lua to taint our content_by_lua handlers. REVERT: 65ef4ca5ef fixed compatibility issues with nginx 0.7.x but still rewrite_by_lua does not work with 0.7.x. REVERT: 11050d43b9 rewite_by_lua tests. REVERT: f8f272aee7 sanity.t and subrequest.t for rewrite_by_lua* now passing. REVERT: 9372747c59 rewrite_by_lua starts passing tests. REVERT: ac647f3e8a coding style fixes. REVERT: 13dbf2ab3f first cut on rewrite_by_lua support, not there yet. REVERT: d66c01d39b updated ndk upstream location REVERT: fb58b876eb updated ndk dep REVERT: 3c1b63a4f1 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 2d37ba51d8 now we use the 2-clause bsd license. REVERT: 52a7f21c3b Add auto-discovery for FreeBSD. REVERT: bc1c2d63a1 added notes about using luajit under 64-bit darwin os; updated ndk depedency REVERT: 113ba8b723 $ngx_found value cannot be accessed before auto/feature, because it carries-over result from the previous feature check. REVERT: 9ed533cc04 Add autodiscovery support for Debian Lenny. REVERT: add96fcf0c added more tests for 500 in subrequests. REVERT: 967557e8d6 more README tweaks. REVERT: 18588a5608 documented that you can only write to an nginx variable in Lua when you have predefined it outside at config time. also documented an interesting work-around for set_by_lua to return multiple values to multiple nginx variables at the same time. REVERT: d4e72a9c23 marked those lua interfaces only available in content_by_lua. REVERT: ae3ae2e7fd renamed ngx.utc_time() to ngx.time(), and canceled the old ngx.time() functionality. also renamed ngx.strtime() to ngx.localtime(), and ngx.utc_strtime() to ngx.utctime(). REVERT: a348f369b5 removed trailing spaces in README. REVERT: ec5a8bc61e more README tweaks. REVERT: 561a722984 fixed an english wording error. REVERT: 0e0f1e5303 fixed ThinkPad spec in the Performance section. REVERT: 93186ff6e6 minor README fixes. REVERT: 0558182387 fixed english wording in Known Issues. REVERT: d7693625b3 more README tweaks. REVERT: 70bba9064b more README tweaks. REVERT: a7b79f070b states that subrequests are completely different from HTTP 301/302 redirection and internal redirection. REVERT: d88aa2b076 more README tweaks. REVERT: 7415b527ef more wording tweaks in README. REVERT: 1fce2771fb minor wording tweaks in README. REVERT: 46642db583 explains how nginx subrequests work and what it can do. REVERT: e870cad23c documented the "args" option for ngx.location.capture(). REVERT: bf7f4f76c3 implemented the "args" option for ngx.location.capture. REVERT: 74f541f5b1 tweaked the docs for ngx.redirect(). REVERT: 32c3686a15 implemented, tested, and documented the new ngx.redirect(uri, status) method for Lua. REVERT: d98a147780 documented the share_all_vars option for ngx.location.capture in README. REVERT: d53fe2831c added a share_all_vars option to ngx.location.capture to resume the old behavior of sharing all variables among parent and sub requests. REVERT: 06563fa528 now we do not share variables by default. REVERT: 8eb0d80101 removed ngx.throw_error from the documentation. REVERT: 82ff13ad11 more README love. REVERT: 1c1b04550d implemented ngx.utc_strtime() and ngx.time(). REVERT: cbc0ca96c7 further renamed ngx.utc_now to ngx.utc_time, and ngx.now to ngx.strnow per Piotr's suggestion. REVERT: fa9f606ce7 renamed ngx.time further to ngx.utc_now. REVERT: 8a06613c7d documented that ngx.now() returns local time while ngx.time() returns GMT time. REVERT: ad2b41ff65 renamed ngx.get_today() to ngx.today(), ngx.get_now() to ngx.now(), and ngx.get_now_ts() to ngx.time(). REVERT: 9ecb1f0730 minor formatting fixes in README. REVERT: f901a4064f documented ngx.get_today(), ngx.get_now(), ngx.get_now_ts(), and ngx.cookie_time(t) in README. REVERT: 77d344d3de implemented ngx.cookie_time(timestamp) as per Igor A. Valcov. REVERT: a4b8f98d3d added a link to chaoslawful's wiki page for ngx_lua. REVERT: 76507f452d minor README tweaks. REVERT: b41e7dd962 removed non-GET method support in ngx.location.capture from the TODO list in README. REVERT: 1b87f64b0b documented the option arg for ngx.location.capture as well as the "method" and "body" options. REVERT: 0e312b7b1a checked in the tests for POST/PUT/DELETE/HEAD subreqeusts issued by ngx.location.capture. REVERT: 8e9a88981a implemented the method and body options for ngx.location.capture. REVERT: 539cad5991 fixed a typo in README. REVERT: 6bf961e228 updated TODO section. REVERT: e4a02b3508 now we escape all those chars escaped by FF3.5's encodeURIComponent in ngx.escape_uri. REVERT: 9ea82353a3 style fixes. REVERT: 1026080463 fixed line number. REVERT: 2cf4b0aa13 documented that nil args are allowed in print and ngx.log but not ngx.print nor ngx.say. REVERT: 583f007586 no longer allow nil arguments in ngx.print nor ngx.say. REVERT: 69dabae30c added ngx.location.capture_multi to the TODO list. REVERT: ee83dbf788 now we allow use of nil in print(), ngx.log(), ngx.print(), and ngx.say(). REVERT: cb4e032086 more README tweaks. REVERT: fd45a1619e more README tweaks. REVERT: cca047e554 more README tweaks. REVERT: 1223e88e7f minor README tweaks. REVERT: a88715d9f5 renamed "NginX" to "Nginx" in README because the former looks weird to me ;) REVERT: 1de9200405 improved wording a bit in README. REVERT: 4383444b28 more comments on ngx.send_headers() in README. REVERT: e5bd77e865 documented ngx.encode_base64 and ngx.decode_base64. REVERT: b54c7568ad renamed ngx.base64_encode and ngx.base64_decode to ngx.encode_base64 and ngx.decode_base64 for consistency. REVERT: 47d397dd00 documented res.header where res is the retval of ngx.location.capture. REVERT: 45220955a0 implemented the response headers support in ngx.location.capture. REVERT: 435a0a3a5b documented that keys in ngx.header.HEADER will be matched case-insentively. REVERT: 7af330114b added a failing test for $arg_v not defiled side-effect bug. REVERT: 783dc72ddb minor optimizations by specifying pre-allocated item count in lua_createtable. REVERT: e126d56649 improved the error message: "content_by_lua prematurely ended" => "content_by_lua aborted". REVERT: 04876fcf07 now we make print in Lua use the ngx.NOTICE log level. REVERT: 3c998b20df renamed ngx.throw_error to ngx.exit. the former is now deprecated. REVERT: 78667e4249 updated .gitignore. REVERT: ed3cda136f now we make "print" use the debug log level and the "lua print: " prefix. REVERT: 1a29623113 confirmed that we work with 0.8.53. REVERT: 96f6d4c606 now we cached the ndk.set_var.DIRECTIVE lua closure to eliminate config directive lookup at every call. REVERT: c76f755bbb eliminate allocating "hv" on the heap to reduce runtime cost. REVERT: 19c9415ad0 now we also escape "=" in ngx.escape_uri. REVERT: 9fd1a9704f now we allow ngx.throw_error(0). REVERT: 0927d6439e fixed typos in error messages. REVERT: 855d522e18 avoid using newlines in closure factory wrapper code to ensure the line numbers in error messages are correct. REVERT: 7c8c131afa documented ndk.set_var.DIRECTIVE interface. REVERT: 16d947f3a7 checked in 018-ndk.t for ndk.set_var.xxx testing. REVERT: cdc8832399 added static for clarity. REVERT: abd0f29d2d minor style fixes in 006-escape.t. REVERT: 25284b10c3 now we also escape / in ngx.escape_uri. REVERT: d92839afb7 implemented ndk.set_var.DIRECTIVE such that we can invoke directives of other nginx C modules directly from within Lua :D REVERT: d954160e3f implemented and documented and tested ngx.exec to named locations. REVERT: 6fc54f5ef1 fixed a typo in README. REVERT: f33ac9d2e3 now we allow overriding multi-value headers. REVERT: 10deafbf7d documented the multi-value header setting feature. REVERT: a1a32738b7 implemented multi-value header setting. REVERT: ce82ec28c2 states that ngx.exec never returns. REVERT: 3811a28b89 documented how to clear a response header. REVERT: 226a207df8 documented ngx.header.xxx, ngx.exec, and ngx.status in README. REVERT: acdc74c143 implemented ngx.exec for Lua. REVERT: 53abbc08db removed C++ style line comments. REVERT: 0fa54cef42 more style fixes. REVERT: 0eebb17baf coding style fixes. REVERT: e6712e7971 repeat_each(2) in 016-headers.t. REVERT: da9fa90a7d checked in the test file 016-headers.t REVERT: f5bac10fcd implemented the ngx.header.foo API for Lua to set/add/clear response headers. REVERT: cea93b2f5e implemented 'ngx.status = xxx' and 'my_var = ngx.status' on the Lua land, which is just mapped to nginx core's r->headers_out.status REVERT: 7dccc5a330 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: b04fff9f80 nginx core's ngx.escape_uri does not escape the plus sign (+), we now use our patched version of this function. REVERT: ff30f44364 merged marcus' modification; updated ndk depedency REVERT: c6837de022 Update ndk_md5_hash() to work with updated NDK REVERT: 7aff45f2ac force enabling NGX_OPENSSL_MD5 to solve weird complation issues. REVERT: f75abbaf84 turned off ddebug. REVERT: 238c17c224 renamed 011-bugs.t to 014-bugs.t REVERT: 5d0f7a8e80 tweaked kindy's patch for base64/md5_bin/get_today etc a bit. and pfree aggressively to prevent leaking REVERT: 3348b15343 added: ngx.now() ngx.now_ts() ~ timestamp ngx.md5_bin(s) ngx.base64_encode(s) ngx.base64_decode(s) REVERT: 0a6728d782 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: fadcc9f8b0 checked in t/011-bugs.t. REVERT: ed8abcc514 updated config; updated dependency REVERT: 4eb5d5e435 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 18297b16c5 fixed ngx.quote_sql_str which should put the surrounding quotes. REVERT: 5a77f7ce9f removed unused readme file REVERT: e3f677a149 removed skip tag for ngx_http_auth_request tests REVERT: 387f4d5b23 modified build script; modified installation section of readme REVERT: 712f1d15ba complement the directive documents REVERT: dc9797ecc4 removed finished job: read request body REVERT: 2b134cda56 added lua_need_request_body directive to force reading request body; modified tests prefix REVERT: 253a647db4 fixed log level signess mismatch REVERT: 71c41e9267 fix readme typo REVERT: 20c22c2f8c fix readme fmt REVERT: 1baf7b6471 fix readme fmt REVERT: 6073e0ea23 removed todo file, move all contents into readme REVERT: 6621e4806f modified todo fmt; add issues in readme REVERT: 7e808f71bb fix readme fmt REVERT: 5cc5897fda fix readme fmt REVERT: 96e6f40209 fix readme fmt REVERT: 488d871c50 fix readme fmt REVERT: 288ef90b0d fix readme fmt REVERT: 8e93880bc9 modified readme fmt REVERT: d6d01dd894 format readme REVERT: c78ba3d7fb added markdown format readme REVERT: cea679320c added new feature intro to README REVERT: 403167a27f added notes to todo list REVERT: 75b3362d5a * allow default path expanding in path/cpath and added tests * added revim script to automatically insert vim modeline to sources * added retab script to reexpand tabs for given files * format sources and tests REVERT: 9f206095f0 remove ngx.log() from todo list REVERT: bd5c0f4717 * added ngx.log() api and prime unit-tests * restored missing vim filetype in unit-tests REVERT: 1b18a21884 updated todo list REVERT: eeea4fca25 Revert "xx" REVERT: cee9eb63af xx REVERT: eb1c7ea8d7 reindexed tests REVERT: fd819a18ba updated dependency REVERT: e09ee9fd28 added ngx.get_today support REVERT: 15327bb00c resolved conflict between the branches ngx_md5 and share_var. REVERT: 208a5468e2 added tests of using ngx.md5 in set_by_lua REVERT: b2ad6af08a Merge branch 'share_var' REVERT: 900e351047 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 5a563ab774 Flush data from memcached during tests initialization. REVERT: 604e01e32e flush testing memcached before tests begins REVERT: d8bbb0d7f6 added testing dependency modules order notes in README REVERT: 1981849256 added a test of share variables in main request REVERT: bfdd68b57e see nil in ngx.md5 as a null string REVERT: eadf67ed5f removed explicitly testing dependencies, note them in README instead REVERT: 1311727d72 added impl of ngx.log to todo list; updated dependencies REVERT: 9c1b5d5b13 Remove missed skip_nginx block. REVERT: eb2381c90c Don't hide the fact that this test doesn't work with nginx-0.8.42+. REVERT: e1eabdcfe7 added a test of sharing variables REVERT: 0568303bdc added a test of sharing variables REVERT: 361bc3acd9 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 93ce856ea2 Disable DDEBUG and lower the number of repeats for content tests. REVERT: 4c34ec535d turned off ddebug :P REVERT: f796a1aea4 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 112f755d9e Fix missed lua_cpath. REVERT: d3525580db fixed a bug about null string in ngx.quote_sql_str REVERT: 3ad40f2cf3 updated dependecies REVERT: 2eda397771 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 52746dbfc3 added lua cmod path in CentOS to tests REVERT: b559b6c845 added ngx.md5 support REVERT: 321d63ab20 share variables in subrequest REVERT: 670f1057ba added more tests. REVERT: 2ae707c62c Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: d6497f1d2c Make it work with the build farm. REVERT: c156cbd311 tags to spaces. REVERT: 6075d86b1d Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 1f98681852 Revert "some tabs to spaces." REVERT: c149e86683 Revert "share variables in subrequest" REVERT: a0ca0193f8 Revert "added ngx.md5 support" REVERT: 5042c6e62c Revert "fixed unitialized pad and ngx_md5 return value type issues." REVERT: 65e3643395 fixed unitialized pad and ngx_md5 return value type issues. REVERT: 88f35b179f Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: f28dbe39e3 some tabs to spaces. REVERT: 3d071fa82a added ngx.md5 ... REVERT: de24252a2d Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 611c8568da added ngx.md5 support REVERT: dbb0713446 added reported issues REVERT: 5e8cf3d5d5 share variables in subrequest REVERT: afa4448558 added test of using symbol $ in inline lua REVERT: 82a2d6f7c5 updated dependencies REVERT: 30df65d820 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 048c3682de committed my merge. REVERT: ad506f9df1 checked in more tests. REVERT: a18285ba86 added ngx.quote_sql_str REVERT: 324cff234e added todo lists REVERT: c00573fbfa fixed several problems in tests REVERT: 189e56da5e * updated depdencies * added vm panic protection for content_by_lua directives * skipped not-accurate-enough test REVERT: 9fea98919e enable that bug for ngx_lua. REVERT: 202d948d76 updated dependencies REVERT: 9566fd7519 make the lua wev handler check r->done and ctx->cleanup. REVERT: 547786f1c3 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 00b94607f4 mentioned that our test suite requires th engx_auth_request module. REVERT: 7832a117b6 resynced external dependencies REVERT: b9459f1cc2 documented how to build this module with LuaJIT 2.0 w/o patching config. REVERT: d934c912ff added support for LUAJIT_LIB and LUAJIT_INC env in config. also croak when it fail to find lua/luajit when LUA_LIB or LUAJIT_LIB is set. REVERT: 4d057e4868 fixed more bad links due to github escaping. REVERT: ffb1f43260 fixed a link due to github escaping. REVERT: d353933d0d tweaked README more. REVERT: df79322ab4 tweaked README a bit more. REVERT: 26d9dc4cd7 claims that we are already production ready :) REVERT: 9f45d4da24 splitted lines that are too long :) REVERT: 5e4dc3157a added a performance section to README. REVERT: c26249505d splitted long lines. REVERT: a2f5cbe21b documented the Nginx Lua API that we have already supported. REVERT: eb9d381a68 documented the lua_package_path and lua_package_cpath directives. REVERT: 891dffa8f7 more ddebug info... REVERT: 52d2f6cd9d fixed compatibility with nginx 0.8.36 and 0.7.66+. REVERT: a146d3082c added support for lua_package_path and lua_package_cpath directives as per Piotr Sikora's suggestion. REVERT: 2540acd81c fixed a compilation error in luaL_error invocations. REVERT: 5b94570cc1 use "return luaL_error(...)" instead of "return NGX_ERROR" in lua c functions. REVERT: 16627e894f implemented ngx.escape_uri and ngx.unescape_uri in both set_by_lua* and content_by_lua*. REVERT: 62e9a54602 even more ngx.HTTP_XXX constants. REVERT: 514befedb7 more ngx.HTTP_XXX constants. REVERT: c09313d9ea minor coding style fixes. REVERT: fac21194a3 splitted a long long line of code. REVERT: 64dd62de2a fixed an memory issue in ngx.var.foo assignment: we should copy out the pointer returned by lua_tolstring. REVERT: b69e7b5e9b croak when setting non-existent nginx variables in Lua. REVERT: 5ad33b74b1 added tests for setting nginx variables from within content_by_lua Lua code. REVERT: bba0946a70 direct assignment to nginx variables from within Lua code as in "ngx.var.some_var = 32" now works :D REVERT: 9abf8f2080 added support for reading nginx variables directly from within set_by_lua by means of ngx.var.foo. REVERT: 70467b68a6 turned off ddebug. REVERT: a97c330a1f confirmed that we work with nginx 0.8.45. REVERT: 41261ce769 emphasized that default_type is used to control the MIME-type of the response. REVERT: 497f2b7570 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: ea4c8b6ac0 tab to spaces in cache.c REVERT: 2bdd9051af updated echo-nginx-module dependency REVERT: 4948564113 update test-nginx and ngx_devel_kit dependency REVERT: 967f7dab98 repeat more times in the test suite. REVERT: 6d4830396a refactored the ngx.var.xxx implementation and added a (passing) test case for content_by_lua + ngx_auth_request REVERT: ef259e7ce2 implemented ngx.throw_error interface. REVERT: 4af58bae1b more tests for require. REVERT: 5cf560bc67 restored valgrind.suppress file. REVERT: 993590daf0 better error diagnostics. REVERT: 8f764bf538 more tweaks. REVERT: 1d33e89464 more tweaks. REVERT: 5a50cfd9a5 indentation fixes. REVERT: fc2bba529e tab to spaces for directive.c REVERT: c6701d161c backported the fix for internal redirect from ngx_echo. REVERT: fef2069b74 fixed the digest calculation regression for lua loadbuffer. REVERT: 98fd900d47 refactored the ngx.location.capture implementation a bit. REVERT: ac2520ba4d now we rename ngx.echo to ngx.print and also introduced ngx.say that append a newline automatically like Perl 6's say REVERT: 9ecff4791b refactored the ngx.echo function implementation. REVERT: bbc5e44c9f massive code refactoring and cleanup. REVERT: bb3e73b1b8 include ngx_md5.h instead of explicit openssl/md5.h. REVERT: eed7de1e8e added more comments to the samples in README. REVERT: 9198f867c0 added more samples to README. REVERT: bd4d6d51ad added myself to the author list :) REVERT: 87209af719 fixed typo nginx version macro... REVERT: ebcfcf4e1f fixed nginx version typo REVERT: 221221dff9 * lift lua-nginx-module to the top of config modules * added conditional compilation for building under 0.7.x branch REVERT: 624f83d78a updated README to claim that we require at least Lua 5.1. REVERT: b363ddf083 avoid using ndk whenever possible because prototype is missing on *BSD. REVERT: 84bdafdc7d fixed a memory issue in ngx.echo: we should copy the lua string bytes. REVERT: 0093e9e58b updated .gitignore. REVERT: e953ab5958 checked in util/ngx-links to trim ngx_http_blah_blah_ prefix via symlinks. REVERT: b17746e545 renamed _by.[ch] to by.[ch]. REVERT: 8e09749fcd added more tests REVERT: 5a3078070b BIG DAY! ngx.location.capture passed the 1st test! REVERT: ec489c72e7 tab to spaces and also checks the case when ctx is failed to allocate. REVERT: 02e15406c5 make request handling coroutines fully separated REVERT: c92a1a3ec3 added closure factory loading methods REVERT: a58172a276 added nginx var modification hook skeleton REVERT: 777c2d881e updated test-nginx dependency REVERT: b0820ec2f0 added one more test case to 2-content.t. REVERT: 41a3c3e7c4 fixed the merge conflicts. REVERT: d39f331ff1 added more test cases. REVERT: 741b3cca00 added -E linker options to export lua symbols correctly, for external module usage REVERT: 6e2513a8a3 removed unused variables REVERT: 595e4e142a move all dependency modules into deps/ directory REVERT: ed0ab18811 added new test-nginx position REVERT: 9c554bf5d3 changed test-nginx position REVERT: dfac35bc8a modified todos REVERT: 452335df0f * fixed keep-alive hanging bug when using HTTP/1.0 protocol * added more documents about content_by_lua REVERT: dd9cf532e0 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 61a1cbdfd5 add some comments REVERT: e5d22ad735 fixed errors in unit-tests REVERT: 12181757a3 make ngx.flush() working REVERT: 7d5753bf5e implemented basic content handler functions: * override print() to output error log * ngx.var[] table to fetch nginx variables * ngx.echo() to output in-memory contents REVERT: 68cea2ca11 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 4102502ee2 reconstructed nginx request passing method for set_by_lua directives REVERT: f422e7525f tab to spaces in t/1-set.t. REVERT: 2fbde3c9a6 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: a6a1f9e83f declared that we are compatible with the latest nginx 0.8.40 and 0.7.66. REVERT: 844bf3326d Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 8fde5c1b65 removed old unit-tests REVERT: db5e0e1232 recovered run_test util and added missing source files REVERT: 2de7148a0e updated submodule test-nginx repository revision REVERT: f86b58725c various fixes. REVERT: 0ef14aaf31 now we print the detailed error messages to error.log when lua_load fails. REVERT: 9b3bdee1cf added more files to ignore. REVERT: 4f9535212a Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 99e2b14187 improved util/build.sh using wget. REVERT: cc76596994 * modified code format, added vim modeline * extract lua env init code into individual functions * added some unit-tests for content_by_lua directives REVERT: b9d2655d26 Merge branch 'master' of github.com:chaoslawful/lua-nginx-module REVERT: 94d56e379e added more tests REVERT: d4b754a8b1 added basic tests and reindex script REVERT: 97dd3cdeaf restored nginx tarball fetching command REVERT: 3a5c8c08d6 added .gitignore file REVERT: 766ade8a14 changed submodule name REVERT: 9dbc8e8a80 changed test directory name REVERT: deac6c1096 changed test-nginx to submodule points to external repo REVERT: c6f98fb085 changed lua state storage position; added skeleton content_by_lua* entries REVERT: 38b202cc7b added unistd.h before including md5.h REVERT: c990a63b77 fixes the feature test code. REVERT: 9aba7a3c4e added -lm to ngx_feature_libs. REVERT: 0235797639 fixes the feature test code. REVERT: 292ab8ab2b added support for env LUA_LIB and LUA_INC in config. REVERT: 3154636c9b now we use openssl/md5.h REVERT: 5e7c84bb85 removed done ones; added new ones REVERT: a5b477357c added .gitignore file REVERT: 315f20b6b3 implemented code cache and primitive vm persistence REVERT: fc236d105e added todo REVERT: 82619f35be added inline variable check to Lua script/file path; turn to standard Lua+Coco patch; modified log formatter char REVERT: 539d5fe6a8 modified comment REVERT: f07f1fb836 added NGX_HTTP_LUA_ELLIPSIS macro to control if args are passing to script as default arguments (accessed through ellipsis operator ...) REVERT: 66d737464a modifed readme REVERT: 601633b094 modified readme contents REVERT: 23d495b8a1 * split logic into multiple files and changed config file accordingly * added readme REVERT: 81f8090280 prim working version REVERT: d6a0d6c6a5 removed unused ddebug.h REVERT: 9240045589 init commit git-subtree-dir: src/deps/src/lua-nginx-module git-subtree-split:11ab5315b0
97 lines
4.3 KiB
YAML
97 lines
4.3 KiB
YAML
name: Push on GitHub (REUSABLE)
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
VERSION:
|
|
required: true
|
|
type: string
|
|
PRERELEASE:
|
|
required: true
|
|
type: boolean
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
# Checkout
|
|
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
|
|
# Get PDF doc
|
|
- name: Get documentation
|
|
if: inputs.VERSION != 'testing'
|
|
uses: actions/download-artifact@9bc31d5ccc31df68ecc42ccf4149144866c47d8a # v3.0.2
|
|
with:
|
|
name: BunkerWeb_documentation_v${{ inputs.VERSION }}.pdf
|
|
# Create tag
|
|
- uses: rickstaa/action-create-tag@861755f3fcbce1b21a65c17bad10e7d35c27b6d9 # v1.7.1
|
|
name: Create tag
|
|
if: inputs.VERSION != 'testing'
|
|
with:
|
|
tag: "v${{ inputs.VERSION }}"
|
|
message: "v${{ inputs.VERSION }}"
|
|
force_push_tag: true
|
|
# Create tag
|
|
- uses: rickstaa/action-create-tag@861755f3fcbce1b21a65c17bad10e7d35c27b6d9 # v1.7.1
|
|
name: Create tag
|
|
if: inputs.VERSION == 'testing'
|
|
with:
|
|
tag: "${{ inputs.VERSION }}"
|
|
message: "${{ inputs.VERSION }}"
|
|
force_push_tag: true
|
|
# Extract changelog
|
|
- name: Extract changelog
|
|
if: inputs.VERSION != 'testing'
|
|
id: getchangelog
|
|
run: |
|
|
content=$(awk -v n=2 '/##/{n--}; n > 0' CHANGELOG.md | grep -v '# Changelog' | grep -v '##' | sed '/^$/d')
|
|
content="${content//'%'/'%25'}"
|
|
content="${content//$'\n'/'%0A'}"
|
|
content="${content//$'\r'/'%0D'}"
|
|
echo "content=$content" >> $GITHUB_OUTPUT
|
|
# Create release
|
|
- name: Create release
|
|
if: inputs.VERSION != 'testing'
|
|
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
|
|
with:
|
|
body: |
|
|
Documentation : https://docs.bunkerweb.io/${{ inputs.VERSION }}/
|
|
|
|
Docker tags :
|
|
- BunkerWeb : `bunkerity/bunkerweb:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb:${{ inputs.VERSION }}`
|
|
- Scheduler : `bunkerity/bunkerweb-scheduler:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-scheduler:${{ inputs.VERSION }}`
|
|
- Autoconf : `bunkerity/bunkerweb-autoconf:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-autoconf:${{ inputs.VERSION }}`
|
|
- UI : `bunkerity/bunkerweb-ui:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-ui:${{ inputs.VERSION }}`
|
|
|
|
Linux packages : https://packagecloud.io/app/bunkerity/bunkerweb/search?q=${{ inputs.VERSION }}&filter=all&dist=
|
|
|
|
Changelog :
|
|
${{ steps.getchangelog.outputs.content }}
|
|
draft: true
|
|
prerelease: ${{ inputs.PRERELEASE }}
|
|
name: v${{ inputs.VERSION }}
|
|
tag_name: v${{ inputs.VERSION }}
|
|
discussion_category_name: Announcements
|
|
files: BunkerWeb_documentation_v${{ inputs.VERSION }}.pdf
|
|
# Create release
|
|
- name: Create release
|
|
if: inputs.VERSION == 'testing'
|
|
uses: softprops/action-gh-release@de2c0eb89ae2a093876385947365aca7b0e5f844 # v1
|
|
with:
|
|
body: |
|
|
**The testing version of BunkerWeb should not be used in production, please use the latest stable version instead.**
|
|
|
|
Documentation : https://docs.bunkerweb.io/${{ inputs.VERSION }}/
|
|
|
|
Docker tags :
|
|
- BunkerWeb : `bunkerity/bunkerweb:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb:${{ inputs.VERSION }}`
|
|
- Scheduler : `bunkerity/bunkerweb-scheduler:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-scheduler:${{ inputs.VERSION }}`
|
|
- Autoconf : `bunkerity/bunkerweb-autoconf:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-autoconf:${{ inputs.VERSION }}`
|
|
- UI : `bunkerity/bunkerweb-ui:${{ inputs.VERSION }}` or `ghcr.io/bunkerity/bunkerweb-ui:${{ inputs.VERSION }}`
|
|
|
|
Linux packages : https://packagecloud.io/app/bunkerity/bunkerweb/search?q=${{ inputs.VERSION }}&filter=all&dist=
|
|
|
|
Please note that when using Linux Debian or Ubuntu integration, you will need to add the `force-bad-version` directive to your `/etc/dpkg/dpkg.cfg` file before installing the testing version of BunkerWeb.
|
|
draft: false
|
|
prerelease: ${{ inputs.PRERELEASE }}
|
|
name: Testing
|
|
tag_name: ${{ inputs.VERSION }}
|