commit 8b7207c2e779c63e6df7875d0c9a3d6ef47ebd02 Author: Finn Date: Mon Sep 22 21:02:16 2025 +0200 Initial commit diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/discord.xml b/.idea/discord.xml new file mode 100644 index 0000000..d8e9561 --- /dev/null +++ b/.idea/discord.xml @@ -0,0 +1,7 @@ + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..001e756 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..5c785e0 --- /dev/null +++ b/LICENSE @@ -0,0 +1,62 @@ +Open Autonomous Public License (OAPL) v1.0 +Copyright (C) 2024-2025 Open Autonomous Connection (OAC) +Projekt-URL: https://github.com/Open-Autonomous-Connection/ + +--- + +1. Nutzungsrechte +Diese Software darf sowohl für private als auch kommerzielle Zwecke genutzt werden. Die Nutzung ist unter den Bedingungen dieser Lizenz gestattet. + +--- + +2. Verkaufsverbot +Es ist nicht gestattet, diese Software oder abgeleitete Werke davon zu verkaufen oder kommerziell zu vertreiben. +Dies umfasst auch jede Form der direkten oder indirekten Monetarisierung der Software selbst. +Es ist gestattet, die Software im Rahmen von Dienstleistungen kommerziell zu nutzen, solange der Quellcode und die Originaldateien kostenlos verfügbar bleiben und nicht gegen Entgelt verkauft oder monetarisiert werden. +Jede Form der Monetarisierung der Software selbst, wie der Verkauf oder die Lizenzierung der Software, ist untersagt. + +--- + +3. Offenlegung des Quellcodes +Die Software ist dauerhaft quelloffen. Der vollständige Quellcode muss bei jeder Verbreitung, auch in geänderter Form, mitgeliefert oder öffentlich zugänglich gemacht werden. +Jede Version, auch veränderte, muss einen klar sichtbaren Verweis auf das Originalprojekt enthalten: +→ https://github.com/Open-Autonomous-Connection/ + +--- + +4. Weitergabe & Lizenzvererbung +Die Software darf frei kopiert, verteilt und verändert werden, unter folgenden Bedingungen: + +- Die Original-Lizenz (OAPL v1.0) muss vollständig und unverändert mitgeliefert werden. +- Alle Änderungen am Quellcode müssen klar kenntlich gemacht werden (z. B. durch Kommentare oder Änderungsprotokolle). +- Abgeleitete Werke müssen unter derselben Lizenz (OAPL v1.0) veröffentlicht werden, es sei denn, die Lizenzierung erfolgt in einem Kontext, + in dem dies durch geltendes Recht oder technische Einschränkungen nicht möglich ist. In diesem Fall muss der Quellcode der Änderungen weiterhin offen und zugänglich gemacht werden. +- Es dürfen keine zusätzlichen Einschränkungen oder Bedingungen auferlegt werden, die den Bedingungen dieser Lizenz widersprechen. + +--- + +5. Keine proprietäre Nutzung +Die Software oder ihre abgeleiteten Werke dürfen nicht in proprietäre Software integriert oder unter einer Lizenz weitergegeben werden, die die Bedingungen dieser Lizenz einschränkt oder die Offenlegung des Quellcodes unterlässt. + +--- + +6. Keine Veränderung dieser Lizenz +Diese Lizenz darf nicht verändert oder durch andere Lizenzen ersetzt werden. Eine Modifikation oder Re-Lizenzierung ist ausdrücklich untersagt. + +--- + +7. Haftungsausschluss ("as-is") +DIE SOFTWARE WIRD 'WIE BESEHEN' BEREITGESTELLT, OHNE AUSDRÜCKLICHE ODER IMPLIZIERTE GARANTIEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF GARANTIEN DER MARKTGÄNGIGKEIT, +DER EIGNUNG FÜR EINEN BESTIMMTEN ZWECK UND DER NICHTVERLETZUNG VON RECHTEN DRITTER. SOWEIT ES GESCHÄFTSRECHTLICH ZULÄSSIG IST, +WIRD DIE HAFTUNG DER AUTOREN FÜR SCHÄDEN ODER VERLUSTE AUFGRUND DER NUTZUNG DER SOFTWARE AUSGESCHLOSSEN. + +--- + +8. Salvatorische Klausel +Sollte eine Bestimmung dieser Lizenz als unwirksam, undurchsetzbar oder nicht durchsetzbar erklärt werden, +bleibt die Gültigkeit der übrigen Bestimmungen davon unberührt. In diesem Fall wird die unwirksame Klausel durch eine wirksame und durchsetzbare Bestimmung ersetzt, +die dem ursprünglichen wirtschaftlichen Zweck der unwirksamen Bestimmung am nächsten kommt. + +--- + +Ende der Lizenzbedingungen. \ No newline at end of file diff --git a/README.MD b/README.MD new file mode 100644 index 0000000..e57a998 --- /dev/null +++ b/README.MD @@ -0,0 +1,42 @@ +# Open Autonomous Connection WebServer + +This is the WebServer for our Open Autonomous Connection project.
+Feel free to join our Discord. +
+ +## License Notice + +This project (OAC) is licensed under the [Open Autonomous Public License (OAPL)](https://github.com/Open-Autonomous-Connection/OAPL/blob/main/LICENSE). + +**Third-party components:** +- *UnlegitLibrary* is authored by the same copyright holder and is used here under a special agreement: + While UnlegitLibrary is generally distributed under the [GNU GPLv3](https://github.com/UnlegitDqrk/UnlegitLibrary/blob/master/LICENSE), + it is additionally licensed under OAPL **exclusively for the OAC project**. + Therefore, within OAC, the OAPL terms apply to UnlegitLibrary as well. + +# Bugs/Problems +# In progress +# TODO + +# Maven +### pom.xml +``` + + github.openautonomousconnection + protocol + VERSION + +``` + +### Repository: +``` + + + github + https://maven.pkg.github.com/open-autonomous-connection/protocol + + true + + + +``` \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..b500b7f --- /dev/null +++ b/pom.xml @@ -0,0 +1,123 @@ + + + 4.0.0 + + github.openautonomousconnection + WebServer + 1.0-SNAPSHOT + + Open Autonomous Connection + https://open-autonomous-connection.org/ + + https://open-autonomous-connection.org/webserver/ + The WebServer for the Open Autonomous Connection Project + + + 23 + 23 + UTF-8 + + + + + github + + true + + + + + + + UnlegitDqrk + Open Autonomous Connection + https://open-autonomous-connection.org/ + https://unlegitdqrk.dev/ + + Owner + Head Developer + + + + Maple + Open Autonomous Connection + https://open-autonomous-connection.org/ + https://niumaple.carrd.co/ + + Owner + Head Developer + + + + + + GitHub Issue Tracker + https://github.com/Open-Autonomous-Connection/WebServer/issues + + + + + Open Autonomous Public License + https://github.com/Open-Autonomous-Connection/OAPL/blob/main/LICENSE + repo + + + + + + github + https://maven.pkg.github.com/open-autonomous-connection/protocol + + true + + + + + + + github.openautonomousconnection + protocol + 1.0.0-BETA.3 + + + org.projectlombok + lombok + 1.18.38 + provided + + + com.google.code.gson + gson + 2.13.2 + + + org.apache.commons + commons-fileupload2-jakarta-servlet6 + 2.0.0-M4 + + + org.apache.commons + commons-fileupload2 + 2.0.0-M4 + pom + + + org.apache.commons + commons-fileupload2-core + 2.0.0-M4 + + + commons-io + commons-io + 2.20.0 + + + jakarta.servlet + jakarta.servlet-api + 6.1.0 + provided + + + \ No newline at end of file diff --git a/run/auth.pwd b/run/auth.pwd new file mode 100644 index 0000000..2bd0561 --- /dev/null +++ b/run/auth.pwd @@ -0,0 +1,2 @@ +admin:5e884898da28047151d0e56f8dc6292773603d0d6aabbddab8f91d8e5f99f6c7 +user:e99a18c428cb38d5f260853678922e03abd8335f \ No newline at end of file diff --git a/run/certificates/ca.key b/run/certificates/ca.key new file mode 100644 index 0000000..197784e --- /dev/null +++ b/run/certificates/ca.key @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQC9Uu9/sNevUGr1 +k6LI5jdI/HAbsgaS2eFat0mdPKhD0IrDMozhZ1zDh6w/4iOhNC6ypwy0+1l/r6cT +6xL2s3x+DxoaeskMpRD4kd97cE7YrvxXMSwFj5exVnyps03QXFQigZryW5z26xyF +Jw3i6XiHkhpz1fwMKBXynkUROy5IuZu5oTsNko+dcjZWtOI9Tnf0HqmEW8Jrhpjw +JnZX8HBs0Ydd+gr7/nITLF6Eq0Gd1uRupsAOSsZfdXofqgxfVy5CsAyfK/163cnL +BZ5ynKMzqyhxS/9wLQfBLq6499e8w5+5/WHPIZLFeVOfdunudEFmE5aQwjnNBESI +EyaaYlhXQdKhTnAU2JYEg4pnp43DXMxsPeDY/OXDoQAJbuj1ip6jFwIyt8cj6uGv +diFrY1Nqa1Ua2YrN0xRvZ6WioYyrNO7TOkgCC90aop7gxps/ZgYTl2VsTzAtDZXY +mKjc+ZNx5F+h5gLhJMNTbzQ2KweE/7/5ghjHEwc2Z28gh5wOkmK7knuyv1mv4s5Z +UfOXs+Xv0sI4fZiNKyaESoyh4zoHPfUpTMhYPjzpa5g6PDaxs2ewq7Zr0Lvjk12p ++vM6xUeO70RQAK8tftoHmTxZDfh7NxMCnViD1q/2qRLOlSmOyxmH+hmy/4eNkROj +Mn8pyDHPEC3kg0ZuvS/Zutnm+WkXuQIDAQABAoICAAOcd/gWjenZsQkhu7fj0iNX +H//GLEWG0CHPCmXSqxq2+QLhnm0cXr+aLAgRg/xVYmkLbgEWAooE5RsGW1Ngqszn +sCwcMkJ50bAvS9tiK33GuTmbeTx82fOs3lBFAzfTOOOdNR/gD1hXtXT1AOGJvy8C +BKAVrSafi0Btq7903CCumA6OdCUKMo/AdZ8lo7i0TzJduX4sORhpKSvp5kzp6cSq +qr6KWdZaZpcJCOO0aNGq7CJDHkIJqikBLC1/6GRf1FXdLBB1+78LWjsEilpwGtWf +IjjRJfPXei2FvuX4cqnhSRlnb4u05AjN+oJKonCaamn/btpBezrDroqyMCbp2bZs +uxO0PnFTl26LlQSpJlKGRHQiGK+yD/Szw0AbivxsgtIZcpFmDtqm7frs2Sl7uda8 +eCe/1OrFWpEv2M8lYU5t0b/vGVpEeum5+LRxLOjIjhCzurfSvZluKEOa2mH+IwAz +ZrkBdMvjzmkOCYWOfQh8AexvS+4uNycoc5RkeeX5rf+wlpHwlgFnr+5Dmw6SthcE +fb6dcpZA9SE9PJ5NbRFHfFwveo2uvM0xPAHczvC87h8E+rAfVJex7eKDWMySGCkM +k9TuD8rjHw2jF2s0IbO6knRDJdQonZPeqIKPDyv7nRMacAtchNgFbiYOxNn+/QyW +4sqOYLfbt6htdVyDv4s1AoIBAQDy/JWYA3V7RMHqZx823N1zpp8aPIjsXo7ELjqn +Cg0bdRRcWSpfeB/70vxxpRoleuOZx1g3EKTSp/Pc9LVdZAu51qBuWIZLgKHkX+yk +rihI5cmYIlKMNOreLglFdS1ZitVdGlmZ+3zbr1jLt/EtU52QGDBPU4o+opxeJ4Ne +4LoGCCi2JAW1Pz2pUvhjoTHS0W0ozvNsjjQ1kve6DZoeidJSw26yDk1yaqawCptI +1O4QdV/rjOyJgF1IUmYt8YcT7qnxYSpU50bsoYuQ9vSvM0ILwXFKuE/nbR40LWnZ +Sw9a+4VpkUfHc3DlCAuFimP/jpDiWWqaMl/+Ju0gF8rwvWhvAoIBAQDHdp7c6IMm +ty0XrXrBsgQcxcvMP131tDL3x43Ls5vSv7vrP/BkmU3Pt9SHYfDdDRcQQU1HkIXI +reCG9vrTUqTSEOPjYvbIMCrn7z84FKL8NqBu0DzBQbLCgbP0cRKKhLn2hxmmfZfn +yF8/opR5c7qNPS1/+CxgLpVytEsU9TTu7lCUef/rduPLk/aalE2t/il5qzQHmydQ +7ecWihL3z1Amzp+sa1tCePktvmG+LVXlZTLirmJtMMZXAf/tXh6gzP6B7rBcwwYE +YdxEZjwCdQd44e/aXmAh916//VKxAJDqkb8cgpbfu0Jrg/2N+Dve3lX9IpZ6YabQ +t+9BsN8s6AZXAoIBAQDxjykodkfUxAYDgYEGiYud7Yc+DfARC+/iGBM2/EcLhNk4 +9WuqfUFOl/FfCUN0/zZFKmgIVgOFaHKGtr+WmF8P4M6c5GSdqsNGxhX7oSdrUQWY +uIZX3EOhnSKaamMrIVn7tLZe3iTCQQ+FdtfMt9Nr7KAaPHKy0fWhpKZ1K/PDC1lt +uWHzTWt/aXyFjzp42roqV5Kn2LcOi4y66crNkTYGEUN6v70+gcg0OlclkIka05UI +FpEQIQybWU87XWFr71gDHxV2UnWvyOl2tAuMIOkHxsdaAOFusIvWU09nNbeOO33l +9QfmwFz7U4QgvfOrm49tdncD1BCaGRijTwPxUFsBAoIBAEpWikSYn3CJalPdwtd3 +qhKzIQ5BO5p8C1bPV6hoixWTgczeapCDlj1pLNs8BFHONB9Jxyx5z3KIYxrJ55dk +wKrNwrEXTBQ153fDcdNL1aacEVTbZRk9jArz3ganMZrQdqJLnaKwQjIPOnhz9lQB +brB+8Xs1GgzKr8YtLaJk9NJrnTqI8XlnOOTBg3H+/ahwBjMjPGPtTkzaLXr4ALO8 +3wlnjpjq9fsjLPMAdlszeETjX4CeL260c+cvhpuHrXCOlfgE5lPcF10Av9/6Hjlo +Nl22DvdanwdpszVoiy4OoPPbV9efT+2YU9vQOGp17pJUWMXb4ys/Q7WcJ55a9gI9 +g0cCggEBAL+B6vL4ipi9ioGCePPC4Klew/GTxy3dqJtCw7woHlz76zHJsQqllY8S +wqzcydRvvpkxI8HGNWtMSGiPWePss7qUrAdq0jZh921buXtuD3aqqUjaLDnm3rYz +v844JFJyKhgUqwkXHOeOw9ktsMxpBOsqa0vcYVmZ2dalvFC47b3pHplJmATLgV/6 +lCHUXi5HZ53Yd5lyduUuavnWuWnnwbovc4vKBz7zMHb70oQSn/6wx5f7Bbgy1ZSk +7vlNYomNKgl5dtRlphBi3GFxyrE5EDFzis6UX7lNjADZrqYSeBCT8EFBoEfc/eVN +c5RF/V4VtgM7jggSLlUUgO0L2/Hw5bM= +-----END PRIVATE KEY----- diff --git a/run/certificates/ca.pem b/run/certificates/ca.pem new file mode 100644 index 0000000..bf6ae1b --- /dev/null +++ b/run/certificates/ca.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIUQ67NCnk5KBqDD7fHdzKVi+AfRR8wDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTA5MjExMTU2NTlaFw0zNTA5 +MTkxMTU2NTlaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggIiMA0GCSqGSIb3DQEB +AQUAA4ICDwAwggIKAoICAQC9Uu9/sNevUGr1k6LI5jdI/HAbsgaS2eFat0mdPKhD +0IrDMozhZ1zDh6w/4iOhNC6ypwy0+1l/r6cT6xL2s3x+DxoaeskMpRD4kd97cE7Y +rvxXMSwFj5exVnyps03QXFQigZryW5z26xyFJw3i6XiHkhpz1fwMKBXynkUROy5I +uZu5oTsNko+dcjZWtOI9Tnf0HqmEW8JrhpjwJnZX8HBs0Ydd+gr7/nITLF6Eq0Gd +1uRupsAOSsZfdXofqgxfVy5CsAyfK/163cnLBZ5ynKMzqyhxS/9wLQfBLq6499e8 +w5+5/WHPIZLFeVOfdunudEFmE5aQwjnNBESIEyaaYlhXQdKhTnAU2JYEg4pnp43D +XMxsPeDY/OXDoQAJbuj1ip6jFwIyt8cj6uGvdiFrY1Nqa1Ua2YrN0xRvZ6WioYyr +NO7TOkgCC90aop7gxps/ZgYTl2VsTzAtDZXYmKjc+ZNx5F+h5gLhJMNTbzQ2KweE +/7/5ghjHEwc2Z28gh5wOkmK7knuyv1mv4s5ZUfOXs+Xv0sI4fZiNKyaESoyh4zoH +PfUpTMhYPjzpa5g6PDaxs2ewq7Zr0Lvjk12p+vM6xUeO70RQAK8tftoHmTxZDfh7 +NxMCnViD1q/2qRLOlSmOyxmH+hmy/4eNkROjMn8pyDHPEC3kg0ZuvS/Zutnm+WkX +uQIDAQABo1MwUTAdBgNVHQ4EFgQUEZqY1o2roD7YNKIYE7V/odSz1uwwHwYDVR0j +BBgwFoAUEZqY1o2roD7YNKIYE7V/odSz1uwwDwYDVR0TAQH/BAUwAwEB/zANBgkq +hkiG9w0BAQsFAAOCAgEAAV1Mafun3XwC2cs4Xgq1vzJw69I24y8dXm45qFdLl5Vv +hkIecwDm2+Ongg82sPPmR1TwsRgdUytywal5nsa1aH/v70MJ7Ic5pBIXdv54kZ8v +qgaItmHF+twb+aqFz/NY0BMv7nNc2MyYEyDwbJUIGwGt+yOlQfHUIwNc+PvVL6Sn +mkm7//EIfiU3HxmusCnbYC+9kmLbeds10qDzTNIHP4ffNAFgnMgauNID8X9RoPBT +TVqLjD5WDHridLMF8n0m18cp2MqV33gXbg4pT/rYvh40p9jJuGDJbcrn5WtKvbMn +lm27oI6bcwKF2i+VHRBxW/c/DZaG0QKo4PaDCd/kF2ix1ymkFG4MtvHmu0Q3SLXi +p7fTL4WZSEUPXe/E7fUuPwof54auXLYNhSR9HJo0ZS2R0S9pursBkBEXTXyiG8T+ +iUq4VtBny1Ylr2rJ8Qr1TiaB5ud/IeEv70uDgA9XyUhikfs7t5bYrqdXjANtCvZY +j322+I3wyDdosu2Z1Lrn2w95ZyJhc/rluftc1lKnxgYwKndEJfBlhn8tpHlk2J9T +rPqAezvNhSXH1W6G7WZAvHfdfJahLDhfJ15YQcqqPK+DXEaJeOnUompV+/MEaEOE +3LwN4B78mTgVOcabMeo1NN/2nGObaOm/62t+3B9NwcUi9q1LT/oifLVBh8bEFug= +-----END CERTIFICATE----- diff --git a/run/certificates/ca.srl b/run/certificates/ca.srl new file mode 100644 index 0000000..c10dfa6 --- /dev/null +++ b/run/certificates/ca.srl @@ -0,0 +1 @@ +5FB2F5A2CA8357D37C84CC406B5F81617348EB58 diff --git a/run/certificates/private/server/cert_server_89.1.219.102.key b/run/certificates/private/server/cert_server_89.1.219.102.key new file mode 100644 index 0000000..144cadf --- /dev/null +++ b/run/certificates/private/server/cert_server_89.1.219.102.key @@ -0,0 +1,28 @@ +-----BEGIN PRIVATE KEY----- +MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCGKkc5obUKeeX8 +gDZff4YUoKIoWHMkdxNxpt2UjR7I0TcFVXbOdpEFG1jBLrlcPvTs1LaJ7exQ9657 +wma9OMzhn6Lmtp6ecahKGMpnMHSUjFUe45nRtNur6g5i5T5rYcnzaxJBaSxzcV/r +hI/KXRIbxEh+w7/X39wN3ze6EKdQWgHkv7Wsw9R5aGQBtWOQLnj+5wnveJDl3te+ +B4oQ60fokW6Dt4RRe4u/YRyu+2VvG8x3RF/OQpDz4qFZHO6hGcS+hbNRyiIkhvdB +a8Qqu1bbDyVc80bkiiPDTO/FQVCxalDMTF7N00ng80OelLs4T+cwR/KQO9NWwgzM +6gJ38aplAgMBAAECggEAEQE5ztWunxnNKyBLA/ajVWj4tJllWqlXBxApxILQdI6D +5UKsUMXZYqbRLIcSCl2WaJAbZMcJrUd/T4NXx0L0QOKdYJWj7BwmwuF6gfKzzAIv +Zb9eRySftR3w3dsFetHFqXsYML82WZl0mWLPYMxEF83cjGieH6vpdb6ljwk+U6It +4WkyxUPojBsTdhmc+T1wI8NpegeRvNy/7euXZXaoo//Rf/fBUFRfSvVfDSMcKDIq +H4dcMAFc2ZHVE2wUuwqLbNbI8L/yuBgP5CHxnHSqG5nZQNMX3hg5winnAyp/iwnR +VA072TeuxqLx68qHEMhhZqO6Te63VtgBpYPapGT4UQKBgQC6Hwq9vXeL7JWsiZqX +Suh8kj/puy/CSeuWBopJVBJkGjyP3DDKtoJqEeOeMajL8rSW3RaCUdv4FvilGfc4 +9zTuJBSZTMpoUaCpuX1k6jYOtwcMe17KdJB7Sr1bjKef3VdOpSA+pG3lElz1sH7t +sG6hdIx3mhJB/HpYKGN4A4h8GQKBgQC4iX/E1mvdDVnXcE4cFN/exSYQFmtNDBYe +o6QbLsjEqISAOxipLRTZhQjvePzSD4Y4F7jKqNcvK6LZnQiE43C6VImMT8UT7C2a +ht96l3/bDEGEls1HrzqVVepCWQGnKltkOU69HDRYXJCGJwZ5hfx66UtsXR0ICSNH +EHBoZE3qLQKBgAx4Xfjeg+79F/4qbhAq9a67ActAPm/vEfjIUWWeW2kXlO0ynJZI +ai5/KlgEDcI0bcMZ5xMuNuXFbD1rovPPJF28TyECUyFwLqqQggVL5/lObAt7DJvV ++YQ5OryyjNyaMOpVB/cKf050z4OqoqZ8Rr1MmMi+qvB+4RedBSUaX3+pAoGACwbM +R6q4T0EY+TKQuETXC6ykFZoBV109hR8qEyW8gWPAZxkg5Br5f/XfDtAf6z1aO8fP +Fuz3zq3A0Vf8xlQAzGF4xpWNpR8bqnwcpmqfDSuyToXkRkBGM94qXUSMQLzbMSXr +eolQ52bAjAOQ83n6GC4Qf60gqvZA0WI+FT7JGRECgYAi54HhK7HFogAlX58EX77h +YHL5KHBlG+l8v4amIKvD0JclYylwyLhYkmIM+T4mh8I+T1nabcNeNWit+CYoLwQ8 +A3P0ij67TkEV3Ud7KKOtYty+getkM9/hwm14LlMzfLZKay9HCsbb5E2TgmShF68F +VtECuunYyfN4wJSE0aWRPg== +-----END PRIVATE KEY----- diff --git a/run/certificates/public/server/cert_server_89.1.219.102.crt b/run/certificates/public/server/cert_server_89.1.219.102.crt new file mode 100644 index 0000000..75d1018 --- /dev/null +++ b/run/certificates/public/server/cert_server_89.1.219.102.crt @@ -0,0 +1,26 @@ +-----BEGIN CERTIFICATE----- +MIIEWjCCAkKgAwIBAgIUX7L1osqDV9N8hMxAa1+BYXNI61gwDQYJKoZIhvcNAQEL +BQAwRTELMAkGA1UEBhMCQVUxEzARBgNVBAgMClNvbWUtU3RhdGUxITAfBgNVBAoM +GEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDAeFw0yNTA5MjExMTU3MzFaFw0yNzEy +MjUxMTU3MzFaMEUxCzAJBgNVBAYTAkFVMRMwEQYDVQQIDApTb21lLVN0YXRlMSEw +HwYDVQQKDBhJbnRlcm5ldCBXaWRnaXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQCGKkc5obUKeeX8gDZff4YUoKIoWHMkdxNxpt2UjR7I +0TcFVXbOdpEFG1jBLrlcPvTs1LaJ7exQ9657wma9OMzhn6Lmtp6ecahKGMpnMHSU +jFUe45nRtNur6g5i5T5rYcnzaxJBaSxzcV/rhI/KXRIbxEh+w7/X39wN3ze6EKdQ +WgHkv7Wsw9R5aGQBtWOQLnj+5wnveJDl3te+B4oQ60fokW6Dt4RRe4u/YRyu+2Vv +G8x3RF/OQpDz4qFZHO6hGcS+hbNRyiIkhvdBa8Qqu1bbDyVc80bkiiPDTO/FQVCx +alDMTF7N00ng80OelLs4T+cwR/KQO9NWwgzM6gJ38aplAgMBAAGjQjBAMB0GA1Ud +DgQWBBTW7Nng9W84V+q0TknoTempPZo2KjAfBgNVHSMEGDAWgBQRmpjWjaugPtg0 +ohgTtX+h1LPW7DANBgkqhkiG9w0BAQsFAAOCAgEAguDRKxW8QFV7fJlzAgzjwsBu +97Bk5IsmcIU7sOlmOFYZAG0hwqfuvzU/Tv48tuXOvGQsJtdNSfe4qybd5HnkxmTs +ZmqzCsIh9P4PL/KrKTCykEP935468wg/X9QkykBOJx2zOgBEllxo33BNG4ie6R3H +tYy/1y/hsGfi4Ma2jqBaPfblI86t9VoKiPqqKqFgGk32F4NqIJ2hMKxSypznHIC7 +IPikKx9Gt8EpwT+ytJKOnd/A7nBEiaDw5ubcR1s6pmlcGLAE1+A9TX2ncRUcvMI4 +w2M5i7X/Vz2zQiPEWmQliYDG1ZFeD1dth973muM6H6NvFyXvEzzRZl5K5DwAcgqA +uMvEKDiDPwKROBTzjq3WIHBe49fz96Fpxld5JxH3RhC2PzIYjUquU2P8Ah6SN6SZ ++Mf/61QxNInnEcxNjknGhcfiyhoqu2B+1/N5cfpXyBfgTQfVzV3HiUvAHzcza9yp +mnPrrxRodkXwncMJNJYTr36yTyZPxC0TZUycvOPwEfBQ1vESAeiJ7+QgFGFu0lgQ +1XAJVpCfHpDrkT184/pszyHHzydWvP7GcrPgJVNlXbMvpenhm2QTCaft5TUDj9+m +8quLjm+bj0OQq1Fmv/OlWvycC5fxnYA0JlRDz56QPHkEL7aZ/+apZhB6Eb77/etv +A5go7PJCZ9vnblPW/HE= +-----END CERTIFICATE----- diff --git a/run/content/data.json b/run/content/data.json new file mode 100644 index 0000000..3aae23b --- /dev/null +++ b/run/content/data.json @@ -0,0 +1,10 @@ +{ + "key": "val", + "key1": "val", + "key2": "val", + "key3": "val", + "key4": "val", + "key5": "val", + "key6": "val", + "key7": "val" +} \ No newline at end of file diff --git a/run/errors/403.php b/run/errors/403.php new file mode 100644 index 0000000..fcf114f --- /dev/null +++ b/run/errors/403.php @@ -0,0 +1,16 @@ + + + + + 403 - Login required + + +

403 - Login required

+ +
+
+
+ +
+ + \ No newline at end of file diff --git a/run/errors/404.html b/run/errors/404.html new file mode 100644 index 0000000..28b0f50 --- /dev/null +++ b/run/errors/404.html @@ -0,0 +1,9 @@ + + + 404 - File not found + + +

Error 404

+

The requested File was not found on this server.

+ + \ No newline at end of file diff --git a/run/logs/log-20.09.2025_21.49.03.txt b/run/logs/log-20.09.2025_21.49.03.txt new file mode 100644 index 0000000..e69de29 diff --git a/run/logs/log-20.09.2025_21.52.27.txt b/run/logs/log-20.09.2025_21.52.27.txt new file mode 100644 index 0000000..e69de29 diff --git a/run/logs/log-20.09.2025_22.04.21.txt b/run/logs/log-20.09.2025_22.04.21.txt new file mode 100644 index 0000000..e69de29 diff --git a/run/logs/log-20.09.2025_22.05.00.txt b/run/logs/log-20.09.2025_22.05.00.txt new file mode 100644 index 0000000..0369755 --- /dev/null +++ b/run/logs/log-20.09.2025_22.05.00.txt @@ -0,0 +1,2 @@ + +22:04:55 [LOG] Server started on port 8080 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.05.36.txt b/run/logs/log-20.09.2025_22.05.36.txt new file mode 100644 index 0000000..5ebe624 --- /dev/null +++ b/run/logs/log-20.09.2025_22.05.36.txt @@ -0,0 +1,2 @@ + +22:05:31 [LOG] Server started on port 8080 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.05.54.txt b/run/logs/log-20.09.2025_22.05.54.txt new file mode 100644 index 0000000..e939dce --- /dev/null +++ b/run/logs/log-20.09.2025_22.05.54.txt @@ -0,0 +1,14 @@ + +22:05:48 [LOG] Server started on port 80 +22:05:49 [EXCEPTION-INFO] Handshake failed +22:05:49 [EXCEPTION-MESSAGE] Unsupported or unrecognized SSL message +22:05:49 [EXCEPTION-STACKTRACE] javax.net.ssl.SSLException: Unsupported or unrecognized SSL message + at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:462) + at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_22.06.06.txt b/run/logs/log-20.09.2025_22.06.06.txt new file mode 100644 index 0000000..a753eb5 --- /dev/null +++ b/run/logs/log-20.09.2025_22.06.06.txt @@ -0,0 +1,14 @@ + +22:05:59 [LOG] Server started on port 80 +22:06:01 [EXCEPTION-INFO] Handshake failed +22:06:01 [EXCEPTION-MESSAGE] Unsupported or unrecognized SSL message +22:06:01 [EXCEPTION-STACKTRACE] javax.net.ssl.SSLException: Unsupported or unrecognized SSL message + at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:462) + at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_22.06.15.txt b/run/logs/log-20.09.2025_22.06.15.txt new file mode 100644 index 0000000..f5b6d62 --- /dev/null +++ b/run/logs/log-20.09.2025_22.06.15.txt @@ -0,0 +1,14 @@ + +22:06:09 [LOG] Server started on port 80 +22:06:10 [EXCEPTION-INFO] Handshake failed +22:06:10 [EXCEPTION-MESSAGE] Unsupported or unrecognized SSL message +22:06:10 [EXCEPTION-STACKTRACE] javax.net.ssl.SSLException: Unsupported or unrecognized SSL message + at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:462) + at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_22.07.04.txt b/run/logs/log-20.09.2025_22.07.04.txt new file mode 100644 index 0000000..7fd49e7 --- /dev/null +++ b/run/logs/log-20.09.2025_22.07.04.txt @@ -0,0 +1,2 @@ + +22:06:59 [LOG] Server started on port 80 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.07.26.txt b/run/logs/log-20.09.2025_22.07.26.txt new file mode 100644 index 0000000..003df2b --- /dev/null +++ b/run/logs/log-20.09.2025_22.07.26.txt @@ -0,0 +1,14 @@ + +22:07:17 [LOG] Server started on port 80 +22:07:21 [EXCEPTION-INFO] Handshake failed +22:07:21 [EXCEPTION-MESSAGE] Unsupported or unrecognized SSL message +22:07:21 [EXCEPTION-STACKTRACE] javax.net.ssl.SSLException: Unsupported or unrecognized SSL message + at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:462) + at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_22.11.03.txt b/run/logs/log-20.09.2025_22.11.03.txt new file mode 100644 index 0000000..bf3433a --- /dev/null +++ b/run/logs/log-20.09.2025_22.11.03.txt @@ -0,0 +1,45 @@ + +22:10:05 [LOG] Server started on port 80 +22:10:28 [EXCEPTION-INFO] Handshake failed +22:10:28 [EXCEPTION-MESSAGE] Unsupported or unrecognized SSL message +22:10:28 [EXCEPTION-STACKTRACE] javax.net.ssl.SSLException: Unsupported or unrecognized SSL message + at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:462) + at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:10:40 [EXCEPTION-INFO] Handshake failed +22:10:40 [EXCEPTION-MESSAGE] Unsupported or unrecognized SSL message +22:10:40 [EXCEPTION-STACKTRACE] javax.net.ssl.SSLException: Unsupported or unrecognized SSL message + at java.base/sun.security.ssl.SSLSocketInputRecord.handleUnknownRecord(SSLSocketInputRecord.java:462) + at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:175) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:10:48 [EXCEPTION-INFO] Handshake failed +22:10:48 [EXCEPTION-MESSAGE] Remote host terminated the handshake +22:10:48 [EXCEPTION-STACKTRACE] javax.net.ssl.SSLHandshakeException: Remote host terminated the handshake + at java.base/sun.security.ssl.SSLSocketImpl.handleEOF(SSLSocketImpl.java:1715) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1515) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) +Caused by: java.io.EOFException: SSL peer shut down incorrectly + at java.base/sun.security.ssl.SSLSocketInputRecord.read(SSLSocketInputRecord.java:494) + at java.base/sun.security.ssl.SSLSocketInputRecord.readHeader(SSLSocketInputRecord.java:483) + at java.base/sun.security.ssl.SSLSocketInputRecord.decode(SSLSocketInputRecord.java:160) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:111) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + ... 5 more diff --git a/run/logs/log-20.09.2025_22.11.33.txt b/run/logs/log-20.09.2025_22.11.33.txt new file mode 100644 index 0000000..9da37b2 --- /dev/null +++ b/run/logs/log-20.09.2025_22.11.33.txt @@ -0,0 +1,2 @@ + +22:11:05 [LOG] Server started on port 8080 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.17.01.txt b/run/logs/log-20.09.2025_22.17.01.txt new file mode 100644 index 0000000..0ff8934 --- /dev/null +++ b/run/logs/log-20.09.2025_22.17.01.txt @@ -0,0 +1,35 @@ + +22:11:35 [LOG] Server started on port 443 +22:11:45 [EXCEPTION-INFO] Handshake failed +22:11:45 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:11:45 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_22.19.20.txt b/run/logs/log-20.09.2025_22.19.20.txt new file mode 100644 index 0000000..924591a --- /dev/null +++ b/run/logs/log-20.09.2025_22.19.20.txt @@ -0,0 +1,2 @@ + +22:17:05 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.20.14.txt b/run/logs/log-20.09.2025_22.20.14.txt new file mode 100644 index 0000000..7b720aa --- /dev/null +++ b/run/logs/log-20.09.2025_22.20.14.txt @@ -0,0 +1,2 @@ + +22:19:24 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.22.25.txt b/run/logs/log-20.09.2025_22.22.25.txt new file mode 100644 index 0000000..abc4e05 --- /dev/null +++ b/run/logs/log-20.09.2025_22.22.25.txt @@ -0,0 +1,35 @@ + +22:20:18 [LOG] Server started on port 443 +22:20:46 [EXCEPTION-INFO] Handshake failed +22:20:46 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:20:46 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:426) + at me.finn.unlegitlibrary.network.system.server.NetworkServer.incomingConnections(NetworkServer.java:100) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_22.23.48.txt b/run/logs/log-20.09.2025_22.23.48.txt new file mode 100644 index 0000000..ee4a358 --- /dev/null +++ b/run/logs/log-20.09.2025_22.23.48.txt @@ -0,0 +1,2 @@ + +22:22:29 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.24.42.txt b/run/logs/log-20.09.2025_22.24.42.txt new file mode 100644 index 0000000..ea5b0c9 --- /dev/null +++ b/run/logs/log-20.09.2025_22.24.42.txt @@ -0,0 +1,2 @@ + +22:23:52 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.25.50.txt b/run/logs/log-20.09.2025_22.25.50.txt new file mode 100644 index 0000000..884d852 --- /dev/null +++ b/run/logs/log-20.09.2025_22.25.50.txt @@ -0,0 +1,2 @@ + +22:24:46 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.27.58.txt b/run/logs/log-20.09.2025_22.27.58.txt new file mode 100644 index 0000000..6f6301d --- /dev/null +++ b/run/logs/log-20.09.2025_22.27.58.txt @@ -0,0 +1,2 @@ + +22:25:54 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.29.50.txt b/run/logs/log-20.09.2025_22.29.50.txt new file mode 100644 index 0000000..7548189 --- /dev/null +++ b/run/logs/log-20.09.2025_22.29.50.txt @@ -0,0 +1,2 @@ + +22:28:00 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.35.07.txt b/run/logs/log-20.09.2025_22.35.07.txt new file mode 100644 index 0000000..025d089 --- /dev/null +++ b/run/logs/log-20.09.2025_22.35.07.txt @@ -0,0 +1,2 @@ + +22:29:54 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.36.52.txt b/run/logs/log-20.09.2025_22.36.52.txt new file mode 100644 index 0000000..65b7779 --- /dev/null +++ b/run/logs/log-20.09.2025_22.36.52.txt @@ -0,0 +1,2 @@ + +22:35:12 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.49.12.txt b/run/logs/log-20.09.2025_22.49.12.txt new file mode 100644 index 0000000..20e2d54 --- /dev/null +++ b/run/logs/log-20.09.2025_22.49.12.txt @@ -0,0 +1,2 @@ + +22:36:56 [LOG] Server started on port 443 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.51.45.txt b/run/logs/log-20.09.2025_22.51.45.txt new file mode 100644 index 0000000..c7ad05b --- /dev/null +++ b/run/logs/log-20.09.2025_22.51.45.txt @@ -0,0 +1,2 @@ + +22:49:16 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_22.55.38.txt b/run/logs/log-20.09.2025_22.55.38.txt new file mode 100644 index 0000000..7f1bcde --- /dev/null +++ b/run/logs/log-20.09.2025_22.55.38.txt @@ -0,0 +1,226 @@ + +22:51:49 [LOG] Server started on port 9389 +22:54:38 [EXCEPTION-INFO] Failed to handle browser +22:54:38 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:54:38 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:55:33 [EXCEPTION-INFO] Failed to handle browser +22:55:33 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:55:33 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:55:34 [EXCEPTION-INFO] Failed to handle browser +22:55:34 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:55:34 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:55:35 [EXCEPTION-INFO] Failed to handle browser +22:55:35 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:55:35 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:55:35 [EXCEPTION-INFO] Failed to handle browser +22:55:35 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:55:35 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_23.00.28.txt b/run/logs/log-20.09.2025_23.00.28.txt new file mode 100644 index 0000000..a4b0df5 --- /dev/null +++ b/run/logs/log-20.09.2025_23.00.28.txt @@ -0,0 +1,181 @@ + +22:55:56 [LOG] Server started on port 9389 +22:55:59 [EXCEPTION-INFO] Failed to handle browser +22:55:59 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:55:59 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:55:59 [EXCEPTION-INFO] Failed to handle browser +22:55:59 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:55:59 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:56:00 [EXCEPTION-INFO] Failed to handle browser +22:56:00 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:56:00 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) + +22:56:00 [EXCEPTION-INFO] Failed to handle browser +22:56:00 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +22:56:00 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:87) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:73) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_23.01.14.txt b/run/logs/log-20.09.2025_23.01.14.txt new file mode 100644 index 0000000..17c5d22 --- /dev/null +++ b/run/logs/log-20.09.2025_23.01.14.txt @@ -0,0 +1,2 @@ + +23:00:33 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_23.02.17.txt b/run/logs/log-20.09.2025_23.02.17.txt new file mode 100644 index 0000000..ff8b2f9 --- /dev/null +++ b/run/logs/log-20.09.2025_23.02.17.txt @@ -0,0 +1,2 @@ + +23:01:19 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_23.10.23.txt b/run/logs/log-20.09.2025_23.10.23.txt new file mode 100644 index 0000000..681a957 --- /dev/null +++ b/run/logs/log-20.09.2025_23.10.23.txt @@ -0,0 +1,2 @@ + +23:02:21 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-20.09.2025_23.10.53.txt b/run/logs/log-20.09.2025_23.10.53.txt new file mode 100644 index 0000000..b8966b1 --- /dev/null +++ b/run/logs/log-20.09.2025_23.10.53.txt @@ -0,0 +1,221 @@ + +23:10:28 [LOG] Server started on port 9389 +23:10:31 [EXCEPTION-INFO] Failed to handle browser +23:10:31 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:31 [EXCEPTION-INFO] Failed to handle browser +23:10:31 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:31 [EXCEPTION-INFO] Failed to handle browser +23:10:31 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:32 [EXCEPTION-INFO] Failed to handle browser +23:10:32 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:32 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:32 [EXCEPTION-INFO] Failed to handle browser +23:10:32 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:32 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:32 [EXCEPTION-INFO] Failed to handle browser +23:10:32 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:32 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:32 [EXCEPTION-INFO] Failed to handle browser +23:10:32 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:32 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:32 [EXCEPTION-INFO] Failed to handle browser +23:10:32 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:32 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:32 [EXCEPTION-INFO] Failed to handle browser +23:10:32 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:32 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:32 [EXCEPTION-INFO] Failed to handle browser +23:10:32 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:32 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:10:33 [EXCEPTION-INFO] Failed to handle browser +23:10:33 [EXCEPTION-MESSAGE] error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:10:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_23.11.23.txt b/run/logs/log-20.09.2025_23.11.23.txt new file mode 100644 index 0000000..ddae53f --- /dev/null +++ b/run/logs/log-20.09.2025_23.11.23.txt @@ -0,0 +1,111 @@ + +23:10:58 [LOG] Server started on port 9389 +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:00 [EXCEPTION-INFO] Failed to handle browser +23:11:00 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:00 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-20.09.2025_23.11.31.txt b/run/logs/log-20.09.2025_23.11.31.txt new file mode 100644 index 0000000..7ab44d3 --- /dev/null +++ b/run/logs/log-20.09.2025_23.11.31.txt @@ -0,0 +1,111 @@ + +23:11:27 [LOG] Server started on port 9389 +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) + +23:11:28 [EXCEPTION-INFO] Failed to handle browser +23:11:28 [EXCEPTION-MESSAGE] .\error\404.html (Das System kann den angegebenen Pfad nicht finden) +23:11:28 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: .\error\404.html (Das System kann den angegebenen Pfad nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:99) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:75) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.01.12.txt b/run/logs/log-21.09.2025_14.01.12.txt new file mode 100644 index 0000000..e69de29 diff --git a/run/logs/log-21.09.2025_14.04.52.txt b/run/logs/log-21.09.2025_14.04.52.txt new file mode 100644 index 0000000..9733079 --- /dev/null +++ b/run/logs/log-21.09.2025_14.04.52.txt @@ -0,0 +1,624 @@ + +14:01:39 [LOG] Server started on port 9389 +14:01:47 [EXCEPTION-INFO] Failed to handle browser +14:01:47 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +14:01:47 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:01:47 [EXCEPTION-INFO] Failed to handle browser +14:01:47 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +14:01:47 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:02 [EXCEPTION-INFO] Failed to handle browser +14:03:02 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +14:03:02 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:02 [EXCEPTION-INFO] Failed to handle browser +14:03:02 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +14:03:02 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:06 [EXCEPTION-INFO] Failed to handle browser +14:03:06 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:06 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:10 [EXCEPTION-INFO] Failed to handle browser +14:03:10 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +14:03:10 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:10 [EXCEPTION-INFO] Failed to handle browser +14:03:10 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +14:03:10 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:10 [EXCEPTION-INFO] Failed to handle browser +14:03:10 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +14:03:10 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:11 [EXCEPTION-INFO] Failed to handle browser +14:03:11 [EXCEPTION-MESSAGE] Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen +14:03:11 [EXCEPTION-STACKTRACE] java.net.SocketException: Eine bestehende Verbindung wurde softwaregesteuert +durch den Hostcomputer abgebrochen + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:11 [EXCEPTION-INFO] Failed to handle browser +14:03:11 [EXCEPTION-MESSAGE] Connection reset by peer +14:03:11 [EXCEPTION-STACKTRACE] java.net.SocketException: Connection reset by peer + at java.base/sun.nio.ch.SocketDispatcher.write0(Native Method) + at java.base/sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:54) + at java.base/sun.nio.ch.NioSocketImpl.tryWrite(NioSocketImpl.java:394) + at java.base/sun.nio.ch.NioSocketImpl.implWrite(NioSocketImpl.java:410) + at java.base/sun.nio.ch.NioSocketImpl.write(NioSocketImpl.java:440) + at java.base/sun.nio.ch.NioSocketImpl$2.write(NioSocketImpl.java:819) + at java.base/java.net.Socket$SocketOutputStream.implWrite(Socket.java:1230) + at java.base/java.net.Socket$SocketOutputStream.write(Socket.java:1217) + at java.base/sun.security.ssl.SSLSocketOutputRecord.flush(SSLSocketOutputRecord.java:271) + at java.base/sun.security.ssl.HandshakeOutStream.flush(HandshakeOutStream.java:89) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.onProduceFinished(Finished.java:787) + at java.base/sun.security.ssl.Finished$T13FinishedProducer.produce(Finished.java:675) + at java.base/sun.security.ssl.SSLHandshake.produce(SSLHandshake.java:437) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.goServerHello(ClientHello.java:1245) + at java.base/sun.security.ssl.ClientHello$T13ClientHelloConsumer.consume(ClientHello.java:1181) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.onClientHello(ClientHello.java:839) + at java.base/sun.security.ssl.ClientHello$ClientHelloConsumer.consume(ClientHello.java:800) + at java.base/sun.security.ssl.SSLHandshake.consume(SSLHandshake.java:393) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:476) + at java.base/sun.security.ssl.HandshakeContext.dispatch(HandshakeContext.java:447) + at java.base/sun.security.ssl.TransportContext.dispatch(TransportContext.java:201) + at java.base/sun.security.ssl.SSLTransport.decode(SSLTransport.java:172) + at java.base/sun.security.ssl.SSLSocketImpl.decode(SSLSocketImpl.java:1507) + at java.base/sun.security.ssl.SSLSocketImpl.readHandshakeRecord(SSLSocketImpl.java:1422) + at java.base/sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:455) + at java.base/sun.security.ssl.SSLSocketImpl.ensureNegotiated(SSLSocketImpl.java:924) + at java.base/sun.security.ssl.SSLSocketImpl$AppInputStream.read(SSLSocketImpl.java:1015) + at java.base/sun.nio.cs.StreamDecoder.readBytes(StreamDecoder.java:350) + at java.base/sun.nio.cs.StreamDecoder.implRead(StreamDecoder.java:393) + at java.base/sun.nio.cs.StreamDecoder.lockedRead(StreamDecoder.java:217) + at java.base/sun.nio.cs.StreamDecoder.read(StreamDecoder.java:171) + at java.base/java.io.InputStreamReader.read(InputStreamReader.java:190) + at java.base/java.io.BufferedReader.fill(BufferedReader.java:160) + at java.base/java.io.BufferedReader.implReadLine(BufferedReader.java:370) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:347) + at java.base/java.io.BufferedReader.readLine(BufferedReader.java:436) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:158) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:03:15 [EXCEPTION-INFO] Failed to handle browser +14:03:15 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:03:15 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:168) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.07.15.txt b/run/logs/log-21.09.2025_14.07.15.txt new file mode 100644 index 0000000..a9a4e52 --- /dev/null +++ b/run/logs/log-21.09.2025_14.07.15.txt @@ -0,0 +1,221 @@ + +14:04:59 [LOG] Server started on port 9389 +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:05 [EXCEPTION-INFO] Failed to handle browser +14:05:05 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:05 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:05:13 [EXCEPTION-INFO] Failed to handle browser +14:05:13 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:05:13 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:171) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:128) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.08.21.txt b/run/logs/log-21.09.2025_14.08.21.txt new file mode 100644 index 0000000..0c55c42 --- /dev/null +++ b/run/logs/log-21.09.2025_14.08.21.txt @@ -0,0 +1,2 @@ + +14:07:21 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_14.09.25.txt b/run/logs/log-21.09.2025_14.09.25.txt new file mode 100644 index 0000000..9328d24 --- /dev/null +++ b/run/logs/log-21.09.2025_14.09.25.txt @@ -0,0 +1,2 @@ + +14:08:27 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_14.11.13.txt b/run/logs/log-21.09.2025_14.11.13.txt new file mode 100644 index 0000000..40c5f2c --- /dev/null +++ b/run/logs/log-21.09.2025_14.11.13.txt @@ -0,0 +1,100 @@ + +14:09:31 [LOG] Server started on port 9389 +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:10:17 [EXCEPTION-INFO] Failed to handle browser +14:10:17 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:10:17 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:178) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.12.00.txt b/run/logs/log-21.09.2025_14.12.00.txt new file mode 100644 index 0000000..232c243 --- /dev/null +++ b/run/logs/log-21.09.2025_14.12.00.txt @@ -0,0 +1,111 @@ + +14:11:19 [LOG] Server started on port 9389 +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:11:20 [EXCEPTION-INFO] Failed to handle browser +14:11:20 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:11:20 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.12.25.txt b/run/logs/log-21.09.2025_14.12.25.txt new file mode 100644 index 0000000..8ed1c64 --- /dev/null +++ b/run/logs/log-21.09.2025_14.12.25.txt @@ -0,0 +1,111 @@ + +14:12:06 [LOG] Server started on port 9389 +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:11 [EXCEPTION-INFO] Failed to handle browser +14:12:11 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:11 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:180) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:135) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.14.24.txt b/run/logs/log-21.09.2025_14.14.24.txt new file mode 100644 index 0000000..4023ec6 --- /dev/null +++ b/run/logs/log-21.09.2025_14.14.24.txt @@ -0,0 +1,111 @@ + +14:12:30 [LOG] Server started on port 9389 +14:12:33 [EXCEPTION-INFO] Failed to handle browser +14:12:33 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:33 [EXCEPTION-INFO] Failed to handle browser +14:12:33 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:33 [EXCEPTION-INFO] Failed to handle browser +14:12:33 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:33 [EXCEPTION-INFO] Failed to handle browser +14:12:33 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:33 [EXCEPTION-INFO] Failed to handle browser +14:12:33 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:33 [EXCEPTION-INFO] Failed to handle browser +14:12:33 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:33 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:34 [EXCEPTION-INFO] Failed to handle browser +14:12:34 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:34 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:34 [EXCEPTION-INFO] Failed to handle browser +14:12:34 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:34 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:34 [EXCEPTION-INFO] Failed to handle browser +14:12:34 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:34 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:12:34 [EXCEPTION-INFO] Failed to handle browser +14:12:34 [EXCEPTION-MESSAGE] content\ (Zugriff verweigert) +14:12:34 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\ (Zugriff verweigert) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:175) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.15.18.txt b/run/logs/log-21.09.2025_14.15.18.txt new file mode 100644 index 0000000..1fbcf54 --- /dev/null +++ b/run/logs/log-21.09.2025_14.15.18.txt @@ -0,0 +1,111 @@ + +14:14:30 [LOG] Server started on port 9389 +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:14:31 [EXCEPTION-INFO] Failed to handle browser +14:14:31 [EXCEPTION-MESSAGE] content\pain.php (Das System kann die angegebene Datei nicht finden) +14:14:31 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: content\pain.php (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.15.42.txt b/run/logs/log-21.09.2025_14.15.42.txt new file mode 100644 index 0000000..5c02f8c --- /dev/null +++ b/run/logs/log-21.09.2025_14.15.42.txt @@ -0,0 +1,111 @@ + +14:15:24 [LOG] Server started on port 9389 +14:15:25 [EXCEPTION-INFO] Failed to handle browser +14:15:25 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:25 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:25 [EXCEPTION-INFO] Failed to handle browser +14:15:25 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:25 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:26 [EXCEPTION-INFO] Failed to handle browser +14:15:26 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:26 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:26 [EXCEPTION-INFO] Failed to handle browser +14:15:26 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:26 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:26 [EXCEPTION-INFO] Failed to handle browser +14:15:26 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:26 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:26 [EXCEPTION-INFO] Failed to handle browser +14:15:26 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:26 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:26 [EXCEPTION-INFO] Failed to handle browser +14:15:26 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:26 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:26 [EXCEPTION-INFO] Failed to handle browser +14:15:26 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:26 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:26 [EXCEPTION-INFO] Failed to handle browser +14:15:26 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:26 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:26 [EXCEPTION-INFO] Failed to handle browser +14:15:26 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:26 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.17.11.txt b/run/logs/log-21.09.2025_14.17.11.txt new file mode 100644 index 0000000..7cecc9b --- /dev/null +++ b/run/logs/log-21.09.2025_14.17.11.txt @@ -0,0 +1,111 @@ + +14:15:47 [LOG] Server started on port 9389 +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) + +14:15:48 [EXCEPTION-INFO] Failed to handle browser +14:15:48 [EXCEPTION-MESSAGE] error\404.html (Das System kann die angegebene Datei nicht finden) +14:15:48 [EXCEPTION-STACKTRACE] java.io.FileNotFoundException: error\404.html (Das System kann die angegebene Datei nicht finden) + at java.base/java.io.FileInputStream.open0(Native Method) + at java.base/java.io.FileInputStream.open(FileInputStream.java:215) + at java.base/java.io.FileInputStream.(FileInputStream.java:153) + at me.finn.unlegitlibrary.file.FileUtils.readFileFull(FileUtils.java:126) + at github.openautonomousconnection.webserver.Main.handleBrowser(Main.java:174) + at github.openautonomousconnection.webserver.Main.lambda$main$1(Main.java:130) + at java.base/java.lang.Thread.run(Thread.java:1575) diff --git a/run/logs/log-21.09.2025_14.22.03.txt b/run/logs/log-21.09.2025_14.22.03.txt new file mode 100644 index 0000000..711f017 --- /dev/null +++ b/run/logs/log-21.09.2025_14.22.03.txt @@ -0,0 +1,2 @@ + +14:17:17 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_14.22.40.txt b/run/logs/log-21.09.2025_14.22.40.txt new file mode 100644 index 0000000..7ea6a39 --- /dev/null +++ b/run/logs/log-21.09.2025_14.22.40.txt @@ -0,0 +1,2 @@ + +14:22:09 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_14.23.35.txt b/run/logs/log-21.09.2025_14.23.35.txt new file mode 100644 index 0000000..241a69c --- /dev/null +++ b/run/logs/log-21.09.2025_14.23.35.txt @@ -0,0 +1,2 @@ + +14:22:46 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_14.23.53.txt b/run/logs/log-21.09.2025_14.23.53.txt new file mode 100644 index 0000000..04ee83c --- /dev/null +++ b/run/logs/log-21.09.2025_14.23.53.txt @@ -0,0 +1,2 @@ + +14:23:40 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_14.24.12.txt b/run/logs/log-21.09.2025_14.24.12.txt new file mode 100644 index 0000000..47aad49 --- /dev/null +++ b/run/logs/log-21.09.2025_14.24.12.txt @@ -0,0 +1,2 @@ + +14:23:59 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_14.24.25.txt b/run/logs/log-21.09.2025_14.24.25.txt new file mode 100644 index 0000000..09b802f --- /dev/null +++ b/run/logs/log-21.09.2025_14.24.25.txt @@ -0,0 +1,2 @@ + +14:24:17 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_14.33.03.txt b/run/logs/log-21.09.2025_14.33.03.txt new file mode 100644 index 0000000..b619a46 --- /dev/null +++ b/run/logs/log-21.09.2025_14.33.03.txt @@ -0,0 +1,2 @@ + +14:24:32 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-21.09.2025_16.15.00.txt b/run/logs/log-21.09.2025_16.15.00.txt new file mode 100644 index 0000000..aa35521 --- /dev/null +++ b/run/logs/log-21.09.2025_16.15.00.txt @@ -0,0 +1,2 @@ + +14:33:10 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/logs/log-latest.txt b/run/logs/log-latest.txt new file mode 100644 index 0000000..aa35521 --- /dev/null +++ b/run/logs/log-latest.txt @@ -0,0 +1,2 @@ + +14:33:10 [LOG] Server started on port 9389 \ No newline at end of file diff --git a/run/php/README.md b/run/php/README.md new file mode 100644 index 0000000..c5376f6 --- /dev/null +++ b/run/php/README.md @@ -0,0 +1,140 @@ + + +# The PHP Interpreter + +PHP is a popular general-purpose scripting language that is especially suited to +web development. Fast, flexible and pragmatic, PHP powers everything from your +blog to the most popular websites in the world. PHP is distributed under the +[PHP License v3.01](LICENSE). + +[![Push](https://github.com/php/php-src/actions/workflows/push.yml/badge.svg)](https://github.com/php/php-src/actions/workflows/push.yml) +[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/php.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:php) + +## Documentation + +The PHP manual is available at [php.net/docs](https://www.php.net/docs). + +## Installation + +### Prebuilt packages and binaries + +Prebuilt packages and binaries can be used to get up and running fast with PHP. + +For Windows, the PHP binaries can be obtained from +[windows.php.net](https://windows.php.net). After extracting the archive the +`*.exe` files are ready to use. + +For other systems, see the [installation chapter](https://www.php.net/install). + +### Building PHP source code + +*For Windows, see [Build your own PHP on Windows](https://wiki.php.net/internals/windows/stepbystepbuild_sdk_2).* + +For a minimal PHP build from Git, you will need autoconf, bison, and re2c. For +a default build, you will additionally need libxml2 and libsqlite3. + +On Ubuntu, you can install these using: + + sudo apt install -y pkg-config build-essential autoconf bison re2c \ + libxml2-dev libsqlite3-dev + +On Fedora, you can install these using: + + sudo dnf install re2c bison autoconf make libtool ccache libxml2-devel sqlite-devel + +Generate configure: + + ./buildconf + +Configure your build. `--enable-debug` is recommended for development, see +`./configure --help` for a full list of options. + + # For development + ./configure --enable-debug + # For production + ./configure + +Build PHP. To speed up the build, specify the maximum number of jobs using `-j`: + + make -j4 + +The number of jobs should usually match the number of available cores, which +can be determined using `nproc`. + +## Testing PHP source code + +PHP ships with an extensive test suite, the command `make test` is used after +successful compilation of the sources to run this test suite. + +It is possible to run tests using multiple cores by setting `-jN` in +`TEST_PHP_ARGS`: + + make TEST_PHP_ARGS=-j4 test + +Shall run `make test` with a maximum of 4 concurrent jobs: Generally the maximum +number of jobs should not exceed the number of cores available. + +The [qa.php.net](https://qa.php.net) site provides more detailed info about +testing and quality assurance. + +## Installing PHP built from source + +After a successful build (and test), PHP may be installed with: + + make install + +Depending on your permissions and prefix, `make install` may need super user +permissions. + +## PHP extensions + +Extensions provide additional functionality on top of PHP. PHP consists of many +essential bundled extensions. Additional extensions can be found in the PHP +Extension Community Library - [PECL](https://pecl.php.net). + +## Contributing + +The PHP source code is located in the Git repository at +[github.com/php/php-src](https://github.com/php/php-src). Contributions are most +welcome by forking the repository and sending a pull request. + +Discussions are done on GitHub, but depending on the topic can also be relayed +to the official PHP developer mailing list internals@lists.php.net. + +New features require an RFC and must be accepted by the developers. See +[Request for comments - RFC](https://wiki.php.net/rfc) and +[Voting on PHP features](https://wiki.php.net/rfc/voting) for more information +on the process. + +Bug fixes don't require an RFC. If the bug has a GitHub issue, reference it in +the commit message using `GH-NNNNNN`. Use `#NNNNNN` for tickets in the old +[bugs.php.net](https://bugs.php.net) bug tracker. + + Fix GH-7815: php_uname doesn't recognise latest Windows versions + Fix #55371: get_magic_quotes_gpc() throws deprecation warning + +See [Git workflow](https://wiki.php.net/vcs/gitworkflow) for details on how pull +requests are merged. + +### Guidelines for contributors + +See further documents in the repository for more information on how to +contribute: + +- [Contributing to PHP](/CONTRIBUTING.md) +- [PHP coding standards](/CODING_STANDARDS.md) +- [Internal documentation](https://php.github.io/php-src/) +- [Mailing list rules](/docs/mailinglist-rules.md) +- [PHP release process](/docs/release-process.md) + +## Credits + +For the list of people who've put work into PHP, please see the +[PHP credits page](https://www.php.net/credits.php). diff --git a/run/php/deplister.exe b/run/php/deplister.exe new file mode 100644 index 0000000..b5ada38 Binary files /dev/null and b/run/php/deplister.exe differ diff --git a/run/php/dev/php8.lib b/run/php/dev/php8.lib new file mode 100644 index 0000000..aa1af81 Binary files /dev/null and b/run/php/dev/php8.lib differ diff --git a/run/php/ext/php_bz2.dll b/run/php/ext/php_bz2.dll new file mode 100644 index 0000000..e94dcd4 Binary files /dev/null and b/run/php/ext/php_bz2.dll differ diff --git a/run/php/ext/php_com_dotnet.dll b/run/php/ext/php_com_dotnet.dll new file mode 100644 index 0000000..cf9cc33 Binary files /dev/null and b/run/php/ext/php_com_dotnet.dll differ diff --git a/run/php/ext/php_curl.dll b/run/php/ext/php_curl.dll new file mode 100644 index 0000000..abc0a5b Binary files /dev/null and b/run/php/ext/php_curl.dll differ diff --git a/run/php/ext/php_dba.dll b/run/php/ext/php_dba.dll new file mode 100644 index 0000000..182bbd0 Binary files /dev/null and b/run/php/ext/php_dba.dll differ diff --git a/run/php/ext/php_dl_test.dll b/run/php/ext/php_dl_test.dll new file mode 100644 index 0000000..543a010 Binary files /dev/null and b/run/php/ext/php_dl_test.dll differ diff --git a/run/php/ext/php_enchant.dll b/run/php/ext/php_enchant.dll new file mode 100644 index 0000000..e95bd4e Binary files /dev/null and b/run/php/ext/php_enchant.dll differ diff --git a/run/php/ext/php_exif.dll b/run/php/ext/php_exif.dll new file mode 100644 index 0000000..633dec2 Binary files /dev/null and b/run/php/ext/php_exif.dll differ diff --git a/run/php/ext/php_ffi.dll b/run/php/ext/php_ffi.dll new file mode 100644 index 0000000..cb01e2e Binary files /dev/null and b/run/php/ext/php_ffi.dll differ diff --git a/run/php/ext/php_fileinfo.dll b/run/php/ext/php_fileinfo.dll new file mode 100644 index 0000000..ae52a1f Binary files /dev/null and b/run/php/ext/php_fileinfo.dll differ diff --git a/run/php/ext/php_ftp.dll b/run/php/ext/php_ftp.dll new file mode 100644 index 0000000..2823056 Binary files /dev/null and b/run/php/ext/php_ftp.dll differ diff --git a/run/php/ext/php_gd.dll b/run/php/ext/php_gd.dll new file mode 100644 index 0000000..aec7944 Binary files /dev/null and b/run/php/ext/php_gd.dll differ diff --git a/run/php/ext/php_gettext.dll b/run/php/ext/php_gettext.dll new file mode 100644 index 0000000..501fa43 Binary files /dev/null and b/run/php/ext/php_gettext.dll differ diff --git a/run/php/ext/php_gmp.dll b/run/php/ext/php_gmp.dll new file mode 100644 index 0000000..351bfd3 Binary files /dev/null and b/run/php/ext/php_gmp.dll differ diff --git a/run/php/ext/php_intl.dll b/run/php/ext/php_intl.dll new file mode 100644 index 0000000..6f279e8 Binary files /dev/null and b/run/php/ext/php_intl.dll differ diff --git a/run/php/ext/php_ldap.dll b/run/php/ext/php_ldap.dll new file mode 100644 index 0000000..755a35b Binary files /dev/null and b/run/php/ext/php_ldap.dll differ diff --git a/run/php/ext/php_mbstring.dll b/run/php/ext/php_mbstring.dll new file mode 100644 index 0000000..7d20f4b Binary files /dev/null and b/run/php/ext/php_mbstring.dll differ diff --git a/run/php/ext/php_mysqli.dll b/run/php/ext/php_mysqli.dll new file mode 100644 index 0000000..6a7dddc Binary files /dev/null and b/run/php/ext/php_mysqli.dll differ diff --git a/run/php/ext/php_odbc.dll b/run/php/ext/php_odbc.dll new file mode 100644 index 0000000..c60f26c Binary files /dev/null and b/run/php/ext/php_odbc.dll differ diff --git a/run/php/ext/php_opcache.dll b/run/php/ext/php_opcache.dll new file mode 100644 index 0000000..c756bb2 Binary files /dev/null and b/run/php/ext/php_opcache.dll differ diff --git a/run/php/ext/php_openssl.dll b/run/php/ext/php_openssl.dll new file mode 100644 index 0000000..397e996 Binary files /dev/null and b/run/php/ext/php_openssl.dll differ diff --git a/run/php/ext/php_pdo_firebird.dll b/run/php/ext/php_pdo_firebird.dll new file mode 100644 index 0000000..61d9208 Binary files /dev/null and b/run/php/ext/php_pdo_firebird.dll differ diff --git a/run/php/ext/php_pdo_mysql.dll b/run/php/ext/php_pdo_mysql.dll new file mode 100644 index 0000000..c0a7c46 Binary files /dev/null and b/run/php/ext/php_pdo_mysql.dll differ diff --git a/run/php/ext/php_pdo_odbc.dll b/run/php/ext/php_pdo_odbc.dll new file mode 100644 index 0000000..1f01d85 Binary files /dev/null and b/run/php/ext/php_pdo_odbc.dll differ diff --git a/run/php/ext/php_pdo_pgsql.dll b/run/php/ext/php_pdo_pgsql.dll new file mode 100644 index 0000000..3637415 Binary files /dev/null and b/run/php/ext/php_pdo_pgsql.dll differ diff --git a/run/php/ext/php_pdo_sqlite.dll b/run/php/ext/php_pdo_sqlite.dll new file mode 100644 index 0000000..addf01a Binary files /dev/null and b/run/php/ext/php_pdo_sqlite.dll differ diff --git a/run/php/ext/php_pgsql.dll b/run/php/ext/php_pgsql.dll new file mode 100644 index 0000000..ee69a94 Binary files /dev/null and b/run/php/ext/php_pgsql.dll differ diff --git a/run/php/ext/php_shmop.dll b/run/php/ext/php_shmop.dll new file mode 100644 index 0000000..52df0c0 Binary files /dev/null and b/run/php/ext/php_shmop.dll differ diff --git a/run/php/ext/php_snmp.dll b/run/php/ext/php_snmp.dll new file mode 100644 index 0000000..b95e4cf Binary files /dev/null and b/run/php/ext/php_snmp.dll differ diff --git a/run/php/ext/php_soap.dll b/run/php/ext/php_soap.dll new file mode 100644 index 0000000..58ce0e2 Binary files /dev/null and b/run/php/ext/php_soap.dll differ diff --git a/run/php/ext/php_sockets.dll b/run/php/ext/php_sockets.dll new file mode 100644 index 0000000..7265519 Binary files /dev/null and b/run/php/ext/php_sockets.dll differ diff --git a/run/php/ext/php_sodium.dll b/run/php/ext/php_sodium.dll new file mode 100644 index 0000000..b54a0fe Binary files /dev/null and b/run/php/ext/php_sodium.dll differ diff --git a/run/php/ext/php_sqlite3.dll b/run/php/ext/php_sqlite3.dll new file mode 100644 index 0000000..099b0fb Binary files /dev/null and b/run/php/ext/php_sqlite3.dll differ diff --git a/run/php/ext/php_sysvshm.dll b/run/php/ext/php_sysvshm.dll new file mode 100644 index 0000000..402d1e8 Binary files /dev/null and b/run/php/ext/php_sysvshm.dll differ diff --git a/run/php/ext/php_tidy.dll b/run/php/ext/php_tidy.dll new file mode 100644 index 0000000..45ac002 Binary files /dev/null and b/run/php/ext/php_tidy.dll differ diff --git a/run/php/ext/php_xsl.dll b/run/php/ext/php_xsl.dll new file mode 100644 index 0000000..7b4ca3e Binary files /dev/null and b/run/php/ext/php_xsl.dll differ diff --git a/run/php/ext/php_zend_test.dll b/run/php/ext/php_zend_test.dll new file mode 100644 index 0000000..8563a2a Binary files /dev/null and b/run/php/ext/php_zend_test.dll differ diff --git a/run/php/ext/php_zip.dll b/run/php/ext/php_zip.dll new file mode 100644 index 0000000..3536a9d Binary files /dev/null and b/run/php/ext/php_zip.dll differ diff --git a/run/php/extras/ssl/legacy.dll b/run/php/extras/ssl/legacy.dll new file mode 100644 index 0000000..0bb351c Binary files /dev/null and b/run/php/extras/ssl/legacy.dll differ diff --git a/run/php/extras/ssl/openssl.cnf b/run/php/extras/ssl/openssl.cnf new file mode 100644 index 0000000..12bc408 --- /dev/null +++ b/run/php/extras/ssl/openssl.cnf @@ -0,0 +1,390 @@ +# +# OpenSSL example configuration file. +# See doc/man5/config.pod for more info. +# +# This is mostly being used for generation of certificate requests, +# but may be used for auto loading of providers + +# Note that you can include other files from the main configuration +# file using the .include directive. +#.include filename + +# This definition stops the following lines choking if HOME isn't +# defined. +HOME = . + + # Use this in order to automatically load providers. +openssl_conf = openssl_init + +# Comment out the next line to ignore configuration errors +config_diagnostics = 1 + +# Extra OBJECT IDENTIFIER info: +# oid_file = $ENV::HOME/.oid +oid_section = new_oids + +# To use this configuration file with the "-extfile" option of the +# "openssl x509" utility, name here the section containing the +# X.509v3 extensions to use: +# extensions = +# (Alternatively, use a configuration file that has only +# X.509v3 extensions in its main [= default] section.) + +[ new_oids ] +# We can add new OIDs in here for use by 'ca', 'req' and 'ts'. +# Add a simple OID like this: +# testoid1=1.2.3.4 +# Or use config file substitution like this: +# testoid2=${testoid1}.5.6 + +# Policies used by the TSA examples. +tsa_policy1 = 1.2.3.4.1 +tsa_policy2 = 1.2.3.4.5.6 +tsa_policy3 = 1.2.3.4.5.7 + +# For FIPS +# Optionally include a file that is generated by the OpenSSL fipsinstall +# application. This file contains configuration data required by the OpenSSL +# fips provider. It contains a named section e.g. [fips_sect] which is +# referenced from the [provider_sect] below. +# Refer to the OpenSSL security policy for more information. +# .include fipsmodule.cnf + +[openssl_init] +providers = provider_sect + +# List of providers to load +[provider_sect] +default = default_sect +# The fips section name should match the section name inside the +# included fipsmodule.cnf. +# fips = fips_sect + +# If no providers are activated explicitly, the default one is activated implicitly. +# See man 7 OSSL_PROVIDER-default for more details. +# +# If you add a section explicitly activating any other provider(s), you most +# probably need to explicitly activate the default provider, otherwise it +# becomes unavailable in openssl. As a consequence applications depending on +# OpenSSL may not work correctly which could lead to significant system +# problems including inability to remotely access the system. +[default_sect] +# activate = 1 + + +#################################################################### +[ ca ] +default_ca = CA_default # The default ca section + +#################################################################### +[ CA_default ] + +dir = ./demoCA # Where everything is kept +certs = $dir/certs # Where the issued certs are kept +crl_dir = $dir/crl # Where the issued crl are kept +database = $dir/index.txt # database index file. +#unique_subject = no # Set to 'no' to allow creation of + # several certs with same subject. +new_certs_dir = $dir/newcerts # default place for new certs. + +certificate = $dir/cacert.pem # The CA certificate +serial = $dir/serial # The current serial number +crlnumber = $dir/crlnumber # the current crl number + # must be commented out to leave a V1 CRL +crl = $dir/crl.pem # The current CRL +private_key = $dir/private/cakey.pem# The private key + +x509_extensions = usr_cert # The extensions to add to the cert + +# Comment out the following two lines for the "traditional" +# (and highly broken) format. +name_opt = ca_default # Subject Name options +cert_opt = ca_default # Certificate field options + +# Extension copying option: use with caution. +# copy_extensions = copy + +# Extensions to add to a CRL. Note: Netscape communicator chokes on V2 CRLs +# so this is commented out by default to leave a V1 CRL. +# crlnumber must also be commented out to leave a V1 CRL. +# crl_extensions = crl_ext + +default_days = 365 # how long to certify for +default_crl_days= 30 # how long before next CRL +default_md = default # use public key default MD +preserve = no # keep passed DN ordering + +# A few difference way of specifying how similar the request should look +# For type CA, the listed attributes must be the same, and the optional +# and supplied fields are just that :-) +policy = policy_match + +# For the CA policy +[ policy_match ] +countryName = match +stateOrProvinceName = match +organizationName = match +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +# For the 'anything' policy +# At this point in time, you must list all acceptable 'object' +# types. +[ policy_anything ] +countryName = optional +stateOrProvinceName = optional +localityName = optional +organizationName = optional +organizationalUnitName = optional +commonName = supplied +emailAddress = optional + +#################################################################### +[ req ] +default_bits = 2048 +default_keyfile = privkey.pem +distinguished_name = req_distinguished_name +attributes = req_attributes +x509_extensions = v3_ca # The extensions to add to the self signed cert + +# Passwords for private keys if not present they will be prompted for +# input_password = secret +# output_password = secret + +# This sets a mask for permitted string types. There are several options. +# default: PrintableString, T61String, BMPString. +# pkix : PrintableString, BMPString (PKIX recommendation before 2004) +# utf8only: only UTF8Strings (PKIX recommendation after 2004). +# nombstr : PrintableString, T61String (no BMPStrings or UTF8Strings). +# MASK:XXXX a literal mask value. +# WARNING: ancient versions of Netscape crash on BMPStrings or UTF8Strings. +string_mask = utf8only + +# req_extensions = v3_req # The extensions to add to a certificate request + +[ req_distinguished_name ] +countryName = Country Name (2 letter code) +countryName_default = AU +countryName_min = 2 +countryName_max = 2 + +stateOrProvinceName = State or Province Name (full name) +stateOrProvinceName_default = Some-State + +localityName = Locality Name (eg, city) + +0.organizationName = Organization Name (eg, company) +0.organizationName_default = Internet Widgits Pty Ltd + +# we can do this but it is not needed normally :-) +#1.organizationName = Second Organization Name (eg, company) +#1.organizationName_default = World Wide Web Pty Ltd + +organizationalUnitName = Organizational Unit Name (eg, section) +#organizationalUnitName_default = + +commonName = Common Name (e.g. server FQDN or YOUR name) +commonName_max = 64 + +emailAddress = Email Address +emailAddress_max = 64 + +# SET-ex3 = SET extension number 3 + +[ req_attributes ] +challengePassword = A challenge password +challengePassword_min = 4 +challengePassword_max = 20 + +unstructuredName = An optional company name + +[ usr_cert ] + +# These extensions are added when 'ca' signs a request. + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +# This is required for TSA certificates. +# extendedKeyUsage = critical,timeStamping + +[ v3_req ] + +# Extensions to add to a certificate request + +basicConstraints = CA:FALSE +keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +[ v3_ca ] + + +# Extensions for a typical CA + + +# PKIX recommendation. + +subjectKeyIdentifier=hash + +authorityKeyIdentifier=keyid:always,issuer + +basicConstraints = critical,CA:true + +# Key usage: this is typical for a CA certificate. However since it will +# prevent it being used as an test self-signed certificate it is best +# left out by default. +# keyUsage = cRLSign, keyCertSign + +# Include email address in subject alt name: another PKIX recommendation +# subjectAltName=email:copy +# Copy issuer details +# issuerAltName=issuer:copy + +# DER hex encoding of an extension: beware experts only! +# obj=DER:02:03 +# Where 'obj' is a standard or added object +# You can even override a supported extension: +# basicConstraints= critical, DER:30:03:01:01:FF + +[ crl_ext ] + +# CRL extensions. +# Only issuerAltName and authorityKeyIdentifier make any sense in a CRL. + +# issuerAltName=issuer:copy +authorityKeyIdentifier=keyid:always + +[ proxy_cert_ext ] +# These extensions should be added when creating a proxy certificate + +# This goes against PKIX guidelines but some CAs do it and some software +# requires this to avoid interpreting an end user certificate as a CA. + +basicConstraints=CA:FALSE + +# This is typical in keyUsage for a client certificate. +# keyUsage = nonRepudiation, digitalSignature, keyEncipherment + +# PKIX recommendations harmless if included in all certificates. +subjectKeyIdentifier=hash +authorityKeyIdentifier=keyid,issuer + +# This stuff is for subjectAltName and issuerAltname. +# Import the email address. +# subjectAltName=email:copy +# An alternative to produce certificates that aren't +# deprecated according to PKIX. +# subjectAltName=email:move + +# Copy subject details +# issuerAltName=issuer:copy + +# This really needs to be in place for it to be a proxy certificate. +proxyCertInfo=critical,language:id-ppl-anyLanguage,pathlen:3,policy:foo + +#################################################################### +[ tsa ] + +default_tsa = tsa_config1 # the default TSA section + +[ tsa_config1 ] + +# These are used by the TSA reply generation only. +dir = ./demoCA # TSA root directory +serial = $dir/tsaserial # The current serial number (mandatory) +crypto_device = builtin # OpenSSL engine to use for signing +signer_cert = $dir/tsacert.pem # The TSA signing certificate + # (optional) +certs = $dir/cacert.pem # Certificate chain to include in reply + # (optional) +signer_key = $dir/private/tsakey.pem # The TSA private key (optional) +signer_digest = sha256 # Signing digest to use. (Optional) +default_policy = tsa_policy1 # Policy if request did not specify it + # (optional) +other_policies = tsa_policy2, tsa_policy3 # acceptable policies (optional) +digests = sha1, sha256, sha384, sha512 # Acceptable message digests (mandatory) +accuracy = secs:1, millisecs:500, microsecs:100 # (optional) +clock_precision_digits = 0 # number of digits after dot. (optional) +ordering = yes # Is ordering defined for timestamps? + # (optional, default: no) +tsa_name = yes # Must the TSA name be included in the reply? + # (optional, default: no) +ess_cert_id_chain = no # Must the ESS cert id chain be included? + # (optional, default: no) +ess_cert_id_alg = sha1 # algorithm to compute certificate + # identifier (optional, default: sha1) + +[insta] # CMP using Insta Demo CA +# Message transfer +server = pki.certificate.fi:8700 +# proxy = # set this as far as needed, e.g., http://192.168.1.1:8080 +# tls_use = 0 +path = pkix/ + +# Server authentication +recipient = "/C=FI/O=Insta Demo/CN=Insta Demo CA" # or set srvcert or issuer +ignore_keyusage = 1 # potentially needed quirk +unprotected_errors = 1 # potentially needed quirk +extracertsout = insta.extracerts.pem + +# Client authentication +ref = 3078 # user identification +secret = pass:insta # can be used for both client and server side + +# Generic message options +cmd = ir # default operation, can be overridden on cmd line with, e.g., kur + +# Certificate enrollment +subject = "/CN=openssl-cmp-test" +newkey = insta.priv.pem +out_trusted = apps/insta.ca.crt # does not include keyUsage digitalSignature +certout = insta.cert.pem + +[pbm] # Password-based protection for Insta CA +# Server and client authentication +ref = $insta::ref # 3078 +secret = $insta::secret # pass:insta + +[signature] # Signature-based protection for Insta CA +# Server authentication +trusted = $insta::out_trusted # apps/insta.ca.crt + +# Client authentication +secret = # disable PBM +key = $insta::newkey # insta.priv.pem +cert = $insta::certout # insta.cert.pem + +[ir] +cmd = ir + +[cr] +cmd = cr + +[kur] +# Certificate update +cmd = kur +oldcert = $insta::certout # insta.cert.pem + +[rr] +# Certificate revocation +cmd = rr +oldcert = $insta::certout # insta.cert.pem diff --git a/run/php/glib-2.dll b/run/php/glib-2.dll new file mode 100644 index 0000000..5dca7b8 Binary files /dev/null and b/run/php/glib-2.dll differ diff --git a/run/php/gmodule-2.dll b/run/php/gmodule-2.dll new file mode 100644 index 0000000..0b853fe Binary files /dev/null and b/run/php/gmodule-2.dll differ diff --git a/run/php/icudt75.dll b/run/php/icudt75.dll new file mode 100644 index 0000000..110b805 Binary files /dev/null and b/run/php/icudt75.dll differ diff --git a/run/php/icuin75.dll b/run/php/icuin75.dll new file mode 100644 index 0000000..e000013 Binary files /dev/null and b/run/php/icuin75.dll differ diff --git a/run/php/icuio75.dll b/run/php/icuio75.dll new file mode 100644 index 0000000..0de0ad3 Binary files /dev/null and b/run/php/icuio75.dll differ diff --git a/run/php/icuuc75.dll b/run/php/icuuc75.dll new file mode 100644 index 0000000..328b9bc Binary files /dev/null and b/run/php/icuuc75.dll differ diff --git a/run/php/lib/enchant/libenchant2_hunspell.dll b/run/php/lib/enchant/libenchant2_hunspell.dll new file mode 100644 index 0000000..cd4df2b Binary files /dev/null and b/run/php/lib/enchant/libenchant2_hunspell.dll differ diff --git a/run/php/libcrypto-3-x64.dll b/run/php/libcrypto-3-x64.dll new file mode 100644 index 0000000..cfd9b38 Binary files /dev/null and b/run/php/libcrypto-3-x64.dll differ diff --git a/run/php/libenchant2.dll b/run/php/libenchant2.dll new file mode 100644 index 0000000..aa0825c Binary files /dev/null and b/run/php/libenchant2.dll differ diff --git a/run/php/libpq.dll b/run/php/libpq.dll new file mode 100644 index 0000000..b6aa67e Binary files /dev/null and b/run/php/libpq.dll differ diff --git a/run/php/libsasl.dll b/run/php/libsasl.dll new file mode 100644 index 0000000..0595600 Binary files /dev/null and b/run/php/libsasl.dll differ diff --git a/run/php/libsodium.dll b/run/php/libsodium.dll new file mode 100644 index 0000000..f997f03 Binary files /dev/null and b/run/php/libsodium.dll differ diff --git a/run/php/libsqlite3.dll b/run/php/libsqlite3.dll new file mode 100644 index 0000000..276a583 Binary files /dev/null and b/run/php/libsqlite3.dll differ diff --git a/run/php/libssh2.dll b/run/php/libssh2.dll new file mode 100644 index 0000000..8df48fe Binary files /dev/null and b/run/php/libssh2.dll differ diff --git a/run/php/libssl-3-x64.dll b/run/php/libssl-3-x64.dll new file mode 100644 index 0000000..e76ade0 Binary files /dev/null and b/run/php/libssl-3-x64.dll differ diff --git a/run/php/license.txt b/run/php/license.txt new file mode 100644 index 0000000..0815d7e --- /dev/null +++ b/run/php/license.txt @@ -0,0 +1,68 @@ +-------------------------------------------------------------------- + The PHP License, version 3.01 +Copyright (c) 1999 - 2024 The PHP Group. All rights reserved. +-------------------------------------------------------------------- + +Redistribution and use in source and binary forms, with or without +modification, is permitted provided that the following conditions +are met: + + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + + 3. The name "PHP" must not be used to endorse or promote products + derived from this software without prior written permission. For + written permission, please contact group@php.net. + + 4. Products derived from this software may not be called "PHP", nor + may "PHP" appear in their name, without prior written permission + from group@php.net. You may indicate that your software works in + conjunction with PHP by saying "Foo for PHP" instead of calling + it "PHP Foo" or "phpfoo" + + 5. The PHP Group may publish revised and/or new versions of the + license from time to time. Each version will be given a + distinguishing version number. + Once covered code has been published under a particular version + of the license, you may always continue to use it under the terms + of that version. You may also choose to use such covered code + under the terms of any subsequent version of the license + published by the PHP Group. No one other than the PHP Group has + the right to modify the terms applicable to covered code created + under this License. + + 6. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes PHP software, freely available from + ". + +THIS SOFTWARE IS PROVIDED BY THE PHP DEVELOPMENT TEAM ``AS IS'' AND +ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A +PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE PHP +DEVELOPMENT TEAM OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, +INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR +SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. + +-------------------------------------------------------------------- + +This software consists of voluntary contributions made by many +individuals on behalf of the PHP Group. + +The PHP Group can be contacted via Email at group@php.net. + +For more information on the PHP Group and the PHP project, +please see . + +PHP includes the Zend Engine, freely available at +. diff --git a/run/php/news.txt b/run/php/news.txt new file mode 100644 index 0000000..908ce09 --- /dev/null +++ b/run/php/news.txt @@ -0,0 +1,1549 @@ +PHP NEWS +||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| +28 Aug 2025, PHP 8.4.12 + +- Core: + . Fixed GH-19169 build issue with C++17 and ZEND_STATIC_ASSERT macro. + (psumbera) + . Fixed bug GH-19053 (Duplicate property slot with hooks and interface + property). (ilutov) + . Fixed bug GH-19044 (Protected properties are not scoped according to their + prototype). (Bob) + . Fixed bug GH-18581 (Coerce numeric string keys from iterators when argument + unpacking). (ilutov) + . Fixed OSS-Fuzz #434346548 (Failed assertion with throwing __toString in + binary const expr). (ilutov) + . Fixed bug GH-19305 (Operands may be being released during comparison). + (Arnaud) + . Fixed bug GH-19303 (Unpacking empty packed array into uninitialized array + causes assertion failure). (nielsdos) + . Fixed bug GH-19306 (Generator can be resumed while fetching next value from + delegated Generator). (Arnaud) + . Fixed bug GH-19326 (Calling Generator::throw() on a running generator with + a non-Generator delegate crashes). (Arnaud) + . Fixed bug GH-19280 (Stale array iterator position on rehashing). (ilutov) + . Fixed bug GH-18736 (Circumvented type check with return by ref + finally). + (ilutov) + . Fixed bug GH-19065 (Long match statement can segfault compiler during + recursive SSA renaming). (nielsdos, Arnaud) + +- Calendar: + . Fixed bug GH-19371 (integer overflow in calendar.c). (nielsdos) + +- FTP: + . Fix theoretical issues with hrtime() not being available. (nielsdos) + +- GD: + . Fix incorrect comparison with result of php_stream_can_cast(). (Girgias) + +- Hash: + . Fix crash on clone failure. (nielsdos) + +- Intl: + . Fix memleak on failure in collator_get_sort_key(). (nielsdos) + . Fix return value on failure for resourcebundle count handler. (Girgias) + +- LDAP: + . Fixed bug GH-18529 (additional inheriting of TLS int options). + (Jakub Zelenka) + +- LibXML: + . Fixed bug GH-19098 (libxml<2.13 segmentation fault caused by + php_libxml_node_free). (nielsdos) + +- MbString: + . Fixed bug GH-19397 (mb_list_encodings() can cause crashes on shutdown). + (nielsdos) + +- Opcache: + . Reset global pointers to prevent use-after-free in zend_jit_status(). + (Florian Engelhardt) + . Fix issue with JIT restart and hooks. (nielsdos) + . Fix crash with dynamic function defs in hooks during preload. (nielsdos) + +- OpenSSL: + . Fixed bug GH-18986 (OpenSSL backend: incorrect RAND_{load,write}_file() + return value check). (nielsdos, botovq) + . Fix error return check of EVP_CIPHER_CTX_ctrl(). (nielsdos) + . Fixed bug GH-19428 (openssl_pkey_derive segfaults for DH derive with low + key_length param). (Jakub Zelenka) + +- PDO Pgsql: + . Fixed dangling pointer access on _pdo_pgsql_trim_message helper. + (dixyes) + +- SOAP: + . Fixed bug GH-18640 (heap-use-after-free ext/soap/php_encoding.c:299:32 + in soap_check_zval_ref). (nielsdos) + +- Sockets: + . Fix some potential crashes on incorrect argument value. (nielsdos) + +- Standard: + . Fixed OSS Fuzz #433303828 (Leak in failed unserialize() with opcache). + (ilutov) + . Fix theoretical issues with hrtime() not being available. (nielsdos) + . Fixed bug GH-19300 (Nested array_multisort invocation with error breaks). + (nielsdos) + +- Windows: + . Free opened_path when opened_path_len >= MAXPATHLEN. (dixyes) + +31 Jul 2025, PHP 8.4.11 + +- Calendar: + . Fixed jewishtojd overflow on year argument. (David Carlier) + +- Core: + . Fixed bug GH-18833 (Use after free with weakmaps dependent on destruction + order). (Daniil Gentili) + . Fixed bug GH-18907 (Leak when creating cycle in hook). (ilutov) + . Fix OSS-Fuzz #427814456. (nielsdos) + . Fix OSS-Fuzz #428983568 and #428760800. (nielsdos) + +- Curl: + . Fix memory leaks when returning refcounted value from curl callback. + (nielsdos) + . Remove incorrect string release. (nielsdos) + +- DOM: + . Fixed bug GH-18979 (Dom\XMLDocument::createComment() triggers undefined + behavior with null byte). (nielsdos) + +- LDAP: + . Fixed GH-18902 ldap_exop/ldap_exop_sync assert triggered on empty + request OID. (David Carlier) + +- MbString: + . Fixed bug GH-18901 (integer overflow mb_split). (nielsdos) + +- Opcache: + . Fixed bug GH-18639 (Internal class aliases can break preloading + JIT). + (nielsdos) + . Fixed bug GH-18899 (JIT function crash when emitting undefined variable + warning and opline is not set yet). (nielsdos) + . Fixed bug GH-14082 (Segmentation fault on unknown address 0x600000000018 + in ext/opcache/jit/zend_jit.c). (nielsdos) + . Fixed bug GH-18898 (SEGV zend_jit_op_array_hot with property hooks + and preloading). (nielsdos) + +- OpenSSL: + . Fixed bug #80770 (It is not possible to get client peer certificate with + stream_socket_server). (Jakub Zelenka) + +- PCNTL: + . Fixed bug GH-18958 (Fatal error during shutdown after pcntl_rfork() or + pcntl_forkx() with zend-max-execution-timers). (Arnaud) + +- Phar: + . Fix stream double free in phar. (nielsdos, dixyes) + . Fix phar crash and file corruption with SplFileObject. (nielsdos) + +- SOAP: + . Fixed bug GH-18990, bug #81029, bug #47314 (SOAP HTTP socket not closing + on object destruction). (nielsdos) + . Fix memory leak when URL parsing fails in redirect. (Girgias) + +- SPL: + . Fixed bug GH-19094 (Attaching class with no Iterator implementation to + MultipleIterator causes crash). (nielsdos) + +- Standard: + . Fix misleading errors in printf(). (nielsdos) + . Fix RCN violations in array functions. (nielsdos) + . Fixed GH-18976 pack() overflow with h/H format and INT_MAX repeater value. + (David Carlier) + +- Streams: + . Fixed GH-13264 (fgets() and stream_get_line() do not return false on filter + fatal error). (Jakub Zelenka) + +- Zip: + . Fix leak when path is too long in ZipArchive::extractTo(). (nielsdos) + +03 Jul 2025, PHP 8.4.10 + +- BcMath: + . Fixed bug GH-18641 (Accessing a BcMath\Number property by ref crashes). + (nielsdos) + +- Core: + . Fixed bugs GH-17711 and GH-18022 (Infinite recursion on deprecated attribute + evaluation) and GH-18464 (Recursion protection for deprecation constants not + released on bailout). (DanielEScherzer and ilutov) + . Fixed GH-18695 (zend_ast_export() - float number is not preserved). + (Oleg Efimov) + . Fix handling of references in zval_try_get_long(). (nielsdos) + . Do not delete main chunk in zend_gc. (danog, Arnaud) + . Fix compile issues with zend_alloc and some non-default options. (nielsdos) + +- Curl: + . Fix memory leak when setting a list via curl_setopt fails. (nielsdos) + +- Date: + . Fix leaks with multiple calls to DatePeriod iterator current(). (nielsdos) + +- DOM: + . Fixed bug GH-18744 (classList works not correctly if copy HTMLElement by + clone keyword). (nielsdos) + +- FPM: + . Fixed GH-18662 (fpm_get_status segfault). (txuna) + +- Hash: + . Fixed bug GH-14551 (PGO build fails with xxhash). (nielsdos) + +- Intl: + . Fix memory leak in intl_datetime_decompose() on failure. (nielsdos) + . Fix memory leak in locale lookup on failure. (nielsdos) + +- Opcache: + . Fixed bug GH-18743 (Incompatibility in Inline TLS Assembly on Alpine 3.22). + (nielsdos, Arnaud) + +- ODBC: + . Fix memory leak on php_odbc_fetch_hash() failure. (nielsdos) + +- OpenSSL: + . Fix memory leak of X509_STORE in php_openssl_setup_verify() on failure. + (nielsdos) + . Fixed bug #74796 (Requests through http proxy set peer name). + (Jakub Zelenka) + +- PDO ODBC: + . Fix memory leak if WideCharToMultiByte() fails. (nielsdos) + +- PDO Sqlite: + . Fixed memory leak with Pdo_Sqlite::createCollation when the callback + has an incorrect return type. (David Carlier) + +- Phar: + . Add missing filter cleanups on phar failure. (nielsdos) + . Fixed bug GH-18642 (Signed integer overflow in ext/phar fseek). (nielsdos) + +- PHPDBG: + . Fix 'phpdbg --help' segfault on shutdown with USE_ZEND_ALLOC=0. (nielsdos) + +- PGSQL: + . Fix warning not being emitted when failure to cancel a query with + pg_cancel_query(). (Girgias) + +- Random: + . Fix reference type confusion and leak in user random engine. + (nielsdos, timwolla) + +- Readline: + . Fix memory leak when calloc() fails in php_readline_completion_cb(). + (nielsdos) + +- SimpleXML: + . Fixed bug GH-18597 (Heap-buffer-overflow in zend_alloc.c when assigning + string with UTF-8 bytes). (nielsdos) + +- Soap: + . Fix memory leaks in php_http.c when call_user_function() fails. (nielsdos) + +- Tidy: + . Fix memory leak in tidy output handler on error. (nielsdos) + . Fix tidyOptIsReadonly deprecation, using tidyOptGetCategory. (David Carlier) + +06 Jun 2025, PHP 8.4.8 + +- Core: + . Fixed GH-18480 (array_splice with large values for offset/length arguments). + (nielsdos/David Carlier) + . Partially fixed GH-18572 (nested object comparisons leading to stack overflow). + (David Carlier) + . Fixed OSS-Fuzz #417078295. (nielsdos) + . Fixed OSS-Fuzz #418106144. (nielsdos) + +- Curl: + . Fixed GH-18460 (curl_easy_setopt with CURLOPT_USERPWD/CURLOPT_USERNAME/ + CURLOPT_PASSWORD set the Authorization header when set to NULL). + (David Carlier) + +- Date: + . Fixed bug GH-18076 (Since PHP 8, the date_sun_info() function returns + inaccurate sunrise and sunset times, but other calculated times are + correct) (JiriJozif). + . Fixed bug GH-18481 (date_sunrise with unexpected nan value for the offset). + (nielsdos/David Carlier) + +- DOM: + . Backport lexbor/lexbor#274. (nielsdos, alexpeattie) + +- Intl: + . Fix various reference issues. (nielsdos) + +- LDAP: + . Fixed bug GH-18529 (ldap no longer respects TLS_CACERT from ldaprc in + ldap_start_tls()). (Remi) + +- Opcache: + . Fixed bug GH-18417 (Windows SHM reattachment fails when increasing + memory_consumption or jit_buffer_size). (nielsdos) + . Fixed bug GH-18297 (Exception not handled when jit guard is triggered). + (Arnaud) + . Fixed bug GH-18408 (Snapshotted poly_func / poly_this may be spilled). + (Arnaud) + . Fixed bug GH-18567 (Preloading with internal class alias triggers assertion + failure). (nielsdos) + . Fixed bug GH-18534 (FPM exit code 70 with enabled opcache and hooked + properties in traits). (nielsdos) + . Fix leak of accel_globals->key. (nielsdos) + +- OpenSSL: + . Fix missing checks against php_set_blocking() in xp_ssl.c. (nielsdos) + +- SPL: + . Fixed bug GH-18421 (Integer overflow with large numbers in LimitIterator). + (nielsdos) + +- Standard: + . Fixed bug GH-17403 (Potential deadlock when putenv fails). (nielsdos) + . Fixed bug GH-18400 (http_build_query type error is inaccurate). (nielsdos) + . Fixed bug GH-18509 (Dynamic calls to assert() ignore zend.assertions). + (timwolla) + +- Windows: + . Fix leak+crash with sapi_windows_set_ctrl_handler(). (nielsdos) + +- Zip: + . Fixed bug GH-18431 (Registering ZIP progress callback twice doesn't work). + (nielsdos) + . Fixed bug GH-18438 (Handling of empty data and errors in + ZipArchive::addPattern). (nielsdos) + +24 Apr 2025, PHP 8.4.7 + +- Core: + . Fixed bug GH-18038 (Lazy proxy calls magic methods twice). (Arnaud) + . Fixed bug GH-18209 (Use-after-free in extract() with EXTR_REFS). (ilutov) + . Fixed bug GH-18268 (Segfault in array_walk() on object with added property + hooks). (ilutov) + . Fixed bug GH-18304 (Changing the properties of a DateInterval through + dynamic properties triggers a SegFault). (nielsdos) + . Fix some leaks in php_scandir. (nielsdos) + +- DBA: + . FIxed bug GH-18247 dba_popen() memory leak on invalid path. (David Carlier) + +- Filter: + . Fixed bug GH-18309 (ipv6 filter integer overflow). (nielsdos) + +- GD: + . Fixed imagecrop() overflow with rect argument with x/width y/heigh usage + in gdImageCrop(). (David Carlier) + . Fixed GH-18243 imagettftext() overflow/underflow on font size value. + (David Carlier) + +- Intl: + . Fix reference support for intltz_get_offset(). (nielsdos) + +- LDAP: + . Fixed bug GH-17776 (LDAP_OPT_X_TLS_* options can't be overridden). (Remi) + . Fix NULL deref on high modification key. (nielsdos) + +- libxml: + . Fixed custom external entity loader returning an invalid resource leading + to a confusing TypeError message. (Girgias) + +- Opcache: + . Fixed bug GH-18294 (assertion failure zend_jit_ir.c). (nielsdos) + . Fixed bug GH-18289 (Fix segfault in JIT). (Florian Engelhardt) + . Fixed bug GH-18136 (tracing JIT floating point register clobbering on + Windows and ARM64). (nielsdos) + +- OpenSSL: + . Fix memory leak in openssl_sign() when passing invalid algorithm. + (nielsdos) + . Fix potential leaks when writing to BIO fails. (nielsdos) + +- PDO Firebird: + . Fixed bug GH-18276 (persistent connection - "zend_mm_heap corrupted" + with setAttribute()) (SakiTakamachi). + . Fixed bug GH-17383 (PDOException has wrong code and message since PHP 8.4) + (SakiTakamachi). + +- PDO Sqlite: + . Fix memory leak on error return of collation callback. (nielsdos) + +- PgSql: + . Fix uouv in pg_put_copy_end(). (nielsdos) + +- SPL: + . Fixed bug GH-18322 (SplObjectStorage debug handler mismanages memory). + (nielsdos) + +- Standard: + . Fixed bug GH-18145 (php8ts crashes in php_clear_stat_cache()). + (Jakub Zelenka) + . Fix resource leak in iptcembed() on error. (nielsdos) + +- Tests: + . Address deprecated PHP 8.4 session options to prevent test failures. + (willvar) + +- Zip: + . Fix uouv when handling empty options in ZipArchive::addGlob(). (nielsdos) + . Fix memory leak when handling a too long path in ZipArchive::addGlob(). + (nielsdos) + +10 Apr 2025, PHP 8.4.6 + +- BCMath: + . Fixed pointer subtraction for scale. (SakiTakamachi) + +- Core: + . Fixed property hook backing value access in multi-level inheritance. + (ilutov) + . Fixed accidentally inherited default value in overridden virtual properties. + (ilutov) + . Fixed bug GH-17376 (Broken JIT polymorphism for property hooks added to + child class). (ilutov) + . Fixed bug GH-17913 (ReflectionFunction::isDeprecated() returns incorrect + results for closures created from magic __call()). (timwolla) + . Fixed bug GH-17941 (Stack-use-after-return with lazy objects and hooks). + (nielsdos) + . Fixed bug GH-17988 (Incorrect handling of hooked props without get hook in + get_object_vars()). (ilutov) + . Fixed bug GH-17998 (Skipped lazy object initialization on primed + SIMPLE_WRITE cache). (ilutov) + . Fixed bug GH-17998 (Assignment to backing value in set hook of lazy proxy + calls hook again). (ilutov) + . Fixed bug GH-17961 (use-after-free during dl()'ed module class destruction). + (Arnaud) + . Fixed bug GH-15367 (dl() of module with aliased class crashes in shutdown). + (Arnaud) + . Fixed OSS-Fuzz #403308724. (nielsdos) + . Fixed bug GH-13193 again (Significant performance degradation in 'foreach'). + (nielsdos) + +- DBA: + . Fixed assertion violation when opening the same file with dba_open + multiple times. (chschneider) + +- DOM: + . Fixed bug GH-17991 (Assertion failure dom_attr_value_write). (nielsdos) + . Fix weird unpack behaviour in DOM. (nielsdos) + . Fixed bug GH-18090 (DOM: Svg attributes and tag names are being lowercased). + (nielsdos) + . Fix xinclude destruction of live attributes. (nielsdos) + +- Fuzzer: + . Fixed bug GH-18081 (Memory leaks in error paths of fuzzer SAPI). + (Lung-Alexandra) + +- GD: + . Fixed bug GH-17984 (calls with arguments as array with references). + (David Carlier) + +- LDAP: + . Fixed bug GH-18015 (Error messages for ldap_mod_replace are confusing). + (nielsdos) + +- Mbstring: + . Fixed bug GH-17989 (mb_output_handler crash with unset + http_output_conv_mimetypes). (nielsdos) + +- Opcache: + . Fixed bug GH-15834 (Segfault with hook "simple get" cache slot and minimal + JIT). (nielsdos) + . Fixed bug GH-17966 (Symfony JIT 1205 assertion failure). (nielsdos) + . Fixed bug GH-18037 (SEGV Zend/zend_execute.c). (nielsdos) + . Fixed bug GH-18050 (IN_ARRAY optimization in DFA pass is broken). (ilutov) + . Fixed bug GH-18113 (stack-buffer-overflow ext/opcache/jit/ir/ir_sccp.c). + (nielsdos) + . Fixed bug GH-18112 (NULL access with preloading and INI option). (nielsdos) + . Fixed bug GH-18107 (Opcache CFG jmp optimization with try-finally breaks + the exception table). (nielsdos) + +- PDO: + . Fix memory leak when destroying PDORow. (nielsdos) + +- PGSQL: + . Fixed bug GH-18148 (pg_copy_from() regression with explicit \n terminator + due to wrong offset check). (David Carlier) + +- Standard: + . Fix memory leaks in array_any() / array_all(). (nielsdos) + +- SOAP: + . Fixed bug #66049 (Typemap can break parsing in parse_packet_soap leading to + a segfault) . (Remi) + +- SPL: + . Fixed bug GH-18018 (RC1 data returned from offsetGet causes UAF in + ArrayObject). (nielsdos) + +- Treewide: + . Fixed bug GH-17736 (Assertion failure zend_reference_destroy()). (nielsdos) + +- Windows: + . Fixed bug GH-17836 (zend_vm_gen.php shouldn't break on Windows line + endings). (DanielEScherzer) + +27 Feb 2025, PHP 8.4.5 + +- BCMath: + . Fixed bug GH-17398 (bcmul memory leak). (SakiTakamachi) + +- Core: + . Fixed bug GH-17623 (Broken stack overflow detection for variable + compilation). (ilutov) + . Fixed bug GH-17618 (UnhandledMatchError does not take + zend.exception_ignore_args=1 into account). (timwolla) + . Fix fallback paths in fast_long_{add,sub}_function. (nielsdos) + . Fixed bug OSS-Fuzz #391975641 (Crash when accessing property backing value + by reference). (ilutov) + . Fixed bug GH-17718 (Calling static methods on an interface that has + `__callStatic` is allowed). (timwolla) + . Fixed bug GH-17713 (ReflectionProperty::getRawValue() and related methods + may call hooks of overridden properties). (Arnaud) + . Fixed bug GH-17916 (Final abstract properties should error). + (DanielEScherzer) + . Fixed bug GH-17866 (zend_mm_heap corrupted error after upgrading from + 8.4.3 to 8.4.4). (nielsdos) + . Fixed GHSA-rwp7-7vc6-8477 (Reference counting in php_request_shutdown + causes Use-After-Free). (CVE-2024-11235) (ilutov) + +- DOM: + . Fixed bug GH-17609 (Typo in error message: Dom\NO_DEFAULT_NS instead of + Dom\HTML_NO_DEFAULT_NS). (nielsdos) + . Fixed bug GH-17802 (\Dom\HTMLDocument querySelector attribute name is case + sensitive in HTML). (nielsdos) + . Fixed bug GH-17847 (xinclude destroys live node). (nielsdos) + . Fix using Dom\Node with Dom\XPath callbacks. (nielsdos) + +- FFI: + . Fix FFI Parsing of Pointer Declaration Lists. (davnotdev) + +- FPM: + . Fixed bug GH-17643 (FPM with httpd ProxyPass encoded PATH_INFO env). + (Jakub Zelenka) + +- GD: + . Fixed bug GH-17703 (imagescale with both width and height negative values + triggers only an Exception on width). (David Carlier) + . Fixed bug GH-17772 (imagepalettetotruecolor crash with memory_limit=2M). + (David Carlier) + +- LDAP: + . Fixed bug GH-17704 (ldap_search fails when $attributes contains a + non-packed array with numerical keys). (nielsdos, 7u83) + +- LibXML: + . Fixed GHSA-wg4p-4hqh-c3g9 (Reocurrence of #72714). (nielsdos) + . Fixed GHSA-p3x9-6h7p-cgfc (libxml streams use wrong `content-type` header + when requesting a redirected resource). (CVE-2025-1219) (timwolla) + +- MBString: + . Fixed bug GH-17503 (Undefined float conversion in mb_convert_variables). + (cmb) + +- Opcache: + . Fixed bug GH-17654 (Multiple classes using same trait causes function + JIT crash). (nielsdos) + . Fixed bug GH-17577 (JIT packed type guard crash). (nielsdos, Dmitry) + . Fixed bug GH-17747 (Exception on reading property in register-based + FETCH_OBJ_R breaks JIT). (Dmitry, nielsdos) + . Fixed bug GH-17715 (Null pointer deref in observer API when calling + cases() method on preloaded enum). (Bob) + . Fixed bug GH-17868 (Cannot allocate memory with tracing JIT on 8.4.4). + (nielsdos) + +- PDO_SQLite: + . Fixed GH-17837 ()::getColumnMeta() on unexecuted statement segfaults). + (cmb) + . Fix cycle leak in sqlite3 setAuthorizer(). (nielsdos) + . Fix memory leaks in pdo_sqlite callback registration. (nielsdos) + +- Phar: + . Fixed bug GH-17808: PharFileInfo refcount bug. (nielsdos) + +- PHPDBG: + . Partially fixed bug GH-17387 (Trivial crash in phpdbg lexer). (nielsdos) + . Fix memory leak in phpdbg calling registered function. (nielsdos) + +- Reflection: + . Fixed bug GH-15902 (Core dumped in ext/reflection/php_reflection.c). + (DanielEScherzer) + . Fixed missing final and abstract flags when dumping properties. + (DanielEScherzer) + +- Standard: + . Fixed bug #72666 (stat cache clearing inconsistent between file:// paths + and plain paths). (Jakub Zelenka) + +- Streams: + . Fixed bug GH-17650 (realloc with size 0 in user_filters.c). (nielsdos) + . Fix memory leak on overflow in _php_stream_scandir(). (nielsdos) + . Fixed GHSA-hgf5-96fm-v528 (Stream HTTP wrapper header check might omit + basic auth header). (CVE-2025-1736) (Jakub Zelenka) + . Fixed GHSA-52jp-hrpf-2jff (Stream HTTP wrapper truncate redirect location + to 1024 bytes). (CVE-2025-1861) (Jakub Zelenka) + . Fixed GHSA-pcmh-g36c-qc44 (Streams HTTP wrapper does not fail for headers + without colon). (CVE-2025-1734) (Jakub Zelenka) + . Fixed GHSA-v8xr-gpvj-cx9g (Header parser of `http` stream wrapper does not + handle folded headers). (CVE-2025-1217) (Jakub Zelenka) + +- Windows: + . Fixed phpize for Windows 11 (24H2). (bwoebi) + . Fixed GH-17855 (CURL_STATICLIB flag set even if linked with shared lib). + (cmb) + +- Zlib: + . Fixed bug GH-17745 (zlib extension incorrectly handles object arguments). + (nielsdos) + . Fix memory leak when encoding check fails. (nielsdos) + . Fix zlib support for large files. (nielsdos) + +13 Feb 2025, PHP 8.4.4 + +- Core: + . Fixed bug GH-17234 (Numeric parent hook call fails with assertion). + (nielsdos) + . Fixed bug GH-16892 (ini_parse_quantity() fails to parse inputs starting + with 0x0b). (nielsdos) + . Fixed bug GH-16886 (ini_parse_quantity() fails to emit warning for 0x+0). + (nielsdos) + . Fixed bug GH-17222 (__PROPERTY__ magic constant does not work in all + constant expression contexts). (ilutov) + . Fixed bug GH-17214 (Relax final+private warning for trait methods with + inherited final). (ilutov) + . Fixed NULL arithmetic during system program execution on Windows. (cmb, + nielsdos) + . Fixed potential OOB when checking for trailing spaces on Windows. (cmb) + . Fixed bug GH-17408 (Assertion failure Zend/zend_exceptions.c). + (nielsdos, ilutov) + . Fix may_have_extra_named_args flag for ZEND_AST_UNPACK. (nielsdos) + . Fix NULL arithmetic in System V shared memory emulation for Windows. (cmb) + . Fixed bug GH-17597 (#[\Deprecated] does not work for __call() and + __callStatic()). (timwolla) + +- DOM: + . Fixed bug GH-17397 (Assertion failure ext/dom/php_dom.c). (nielsdos) + . Fixed bug GH-17486 (Incorrect error line numbers reported in + Dom\HTMLDocument::createFromString). (nielsdos) + . Fixed bug GH-17481 (UTF-8 corruption in \Dom\HTMLDocument). (nielsdos) + . Fixed bug GH-17500 (Segfault with requesting nodeName on nameless doctype). + (nielsdos) + . Fixed bug GH-17485 (upstream fix, Self-closing tag on void elements + shouldn't be a parse error/warning in \Dom\HTMLDocument). (lexborisov) + . Fixed bug GH-17572 (getElementsByTagName returns collections with + tagName-based indexing). (nielsdos) + +- Enchant: + . Fix crashes in enchant when passing null bytes. (nielsdos) + +- FTP: + . Fixed bug GH-16800 (ftp functions can abort with EINTR). (nielsdos) + +- GD: + . Fixed bug GH-17349 (Tiled truecolor filling looses single color + transparency). (cmb) + . Fixed bug GH-17373 (imagefttext() ignores clipping rect for palette + images). (cmb) + . Ported fix for libgd 223 (gdImageRotateGeneric() does not properly + interpolate). (cmb) + . Added support for reading GIFs without colormap to bundled libgd. (Andrew + Burley, cmb) + +- Gettext: + . Fixed bug GH-17400 (bindtextdomain SEGV on invalid domain). + (David Carlier) + +- Intl: + . Fixed bug GH-11874 (intl causing segfault in docker images). (nielsdos) + +- Opcache: + . Fixed bug GH-15981 (Segfault with frameless jumps and minimal JIT). + (nielsdos) + . Fixed bug GH-17307 (Internal closure causes JIT failure). (nielsdos) + . Fixed bug GH-17428 (Assertion failure ext/opcache/jit/zend_jit_ir.c:8940). + (nielsdos) + . Fixed bug GH-17564 (Potential UB when reading from / writing to struct + padding). (ilutov) + +- PCNTL: + . Fixed pcntl_setcpuaffinity exception type from ValueError to TypeError for + the cpu mask argument with entries type different than int/string. + (David Carlier) + +- PCRE: + . Fixed bug GH-17122 (memory leak in regex). (nielsdos) + +- PDO: + . Fixed a memory leak when the GC is used to free a PDOStatment. (Girgias) + . Fixed a crash in the PDO Firebird Statement destructor. (nielsdos) + . Fixed UAFs when changing default fetch class ctor args. (Girgias, nielsdos) + +- PgSql: + . Fixed build failure when the constant PGRES_TUPLES_CHUNK is not present + in the system. (chschneider) + +- Phar: + . Fixed bug GH-17518 (offset overflow phar extractTo()). (nielsdos) + +- PHPDBG: + . Fix crashes in function registration + test. (nielsdos, Girgias) + +- Session: + . Fix type confusion with session SID constant. (nielsdos) + . Fixed bug GH-17541 (ext/session NULL pointer dereferencement during + ID reset). (Girgias) + +- SimpleXML: + . Fixed bug GH-17409 (Assertion failure Zend/zend_hash.c:1730). (nielsdos) + +- SNMP: + . Fixed bug GH-17330 (SNMP::setSecurity segfault on closed session). + (David Carlier) + +- SPL: + . Fixed bug GH-15833 (Segmentation fault (access null pointer) in + ext/spl/spl_array.c). (nielsdos) + . Fixed bug GH-17516 (SplFileTempObject::getPathInfo() Undefined behavior + on invalid class). (David Carlier) + +- Standard: + . Fixed bug GH-17447 (Assertion failure when array popping a self addressing + variable). (nielsdos) + +- Windows: + . Fixed clang compiler detection. (cmb) + +- Zip: + . Fixed bug GH-17139 (Fix zip_entry_name() crash on invalid entry). + (nielsdos) + +16 Jan 2025, PHP 8.4.3 + +- BcMath: + . Fixed bug GH-17049 (Correctly compare 0 and -0). (Saki Takamachi) + . Fixed bug GH-17061 (Now Number::round() does not remove trailing zeros). + (Saki Takamachi) + . Fixed bug GH-17064 (Correctly round rounding mode with zero edge case). + (Saki Takamachi) + . Fixed bug GH-17275 (Fixed the calculation logic of dividend scale). + (Saki Takamachi) + +- Core: + . Fixed bug OSS-Fuzz #382922236 (Duplicate dynamic properties in hooked object + iterator properties table). (ilutov) + . Fixed unstable get_iterator pointer for hooked classes in shm on Windows. + (ilutov) + . Fixed bug GH-17106 (ZEND_MATCH_ERROR misoptimization). (ilutov) + . Fixed bug GH-17162 (zend_array_try_init() with dtor can cause engine UAF). + (nielsdos) + . Fixed bug GH-17101 (AST->string does not reproduce constructor property + promotion correctly). (nielsdos) + . Fixed bug GH-17200 (Incorrect dynamic prop offset in hooked prop iterator). + (ilutov) + . Fixed bug GH-17216 (Trampoline crash on error). (nielsdos) + +- DBA: + . Skip test if inifile is disabled. (orlitzky) + +- DOM: + . Fixed bug GH-17145 (DOM memory leak). (nielsdos) + . Fixed bug GH-17201 (Dom\TokenList issues with interned string replace). + (nielsdos) + . Fixed bug GH-17224 (UAF in importNode). (nielsdos) + +- Embed: + . Make build command for program using embed portable. (dunglas) + +- FFI: + . Fixed bug #79075 (FFI header parser chokes on comments). (nielsdos) + . Fix memory leak on ZEND_FFI_TYPE_CHAR conversion failure. (nielsdos) + . Fixed bug GH-16013 and bug #80857 (Big endian issues). (Dmitry, nielsdos) + +- Fileinfo: + . Fixed bug GH-17039 (PHP 8.4: Incorrect MIME content type). (nielsdos) + +- FPM: + . Fixed bug GH-13437 (FPM: ERROR: scoreboard: failed to lock (already + locked)). (Jakub Zelenka) + . Fixed bug GH-17112 (Macro redefinitions). (cmb, nielsdos) + . Fixed bug GH-17208 (bug64539-status-json-encoding.phpt fail on 32-bits). + (nielsdos) + +- GD: + . Fixed bug GH-16255 (Unexpected nan value in ext/gd/libgd/gd_filter.c). + (nielsdos, cmb) + . Ported fix for libgd bug 276 (Sometimes pixels are missing when storing + images as BMPs). (cmb) + +- Gettext: + . Fixed bug GH-17202 (Segmentation fault ext/gettext/gettext.c + bindtextdomain()). (Michael Orlitzky) + +- Iconv: + . Fixed bug GH-17047 (UAF on iconv filter failure). (nielsdos) + +- LDAP: + . Fixed bug GH-17280 (ldap_search() fails when $attributes array has holes). + (nielsdos) + +- LibXML: + . Fixed bug GH-17223 (Memory leak in libxml encoding handling). (nielsdos) + +- MBString: + . Fixed bug GH-17112 (Macro redefinitions). (nielsdos, cmb) + +- Opcache: + . opcache_get_configuration() properly reports jit_prof_threshold. (cmb) + . Fixed bug GH-17140 (Assertion failure in JIT trace exit with + ZEND_FETCH_DIM_FUNC_ARG). (nielsdos, Dmitry) + . Fixed bug GH-17151 (Incorrect RC inference of op1 of FETCH_OBJ and + INIT_METHOD_CALL). (Dmitry, ilutov) + . Fixed bug GH-17246 (GC during SCCP causes segfault). (Dmitry) + . Fixed bug GH-17257 (UBSAN warning in ext/opcache/jit/zend_jit_vm_helpers.c). + (nielsdos, Dmitry) + +- PCNTL: + . Fix memory leak in cleanup code of pcntl_exec() when a non stringable + value is encountered past the first entry. (Girgias) + +- PgSql: + . Fixed bug GH-17158 (pg_fetch_result Shows Incorrect ArgumentCountError + Message when Called With 1 Argument). (nielsdos) + . Fixed further ArgumentCountError for calls with flexible + number of arguments. (David Carlier) + +- Phar: + . Fixed bug GH-17137 (Segmentation fault ext/phar/phar.c). (nielsdos) + +- SimpleXML: + . Fixed bug GH-17040 (SimpleXML's unset can break DOM objects). (nielsdos) + . Fixed bug GH-17153 (SimpleXML crash when using autovivification on + document). (nielsdos) + +- Sockets: + . Fixed bug GH-16276 (socket_strerror overflow handling with INT_MIN). + (David Carlier / cmb) + . Fixed overflow on SO_LINGER values setting, strengthening values check + on SO_SNDTIMEO/SO_RCVTIMEO for socket_set_option(). + (David Carlier) + +- SPL: + . Fixed bug GH-17198 (SplFixedArray assertion failure with get_object_vars). + (nielsdos) + . Fixed bug GH-17225 (NULL deref in spl_directory.c). (nielsdos) + +- Streams: + . Fixed bug GH-17037 (UAF in user filter when adding existing filter name due + to incorrect error handling). (nielsdos) + . Fixed bug GH-16810 (overflow on fopen HTTP wrapper timeout value). + (David Carlier) + . Fixed bug GH-17067 (glob:// wrapper doesn't cater to CWD for ZTS builds). + (cmb) + +- Windows: + . Hardened proc_open() against cmd.exe hijacking. (cmb) + +- XML: + . Fixed bug GH-1718 (unreachable program point in zend_hash). (nielsdos) + +19 Dec 2024, PHP 8.4.2 + +- BcMath: + . Fixed bug GH-16978 (Avoid unnecessary padding with leading zeros). + (Saki Takamachi) + +- COM: + . Fixed bug GH-16991 (Getting typeinfo of non DISPATCH variant segfaults). + (cmb) + +- Core: + . Fixed bug GH-16344 (setRawValueWithoutLazyInitialization() and + skipLazyInitialization() may change initialized proxy). (Arnaud) + . Fix is_zend_ptr() huge block comparison. (nielsdos) + . Fixed potential OOB read in zend_dirname() on Windows. (cmb) + . Fixed bug GH-15964 (printf() can strip sign of -INF). (divinity76, cmb) + +- Curl: + . Fix various memory leaks in curl mime handling. (nielsdos) + +- DBA: + . Fixed bug GH-16990 (dba_list() is now zero-indexed instead of using + resource ids) (kocsismate) + +- DOM: + . Fixed bug GH-16906 (Reloading document can cause UAF in iterator). + (nielsdos) + +- FPM: + . Fixed bug GH-16932 (wrong FPM status output). (Jakub Zelenka, James Lucas) + +- GMP: + . Fixed bug GH-16890 (array_sum() with GMP can loose precision (LLP64)). + (cmb) + +- Opcache: + . Fixed bug GH-16851 (JIT_G(enabled) not set correctly on other threads). + (dktapps) + . Fixed bug GH-16902 (Set of opcache tests fail zts+aarch64). (nielsdos) + . Fixed bug GH-16879 (JIT dead code skipping does not update call_level). + (nielsdos) + +- SAPI: + . Fixed bug GH-16998 (UBSAN warning in rfc1867). (nielsdos) + +- PHPDBG: + . Fixed bug GH-15208 (Segfault with breakpoint map and phpdbg_clear()). + (nielsdos) + +- Standard: + . Fixed bug GH-16905 (Internal iterator functions can't handle UNDEF + properties). (nielsdos) + . Fixed bug GH-16957 (Assertion failure in array_shift with + self-referencing array). (nielsdos) + +- Streams: + . Fixed network connect poll interuption handling. (Jakub Zelenka) + +- Windows: + . Fixed bug GH-16849 (Error dialog causes process to hang). (cmb) + . Windows Server 2025 is now properly reported. (cmb) + +21 Nov 2024, PHP 8.4.1 + +- BcMath: + . [RFC] Add bcfloor, bcceil and bcround to BCMath. (Saki Takamachi) + . Improve performance. (Saki Takamachi, nielsdos) + . Adjust bcround()'s $mode parameter to only accept the RoundingMode + enum. (timwolla, saki) + . Fixed LONG_MAX in BCMath ext. (Saki Takamachi) + . Fixed bcdiv() div by one. (Saki Takamachi) + . [RFC] Support object types in BCMath. (Saki Takamachi) + . bcpow() performance improvement. (Jorg Sowa) + . ext/bcmath: Check for scale overflow. (SakiTakamachi) + . [RFC] ext/bcmath: Added bcdivmod. (SakiTakamachi) + . Fix GH-15968 (Avoid converting objects to strings in operator calculations). + (SakiTakamachi) + . Fixed bug GH-16265 (Added early return case when result is 0) + (Saki Takamachi). + . Fixed bug GH-16262 (Fixed a bug where size_t underflows) (Saki Takamachi). + . Fixed GH-16236 (Fixed a bug in BcMath\Number::pow() and bcpow() when + raising negative powers of 0) (Saki Takamachi). + +- Core: + . Added zend_call_stack_get implementation for NetBSD, DragonFlyBSD, + Solaris and Haiku. (David Carlier) + . Enabled ifunc checks on FreeBSD from the 12.x releases. (Freaky) + . Changed the type of PHP_DEBUG and PHP_ZTS constants to bool. (haszi) + . Fixed bug GH-13142 (Undefined variable name is shortened when contains \0). + (nielsdos) + . Fixed bug GH-13178 (Iterator positions incorrect when converting packed + array to hashed). (ilutov) + . Fixed zend fiber build for solaris default mode (32 bits). (David Carlier) + . Fixed zend call stack size for macOs/arm64. (David Carlier) + . Added support for Zend Max Execution Timers on FreeBSD. (Kévin Dunglas) + . Ensure fiber stack is not backed by THP. (crrodriguez) + . Implement GH-13609 (Dump wrapped object in WeakReference class). (nielsdos) + . Added sparc64 arch assembly support for zend fiber. (Claudio Jeker) + . Fixed GH-13581 no space available for TLS on NetBSD. (Paul Ripke) + . Added fiber Sys-V loongarch64 support. (qiangxuhui) + . Adjusted closure names to include the parent function's name. (timwolla) + . Improve randomness of uploaded file names and files created by tempnam(). + (Arnaud) + . Added gc and shutdown callbacks to zend_mm custom handlers. + (Florian Engelhardt) + . Fixed bug GH-14650 (Compute the size of pages before allocating memory). + (Julien Voisin) + . Fixed bug GH-11928 (The --enable-re2c-cgoto doesn't add the -g flag). + (Peter Kokot) + . Added the #[\Deprecated] attribute. (beberlei, timwolla) + . Fixed GH-11389 (Allow suspending fibers in destructors). (Arnaud, trowski) + . Fixed bug GH-14801 (Fix build for armv7). (andypost) + . Implemented property hooks RFC. (ilutov) + . Fix GH-14978 (The xmlreader extension phpize build). (Peter Kokot) + . Throw Error exception when encountering recursion during comparison, rather + than fatal error. (ilutov) + . Added missing cstddef include for C++ builds. (cmb) + . Updated build system scripts config.guess to 2024-07-27 and config.sub to + 2024-05-27. (Peter Kokot) + . Fixed bug GH-15240 (Infinite recursion in trait hook). (ilutov) + . Fixed bug GH-15140 (Missing variance check for abstract set with asymmetric + type). (ilutov) + . Fixed bug GH-15181 (Disabled output handler is flushed again). (cmb) + . Passing E_USER_ERROR to trigger_error() is now deprecated. (Girgias) + . Fixed bug GH-15292 (Dynamic AVX detection is broken for MSVC). (nielsdos) + . Using "_" as a class name is now deprecated. (Girgias) + . Exiting a namespace now clears seen symbols. (ilutov) + . The exit (and die) language constructs now behave more like a function. + They can be passed liked callables, are affected by the strict_types + declare statement, and now perform the usual type coercions instead of + casting any non-integer value to a string. + As such, passing invalid types to exit/die may now result in a TypeError + being thrown. (Girgias) + . Fixed bug GH-15438 (Hooks on constructor promoted properties without + visibility are ignored). (ilutov) + . Fixed bug GH-15419 (Missing readonly+hook incompatibility check for readonly + classes). (ilutov) + . Fixed bug GH-15187 (Various hooked object iterator issues). (ilutov) + . Fixed bug GH-15456 (Crash in get_class_vars() on virtual properties). + (ilutov) + . Fixed bug GH-15501 (Windows HAVE_
_H macros defined to 1 or + undefined). (Peter Kokot) + . Implemented asymmetric visibility for properties. (ilutov) + . Fixed bug GH-15644 (Asymmetric visibility doesn't work with hooks). (ilutov) + . Implemented lazy objects RFC. (Arnaud) + . Fixed bug GH-15686 (Building shared iconv with external iconv library). + (Peter Kokot, zeriyoshi) + . Fixed missing error when adding asymmetric visibility to unilateral virtual + property. (ilutov) + . Fixed bug GH-15693 (Unnecessary include in main.c bloats binary). + (nielsdos) + . Fixed bug GH-15731 (AllowDynamicProperties validation should error on + enums). (DanielEScherzer) + . Fixed bug GH-16040 (Use-after-free of object released in hook). (ilutov) + . Fixed bug GH-16026 (Reuse of dtor fiber during shutdown). (Arnaud) + . Fixed bug GH-15999 (zend_std_write_property() assertion failure with lazy + objects). (Arnaud) + . Fixed bug GH-15960 (Foreach edge cases with lazy objects). (Arnaud) + . Fixed bug GH-16185 (Various hooked object iterator issues). (ilutov) + . Fixed bug OSS-Fuzz #371445205 (Heap-use-after-free in attr_free). + (nielsdos) + . Fixed missing error when adding asymmetric visibility to static properties. + (ilutov) + . Fixed bug OSS-Fuzz #71407 (Null-dereference WRITE in + zend_lazy_object_clone). (Arnaud) + . Fixed bug GH-16574 (Incorrect error "undefined method" messages). + (nielsdos) + . Fixed bug GH-16577 (EG(strtod_state).freelist leaks with opcache.preload). + (nielsdos) + . Fixed bug GH-16615 (Assertion failure in zend_std_read_property). (Arnaud) + . Fixed bug GH-16342 (Added ReflectionProperty::isLazy()). (Arnaud) + . Fixed bug GH-16725 (Incorrect access check for non-hooked props in hooked + object iterator). (ilutov) + +- Curl: + . Deprecated the CURLOPT_BINARYTRANSFER constant. (divinity76) + . Bumped required libcurl version to 7.61.0. (Ayesh) + . Added feature_list key to the curl_version() return value. (Ayesh) + . Added constants CURL_HTTP_VERSION_3 (libcurl 7.66) and CURL_HTTP_VERSION_3ONLY + (libcurl 7.88) as options for CURLOPT_HTTP_VERSION (Ayesh Karunaratne) + . Added CURLOPT_TCP_KEEPCNT to set the number of probes to send before + dropping the connection. (David Carlier) + . Added CURLOPT_PREREQFUNCTION Curl option to set a custom callback + after the connection is established, but before the request is + performed. (Ayesh Karunaratne) + . Added CURLOPT_SERVER_RESPONSE_TIMEOUT, which was formerly known as + CURLOPT_FTP_RESPONSE_TIMEOUT. (Ayesh Karunaratne) + . The CURLOPT_DNS_USE_GLOBAL_CACHE option is now silently ignored. (Ayesh Karunaratne) + . Added CURLOPT_DEBUGFUNCTION as a Curl option. (Ayesh Karunaratne) + . Fixed bug GH-16359 (crash with curl_setopt* CURLOPT_WRITEFUNCTION + without null callback). (David Carlier) + . Fixed bug GH-16723 (CURLMOPT_PUSHFUNCTION issues). (cmb) + +- Date: + . Added DateTime[Immutable]::createFromTimestamp. (Marc Bennewitz) + . Added DateTime[Immutable]::[get|set]Microsecond. (Marc Bennewitz) + . Constants SUNFUNCS_RET_TIMESTAMP, SUNFUNCS_RET_STRING, and SUNFUNCS_RET_DOUBLE + are now deprecated. (Jorg Sowa) + . Fixed bug GH-13773 (DatePeriod not taking into account microseconds for end + date). (Mark Bennewitz, Derick) + +- DBA: + . Passing null or false to dba_key_split() is deprecated. (Grigias) + +- Debugging: + . Fixed bug GH-15923 (GDB: Python Exception : + exceptions must derive from BaseException). (nielsdos) + +- DOM: + . Added DOMNode::compareDocumentPosition(). (nielsdos) + . Implement #53655 (Improve speed of DOMNode::C14N() on large XML documents). + (nielsdos) + . Fix cloning attribute with namespace disappearing namespace. (nielsdos) + . Implement DOM HTML5 parsing and serialization RFC. (nielsdos) + . Fix DOMElement->prefix with empty string creates bogus prefix. (nielsdos) + . Handle OOM more consistently. (nielsdos) + . Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos) + . Added DOMXPath::quote() static method. (divinity76) + . Implemented opt-in ext/dom spec compliance RFC. (nielsdos) + . Fixed bug #79701 (getElementById does not correctly work with duplicate + definitions). (nielsdos) + . Implemented "New ext-dom features in PHP 8.4" RFC. (nielsdos) + . Fixed GH-14698 (segfault on DOM node dereference). (David Carlier) + . Improve support for template elements. (nielsdos) + . Fix trampoline leak in xpath callables. (nielsdos) + . Throw instead of silently failing when creating a too long text node in + (DOM)ParentNode and (DOM)ChildNode. (nielsdos) + . Fixed bug GH-15192 (Segmentation fault in dom extension + (html5_serializer)). (nielsdos) + . Deprecated DOM_PHP_ERR constant. (nielsdos) + . Removed DOMImplementation::getFeature(). (nielsdos) + . Fixed bug GH-15331 (Element::$substitutedNodeValue test failed). (nielsdos) + . Fixed bug GH-15570 (Segmentation fault (access null pointer) in + ext/dom/html5_serializer.c). (nielsdos) + . Fixed bug GH-13988 (Storing DOMElement consume 4 times more memory in + PHP 8.1 than in PHP 8.0). (nielsdos) + . Fix XML serializer errata: xmlns="" serialization should be allowed. + (nielsdos) + . Fixed bug GH-15910 (Assertion failure in ext/dom/element.c). (nielsdos) + . Fix unsetting DOM properties. (nielsdos) + . Fixed bug GH-16190 (Using reflection to call Dom\Node::__construct + causes assertion failure). (nielsdos) + . Fix edge-case in DOM parsing decoding. (nielsdos) + . Fixed bug GH-16465 (Heap buffer overflow in DOMNode->getElementByTagName). + (nielsdos) + . Fixed bug GH-16594 (Assertion failure in DOM -> before). (nielsdos) + +- Fileinfo: + . Update to libmagic 5.45. (nielsdos) + . Fixed bug #65106 (PHP fails to compile ext/fileinfo). (Guillaume Outters) + +- FPM: + . Implement GH-12385 (flush headers without body when calling flush()). + (nielsdos) + . Added DragonFlyBSD system to the list which set FPM_BACKLOG_DEFAULT + to SOMAXCONN. (David Carlier) + . /dev/poll events.mechanism for Solaris/Illumos setting had been retired. + (David Carlier) + . Added memory peak to the scoreboard / status page. (Flávio Heleno) + +- FTP: + . Removed the deprecated inet_ntoa call support. (David Carlier) + . Fixed bug #63937 (Upload speed 10 times slower with PHP). (nielsdos) + +- GD: + . Fix parameter numbers and missing alpha check for imagecolorset(). + (Giovanni Giacobbi) + . imagepng/imagejpeg/imagewep/imageavif now throw an exception on + invalid quality parameter. (David Carlier) + . Check overflow/underflow for imagescale/imagefilter. (David Carlier) + . Added gdImageClone to bundled libgd. (David Carlier) + +- Gettext: + . bind_textdomain_codeset, textdomain and d(*)gettext functions + now throw an exception on empty domain. (David Carlier) + +- GMP: + . The GMP class is now final and cannot be extended anymore. (Girgias) + . RFC: Change GMP bool cast behavior. (Saki Takamachi) + +- Hash: + . Changed return type of hash_update() to true. (nielsdos) + . Added HashContext::__debugInfo(). (timwolla) + . Deprecated passing incorrect data types for options to ext/hash functions. + (nielsdos) + . Added SSE2 and SHA-NI implementation of SHA-256. (timwolla, Colin Percival, + Graham Percival) + . Fix GH-15384 (Build fails on Alpine / Musl for amd64). (timwolla) + . Fixed bug GH-15742 (php_hash_sha.h incompatible with C++). (cmb) + +- IMAP: + . Moved to PECL. (Derick Rethans) + +- Intl: + . Added IntlDateFormatter::PATTERN constant. (David Carlier) + . Fixed Numberformatter::__construct when the locale is invalid, now + throws an exception. (David Carlier) + . Added NumberFormatter::ROUND_TOWARD_ZERO and ::ROUND_AWAY_FROM_ZERO as + aliases for ::ROUND_DOWN and ::ROUND_UP. (Jorg Sowa) + . Added NumberFormatter::ROUND_HALFODD. (Ayesh Karunaratne) + . Added PROPERTY_IDS_UNARY_OPERATOR, PROPERTY_ID_COMPAT_MATH_START and + PROPERTY_ID_COMPAT_MATH_CONTINUE constants. (David Carlier) + . Added IntlDateFormatter::getIanaID/intltz_get_iana_id method/function. + (David Carlier) + . Set to C++17 standard for icu 74 and onwards. (David Carlier) + . resourcebundle_get(), ResourceBundle::get(), and accessing offsets on a + ResourceBundle object now throw: + - TypeError for invalid offset types + - ValueError for an empty string + - ValueError if the integer index does not fit in a signed 32 bit integer + . ResourceBundle::get() now has a tentative return type of: + ResourceBundle|array|string|int|null + . Added the new Grapheme function grapheme_str_split. (youkidearitai) + . Added IntlDateFormatter::parseToCalendar. (David Carlier) + . Added SpoofChecker::setAllowedChars to set unicode chars ranges. + (David Carlier) + +- LDAP: + . Added LDAP_OPT_X_TLS_PROTOCOL_MAX/LDAP_OPT_X_TLS_PROTOCOL_TLS1_3 + constants. (StephenWall) + +- LibXML: + . Added LIBXML_RECOVER constant. (nielsdos) + . libxml_set_streams_context() now throws immediately on an invalid context + instead of at the use-site. (nielsdos) + . Added LIBXML_NO_XXE constant. (nielsdos) + +- MBString: + . Added mb_trim, mb_ltrim and mb_rtrim. (Yuya Hamada) + . Added mb_ucfirst and mb_lcfirst. (Yuya Hamada) + . Updated Unicode data tables to Unicode 15.1. (Ayesh Karunaratne) + . Fixed bug GH-15824 (mb_detect_encoding(): Argument $encodings contains + invalid encoding "UTF8"). (Yuya Hamada) + . Updated Unicode data tables to Unicode 16.0. (Ayesh Karunaratne) + +- Mysqli: + . The mysqli_ping() function and mysqli::ping() method are now deprecated, + as the reconnect feature was removed in PHP 8.2. (Kamil Tekiela) + . The mysqli_kill() function and mysqli::kill() method are now deprecated. + If this functionality is needed a SQL "KILL" command can be used instead. + (Kamil Tekiela) + . The mysqli_refresh() function and mysqli::refresh() method are now deprecated. + If this functionality is needed a SQL "FLUSH" command can be used instead. + (Kamil Tekiela) + . Passing explicitly the $mode parameter to mysqli_store_result() has been + deprecated. As the MYSQLI_STORE_RESULT_COPY_DATA constant was only used in + conjunction with this function it has also been deprecated. (Girgias) + +- MySQLnd: + . Fixed bug GH-13440 (PDO quote bottleneck). (nielsdos) + . Fixed bug GH-10599 (Apache crash on Windows when using a self-referencing + anonymous function inside a class with an active mysqli connection). + (nielsdos) + +- Opcache: + . Added large shared segments support for FreeBSD. (David Carlier) + . If JIT is enabled, PHP will now exit with a fatal error on startup in case + of JIT startup initialization issues. (danog) + . Increased the maximum value of opcache.interned_strings_buffer to 32767 on + 64bit archs. (Arnaud) + . Fixed bug GH-13834 (Applying non-zero offset 36 to null pointer in + zend_jit.c). (nielsdos) + . Fixed bug GH-14361 (Deep recursion in zend_cfg.c causes segfault). + (nielsdos) + . Fixed bug GH-14873 (PHP 8.4 min function fails on typed integer). + (nielsdos) + . Fixed bug GH-15490 (Building of callgraph modifies preloaded symbols). + (ilutov) + . Fixed bug GH-15178 (Assertion in tracing JIT on hooks). (ilutov) + . Fixed bug GH-15657 (Segmentation fault in dasm_x86.h). (nielsdos) + . Added opcache_jit_blacklist() function. (Bob) + . Fixed bug GH-16009 (Segmentation fault with frameless functions and + undefined CVs). (nielsdos) + . Fixed bug GH-16186 (Assertion failure in Zend/zend_operators.c). (Arnaud) + . Fixed bug GH-16572 (Incorrect result with reflection in low-trigger JIT). + (nielsdos) + . Fixed GH-16839 (Error on building Opcache JIT for Windows ARM64). (cmb) + +- OpenSSL: + . Fixed bug #80269 (OpenSSL sets Subject wrong with extraattribs parameter). + (Jakub Zelenka) + . Implement request #48520 (openssl_csr_new - allow multiple values in DN). + (Jakub Zelenka) + . Introduced new serial_hex parameter to openssl_csr_sign. (Jakub Zelenka, + Florian Sowade) + . Added X509_PURPOSE_OCSP_HELPER and X509_PURPOSE_TIMESTAMP_SIGN constants. + (Vincent Jardin) + . Bumped minimum required OpenSSL version to 1.1.1. (Ayesh Karunaratne) + . Added compile-time option --with-openssl-legacy-provider to enable legacy + provider. (Adam Saponara) + . Added support for Curve25519 + Curve448 based keys. (Manuel Mausz) + . Fixed bug GH-13343 (openssl_x509_parse should not allow omitted seconds in + UTCTimes). (Jakub Zelenka) + . Bumped minimum required OpenSSL version to 1.1.0. (cmb) + . Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2. (Remi) + +- Output: + . Clear output handler status flags during handler initialization. (haszi) + . Fixed bug with url_rewriter.hosts not used by output_add_rewrite_var(). + (haszi) + +- PCNTL: + . Added pcntl_setns for Linux. (David Carlier) + . Added pcntl_getcpuaffinity/pcntl_setcpuaffinity. (David Carlier) + . Updated pcntl_get_signal_handler signal id upper limit to be + more in line with platforms limits. (David Carlier) + . Added pcntl_getcpu for Linux/FreeBSD/Solaris/Illumos. (David Carlier) + . Added pcntl_getqos_class/pcntl_setqos_class for macOs. (David Carlier) + . Added SIGCKPT/SIGCKPTEXIT constants for DragonFlyBSD. (David Carlier) + . Added FreeBSD's SIGTRAP handling to pcntl_siginfo_to_zval. (David Carlier) + . Added POSIX pcntl_waitid. (Vladimir Vrzić) + . Fixed bug GH-16769: (pcntl_sigwaitinfo aborts on signal value + as reference). (David Carlier) + +- PCRE: + . Upgrade bundled pcre2lib to version 10.43. (nielsdos) + . Add "/r" modifier. (Ayesh) + . Upgrade bundled pcre2lib to version 10.44. (Ayesh) + . Fixed GH-16189 (underflow on offset argument). (David Carlier) + . Fix UAF issues with PCRE after request shutdown. (nielsdos) + +- PDO: + . Fixed setAttribute and getAttribute. (SakiTakamachi) + . Implemented PDO driver-specific subclasses RFC. (danack, kocsismate) + . Added support for PDO driver-specific SQL parsers. (Matteo Beccati) + . Fixed bug GH-14792 (Compilation failure on pdo_* extensions). + (Peter Kokot) + . mysqlnd: support ER_CLIENT_INTERACTION_TIMEOUT. (Appla) + . The internal header php_pdo_int.h is no longer installed; it is not + supposed to be used by PDO drivers. (cmb) + . Fixed bug GH-16167 (Prevent mixing PDO sub-classes with different DSN). + (kocsismate) + . Fixed bug GH-16314 ("Pdo\Mysql object is uninitialized" when opening a + persistent connection). (kocsismate) + +- PDO_DBLIB: + . Fixed setAttribute and getAttribute. (SakiTakamachi) + . Added class Pdo\DbLib. (danack, kocsismate) + +- PDO_Firebird: + . Fixed setAttribute and getAttribute. (SakiTakamachi) + . Feature: Add transaction isolation level and mode settings to pdo_firebird. + (SakiTakamachi) + . Added class Pdo\Firebird. (danack, kocsismate) + . Added Pdo\Firebird::ATTR_API_VERSION. (SakiTakamachi) + . Added getApiVersion() and removed from getAttribute(). + (SakiTakamachi) + . Supported Firebird 4.0 datatypes. (sim1984) + . Support proper formatting of time zone types. (sim1984) + . Fixed GH-15604 (Always make input parameters nullable). (sim1984) + +- PDO_MYSQL: + . Fixed setAttribute and getAttribute. (SakiTakamachi) + . Added class Pdo\Mysql. (danack, kocsismate) + . Added custom SQL parser. (Matteo Beccati) + . Fixed GH-15949 (PDO_MySQL not properly quoting PDO_PARAM_LOB binary + data). (mbeccati, lcobucci) + +- PDO_ODBC: + . Added class Pdo\Odbc. (danack, kocsismate) + +- PDO_PGSQL: + . Fixed GH-12423, DSN credentials being prioritized over the user/password + PDO constructor arguments. (SakiTakamachi) + . Fixed native float support with pdo_pgsql query results. (Yurunsoft) + . Added class Pdo\Pgsql. (danack, kocsismate) + . Retrieve the memory usage of the query result resource. (KentarouTakeda) + . Added Pdo\Pgsql::setNoticeCallBack method to receive DB notices. + (outtersg) + . Added custom SQL parser. (Matteo Beccati) + . Fixed GH-15986 (Double-free due to Pdo\Pgsql::setNoticeCallback()). (cmb, + nielsdos) + . Fixed GH-12940 (Using PQclosePrepared when available instead of + the DEALLOCATE command to free statements resources). (David Carlier) + . Remove PGSQL_ATTR_RESULT_MEMORY_SIZE constant as it is provided by + the new PDO Subclass as Pdo\Pgsql::ATTR_RESULT_MEMORY_SIZE. (Girgias) + +- PDO_SQLITE: + . Added class Pdo\Sqlite. (danack, kocsismate) + . Fixed bug #81227 (PDO::inTransaction reports false when in transaction). + (nielsdos) + . Added custom SQL parser. (Matteo Beccati) + +- PHPDBG: + . array out of bounds, stack overflow handled for segfault handler on windows. + (David Carlier) + . Fixed bug GH-16041 (Support stack limit in phpdbg). (Arnaud) + +- PGSQL: + . Added the possibility to have no conditions for pg_select. (OmarEmaraDev) + . Persistent connections support the PGSQL_CONNECT_FORCE_RENEW flag. + (David Carlier) + . Added pg_result_memory_size to get the query result memory usage. + (KentarouTakeda) + . Added pg_change_password to alter an user's password. (David Carlier) + . Added pg_put_copy_data/pg_put_copy_end to send COPY commands and signal + the end of the COPY. (David Carlier) + . Added pg_socket_poll to poll on the connection. (David Carlier) + . Added pg_jit to get infos on server JIT support. (David Carlier) + . Added pg_set_chunked_rows_size to fetch results per chunk. (David Carlier) + . pg_convert/pg_insert/pg_update/pg_delete ; regexes are now cached. + (David Carlier) + +- Phar: + . Fixed bug GH-12532 (PharData created from zip has incorrect timestamp). + (nielsdos) + +- POSIX: + . Added POSIX_SC_CHILD_MAX and POSIX_SC_CLK_TCK constants. (Jakub Zelenka) + . Updated posix_isatty to set the error number on file descriptors. + (David Carlier) + +- PSpell: + . Moved to PECL. (Derick Rethans) + +- Random: + . Fixed bug GH-15094 (php_random_default_engine() is not C++ conforming). + (cmb) + . lcg_value() is now deprecated. (timwolla) + +- Readline: + . Fixed readline_info, rl_line_buffer_length/rl_len globals on update. + (David Carlier) + . Fixed bug #51558 (Shared readline build fails). (Peter Kokot) + . Fixed UAF with readline_info(). (David Carlier) + +- Reflection: + . Implement GH-12908 (Show attribute name/class in ReflectionAttribute dump). + (nielsdos) + . Make ReflectionGenerator::getFunction() legal after generator termination. + (timwolla) + . Added ReflectionGenerator::isClosed(). (timwolla) + . Fixed bug GH-15718 (Segfault on ReflectionProperty::get{Hook,Hooks}() on + dynamic properties). (DanielEScherzer) + . Fixed bug GH-15694 (ReflectionProperty::isInitialized() is incorrect for + hooked properties). (ilutov) + . Add missing ReflectionProperty::hasHook[s]() methods. (ilutov) + . Add missing ReflectionProperty::isFinal() method. (ilutov) + . Fixed bug GH-16122 (The return value of ReflectionFunction::getNamespaceName() + and ReflectionFunction::inNamespace() for closures is incorrect). (timwolla) + . Fixed bug GH-16162 (No ReflectionProperty::IS_VIRTUAL) (DanielEScherzer) + . Fixed the name of the second parameter of + ReflectionClass::resetAsLazyGhost(). (Arnaud) + +- Session: + . INI settings session.sid_length and session.sid_bits_per_character are now + deprecated. (timwolla) + . Emit warnings for non-positive values of session.gc_divisor and negative values + of session.gc_probability. (Jorg Sowa) + . Fixed bug GH-16590 (UAF in session_encode()). (nielsdos) + +- SimpleXML: + . Fix signature of simplexml_import_dom(). (nielsdos) + +- SNMP: + . Removed the deprecated inet_ntoa call support. (David Carlier) + +- SOAP: + . Add support for clark notation for namespaces in class map. (lxShaDoWxl) + . Mitigate #51561 (SoapServer with a extented class and using sessions, + lost the setPersistence()). (nielsdos) + . Fixed bug #49278 (SoapClient::__getLastResponseHeaders returns NULL if + wsdl operation !has output). (nielsdos) + . Fixed bug #44383 (PHP DateTime not converted to xsd:datetime). (nielsdos) + . Fixed bug GH-11941 (soap with session persistence will silently fail when + "session" built as a shared object). (nielsdos) + . Passing an int to SoapServer::addFunction() is now deprecated. + If all PHP functions need to be provided flatten the array returned by + get_defined_functions(). (Girgias) + . The SOAP_FUNCTIONS_ALL constant is now deprecated. (Girgias) + . Fixed bug #61525 (SOAP functions require at least one space after HTTP + header colon). (nielsdos) + . Implement request #47317 (SoapServer::__getLastResponse()). (nielsdos) + +- Sockets: + . Removed the deprecated inet_ntoa call support. (David Carlier) + . Added the SO_EXECLUSIVEADDRUSE windows constant. (David Carlier) + . Added the SOCK_CONN_DGRAM/SOCK_DCCP netbsd constants. (David Carlier) + . Added multicast group support for ipv4 on FreeBSD. (jonathan@tangential.ca) + . Added the TCP_SYNCNT constant for Linux to set number of attempts to send + SYN packets from the client. (David Carlier) + . Added the SO_EXCLBIND constant for exclusive socket binding on illumos/solaris. + (David Carlier) + . Updated the socket_create_listen backlog argument default value to SOMAXCONN. + (David Carlier) + . Added the SO_NOSIGPIPE constant to control the generation of SIGPIPE for + macOs and FreeBSD. (David Carlier) + . Added SO_LINGER_SEC for macOs, true equivalent of SO_LINGER in other platforms. + (David Carlier) + . Add close-on-exec on socket created with socket_accept on unixes. (David Carlier) + . Added IP_PORTRANGE* constants for BSD systems to control ephemeral port + ranges. (David Carlier) + . Added SOCK_NONBLOCK/SOCK_CLOEXEC constants for socket_create and + socket_create_pair to apply O_NONBLOCK/O_CLOEXEC flags to the + newly created sockets. (David Carlier) + . Added SO_BINDTOIFINDEX to bind a socket to an interface index. + (David Carlier) + +- Sodium: + . Add support for AEGIS-128L and AEGIS-256. (jedisct1) + . Enable AES-GCM on aarch64 with the ARM crypto extensions. (jedisct1) + +- SPL: + . Implement SeekableIterator for SplObjectStorage. (nielsdos) + . The SplFixedArray::__wakeup() method has been deprecated as it implements + __serialize() and __unserialize() which need to be overwritten instead. + (TysonAndre) + . Passing a non-empty string for the $escape parameter of: + - SplFileObject::setCsvControl() + - SplFileObject::fputcsv() + - SplFileObject::fgetcsv() + is now deprecated. (Girgias) + +- Standard: + . Implement GH-12188 (Indication for the int size in phpinfo()). (timwolla) + . Partly fix GH-12143 (Incorrect round() result for 0.49999999999999994). + (timwolla) + . Fix GH-12252 (round(): Validate the rounding mode). (timwolla) + . Increase the default BCrypt cost to 12. (timwolla) + . Fixed bug GH-12592 (strcspn() odd behaviour with NUL bytes and empty mask). + (nielsdos) + . Removed the deprecated inet_ntoa call support. (David Carlier) + . Cast large floats that are within int range to int in number_format so + the precision is not lost. (Marc Bennewitz) + . Add support for 4 new rounding modes to the round() function. (Jorg Sowa) + . debug_zval_dump() now indicates whether an array is packed. (Max Semenik) + . Fix GH-12143 (Optimize round). (SakiTakamachi) + . Changed return type of long2ip to string from string|false. (Jorg Sowa) + . Fix GH-12143 (Extend the maximum precision round can handle by one digit). + (SakiTakamachi) + . Added the http_get_last_response_headers() and + http_clear_last_response_headers() that allows retrieving the same content + as the magic $http_response_header variable. + . Add php_base64_encode_ex() API. (Remi) + . Implemented "Raising zero to the power of negative number" RFC. (Jorg Sowa) + . Added array_find(), array_find_key(), array_all(), and array_any(). (josh) + . Change highlight_string() and print_r() return type to string|true. (Ayesh) + . Fix references in request_parse_body() options array. (nielsdos) + . Add RoundingMode enum. (timwolla, saki) + . Unserializing the uppercase 'S' tag is now deprecated. (timwolla) + . Enables crc32 auxiliary detection on OpenBSD. (David Carlier) + . Passing a non-empty string for the $escape parameter of: + - fputcsv() + - fgetcsv() + - str_getcsv() + is now deprecated. (Girgias) + . The str_getcsv() function now throws ValueErrors when the $separator and + $enclosure arguments are not one byte long, or if the $escape is not one + byte long or the empty string. This aligns the behaviour to be identical + to that of fputcsv() and fgetcsv(). (Girgias) + . php_uname() now throws ValueErrors on invalid inputs. (Girgias) + . The "allowed_classes" option for unserialize() now throws TypeErrors and + ValueErrors if it is not an array of class names. (Girgias) + . Implemented GH-15685 (improve proc_open error reporting on Windows). (cmb) + . Add support for backed enums in http_build_query(). (ilutov) + . Fixed bug GH-15982 (Assertion failure with array_find when references are + involved). (nielsdos) + . Fixed parameter names of fpow() to be identical to pow(). (Girgias) + +- Streams: + . Implemented GH-15155 (Stream context is lost when custom stream wrapper is + being filtered). (Quentin Dreyer) + +- Tidy: + . Failures in the constructor now throw exceptions rather than emitting + warnings and having a broken object. (nielsdos) + . Add tidyNode::getNextSibling() and tidyNode::getPreviousSibling(). + (nielsdos) + +- Windows: + . Update the icon of the Windows executables, e.g. php.exe. (Ayesh, + Nurudin Imširović) + . Fixed bug GH-16199 (GREP_HEADER() is broken). (Peter Kokot) + +- XML: + . Added XML_OPTION_PARSE_HUGE parser option. (nielsdos) + . Fixed bug #81481 (xml_get_current_byte_index limited to 32-bit numbers on + 64-bit builds). (nielsdos) + . The xml_set_object() function has been deprecated. (Girgias) + . Passing non-callable strings to the xml_set_*_handler() functions is now + deprecated. (Girgias) + +- XMLReader: + . Declares class constant types. (Ayesh) + . Add XMLReader::fromStream(), XMLReader::fromUri(), XMLReader::fromString(). (nielsdos) + . Fixed bug GH-15123 (var_dump doesn't actually work on XMLReader). + (nielsdos) + +- XMLWriter: + . Add XMLWriter::toStream(), XMLWriter::toUri(), XMLWriter::toMemory(). (nielsdos) + +- XSL: + . Implement request #64137 (XSLTProcessor::setParameter() should allow both + quotes to be used). (nielsdos) + . Implemented "Improve callbacks in ext/dom and ext/xsl" RFC. (nielsdos) + . Added XSLTProcessor::$maxTemplateDepth and XSLTProcessor::$maxTemplateVars. + (nielsdos) + . Fix trampoline leak in xpath callables. (nielsdos) + +- Zip: + . Added ZipArchive::ER_TRUNCATED_ZIP added in libzip 1.11. (Remi) diff --git a/run/php/nghttp2.dll b/run/php/nghttp2.dll new file mode 100644 index 0000000..12e66d3 Binary files /dev/null and b/run/php/nghttp2.dll differ diff --git a/run/php/phar.phar.bat b/run/php/phar.phar.bat new file mode 100644 index 0000000..aac3f76 --- /dev/null +++ b/run/php/phar.phar.bat @@ -0,0 +1 @@ +"%~dp0php.exe" "%~dp0pharcommand.phar" %* diff --git a/run/php/pharcommand.phar b/run/php/pharcommand.phar new file mode 100644 index 0000000..967e198 Binary files /dev/null and b/run/php/pharcommand.phar differ diff --git a/run/php/php-cgi.exe b/run/php/php-cgi.exe new file mode 100644 index 0000000..1560064 Binary files /dev/null and b/run/php/php-cgi.exe differ diff --git a/run/php/php-win.exe b/run/php/php-win.exe new file mode 100644 index 0000000..f2849d9 Binary files /dev/null and b/run/php/php-win.exe differ diff --git a/run/php/php.exe b/run/php/php.exe new file mode 100644 index 0000000..5b48134 Binary files /dev/null and b/run/php/php.exe differ diff --git a/run/php/php.ini-development b/run/php/php.ini-development new file mode 100644 index 0000000..6e5064d --- /dev/null +++ b/run/php/php.ini-development @@ -0,0 +1,1848 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. +; 3. A number of predefined registry keys on Windows +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; https://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; https://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security-conscious applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-development INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; + +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +; zend.assertions +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 + +; zend.exception_ignore_args +; Default Value: Off +; Development Value: Off +; Production Value: On + +; zend.exception_string_param_max_len +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; https://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; https://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; https://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; Note: if open_basedir is set, the cache is disabled +; https://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; https://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; https://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +;zend.script_encoding = + +; Allows to include or exclude arguments from stack traces generated for exceptions. +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +; Default Value: Off +; Development Value: Off +; Production Value: On +zend.exception_ignore_args = Off + +; Allows setting the maximum string length in an argument of a stringified stack trace +; to a value between 0 and 1000000. +; This has no effect when zend.exception_ignore_args is enabled. +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 +zend.exception_string_param_max_len = 15 + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; https://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; https://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; https://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; https://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; How many multipart body parts (combined input variable and file uploads) may +; be accepted. +; Default Value: -1 (Sum of max_input_vars and max_file_uploads) +;max_multipart_body_parts = 1500 + +; Maximum amount of memory a script may consume +; https://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED +; https://php.net/error-reporting +error_reporting = E_ALL + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-errors +display_errors = On + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. We strongly recommend you set this to 'off' +; for production servers to avoid leaking configuration details. +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-startup-errors +display_startup_errors = On + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; https://php.net/log-errors +log_errors = On + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; https://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; https://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This is only effective in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; https://php.net/report-memleaks +report_memleaks = On + +; This setting is off by default. +;report_zend_debug = 0 + +; Turn off normal error reporting and emit XML-RPC error XML +; https://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; https://php.net/html-errors +;html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from https://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; https://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; https://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; https://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (all printable ASCII characters and NL) +; no-ctrl (all characters except control characters) +; all (all characters) +; raw (like "all", but messages are not split at newlines) +; https://php.net/syslog.filter +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; https://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; https://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; https://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; https://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; https://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any effect. +; https://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; https://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; https://php.net/post-max-size +post_max_size = 8M + +; Automatically add files before PHP document. +; https://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; https://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; https://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; https://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; https://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; https://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; https://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; https://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; https://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; https://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; https://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; https://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; https://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; https://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; https://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; https://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; https://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; https://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; https://php.net/upload-max-filesize +upload_max_filesize = 2M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; https://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like https:// or ftp://) as files. +; https://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; https://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; https://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; https://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; https://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the ext/ +; extension folders as well as the separate PECL DLL download. +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 +;extension=curl +;extension=ffi +;extension=ftp +;extension=fileinfo +;extension=gd +;extension=gettext +;extension=gmp +;extension=intl +;extension=ldap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See https://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xsl +;extension=zip + +;zend_extension=opcache + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; https://php.net/date.timezone +;date.timezone = + +; https://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; https://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; https://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.833333 + +; https://php.net/date.sunset-zenith +;date.sunset_zenith = 90.833333 + +[filter] +; https://php.net/filter.default +;filter.default = unsafe_raw + +; https://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +; Directory pointing to SQLite3 extensions +; https://php.net/sqlite3.extension-dir +;sqlite3.extension_dir = + +; SQLite defensive mode flag (only available from SQLite 3.26+) +; When the defensive flag is enabled, language features that allow ordinary +; SQL to deliberately corrupt the database file are disabled. This forbids +; writing directly to the schema, shadow tables (eg. FTS data tables), or +; the sqlite_dbpage virtual table. +; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html +; (for older SQLite versions, this flag has no use) +;sqlite3.defensive = 1 + +[Pcre] +; PCRE library backtracking limit. +; https://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; https://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; https://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; https://php.net/phar.readonly +;phar.readonly = On + +; https://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; https://php.net/smtp +SMTP = localhost +; https://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; https://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; https://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; Use mixed LF and CRLF line separators to keep compatibility with some +; RFC 2822 non conformant MTA. +mail.mixed_lf_and_crlf = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; https://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; https://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; https://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; https://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; https://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; https://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; https://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; https://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; https://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; It allows the user to specify a folder where files that can be sent via LOAD DATA +; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. +;mysqli.local_infile_directory = + +; Allow or prevent persistent links. +; https://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; https://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; https://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; https://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; https://php.net/mysqli.default-pw +mysqli.default_pw = + +; If this option is enabled, closing a persistent connection will rollback +; any pending transactions of this connection, before it is put back +; into the persistent connection pool. +;mysqli.rollback_on_cached_plink = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = On + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; https://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[PostgreSQL] +; Allow or prevent persistent links. +; https://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; https://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; https://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; https://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; https://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; https://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; https://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; https://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; https://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; https://php.net/session.use-cookies +session.use_cookies = 1 + +; https://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; https://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; https://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; https://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; https://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; https://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; https://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; https://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Strict", "Lax" or "None". When using "None", +; make sure to include the quotes, as `none` is interpreted like `false` in ini files. +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; https://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; For high volume production servers, using a value of 1000 is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; https://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; https://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script is the equivalent of setting +; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; https://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; https://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; https://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; https://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +;
is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; https://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; https://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; https://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; https://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; https://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! +; (For turning assertions on and off at run-time, toggle zend.assertions between the values 1 and 0) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; https://php.net/zend.assertions +zend.assertions = 1 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; https://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; https://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typelib on com_load() +; https://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; https://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; https://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +; The version of the .NET framework to use. The value of the setting are the first three parts +; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". +;com.dotnet_version= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; https://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbstring.http_input +; https://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; https://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; https://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; https://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; https://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; Enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetypes= + +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +;mbstring.regex_stack_limit=100000 + +; This directive specifies maximum retry count for mbstring regular expressions. It is similar +; to the pcre.backtrack_limit for PCRE. +;mbstring.regex_retry_limit=1000000 + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; https://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting must not be empty. +; https://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; https://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; https://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; https://php.net/exif.encode-jis +;exif.encode_jis = + +; https://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; https://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; https://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; https://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; https://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; https://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; https://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; If enabled, compilation warnings (including notices and deprecations) will +; be recorded and replayed each time a file is included. Otherwise, compilation +; warnings will only be emitted when the file is first cached. +;opcache.record_warnings=0 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Facilitates multiple OPcache instances per user (for Windows only). All PHP +; processes with the same cache ID and user share an OPcache instance. +;opcache.cache_id= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; Under certain circumstances (if only a single global PHP process is +; started from which all others fork), this can increase performance +; by a tiny amount because TLB misses are reduced. On the other hand, this +; delays PHP startup, increases memory usage and degrades performance +; under memory pressure - use with care. +; Requires appropriate OS configuration. +;opcache.huge_code_pages=0 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; https://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; https://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +[ffi] +; FFI API restriction. Possible values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload + +; List of headers files to preload, wildcard patterns allowed. +;ffi.preload= diff --git a/run/php/php.ini-production b/run/php/php.ini-production new file mode 100644 index 0000000..c62faf5 --- /dev/null +++ b/run/php/php.ini-production @@ -0,0 +1,1850 @@ +[PHP] + +;;;;;;;;;;;;;;;;;;; +; About php.ini ; +;;;;;;;;;;;;;;;;;;; +; PHP's initialization file, generally called php.ini, is responsible for +; configuring many of the aspects of PHP's behavior. + +; PHP attempts to find and load this configuration from a number of locations. +; The following is a summary of its search order: +; 1. SAPI module specific location. +; 2. The PHPRC environment variable. +; 3. A number of predefined registry keys on Windows +; 4. Current working directory (except CLI) +; 5. The web server's directory (for SAPI modules), or directory of PHP +; (otherwise in Windows) +; 6. The directory from the --with-config-file-path compile time option, or the +; Windows directory (usually C:\windows) +; See the PHP docs for more specific information. +; https://php.net/configuration.file + +; The syntax of the file is extremely simple. Whitespace and lines +; beginning with a semicolon are silently ignored (as you probably guessed). +; Section headers (e.g. [Foo]) are also silently ignored, even though +; they might mean something in the future. + +; Directives following the section heading [PATH=/www/mysite] only +; apply to PHP files in the /www/mysite directory. Directives +; following the section heading [HOST=www.example.com] only apply to +; PHP files served from www.example.com. Directives set in these +; special sections cannot be overridden by user-defined INI files or +; at runtime. Currently, [PATH=] and [HOST=] sections only work under +; CGI/FastCGI. +; https://php.net/ini.sections + +; Directives are specified using the following syntax: +; directive = value +; Directive names are *case sensitive* - foo=bar is different from FOO=bar. +; Directives are variables used to configure PHP or PHP extensions. +; There is no name validation. If PHP can't find an expected +; directive because it is not set or is mistyped, a default value will be used. + +; The value can be a string, a number, a PHP constant (e.g. E_ALL or M_PI), one +; of the INI constants (On, Off, True, False, Yes, No and None) or an expression +; (e.g. E_ALL & ~E_NOTICE), a quoted string ("bar"), or a reference to a +; previously set variable or directive (e.g. ${foo}) + +; Expressions in the INI file are limited to bitwise operators and parentheses: +; | bitwise OR +; ^ bitwise XOR +; & bitwise AND +; ~ bitwise NOT +; ! boolean NOT + +; Boolean flags can be turned on using the values 1, On, True or Yes. +; They can be turned off using the values 0, Off, False or No. + +; An empty string can be denoted by simply not writing anything after the equal +; sign, or by using the None keyword: + +; foo = ; sets foo to an empty string +; foo = None ; sets foo to an empty string +; foo = "None" ; sets foo to the string 'None' + +; If you use constants in your value, and these constants belong to a +; dynamically loaded extension (either a PHP extension or a Zend extension), +; you may only use these constants *after* the line that loads the extension. + +;;;;;;;;;;;;;;;;;;; +; About this file ; +;;;;;;;;;;;;;;;;;;; +; PHP comes packaged with two INI files. One that is recommended to be used +; in production environments and one that is recommended to be used in +; development environments. + +; php.ini-production contains settings which hold security, performance and +; best practices at its core. But please be aware, these settings may break +; compatibility with older or less security-conscious applications. We +; recommending using the production ini in production and testing environments. + +; php.ini-development is very similar to its production variant, except it is +; much more verbose when it comes to errors. We recommend using the +; development version only in development environments, as errors shown to +; application users can inadvertently leak otherwise secure information. + +; This is the php.ini-production INI file. + +;;;;;;;;;;;;;;;;;;; +; Quick Reference ; +;;;;;;;;;;;;;;;;;;; + +; The following are all the settings which are different in either the production +; or development versions of the INIs with respect to PHP's default behavior. +; Please see the actual settings later in the document for more details as to why +; we recommend these changes in PHP's behavior. + +; display_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; display_startup_errors +; Default Value: On +; Development Value: On +; Production Value: Off + +; error_reporting +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED + +; log_errors +; Default Value: Off +; Development Value: On +; Production Value: On + +; max_input_time +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) + +; output_buffering +; Default Value: Off +; Development Value: 4096 +; Production Value: 4096 + +; register_argc_argv +; Default Value: On +; Development Value: Off +; Production Value: Off + +; request_order +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" + +; session.gc_divisor +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 + +; short_open_tag +; Default Value: On +; Development Value: Off +; Production Value: Off + +; variables_order +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS" + +; zend.assertions +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 + +; zend.exception_ignore_args +; Default Value: Off +; Development Value: Off +; Production Value: On + +; zend.exception_string_param_max_len +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 + +;;;;;;;;;;;;;;;;;;;; +; php.ini Options ; +;;;;;;;;;;;;;;;;;;;; +; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini" +;user_ini.filename = ".user.ini" + +; To disable this feature set this option to an empty value +;user_ini.filename = + +; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes) +;user_ini.cache_ttl = 300 + +;;;;;;;;;;;;;;;;;;;; +; Language Options ; +;;;;;;;;;;;;;;;;;;;; + +; Enable the PHP scripting language engine under Apache. +; https://php.net/engine +engine = On + +; This directive determines whether or not PHP will recognize code between +; tags as PHP source which should be processed as such. It is +; generally recommended that should be used and that this feature +; should be disabled, as enabling it may result in issues when generating XML +; documents, however this remains supported for backward compatibility reasons. +; Note that this directive does not control the would work. +; https://php.net/syntax-highlighting +;highlight.string = #DD0000 +;highlight.comment = #FF9900 +;highlight.keyword = #007700 +;highlight.default = #0000BB +;highlight.html = #000000 + +; If enabled, the request will be allowed to complete even if the user aborts +; the request. Consider enabling it if executing long requests, which may end up +; being interrupted by the user or a browser timing out. PHP's default behavior +; is to disable this feature. +; https://php.net/ignore-user-abort +;ignore_user_abort = On + +; Determines the size of the realpath cache to be used by PHP. This value should +; be increased on systems where PHP opens many files to reflect the quantity of +; the file operations performed. +; Note: if open_basedir is set, the cache is disabled +; https://php.net/realpath-cache-size +;realpath_cache_size = 4096k + +; Duration of time, in seconds for which to cache realpath information for a given +; file or directory. For systems with rarely changing files, consider increasing this +; value. +; https://php.net/realpath-cache-ttl +;realpath_cache_ttl = 120 + +; Enables or disables the circular reference collector. +; https://php.net/zend.enable-gc +zend.enable_gc = On + +; If enabled, scripts may be written in encodings that are incompatible with +; the scanner. CP936, Big5, CP949 and Shift_JIS are the examples of such +; encodings. To use this feature, mbstring extension must be enabled. +;zend.multibyte = Off + +; Allows to set the default encoding for the scripts. This value will be used +; unless "declare(encoding=...)" directive appears at the top of the script. +; Only affects if zend.multibyte is set. +;zend.script_encoding = + +; Allows to include or exclude arguments from stack traces generated for exceptions. +; In production, it is recommended to turn this setting on to prohibit the output +; of sensitive information in stack traces +; Default Value: Off +; Development Value: Off +; Production Value: On +zend.exception_ignore_args = On + +; Allows setting the maximum string length in an argument of a stringified stack trace +; to a value between 0 and 1000000. +; This has no effect when zend.exception_ignore_args is enabled. +; Default Value: 15 +; Development Value: 15 +; Production Value: 0 +; In production, it is recommended to set this to 0 to reduce the output +; of sensitive information in stack traces. +zend.exception_string_param_max_len = 0 + +;;;;;;;;;;;;;;;;; +; Miscellaneous ; +;;;;;;;;;;;;;;;;; + +; Decides whether PHP may expose the fact that it is installed on the server +; (e.g. by adding its signature to the Web server header). It is no security +; threat in any way, but it makes it possible to determine whether you use PHP +; on your server or not. +; https://php.net/expose-php +expose_php = On + +;;;;;;;;;;;;;;;;;;; +; Resource Limits ; +;;;;;;;;;;;;;;;;;;; + +; Maximum execution time of each script, in seconds +; https://php.net/max-execution-time +; Note: This directive is hardcoded to 0 for the CLI SAPI +max_execution_time = 30 + +; Maximum amount of time each script may spend parsing request data. It's a good +; idea to limit this time on productions servers in order to eliminate unexpectedly +; long running scripts. +; Note: This directive is hardcoded to -1 for the CLI SAPI +; Default Value: -1 (Unlimited) +; Development Value: 60 (60 seconds) +; Production Value: 60 (60 seconds) +; https://php.net/max-input-time +max_input_time = 60 + +; Maximum input variable nesting level +; https://php.net/max-input-nesting-level +;max_input_nesting_level = 64 + +; How many GET/POST/COOKIE input variables may be accepted +;max_input_vars = 1000 + +; How many multipart body parts (combined input variable and file uploads) may +; be accepted. +; Default Value: -1 (Sum of max_input_vars and max_file_uploads) +;max_multipart_body_parts = 1500 + +; Maximum amount of memory a script may consume +; https://php.net/memory-limit +memory_limit = 128M + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +; Error handling and logging ; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +; This directive informs PHP of which errors, warnings and notices you would like +; it to take action for. The recommended way of setting values for this +; directive is through the use of the error level constants and bitwise +; operators. The error level constants are below here for convenience as well as +; some common settings and their meanings. +; By default, PHP is set to take action on all errors, notices and warnings EXCEPT +; those related to E_NOTICE, which together cover best practices and +; recommended coding standards in PHP. For performance reasons, this is the +; recommend error reporting setting. Your production server shouldn't be wasting +; resources complaining about best practices and coding standards. That's what +; development servers and development settings are for. +; Note: The php.ini-development file has this setting as E_ALL. This +; means it pretty much reports everything which is exactly what you want during +; development and early testing. +; +; Error Level Constants: +; E_ALL - All errors and warnings +; E_ERROR - fatal run-time errors +; E_RECOVERABLE_ERROR - almost fatal run-time errors +; E_WARNING - run-time warnings (non-fatal errors) +; E_PARSE - compile-time parse errors +; E_NOTICE - run-time notices (these are warnings which often result +; from a bug in your code, but it's possible that it was +; intentional (e.g., using an uninitialized variable and +; relying on the fact it is automatically initialized to an +; empty string) +; E_CORE_ERROR - fatal errors that occur during PHP's initial startup +; E_CORE_WARNING - warnings (non-fatal errors) that occur during PHP's +; initial startup +; E_COMPILE_ERROR - fatal compile-time errors +; E_COMPILE_WARNING - compile-time warnings (non-fatal errors) +; E_USER_ERROR - user-generated error message +; E_USER_WARNING - user-generated warning message +; E_USER_NOTICE - user-generated notice message +; E_DEPRECATED - warn about code that will not work in future versions +; of PHP +; E_USER_DEPRECATED - user-generated deprecation warnings +; +; Common Values: +; E_ALL (Show all errors, warnings and notices including coding standards.) +; E_ALL & ~E_NOTICE (Show all errors, except for notices) +; E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR (Show only errors) +; Default Value: E_ALL +; Development Value: E_ALL +; Production Value: E_ALL & ~E_DEPRECATED +; https://php.net/error-reporting +error_reporting = E_ALL & ~E_DEPRECATED + +; This directive controls whether or not and where PHP will output errors, +; notices and warnings too. Error output is very useful during development, but +; it could be very dangerous in production environments. Depending on the code +; which is triggering the error, sensitive information could potentially leak +; out of your application such as database usernames and passwords or worse. +; For production environments, we recommend logging errors rather than +; sending them to STDOUT. +; Possible Values: +; Off = Do not display any errors +; stderr = Display errors to STDERR (affects only CGI/CLI binaries!) +; On or stdout = Display errors to STDOUT +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-errors +display_errors = Off + +; The display of errors which occur during PHP's startup sequence are handled +; separately from display_errors. We strongly recommend you set this to 'off' +; for production servers to avoid leaking configuration details. +; Default Value: On +; Development Value: On +; Production Value: Off +; https://php.net/display-startup-errors +display_startup_errors = Off + +; Besides displaying errors, PHP can also log errors to locations such as a +; server-specific log, STDERR, or a location specified by the error_log +; directive found below. While errors should not be displayed on productions +; servers they should still be monitored and logging is a great way to do that. +; Default Value: Off +; Development Value: On +; Production Value: On +; https://php.net/log-errors +log_errors = On + +; Do not log repeated messages. Repeated errors must occur in same file on same +; line unless ignore_repeated_source is set true. +; https://php.net/ignore-repeated-errors +ignore_repeated_errors = Off + +; Ignore source of message when ignoring repeated messages. When this setting +; is On you will not log errors with repeated messages from different files or +; source lines. +; https://php.net/ignore-repeated-source +ignore_repeated_source = Off + +; If this parameter is set to Off, then memory leaks will not be shown (on +; stdout or in the log). This is only effective in a debug compile, and if +; error reporting includes E_WARNING in the allowed list +; https://php.net/report-memleaks +report_memleaks = On + +; This setting is off by default. +;report_zend_debug = 0 + +; Turn off normal error reporting and emit XML-RPC error XML +; https://php.net/xmlrpc-errors +;xmlrpc_errors = 0 + +; An XML-RPC faultCode +;xmlrpc_error_number = 0 + +; When PHP displays or logs an error, it has the capability of formatting the +; error message as HTML for easier reading. This directive controls whether +; the error message is formatted as HTML or not. +; Note: This directive is hardcoded to Off for the CLI SAPI +; https://php.net/html-errors +;html_errors = On + +; If html_errors is set to On *and* docref_root is not empty, then PHP +; produces clickable error messages that direct to a page describing the error +; or function causing the error in detail. +; You can download a copy of the PHP manual from https://php.net/docs +; and change docref_root to the base URL of your local copy including the +; leading '/'. You must also specify the file extension being used including +; the dot. PHP's default behavior is to leave these settings empty, in which +; case no links to documentation are generated. +; Note: Never use this feature for production boxes. +; https://php.net/docref-root +; Examples +;docref_root = "/phpmanual/" + +; https://php.net/docref-ext +;docref_ext = .html + +; String to output before an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-prepend-string +; Example: +;error_prepend_string = "" + +; String to output after an error message. PHP's default behavior is to leave +; this setting blank. +; https://php.net/error-append-string +; Example: +;error_append_string = "" + +; Log errors to specified file. PHP's default behavior is to leave this value +; empty. +; https://php.net/error-log +; Example: +;error_log = php_errors.log +; Log errors to syslog (Event Log on Windows). +;error_log = syslog + +; The syslog ident is a string which is prepended to every message logged +; to syslog. Only used when error_log is set to syslog. +;syslog.ident = php + +; The syslog facility is used to specify what type of program is logging +; the message. Only used when error_log is set to syslog. +;syslog.facility = user + +; Set this to disable filtering control characters (the default). +; Some loggers only accept NVT-ASCII, others accept anything that's not +; control characters. If your logger accepts everything, then no filtering +; is needed at all. +; Allowed values are: +; ascii (all printable ASCII characters and NL) +; no-ctrl (all characters except control characters) +; all (all characters) +; raw (like "all", but messages are not split at newlines) +; https://php.net/syslog.filter +;syslog.filter = ascii + +;windows.show_crt_warning +; Default value: 0 +; Development value: 0 +; Production value: 0 + +;;;;;;;;;;;;;;;;; +; Data Handling ; +;;;;;;;;;;;;;;;;; + +; The separator used in PHP generated URLs to separate arguments. +; PHP's default setting is "&". +; https://php.net/arg-separator.output +; Example: +;arg_separator.output = "&" + +; List of separator(s) used by PHP to parse input URLs into variables. +; PHP's default setting is "&". +; NOTE: Every character in this directive is considered as separator! +; https://php.net/arg-separator.input +; Example: +;arg_separator.input = ";&" + +; This directive determines which super global arrays are registered when PHP +; starts up. G,P,C,E & S are abbreviations for the following respective super +; globals: GET, POST, COOKIE, ENV and SERVER. There is a performance penalty +; paid for the registration of these arrays and because ENV is not as commonly +; used as the others, ENV is not recommended on productions servers. You +; can still get access to the environment variables through getenv() should you +; need to. +; Default Value: "EGPCS" +; Development Value: "GPCS" +; Production Value: "GPCS"; +; https://php.net/variables-order +variables_order = "GPCS" + +; This directive determines which super global data (G,P & C) should be +; registered into the super global array REQUEST. If so, it also determines +; the order in which that data is registered. The values for this directive +; are specified in the same manner as the variables_order directive, +; EXCEPT one. Leaving this value empty will cause PHP to use the value set +; in the variables_order directive. It does not mean it will leave the super +; globals array REQUEST empty. +; Default Value: None +; Development Value: "GP" +; Production Value: "GP" +; https://php.net/request-order +request_order = "GP" + +; This directive determines whether PHP registers $argv & $argc each time it +; runs. $argv contains an array of all the arguments passed to PHP when a script +; is invoked. $argc contains an integer representing the number of arguments +; that were passed when the script was invoked. These arrays are extremely +; useful when running scripts from the command line. When this directive is +; enabled, registering these variables consumes CPU cycles and memory each time +; a script is executed. For performance reasons, this feature should be disabled +; on production servers. +; Note: This directive is hardcoded to On for the CLI SAPI +; Default Value: On +; Development Value: Off +; Production Value: Off +; https://php.net/register-argc-argv +register_argc_argv = Off + +; When enabled, the ENV, REQUEST and SERVER variables are created when they're +; first used (Just In Time) instead of when the script starts. If these +; variables are not used within a script, having this directive on will result +; in a performance gain. The PHP directive register_argc_argv must be disabled +; for this directive to have any effect. +; https://php.net/auto-globals-jit +auto_globals_jit = On + +; Whether PHP will read the POST data. +; This option is enabled by default. +; Most likely, you won't want to disable this option globally. It causes $_POST +; and $_FILES to always be empty; the only way you will be able to read the +; POST data will be through the php://input stream wrapper. This can be useful +; to proxy requests or to process the POST data in a memory efficient fashion. +; https://php.net/enable-post-data-reading +;enable_post_data_reading = Off + +; Maximum size of POST data that PHP will accept. +; Its value may be 0 to disable the limit. It is ignored if POST data reading +; is disabled through enable_post_data_reading. +; https://php.net/post-max-size +post_max_size = 8M + +; Automatically add files before PHP document. +; https://php.net/auto-prepend-file +auto_prepend_file = + +; Automatically add files after PHP document. +; https://php.net/auto-append-file +auto_append_file = + +; By default, PHP will output a media type using the Content-Type header. To +; disable this, simply set it to be empty. +; +; PHP's built-in default media type is set to text/html. +; https://php.net/default-mimetype +default_mimetype = "text/html" + +; PHP's default character set is set to UTF-8. +; https://php.net/default-charset +default_charset = "UTF-8" + +; PHP internal character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/internal-encoding +;internal_encoding = + +; PHP input character encoding is set to empty. +; If empty, default_charset is used. +; https://php.net/input-encoding +;input_encoding = + +; PHP output character encoding is set to empty. +; If empty, default_charset is used. +; See also output_buffer. +; https://php.net/output-encoding +;output_encoding = + +;;;;;;;;;;;;;;;;;;;;;;;;; +; Paths and Directories ; +;;;;;;;;;;;;;;;;;;;;;;;;; + +; UNIX: "/path1:/path2" +;include_path = ".:/php/includes" +; +; Windows: "\path1;\path2" +;include_path = ".;c:\php\includes" +; +; PHP's default setting for include_path is ".;/path/to/php/pear" +; https://php.net/include-path + +; The root of the PHP pages, used only if nonempty. +; if PHP was not compiled with FORCE_REDIRECT, you SHOULD set doc_root +; if you are running php as a CGI under any web server (other than IIS) +; see documentation for security issues. The alternate is to use the +; cgi.force_redirect configuration below +; https://php.net/doc-root +doc_root = + +; The directory under which PHP opens the script using /~username used only +; if nonempty. +; https://php.net/user-dir +user_dir = + +; Directory in which the loadable extensions (modules) reside. +; https://php.net/extension-dir +;extension_dir = "./" +; On windows: +;extension_dir = "ext" + +; Directory where the temporary files should be placed. +; Defaults to the system default (see sys_get_temp_dir) +;sys_temp_dir = "/tmp" + +; Whether or not to enable the dl() function. The dl() function does NOT work +; properly in multithreaded servers, such as IIS or Zeus, and is automatically +; disabled on them. +; https://php.net/enable-dl +enable_dl = Off + +; cgi.force_redirect is necessary to provide security running PHP as a CGI under +; most web servers. Left undefined, PHP turns this on by default. You can +; turn it off here AT YOUR OWN RISK +; **You CAN safely turn this off for IIS, in fact, you MUST.** +; https://php.net/cgi.force-redirect +;cgi.force_redirect = 1 + +; if cgi.nph is enabled it will force cgi to always sent Status: 200 with +; every request. PHP's default behavior is to disable this feature. +;cgi.nph = 1 + +; if cgi.force_redirect is turned on, and you are not running under Apache or Netscape +; (iPlanet) web servers, you MAY need to set an environment variable name that PHP +; will look for to know it is OK to continue execution. Setting this variable MAY +; cause security issues, KNOW WHAT YOU ARE DOING FIRST. +; https://php.net/cgi.redirect-status-env +;cgi.redirect_status_env = + +; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI. PHP's +; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok +; what PATH_INFO is. For more information on PATH_INFO, see the cgi specs. Setting +; this to 1 will cause PHP CGI to fix its paths to conform to the spec. A setting +; of zero causes PHP to behave as before. Default is 1. You should fix your scripts +; to use SCRIPT_FILENAME rather than PATH_TRANSLATED. +; https://php.net/cgi.fix-pathinfo +;cgi.fix_pathinfo=1 + +; if cgi.discard_path is enabled, the PHP CGI binary can safely be placed outside +; of the web tree and people will not be able to circumvent .htaccess security. +;cgi.discard_path=1 + +; FastCGI under IIS supports the ability to impersonate +; security tokens of the calling client. This allows IIS to define the +; security context that the request runs under. mod_fastcgi under Apache +; does not currently support this feature (03/17/2002) +; Set to 1 if running under IIS. Default is zero. +; https://php.net/fastcgi.impersonate +;fastcgi.impersonate = 1 + +; Disable logging through FastCGI connection. PHP's default behavior is to enable +; this feature. +;fastcgi.logging = 0 + +; cgi.rfc2616_headers configuration option tells PHP what type of headers to +; use when sending HTTP response code. If set to 0, PHP sends Status: header that +; is supported by Apache. When this option is set to 1, PHP will send +; RFC2616 compliant header. +; Default is zero. +; https://php.net/cgi.rfc2616-headers +;cgi.rfc2616_headers = 0 + +; cgi.check_shebang_line controls whether CGI PHP checks for line starting with #! +; (shebang) at the top of the running script. This line might be needed if the +; script support running both as stand-alone script and via PHP CGI<. PHP in CGI +; mode skips this line and ignores its content if this directive is turned on. +; https://php.net/cgi.check-shebang-line +;cgi.check_shebang_line=1 + +;;;;;;;;;;;;;;;; +; File Uploads ; +;;;;;;;;;;;;;;;; + +; Whether to allow HTTP file uploads. +; https://php.net/file-uploads +file_uploads = On + +; Temporary directory for HTTP uploaded files (will use system default if not +; specified). +; https://php.net/upload-tmp-dir +;upload_tmp_dir = + +; Maximum allowed size for uploaded files. +; https://php.net/upload-max-filesize +upload_max_filesize = 2M + +; Maximum number of files that can be uploaded via a single request +max_file_uploads = 20 + +;;;;;;;;;;;;;;;;;; +; Fopen wrappers ; +;;;;;;;;;;;;;;;;;; + +; Whether to allow the treatment of URLs (like http:// or ftp://) as files. +; https://php.net/allow-url-fopen +allow_url_fopen = On + +; Whether to allow include/require to open URLs (like https:// or ftp://) as files. +; https://php.net/allow-url-include +allow_url_include = Off + +; Define the anonymous ftp password (your email address). PHP's default setting +; for this is empty. +; https://php.net/from +;from="john@doe.com" + +; Define the User-Agent string. PHP's default setting for this is empty. +; https://php.net/user-agent +;user_agent="PHP" + +; Default timeout for socket based streams (seconds) +; https://php.net/default-socket-timeout +default_socket_timeout = 60 + +; If your scripts have to deal with files from Macintosh systems, +; or you are running on a Mac and need to deal with files from +; unix or win32 systems, setting this flag will cause PHP to +; automatically detect the EOL character in those files so that +; fgets() and file() will work regardless of the source of the file. +; https://php.net/auto-detect-line-endings +;auto_detect_line_endings = Off + +;;;;;;;;;;;;;;;;;;;;;; +; Dynamic Extensions ; +;;;;;;;;;;;;;;;;;;;;;; + +; If you wish to have an extension loaded automatically, use the following +; syntax: +; +; extension=modulename +; +; For example: +; +; extension=mysqli +; +; When the extension library to load is not located in the default extension +; directory, You may specify an absolute path to the library file: +; +; extension=/path/to/extension/mysqli.so +; +; Note : The syntax used in previous PHP versions ('extension=.so' and +; 'extension='php_.dll') is supported for legacy reasons and may be +; deprecated in a future PHP major version. So, when it is possible, please +; move to the new ('extension=) syntax. +; +; Notes for Windows environments : +; +; - Many DLL files are located in the ext/ +; extension folders as well as the separate PECL DLL download. +; Be sure to appropriately set the extension_dir directive. +; +;extension=bz2 +;extension=curl +;extension=ffi +;extension=ftp +;extension=fileinfo +;extension=gd +;extension=gettext +;extension=gmp +;extension=intl +;extension=ldap +;extension=mbstring +;extension=exif ; Must be after mbstring as it depends on it +;extension=mysqli +;extension=odbc +;extension=openssl +;extension=pdo_firebird +;extension=pdo_mysql +;extension=pdo_odbc +;extension=pdo_pgsql +;extension=pdo_sqlite +;extension=pgsql +;extension=shmop + +; The MIBS data available in the PHP distribution must be installed. +; See https://www.php.net/manual/en/snmp.installation.php +;extension=snmp + +;extension=soap +;extension=sockets +;extension=sodium +;extension=sqlite3 +;extension=tidy +;extension=xsl +;extension=zip + +;zend_extension=opcache + +;;;;;;;;;;;;;;;;;;; +; Module Settings ; +;;;;;;;;;;;;;;;;;;; + +[CLI Server] +; Whether the CLI web server uses ANSI color coding in its terminal output. +cli_server.color = On + +[Date] +; Defines the default timezone used by the date functions +; https://php.net/date.timezone +;date.timezone = + +; https://php.net/date.default-latitude +;date.default_latitude = 31.7667 + +; https://php.net/date.default-longitude +;date.default_longitude = 35.2333 + +; https://php.net/date.sunrise-zenith +;date.sunrise_zenith = 90.833333 + +; https://php.net/date.sunset-zenith +;date.sunset_zenith = 90.833333 + +[filter] +; https://php.net/filter.default +;filter.default = unsafe_raw + +; https://php.net/filter.default-flags +;filter.default_flags = + +[iconv] +; Use of this INI entry is deprecated, use global input_encoding instead. +; If empty, default_charset or input_encoding or iconv.input_encoding is used. +; The precedence is: default_charset < input_encoding < iconv.input_encoding +;iconv.input_encoding = + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;iconv.internal_encoding = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; If empty, default_charset or output_encoding or iconv.output_encoding is used. +; The precedence is: default_charset < output_encoding < iconv.output_encoding +; To use an output encoding conversion, iconv's output handler must be set +; otherwise output encoding conversion cannot be performed. +;iconv.output_encoding = + +[intl] +;intl.default_locale = +; This directive allows you to produce PHP errors when some error +; happens within intl functions. The value is the level of the error produced. +; Default is 0, which does not produce any errors. +;intl.error_level = E_WARNING +;intl.use_exceptions = 0 + +[sqlite3] +; Directory pointing to SQLite3 extensions +; https://php.net/sqlite3.extension-dir +;sqlite3.extension_dir = + +; SQLite defensive mode flag (only available from SQLite 3.26+) +; When the defensive flag is enabled, language features that allow ordinary +; SQL to deliberately corrupt the database file are disabled. This forbids +; writing directly to the schema, shadow tables (eg. FTS data tables), or +; the sqlite_dbpage virtual table. +; https://www.sqlite.org/c3ref/c_dbconfig_defensive.html +; (for older SQLite versions, this flag has no use) +;sqlite3.defensive = 1 + +[Pcre] +; PCRE library backtracking limit. +; https://php.net/pcre.backtrack-limit +;pcre.backtrack_limit=100000 + +; PCRE library recursion limit. +; Please note that if you set this value to a high number you may consume all +; the available process stack and eventually crash PHP (due to reaching the +; stack size limit imposed by the Operating System). +; https://php.net/pcre.recursion-limit +;pcre.recursion_limit=100000 + +; Enables or disables JIT compilation of patterns. This requires the PCRE +; library to be compiled with JIT support. +;pcre.jit=1 + +[Pdo] +; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" +; https://php.net/pdo-odbc.connection-pooling +;pdo_odbc.connection_pooling=strict + +[Pdo_mysql] +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +pdo_mysql.default_socket= + +[Phar] +; https://php.net/phar.readonly +;phar.readonly = On + +; https://php.net/phar.require-hash +;phar.require_hash = On + +;phar.cache_list = + +[mail function] +; For Win32 only. +; https://php.net/smtp +SMTP = localhost +; https://php.net/smtp-port +smtp_port = 25 + +; For Win32 only. +; https://php.net/sendmail-from +;sendmail_from = me@example.com + +; For Unix only. You may supply arguments as well (default: "sendmail -t -i"). +; https://php.net/sendmail-path +;sendmail_path = + +; Force the addition of the specified parameters to be passed as extra parameters +; to the sendmail binary. These parameters will always replace the value of +; the 5th parameter to mail(). +;mail.force_extra_parameters = + +; Add X-PHP-Originating-Script: that will include uid of the script followed by the filename +mail.add_x_header = Off + +; Use mixed LF and CRLF line separators to keep compatibility with some +; RFC 2822 non conformant MTA. +mail.mixed_lf_and_crlf = Off + +; The path to a log file that will log all mail() calls. Log entries include +; the full path of the script, line number, To address and headers. +;mail.log = +; Log mail to syslog (Event Log on Windows). +;mail.log = syslog + +[ODBC] +; https://php.net/odbc.default-db +;odbc.default_db = Not yet implemented + +; https://php.net/odbc.default-user +;odbc.default_user = Not yet implemented + +; https://php.net/odbc.default-pw +;odbc.default_pw = Not yet implemented + +; Controls the ODBC cursor model. +; Default: SQL_CURSOR_STATIC (default). +;odbc.default_cursortype + +; Allow or prevent persistent links. +; https://php.net/odbc.allow-persistent +odbc.allow_persistent = On + +; Check that a connection is still valid before reuse. +; https://php.net/odbc.check-persistent +odbc.check_persistent = On + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/odbc.max-persistent +odbc.max_persistent = -1 + +; Maximum number of links (persistent + non-persistent). -1 means no limit. +; https://php.net/odbc.max-links +odbc.max_links = -1 + +; Handling of LONG fields. Returns number of bytes to variables. 0 means +; passthru. +; https://php.net/odbc.defaultlrl +odbc.defaultlrl = 4096 + +; Handling of binary data. 0 means passthru, 1 return as is, 2 convert to char. +; See the documentation on odbc_binmode and odbc_longreadlen for an explanation +; of odbc.defaultlrl and odbc.defaultbinmode +; https://php.net/odbc.defaultbinmode +odbc.defaultbinmode = 1 + +[MySQLi] + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/mysqli.max-persistent +mysqli.max_persistent = -1 + +; Allow accessing, from PHP's perspective, local files with LOAD DATA statements +; https://php.net/mysqli.allow_local_infile +;mysqli.allow_local_infile = On + +; It allows the user to specify a folder where files that can be sent via LOAD DATA +; LOCAL can exist. It is ignored if mysqli.allow_local_infile is enabled. +;mysqli.local_infile_directory = + +; Allow or prevent persistent links. +; https://php.net/mysqli.allow-persistent +mysqli.allow_persistent = On + +; Maximum number of links. -1 means no limit. +; https://php.net/mysqli.max-links +mysqli.max_links = -1 + +; Default port number for mysqli_connect(). If unset, mysqli_connect() will use +; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the +; compile-time value defined MYSQL_PORT (in that order). Win32 will only look +; at MYSQL_PORT. +; https://php.net/mysqli.default-port +mysqli.default_port = 3306 + +; Default socket name for local MySQL connects. If empty, uses the built-in +; MySQL defaults. +; https://php.net/mysqli.default-socket +mysqli.default_socket = + +; Default host for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-host +mysqli.default_host = + +; Default user for mysqli_connect() (doesn't apply in safe mode). +; https://php.net/mysqli.default-user +mysqli.default_user = + +; Default password for mysqli_connect() (doesn't apply in safe mode). +; Note that this is generally a *bad* idea to store passwords in this file. +; *Any* user with PHP access can run 'echo get_cfg_var("mysqli.default_pw") +; and reveal this password! And of course, any users with read access to this +; file will be able to reveal the password as well. +; https://php.net/mysqli.default-pw +mysqli.default_pw = + +; If this option is enabled, closing a persistent connection will rollback +; any pending transactions of this connection, before it is put back +; into the persistent connection pool. +;mysqli.rollback_on_cached_plink = Off + +[mysqlnd] +; Enable / Disable collection of general statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_statistics = On + +; Enable / Disable collection of memory usage statistics by mysqlnd which can be +; used to tune and monitor MySQL operations. +mysqlnd.collect_memory_statistics = Off + +; Records communication from all extensions using mysqlnd to the specified log +; file. +; https://php.net/mysqlnd.debug +;mysqlnd.debug = + +; Defines which queries will be logged. +;mysqlnd.log_mask = 0 + +; Default size of the mysqlnd memory pool, which is used by result sets. +;mysqlnd.mempool_default_size = 16000 + +; Size of a pre-allocated buffer used when sending commands to MySQL in bytes. +;mysqlnd.net_cmd_buffer_size = 2048 + +; Size of a pre-allocated buffer used for reading data sent by the server in +; bytes. +;mysqlnd.net_read_buffer_size = 32768 + +; Timeout for network requests in seconds. +;mysqlnd.net_read_timeout = 31536000 + +; SHA-256 Authentication Plugin related. File with the MySQL server public RSA +; key. +;mysqlnd.sha256_server_public_key = + +[PostgreSQL] +; Allow or prevent persistent links. +; https://php.net/pgsql.allow-persistent +pgsql.allow_persistent = On + +; Detect broken persistent links always with pg_pconnect(). +; Auto reset feature requires a little overheads. +; https://php.net/pgsql.auto-reset-persistent +pgsql.auto_reset_persistent = Off + +; Maximum number of persistent links. -1 means no limit. +; https://php.net/pgsql.max-persistent +pgsql.max_persistent = -1 + +; Maximum number of links (persistent+non persistent). -1 means no limit. +; https://php.net/pgsql.max-links +pgsql.max_links = -1 + +; Ignore PostgreSQL backends Notice message or not. +; Notice message logging require a little overheads. +; https://php.net/pgsql.ignore-notice +pgsql.ignore_notice = 0 + +; Log PostgreSQL backends Notice message or not. +; Unless pgsql.ignore_notice=0, module cannot log notice message. +; https://php.net/pgsql.log-notice +pgsql.log_notice = 0 + +[bcmath] +; Number of decimal digits for all bcmath functions. +; https://php.net/bcmath.scale +bcmath.scale = 0 + +[browscap] +; https://php.net/browscap +;browscap = extra/browscap.ini + +[Session] +; Handler used to store/retrieve data. +; https://php.net/session.save-handler +session.save_handler = files + +; Argument passed to save_handler. In the case of files, this is the path +; where data files are stored. Note: Windows users have to change this +; variable in order to use PHP's session functions. +; +; The path can be defined as: +; +; session.save_path = "N;/path" +; +; where N is an integer. Instead of storing all the session files in +; /path, what this will do is use subdirectories N-levels deep, and +; store the session data in those directories. This is useful if +; your OS has problems with many files in one directory, and is +; a more efficient layout for servers that handle many sessions. +; +; NOTE 1: PHP will not create this directory structure automatically. +; You can use the script in the ext/session dir for that purpose. +; NOTE 2: See the section on garbage collection below if you choose to +; use subdirectories for session storage +; +; The file storage module creates files using mode 600 by default. +; You can change that by using +; +; session.save_path = "N;MODE;/path" +; +; where MODE is the octal representation of the mode. Note that this +; does not overwrite the process's umask. +; https://php.net/session.save-path +;session.save_path = "/tmp" + +; Whether to use strict session mode. +; Strict session mode does not accept an uninitialized session ID, and +; regenerates the session ID if the browser sends an uninitialized session ID. +; Strict mode protects applications from session fixation via a session adoption +; vulnerability. It is disabled by default for maximum compatibility, but +; enabling it is encouraged. +; https://wiki.php.net/rfc/strict_sessions +session.use_strict_mode = 0 + +; Whether to use cookies. +; https://php.net/session.use-cookies +session.use_cookies = 1 + +; https://php.net/session.cookie-secure +;session.cookie_secure = + +; This option forces PHP to fetch and use a cookie for storing and maintaining +; the session id. We encourage this operation as it's very helpful in combating +; session hijacking when not specifying and managing your own session id. It is +; not the be-all and end-all of session hijacking defense, but it's a good start. +; https://php.net/session.use-only-cookies +session.use_only_cookies = 1 + +; Name of the session (used as cookie name). +; https://php.net/session.name +session.name = PHPSESSID + +; Initialize session on request startup. +; https://php.net/session.auto-start +session.auto_start = 0 + +; Lifetime in seconds of cookie or, if 0, until browser is restarted. +; https://php.net/session.cookie-lifetime +session.cookie_lifetime = 0 + +; The path for which the cookie is valid. +; https://php.net/session.cookie-path +session.cookie_path = / + +; The domain for which the cookie is valid. +; https://php.net/session.cookie-domain +session.cookie_domain = + +; Whether or not to add the httpOnly flag to the cookie, which makes it +; inaccessible to browser scripting languages such as JavaScript. +; https://php.net/session.cookie-httponly +session.cookie_httponly = + +; Add SameSite attribute to cookie to help mitigate Cross-Site Request Forgery (CSRF/XSRF) +; Current valid values are "Strict", "Lax" or "None". When using "None", +; make sure to include the quotes, as `none` is interpreted like `false` in ini files. +; https://tools.ietf.org/html/draft-west-first-party-cookies-07 +session.cookie_samesite = + +; Handler used to serialize data. php is the standard serializer of PHP. +; https://php.net/session.serialize-handler +session.serialize_handler = php + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.gc-probability +session.gc_probability = 1 + +; Defines the probability that the 'garbage collection' process is started on every +; session initialization. The probability is calculated by using gc_probability/gc_divisor, +; e.g. 1/100 means there is a 1% chance that the GC process starts on each request. +; For high volume production servers, using a value of 1000 is a more efficient approach. +; Default Value: 100 +; Development Value: 1000 +; Production Value: 1000 +; https://php.net/session.gc-divisor +session.gc_divisor = 1000 + +; After this number of seconds, stored data will be seen as 'garbage' and +; cleaned up by the garbage collection process. +; https://php.net/session.gc-maxlifetime +session.gc_maxlifetime = 1440 + +; NOTE: If you are using the subdirectory option for storing session files +; (see session.save_path above), then garbage collection does *not* +; happen automatically. You will need to do your own garbage +; collection through a shell script, cron entry, or some other method. +; For example, the following script is the equivalent of setting +; session.gc_maxlifetime to 1440 (1440 seconds = 24 minutes): +; find /path/to/sessions -cmin +24 -type f | xargs rm + +; Check HTTP Referer to invalidate externally stored URLs containing ids. +; HTTP_REFERER has to contain this substring for the session to be +; considered as valid. +; https://php.net/session.referer-check +session.referer_check = + +; Set to {nocache,private,public,} to determine HTTP caching aspects +; or leave this empty to avoid sending anti-caching headers. +; https://php.net/session.cache-limiter +session.cache_limiter = nocache + +; Document expires after n minutes. +; https://php.net/session.cache-expire +session.cache_expire = 180 + +; trans sid support is disabled by default. +; Use of trans sid may risk your users' security. +; Use this option with caution. +; - User may send URL contains active session ID +; to other person via. email/irc/etc. +; - URL that contains active session ID may be stored +; in publicly accessible computer. +; - User may access your site with the same session ID +; always using URL stored in browser's history or bookmarks. +; https://php.net/session.use-trans-sid +session.use_trans_sid = 0 + +; The URL rewriter will look for URLs in a defined set of HTML tags. +; is special; if you include them here, the rewriter will +; add a hidden field with the info which is otherwise appended +; to URLs. tag's action attribute URL will not be modified +; unless it is specified. +; Note that all valid entries require a "=", even if no value follows. +; Default Value: "a=href,area=href,frame=src,form=" +; Development Value: "a=href,area=href,frame=src,form=" +; Production Value: "a=href,area=href,frame=src,form=" +; https://php.net/url-rewriter.tags +session.trans_sid_tags = "a=href,area=href,frame=src,form=" + +; URL rewriter does not rewrite absolute URLs by default. +; To enable rewrites for absolute paths, target hosts must be specified +; at RUNTIME. i.e. use ini_set() +; tags is special. PHP will check action attribute's URL regardless +; of session.trans_sid_tags setting. +; If no host is defined, HTTP_HOST will be used for allowed host. +; Example value: php.net,www.php.net,wiki.php.net +; Use "," for multiple hosts. No spaces are allowed. +; Default Value: "" +; Development Value: "" +; Production Value: "" +;session.trans_sid_hosts="" + +; Enable upload progress tracking in $_SESSION +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.enabled +;session.upload_progress.enabled = On + +; Cleanup the progress information as soon as all POST data has been read +; (i.e. upload completed). +; Default Value: On +; Development Value: On +; Production Value: On +; https://php.net/session.upload-progress.cleanup +;session.upload_progress.cleanup = On + +; A prefix used for the upload progress key in $_SESSION +; Default Value: "upload_progress_" +; Development Value: "upload_progress_" +; Production Value: "upload_progress_" +; https://php.net/session.upload-progress.prefix +;session.upload_progress.prefix = "upload_progress_" + +; The index name (concatenated with the prefix) in $_SESSION +; containing the upload progress information +; Default Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Development Value: "PHP_SESSION_UPLOAD_PROGRESS" +; Production Value: "PHP_SESSION_UPLOAD_PROGRESS" +; https://php.net/session.upload-progress.name +;session.upload_progress.name = "PHP_SESSION_UPLOAD_PROGRESS" + +; How frequently the upload progress should be updated. +; Given either in percentages (per-file), or in bytes +; Default Value: "1%" +; Development Value: "1%" +; Production Value: "1%" +; https://php.net/session.upload-progress.freq +;session.upload_progress.freq = "1%" + +; The minimum delay between updates, in seconds +; Default Value: 1 +; Development Value: 1 +; Production Value: 1 +; https://php.net/session.upload-progress.min-freq +;session.upload_progress.min_freq = "1" + +; Only write session data when session data is changed. Enabled by default. +; https://php.net/session.lazy-write +;session.lazy_write = On + +[Assertion] +; Switch whether to compile assertions at all (to have no overhead at run-time) +; -1: Do not compile at all +; 0: Jump over assertion at run-time +; 1: Execute assertions +; Changing from or to a negative value is only possible in php.ini! +; (For turning assertions on and off at run-time, toggle zend.assertions between the values 1 and 0) +; Default Value: 1 +; Development Value: 1 +; Production Value: -1 +; https://php.net/zend.assertions +zend.assertions = -1 + +[COM] +; path to a file containing GUIDs, IIDs or filenames of files with TypeLibs +; https://php.net/com.typelib-file +;com.typelib_file = + +; allow Distributed-COM calls +; https://php.net/com.allow-dcom +;com.allow_dcom = true + +; autoregister constants of a component's typelib on com_load() +; https://php.net/com.autoregister-typelib +;com.autoregister_typelib = true + +; register constants casesensitive +; https://php.net/com.autoregister-casesensitive +;com.autoregister_casesensitive = false + +; show warnings on duplicate constant registrations +; https://php.net/com.autoregister-verbose +;com.autoregister_verbose = true + +; The default character set code-page to use when passing strings to and from COM objects. +; Default: system ANSI code page +;com.code_page= + +; The version of the .NET framework to use. The value of the setting are the first three parts +; of the framework's version number, separated by dots, and prefixed with "v", e.g. "v4.0.30319". +;com.dotnet_version= + +[mbstring] +; language for internal character representation. +; This affects mb_send_mail() and mbstring.detect_order. +; https://php.net/mbstring.language +;mbstring.language = Japanese + +; Use of this INI entry is deprecated, use global internal_encoding instead. +; internal/script encoding. +; Some encoding cannot work as internal encoding. (e.g. SJIS, BIG5, ISO-2022-*) +; If empty, default_charset or internal_encoding or iconv.internal_encoding is used. +; The precedence is: default_charset < internal_encoding < iconv.internal_encoding +;mbstring.internal_encoding = + +; Use of this INI entry is deprecated, use global input_encoding instead. +; http input encoding. +; mbstring.encoding_translation = On is needed to use this setting. +; If empty, default_charset or input_encoding or mbstring.input is used. +; The precedence is: default_charset < input_encoding < mbstring.http_input +; https://php.net/mbstring.http-input +;mbstring.http_input = + +; Use of this INI entry is deprecated, use global output_encoding instead. +; http output encoding. +; mb_output_handler must be registered as output buffer to function. +; If empty, default_charset or output_encoding or mbstring.http_output is used. +; The precedence is: default_charset < output_encoding < mbstring.http_output +; To use an output encoding conversion, mbstring's output handler must be set +; otherwise output encoding conversion cannot be performed. +; https://php.net/mbstring.http-output +;mbstring.http_output = + +; enable automatic encoding translation according to +; mbstring.internal_encoding setting. Input chars are +; converted to internal encoding by setting this to On. +; Note: Do _not_ use automatic encoding translation for +; portable libs/applications. +; https://php.net/mbstring.encoding-translation +;mbstring.encoding_translation = Off + +; automatic encoding detection order. +; "auto" detect order is changed according to mbstring.language +; https://php.net/mbstring.detect-order +;mbstring.detect_order = auto + +; substitute_character used when character cannot be converted +; one from another +; https://php.net/mbstring.substitute-character +;mbstring.substitute_character = none + +; Enable strict encoding detection. +;mbstring.strict_detection = Off + +; This directive specifies the regex pattern of content types for which mb_output_handler() +; is activated. +; Default: mbstring.http_output_conv_mimetypes=^(text/|application/xhtml\+xml) +;mbstring.http_output_conv_mimetypes= + +; This directive specifies maximum stack depth for mbstring regular expressions. It is similar +; to the pcre.recursion_limit for PCRE. +;mbstring.regex_stack_limit=100000 + +; This directive specifies maximum retry count for mbstring regular expressions. It is similar +; to the pcre.backtrack_limit for PCRE. +;mbstring.regex_retry_limit=1000000 + +[gd] +; Tell the jpeg decode to ignore warnings and try to create +; a gd image. The warning will then be displayed as notices +; disabled by default +; https://php.net/gd.jpeg-ignore-warning +;gd.jpeg_ignore_warning = 1 + +[exif] +; Exif UNICODE user comments are handled as UCS-2BE/UCS-2LE and JIS as JIS. +; With mbstring support this will automatically be converted into the encoding +; given by corresponding encode setting. When empty mbstring.internal_encoding +; is used. For the decode settings you can distinguish between motorola and +; intel byte order. A decode setting must not be empty. +; https://php.net/exif.encode-unicode +;exif.encode_unicode = ISO-8859-15 + +; https://php.net/exif.decode-unicode-motorola +;exif.decode_unicode_motorola = UCS-2BE + +; https://php.net/exif.decode-unicode-intel +;exif.decode_unicode_intel = UCS-2LE + +; https://php.net/exif.encode-jis +;exif.encode_jis = + +; https://php.net/exif.decode-jis-motorola +;exif.decode_jis_motorola = JIS + +; https://php.net/exif.decode-jis-intel +;exif.decode_jis_intel = JIS + +[Tidy] +; The path to a default tidy configuration file to use when using tidy +; https://php.net/tidy.default-config +;tidy.default_config = /usr/local/lib/php/default.tcfg + +; Should tidy clean and repair output automatically? +; WARNING: Do not use this option if you are generating non-html content +; such as dynamic images +; https://php.net/tidy.clean-output +tidy.clean_output = Off + +[soap] +; Enables or disables WSDL caching feature. +; https://php.net/soap.wsdl-cache-enabled +soap.wsdl_cache_enabled=1 + +; Sets the directory name where SOAP extension will put cache files. +; https://php.net/soap.wsdl-cache-dir +soap.wsdl_cache_dir="/tmp" + +; (time to live) Sets the number of second while cached file will be used +; instead of original one. +; https://php.net/soap.wsdl-cache-ttl +soap.wsdl_cache_ttl=86400 + +; Sets the size of the cache limit. (Max. number of WSDL files to cache) +soap.wsdl_cache_limit = 5 + +[sysvshm] +; A default size of the shared memory segment +;sysvshm.init_mem = 10000 + +[ldap] +; Sets the maximum number of open links or -1 for unlimited. +ldap.max_links = -1 + +[dba] +;dba.default_handler= + +[opcache] +; Determines if Zend OPCache is enabled +;opcache.enable=1 + +; Determines if Zend OPCache is enabled for the CLI version of PHP +;opcache.enable_cli=0 + +; The OPcache shared memory storage size. +;opcache.memory_consumption=128 + +; The amount of memory for interned strings in Mbytes. +;opcache.interned_strings_buffer=8 + +; The maximum number of keys (scripts) in the OPcache hash table. +; Only numbers between 200 and 1000000 are allowed. +;opcache.max_accelerated_files=10000 + +; The maximum percentage of "wasted" memory until a restart is scheduled. +;opcache.max_wasted_percentage=5 + +; When this directive is enabled, the OPcache appends the current working +; directory to the script key, thus eliminating possible collisions between +; files with the same name (basename). Disabling the directive improves +; performance, but may break existing applications. +;opcache.use_cwd=1 + +; When disabled, you must reset the OPcache manually or restart the +; webserver for changes to the filesystem to take effect. +;opcache.validate_timestamps=1 + +; How often (in seconds) to check file timestamps for changes to the shared +; memory storage allocation. ("1" means validate once per second, but only +; once per request. "0" means always validate) +;opcache.revalidate_freq=2 + +; Enables or disables file search in include_path optimization +;opcache.revalidate_path=0 + +; If disabled, all PHPDoc comments are dropped from the code to reduce the +; size of the optimized code. +;opcache.save_comments=1 + +; If enabled, compilation warnings (including notices and deprecations) will +; be recorded and replayed each time a file is included. Otherwise, compilation +; warnings will only be emitted when the file is first cached. +;opcache.record_warnings=0 + +; Allow file existence override (file_exists, etc.) performance feature. +;opcache.enable_file_override=0 + +; A bitmask, where each bit enables or disables the appropriate OPcache +; passes +;opcache.optimization_level=0x7FFFBFFF + +;opcache.dups_fix=0 + +; The location of the OPcache blacklist file (wildcards allowed). +; Each OPcache blacklist file is a text file that holds the names of files +; that should not be accelerated. The file format is to add each filename +; to a new line. The filename may be a full path or just a file prefix +; (i.e., /var/www/x blacklists all the files and directories in /var/www +; that start with 'x'). Line starting with a ; are ignored (comments). +;opcache.blacklist_filename= + +; Allows exclusion of large files from being cached. By default all files +; are cached. +;opcache.max_file_size=0 + +; How long to wait (in seconds) for a scheduled restart to begin if the cache +; is not being accessed. +;opcache.force_restart_timeout=180 + +; OPcache error_log file name. Empty string assumes "stderr". +;opcache.error_log= + +; All OPcache errors go to the Web server log. +; By default, only fatal errors (level 0) or errors (level 1) are logged. +; You can also enable warnings (level 2), info messages (level 3) or +; debug messages (level 4). +;opcache.log_verbosity_level=1 + +; Preferred Shared Memory back-end. Leave empty and let the system decide. +;opcache.preferred_memory_model= + +; Protect the shared memory from unexpected writing during script execution. +; Useful for internal debugging only. +;opcache.protect_memory=0 + +; Allows calling OPcache API functions only from PHP scripts which path is +; started from specified string. The default "" means no restriction +;opcache.restrict_api= + +; Mapping base of shared memory segments (for Windows only). All the PHP +; processes have to map shared memory into the same address space. This +; directive allows to manually fix the "Unable to reattach to base address" +; errors. +;opcache.mmap_base= + +; Facilitates multiple OPcache instances per user (for Windows only). All PHP +; processes with the same cache ID and user share an OPcache instance. +;opcache.cache_id= + +; Enables and sets the second level cache directory. +; It should improve performance when SHM memory is full, at server restart or +; SHM reset. The default "" disables file based caching. +;opcache.file_cache= + +; Enables or disables opcode caching in shared memory. +;opcache.file_cache_only=0 + +; Enables or disables checksum validation when script loaded from file cache. +;opcache.file_cache_consistency_checks=1 + +; Implies opcache.file_cache_only=1 for a certain process that failed to +; reattach to the shared memory (for Windows only). Explicitly enabled file +; cache is required. +;opcache.file_cache_fallback=1 + +; Enables or disables copying of PHP code (text segment) into HUGE PAGES. +; Under certain circumstances (if only a single global PHP process is +; started from which all others fork), this can increase performance +; by a tiny amount because TLB misses are reduced. On the other hand, this +; delays PHP startup, increases memory usage and degrades performance +; under memory pressure - use with care. +; Requires appropriate OS configuration. +;opcache.huge_code_pages=0 + +; Validate cached file permissions. +;opcache.validate_permission=0 + +; Prevent name collisions in chroot'ed environment. +;opcache.validate_root=0 + +; If specified, it produces opcode dumps for debugging different stages of +; optimizations. +;opcache.opt_debug_level=0 + +; Specifies a PHP script that is going to be compiled and executed at server +; start-up. +; https://php.net/opcache.preload +;opcache.preload= + +; Preloading code as root is not allowed for security reasons. This directive +; facilitates to let the preloading to be run as another user. +; https://php.net/opcache.preload_user +;opcache.preload_user= + +; Prevents caching files that are less than this number of seconds old. It +; protects from caching of incompletely updated files. In case all file updates +; on your site are atomic, you may increase performance by setting it to "0". +;opcache.file_update_protection=2 + +; Absolute path used to store shared lockfiles (for *nix only). +;opcache.lockfile_path=/tmp + +[curl] +; A default value for the CURLOPT_CAINFO option. This is required to be an +; absolute path. +;curl.cainfo = + +[openssl] +; The location of a Certificate Authority (CA) file on the local filesystem +; to use when verifying the identity of SSL/TLS peers. Most users should +; not specify a value for this directive as PHP will attempt to use the +; OS-managed cert stores in its absence. If specified, this value may still +; be overridden on a per-stream basis via the "cafile" SSL stream context +; option. +;openssl.cafile= + +; If openssl.cafile is not specified or if the CA file is not found, the +; directory pointed to by openssl.capath is searched for a suitable +; certificate. This value must be a correctly hashed certificate directory. +; Most users should not specify a value for this directive as PHP will +; attempt to use the OS-managed cert stores in its absence. If specified, +; this value may still be overridden on a per-stream basis via the "capath" +; SSL stream context option. +;openssl.capath= + +[ffi] +; FFI API restriction. Possible values: +; "preload" - enabled in CLI scripts and preloaded files (default) +; "false" - always disabled +; "true" - always enabled +;ffi.enable=preload + +; List of headers files to preload, wildcard patterns allowed. +;ffi.preload= diff --git a/run/php/php8.dll b/run/php/php8.dll new file mode 100644 index 0000000..b4193ca Binary files /dev/null and b/run/php/php8.dll differ diff --git a/run/php/php8embed.lib b/run/php/php8embed.lib new file mode 100644 index 0000000..cd54774 Binary files /dev/null and b/run/php/php8embed.lib differ diff --git a/run/php/php8phpdbg.dll b/run/php/php8phpdbg.dll new file mode 100644 index 0000000..75c631e Binary files /dev/null and b/run/php/php8phpdbg.dll differ diff --git a/run/php/phpdbg.exe b/run/php/phpdbg.exe new file mode 100644 index 0000000..8394662 Binary files /dev/null and b/run/php/phpdbg.exe differ diff --git a/run/php/readme-redist-bins.txt b/run/php/readme-redist-bins.txt new file mode 100644 index 0000000..14a93d5 --- /dev/null +++ b/run/php/readme-redist-bins.txt @@ -0,0 +1,681 @@ + 1. libmagic (ext/fileinfo) see ext/fileinfo/libmagic/LICENSE + 2. libmbfl (ext/mbstring) see ext/mbstring/libmbfl/LICENSE + 3. pcre2lib (ext/pcre) + 4. ext/standard crypt + 5. ext/standard crypt's blowfish implementation + 6. ext/standard/rand + 7. ext/standard/scanf + 8. ext/standard/strnatcmp.c + 9. ext/standard/uuencode +10. main/snprintf.c +11. main/strlcat +12. main/strlcpy +13. libgd (ext/gd) +14. ext/phar portions of tar implementations +15. ext/phar/zip.c portion extracted from libzip +16. libbcmath (ext/bcmath) see ext/bcmath/libbcmath/LICENSE +17. ext/mbstring/ucgendat portions based on the ucgendat.c from the OpenLDAP +18. avifinfo (ext/standard/libavifinfo) see ext/standard/libavifinfo/LICENSE +19. xxHash (ext/hash/xxhash) +20. Lexbor (ext/dom/lexbor/lexbor) see ext/dom/lexbor/LICENSE +21. Portions of libcperciva (ext/hash/hash_sha_{ni,sse2}.c) see the header in the source file + +3. pcre2lib (ext/pcre) + +PCRE2 LICENCE +------------- + +PCRE2 is a library of functions to support regular expressions whose syntax +and semantics are as close as possible to those of the Perl 5 language. + +Releases 10.00 and above of PCRE2 are distributed under the terms of the "BSD" +licence, as specified below, with one exemption for certain binary +redistributions. The documentation for PCRE2, supplied in the "doc" directory, +is distributed under the same terms as the software itself. The data in the +testdata directory is not copyrighted and is in the public domain. + +The basic library functions are written in C and are freestanding. Also +included in the distribution is a just-in-time compiler that can be used to +optimize pattern matching. This is an optional feature that can be omitted when +the library is built. + + +THE BASIC LIBRARY FUNCTIONS +--------------------------- + +Written by: Philip Hazel +Email local part: ph10 +Email domain: cam.ac.uk + +University of Cambridge Computing Service, +Cambridge, England. + +Copyright (c) 1997-2019 University of Cambridge +All rights reserved. + + +PCRE2 JUST-IN-TIME COMPILATION SUPPORT +-------------------------------------- + +Written by: Zoltan Herczeg +Email local part: hzmester +Email domain: freemail.hu + +Copyright(c) 2010-2019 Zoltan Herczeg +All rights reserved. + + +STACK-LESS JUST-IN-TIME COMPILER +-------------------------------- + +Written by: Zoltan Herczeg +Email local part: hzmester +Email domain: freemail.hu + +Copyright(c) 2009-2019 Zoltan Herczeg +All rights reserved. + + +THE "BSD" LICENCE +----------------- + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright notices, + this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above copyright + notices, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + * Neither the name of the University of Cambridge nor the names of any + contributors may be used to endorse or promote products derived from this + software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" +AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE +LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR +CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN +CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + + +EXEMPTION FOR BINARY LIBRARY-LIKE PACKAGES +------------------------------------------ + +The second condition in the BSD licence (covering binary redistributions) does +not apply all the way down a chain of software. If binary package A includes +PCRE2, it must respect the condition, but if package B is software that +includes package A, the condition is not imposed on package B unless it uses +PCRE2 independently. + +End + + +4. ext/standard crypt + +FreeSec: libcrypt for NetBSD + +Copyright (c) 1994 David Burren +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. Neither the name of the author nor the names of other contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + +5. ext/standard crypt's blowfish implementation + +The crypt_blowfish homepage is: + +http://www.openwall.com/crypt/ + +This code comes from John the Ripper password cracker, with reentrant +and crypt(3) interfaces added, but optimizations specific to password +cracking removed. + +Written by Solar Designer in 1998-2011. +No copyright is claimed, and the software is hereby placed in the public +domain. In case this attempt to disclaim copyright and place the software +in the public domain is deemed null and void, then the software is +Copyright (c) 1998-2011 Solar Designer and it is hereby released to the +general public under the following terms: + +Redistribution and use in source and binary forms, with or without +modification, are permitted. + +There's ABSOLUTELY NO WARRANTY, express or implied. + +It is my intent that you should be able to use this on your system, +as part of a software package, or anywhere else to improve security, +ensure compatibility, or for any other purpose. I would appreciate +it if you give credit where it is due and keep your modifications in +the public domain as well, but I don't require that in order to let +you place this code and any modifications you make under a license +of your choice. + +This implementation is mostly compatible with OpenBSD's bcrypt.c (prefix +"$2a$") by Niels Provos , and uses some of his +ideas. The password hashing algorithm was designed by David Mazieres +. For more information on the level of compatibility, +please refer to the comments in BF_set_key() and to the crypt(3) man page +included in the crypt_blowfish tarball. + +There's a paper on the algorithm that explains its design decisions: + +http://www.usenix.org/events/usenix99/provos.html + +Some of the tricks in BF_ROUND might be inspired by Eric Young's +Blowfish library (I can't be sure if I would think of something if I +hadn't seen his code). + + +6. ext/standard/rand + +The following php_mt_...() functions are based on a C++ class MTRand by +Richard J. Wagner. For more information see the web page at +http://www-personal.engin.umich.edu/~wagnerr/MersenneTwister.html + +Mersenne Twister random number generator -- a C++ class MTRand +Based on code by Makoto Matsumoto, Takuji Nishimura, and Shawn Cokus +Richard J. Wagner v1.0 15 May 2003 rjwagner@writeme.com + +The Mersenne Twister is an algorithm for generating random numbers. It +was designed with consideration of the flaws in various other generators. +The period, 2^19937-1, and the order of equidistribution, 623 dimensions, +are far greater. The generator is also fast; it avoids multiplication and +division, and it benefits from caches and pipelines. For more information +see the inventors' web page at http://www.math.keio.ac.jp/~matumoto/emt.html + +Reference +M. Matsumoto and T. Nishimura, "Mersenne Twister: A 623-Dimensionally +Equidistributed Uniform Pseudo-Random Number Generator", ACM Transactions on +Modeling and Computer Simulation, Vol. 8, No. 1, January 1998, pp 3-30. + +Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, +Copyright (C) 2000 - 2003, Richard J. Wagner +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + +3. The names of its contributors may not be used to endorse or promote + products derived from this software without specific prior written + permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR +CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR +PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +7. ext/standard/scanf + +scanf.c -- + +This file contains the base code which implements sscanf and by extension +fscanf. Original code is from TCL8.3.0 and bears the following copyright: + +This software is copyrighted by the Regents of the University of +California, Sun Microsystems, Inc., Scriptics Corporation, +and other parties. The following terms apply to all files associated +with the software unless explicitly disclaimed in individual files. + +The authors hereby grant permission to use, copy, modify, distribute, +and license this software and its documentation for any purpose, provided +that existing copyright notices are retained in all copies and that this +notice is included verbatim in any distributions. No written agreement, +license, or royalty fee is required for any of the authorized uses. +Modifications to this software may be copyrighted by their authors +and need not follow the licensing terms described here, provided that +the new terms are clearly indicated on the first page of each file where +they apply. + +IN NO EVENT SHALL THE AUTHORS OR DISTRIBUTORS BE LIABLE TO ANY PARTY +FOR DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES +ARISING OUT OF THE USE OF THIS SOFTWARE, ITS DOCUMENTATION, OR ANY +DERIVATIVES THEREOF, EVEN IF THE AUTHORS HAVE BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +THE AUTHORS AND DISTRIBUTORS SPECIFICALLY DISCLAIM ANY WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. THIS SOFTWARE +IS PROVIDED ON AN "AS IS" BASIS, AND THE AUTHORS AND DISTRIBUTORS HAVE +NO OBLIGATION TO PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR +MODIFICATIONS. + +GOVERNMENT USE: If you are acquiring this software on behalf of the +U.S. government, the Government shall have only "Restricted Rights" +in the software and related documentation as defined in the Federal +Acquisition Regulations (FARs) in Clause 52.227.19 (c) (2). If you +are acquiring the software on behalf of the Department of Defense, the +software shall be classified as "Commercial Computer Software" and the +Government shall have only "Restricted Rights" as defined in Clause +252.227-7013 (c) (1) of DFARs. Notwithstanding the foregoing, the +authors grant the U.S. Government and others acting in its behalf +permission to use and distribute the software in accordance with the +terms specified in this license. + + +8. ext/standard/strnatcmp.c + +strnatcmp.c -- Perform 'natural order' comparisons of strings in C. +Copyright (C) 2000 by Martin Pool + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + + +9. ext/standard/uuencode + +Portions of this code are based on Berkeley's uuencode/uudecode +implementation. + +Copyright (c) 1983, 1993 +The Regents of the University of California. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. All advertising materials mentioning features or use of this software + must display the following acknowledgement: +This product includes software developed by the University of +California, Berkeley and its contributors. +4. Neither the name of the University nor the names of its contributors + may be used to endorse or promote products derived from this software + without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +SUCH DAMAGE. + + +10. main/snprintf.c + +Copyright (c) 2002, 2006 Todd C. Miller + +Permission to use, copy, modify, and distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +Sponsored in part by the Defense Advanced Research Projects +Agency (DARPA) and Air Force Research Laboratory, Air Force +Materiel Command, USAF, under agreement number F39502-99-1-0512. + +main/spprintf +Copyright (c) 1995-1998 The Apache Group. All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: + +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. + +3. All advertising materials mentioning features or use of this + software must display the following acknowledgment: + "This product includes software developed by the Apache Group + for use in the Apache HTTP server project (http://www.apache.org/)." + +4. The names "Apache Server" and "Apache Group" must not be used to + endorse or promote products derived from this software without + prior written permission. + +5. Redistributions of any form whatsoever must retain the following + acknowledgment: + "This product includes software developed by the Apache Group + for use in the Apache HTTP server project (http://www.apache.org/)." + +THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY +EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR +ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT +NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, +STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) +ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED +OF THE POSSIBILITY OF SUCH DAMAGE. +==================================================================== + +This software consists of voluntary contributions made by many +individuals on behalf of the Apache Group and was originally based +on public domain software written at the National Center for +Supercomputing Applications, University of Illinois, Urbana-Champaign. +For more information on the Apache Group and the Apache HTTP server +project, please see . + +This code is based on, and used with the permission of, the +SIO stdio-replacement strx_* functions by Panos Tsirigotis + for xinetd. + + +11. main/strlcat +12. main/strlcpy + +Copyright (c) 1998 Todd C. Miller +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. +3. The name of the author may not be used to endorse or promote products + derived from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +13. libgd (ext/gd) + +* Portions copyright 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, + 2002, 2003, 2004 by Cold Spring Harbor Laboratory. Funded under + Grant P41-RR02188 by the National Institutes of Health. + +* Portions copyright 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, + 2004 by Boutell.Com, Inc. + +* Portions relating to GD2 format copyright 1999, 2000, 2001, 2002, + 2003, 2004 Philip Warner. + +* Portions relating to PNG copyright 1999, 2000, 2001, 2002, 2003, + 2004 Greg Roelofs. + +* Portions relating to gdttf.c copyright 1999, 2000, 2001, 2002, + 2003, 2004 John Ellson (ellson@graphviz.org). + +* Portions relating to gdft.c copyright 2001, 2002, 2003, 2004 John + Ellson (ellson@graphviz.org). + +* Portions copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 + Pierre-Alain Joye (pierre@libgd.org). + +* Portions relating to JPEG and to color quantization copyright + 2000, 2001, 2002, 2003, 2004, Doug Becker and copyright (C) 1994, + 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 Thomas + G. Lane. This software is based in part on the work of the + Independent JPEG Group. See the file README-JPEG.TXT for more + information. + +* Portions relating to GIF compression copyright 1989 by Jef + Poskanzer and David Rowley, with modifications for thread safety + by Thomas Boutell. + +* Portions relating to GIF decompression copyright 1990, 1991, 1993 + by David Koblas, with modifications for thread safety by Thomas + Boutell. + +* Portions relating to WBMP copyright 2000, 2001, 2002, 2003, 2004 + Maurice Szmurlo and Johan Van den Brande. + +* Portions relating to GIF animations copyright 2004 Jaakko Hyvätti + (jaakko.hyvatti@iki.fi) + +Permission has been granted to copy, distribute and modify gd in +any context without fee, including a commercial application, +provided that this notice is present in user-accessible supporting +documentation. + +This does not affect your ownership of the derived work itself, +and the intent is to assure proper credit for the authors of gd, +not to interfere with your productive use of gd. If you have +questions, ask. "Derived works" includes all programs that utilize +the library. Credit must be given in user-accessible +documentation. + +This software is provided "AS IS." The copyright holders disclaim +all warranties, either express or implied, including but not +limited to implied warranties of merchantability and fitness for a +particular purpose, with respect to this code and accompanying +documentation. + +Although their code does not appear in the current release, the +authors wish to thank David Koblas, David Rowley, and Hutchison +Avenue Software Corporation for their prior contributions. + +END OF COPYRIGHT STATEMENT + + +14. ext/phar portions of tar implementations + +portions of tar implementations in ext/phar - phar_tar_octal() are based on an +implementation by Tim Kientzle from libarchive, licensed with this license: + + Copyright (c) 2003-2007 Tim Kientzle + All rights reserved. + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions + are met: + 1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE AUTHOR(S) ``AS IS'' AND ANY EXPRESS OR + IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + IN NO EVENT SHALL THE AUTHOR(S) BE LIABLE FOR ANY DIRECT, INDIRECT, + INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +15. ext/phar/zip.c portion extracted from libzip + +zip_dirent.c -- read directory entry (local or central), clean dirent +Copyright (C) 1999, 2003, 2004, 2005 Dieter Baron and Thomas Klausner + +This function is part of libzip, a library to manipulate ZIP archives. +The authors can be contacted at + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions +are met: +1. Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in + the documentation and/or other materials provided with the + distribution. +3. The names of the authors may not be used to endorse or promote + products derived from this software without specific prior + written permission. + +THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY +DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE +GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS +INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER +IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN +IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + + +17. ext/mbstring/ucgendat portions based on the ucgendat.c from the OpenLDAP + +The OpenLDAP Public License + Version 2.8, 17 August 2003 + +Redistribution and use of this software and associated documentation +("Software"), with or without modification, are permitted provided +that the following conditions are met: + +1. Redistributions in source form must retain copyright statements + and notices, + +2. Redistributions in binary form must reproduce applicable copyright + statements and notices, this list of conditions, and the following + disclaimer in the documentation and/or other materials provided + with the distribution, and + +3. Redistributions must contain a verbatim copy of this document. + +The OpenLDAP Foundation may revise this license from time to time. +Each revision is distinguished by a version number. You may use +this Software under terms of this license revision or under the +terms of any subsequent revision of the license. + +THIS SOFTWARE IS PROVIDED BY THE OPENLDAP FOUNDATION AND ITS +CONTRIBUTORS ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, +INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT +SHALL THE OPENLDAP FOUNDATION, ITS CONTRIBUTORS, OR THE AUTHOR(S) +OR OWNER(S) OF THE SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, +BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER +CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN +ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE +POSSIBILITY OF SUCH DAMAGE. + +The names of the authors and copyright holders must not be used in +advertising or otherwise to promote the sale, use or other dealing +in this Software without specific, written prior permission. Title +to copyright in this Software shall at all times remain with copyright +holders. + +OpenLDAP is a registered trademark of the OpenLDAP Foundation. + +Copyright 1999-2003 The OpenLDAP Foundation, Redwood City, +California, USA. All Rights Reserved. Permission to copy and +distribute verbatim copies of this document is granted. + + +19. xxHash + +xxHash - Extremely Fast Hash algorithm +Header File +Copyright (C) 2012-2020 Yann Collet + +BSD 2-Clause License (https://www.opensource.org/licenses/bsd-license.php) + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are +met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following disclaimer + in the documentation and/or other materials provided with the + distribution. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +You can contact the author at: + - xxHash homepage: https://www.xxhash.com + - xxHash source repository: https://github.com/Cyan4973/xxHash diff --git a/run/php/snapshot.txt b/run/php/snapshot.txt new file mode 100644 index 0000000..08200c8 --- /dev/null +++ b/run/php/snapshot.txt @@ -0,0 +1,151 @@ +This snapshot was automatically generated on +Tue, 26 Aug 2025 21:24:44 +0000 + +Version: 8.4.12 +Branch: HEAD +Build: C:\Users\runneradmin\AppData\Local\Temp\4ddcc8c4-8b78-4918-8a94-09b6f70fe908\config\vs17\x64\obj\Release + +Built-in Extensions +=========================== +Core +bcmath +calendar +ctype +date +filter +hash +iconv +json +SPL +pcre +random +readline +Reflection +session +standard +mysqlnd +tokenizer +zlib +libxml +dom +PDO +openssl +SimpleXML +xml +xmlreader +xmlwriter +curl +ftp +sqlite3 +Phar +mbstring +mysqli +zip + + +Dependency information: +Module: php_curl.dll +=========================== + libcrypto-3-x64.dll + libssl-3-x64.dll + libssh2.dll + nghttp2.dll + +Module: libssl-3-x64.dll +=========================== + libcrypto-3-x64.dll + +Module: libssh2.dll +=========================== + libcrypto-3-x64.dll + +Module: php_enchant.dll +=========================== + libenchant2.dll + +Module: libenchant2.dll +=========================== + glib-2.dll + gmodule-2.dll + +Module: gmodule-2.dll +=========================== + glib-2.dll + +Module: php_ftp.dll +=========================== + libcrypto-3-x64.dll + libssl-3-x64.dll + +Module: php_ldap.dll +=========================== + libsasl.dll + libcrypto-3-x64.dll + libssl-3-x64.dll + +Module: libsasl.dll +=========================== + libcrypto-3-x64.dll + +Module: php_openssl.dll +=========================== + libcrypto-3-x64.dll + libssl-3-x64.dll + +Module: php_sodium.dll +=========================== + libsodium.dll + +Module: php_sqlite3.dll +=========================== + libsqlite3.dll + +Module: php_intl.dll +=========================== + icuin75.dll + icuio75.dll + icuuc75.dll + vcruntime140_1.dll + +Module: icuin75.dll +=========================== + icuuc75.dll + vcruntime140_1.dll + +Module: icuuc75.dll +=========================== + icudt75.dll + vcruntime140_1.dll + +Module: icuio75.dll +=========================== + icuuc75.dll + icuin75.dll + vcruntime140_1.dll + +Module: php_pdo_firebird.dll +=========================== + vcruntime140_1.dll + +Module: php_pdo_pgsql.dll +=========================== + libpq.dll + +Module: libpq.dll +=========================== + libssl-3-x64.dll + libcrypto-3-x64.dll + +Module: php_pdo_sqlite.dll +=========================== + libsqlite3.dll + +Module: php_pgsql.dll +=========================== + libpq.dll + +Module: php_snmp.dll +=========================== + libcrypto-3-x64.dll + libssl-3-x64.dll + diff --git a/run/rules.json b/run/rules.json new file mode 100644 index 0000000..b8c3eb6 --- /dev/null +++ b/run/rules.json @@ -0,0 +1,14 @@ +{ + "allow": [ + "index.html", + "css/*", + "private/info.php" + ], + "deny": [ + "private/*" + ], + "auth": [ + "private/*", + "admin/*" + ] +} \ No newline at end of file diff --git a/run/settings.properties b/run/settings.properties new file mode 100644 index 0000000..d2a1ada --- /dev/null +++ b/run/settings.properties @@ -0,0 +1,2 @@ +#Sat Sep 20 21:52:27 CEST 2025 +port=443 diff --git a/src/main/java/github/openautonomousconnection/webserver/AuthManager.java b/src/main/java/github/openautonomousconnection/webserver/AuthManager.java new file mode 100644 index 0000000..5433630 --- /dev/null +++ b/src/main/java/github/openautonomousconnection/webserver/AuthManager.java @@ -0,0 +1,48 @@ +package github.openautonomousconnection.webserver; + +import java.io.*; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.security.MessageDigest; +import java.util.Base64; +import java.util.HashMap; +import java.util.Map; + +public class AuthManager { + + private static Map users = new HashMap<>(); + + public static void loadAuthFile(File authFile) throws IOException { + if (!authFile.exists()) authFile.createNewFile(); + for (String line : Files.readAllLines(authFile.toPath(), StandardCharsets.UTF_8)) { + line = line.trim(); + if (line.isEmpty() || line.startsWith("#")) continue; + String[] parts = line.split(":", 2); + if (parts.length == 2) { + users.put(parts[0], parts[1]); + } + } + } + + public static boolean checkAuth(String login, String password) { + + String storedHash = users.get(login); + if (storedHash == null) return false; + + String hash = sha256(password); + return storedHash.equalsIgnoreCase(hash); + } + + private static String sha256(String input) { + try { + MessageDigest md = MessageDigest.getInstance("SHA-256"); + byte[] digest = md.digest(input.getBytes(StandardCharsets.UTF_8)); + StringBuilder sb = new StringBuilder(); + for (byte b : digest) sb.append(String.format("%02x", b)); + return sb.toString(); + } catch (Exception e) { + return ""; + } + } +} + diff --git a/src/main/java/github/openautonomousconnection/webserver/Main.java b/src/main/java/github/openautonomousconnection/webserver/Main.java new file mode 100644 index 0000000..dcb4ec5 --- /dev/null +++ b/src/main/java/github/openautonomousconnection/webserver/Main.java @@ -0,0 +1,533 @@ +package github.openautonomousconnection.webserver; + +import lombok.Getter; +import me.finn.unlegitlibrary.event.EventManager; +import me.finn.unlegitlibrary.file.ConfigurationManager; +import me.finn.unlegitlibrary.file.FileUtils; +import me.finn.unlegitlibrary.network.system.packets.PacketHandler; +import me.finn.unlegitlibrary.network.system.server.NetworkServer; +import me.finn.unlegitlibrary.network.utils.NetworkUtils; +import me.finn.unlegitlibrary.utils.Logger; +import org.apache.commons.fileupload2.core.DiskFileItemFactory; +import org.apache.commons.fileupload2.core.FileItem; +import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletFileUpload; +import org.apache.commons.fileupload2.jakarta.servlet6.JakartaServletRequestContext; + +import javax.net.ssl.SSLServerSocket; +import javax.net.ssl.SSLSocket; +import java.io.*; +import java.net.URLDecoder; +import java.nio.charset.StandardCharsets; +import java.nio.file.Files; +import java.security.MessageDigest; +import java.security.cert.CertificateException; +import java.time.Instant; +import java.time.ZonedDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; + +public class Main { + @Getter + private static NetworkServer pipelineServer; + private static File contentFolder; + private static File errorsFolder; + + public static final class ServerCertificateFolderStructure { + public final File certificatesFolder; + + public final File publicFolder; + public final File privateFolder; + + public final File privateCAFolder; + public final File privateServerFolder; + + public final File publicCAFolder; + public final File publicServerFolder; + + public ServerCertificateFolderStructure() { + certificatesFolder = new File("certificates"); + + publicFolder = new File(certificatesFolder, "public"); + privateFolder = new File(certificatesFolder, "private"); + + privateCAFolder = new File(privateFolder, "ca"); + privateServerFolder = new File(privateFolder, "server"); + + publicCAFolder = new File(publicFolder, "ca"); + publicServerFolder = new File(publicFolder, "server"); + + if (!certificatesFolder.exists()) certificatesFolder.mkdirs(); + + if (!publicFolder.exists()) publicFolder.mkdirs(); + if (!privateFolder.exists()) privateFolder.mkdirs(); + + if (!privateCAFolder.exists()) privateCAFolder.mkdirs(); + if (!privateServerFolder.exists()) privateServerFolder.mkdirs(); + + if (!publicCAFolder.exists()) publicCAFolder.mkdirs(); + if (!publicServerFolder.exists()) publicServerFolder.mkdirs(); + } + + public final String caPrefix = "ca_server_"; + public final String certPrefix = "cert_server_"; + } + + @Getter + private static ServerCertificateFolderStructure folderStructure; + + private static ExecutorService threadPool; + + public static void main(String[] args) throws Exception { + + folderStructure = new ServerCertificateFolderStructure(); + threadPool = Executors.newCachedThreadPool(); + + ConfigurationManager configurationManager = getConfigurationManager(); + + File certificatesFolder = new File("certificates"); + if (!certificatesFolder.exists()) certificatesFolder.mkdir(); + + contentFolder = new File("content"); + errorsFolder = new File("errors"); + + if (!contentFolder.exists()) contentFolder.mkdir(); + if (!errorsFolder.exists()) errorsFolder.mkdir(); + + File certFile = new File(folderStructure.publicServerFolder, folderStructure.certPrefix + NetworkUtils.getPublicIPAddress() + ".crt"); + File keyFile = new File(folderStructure.privateServerFolder, folderStructure.certPrefix + NetworkUtils.getPublicIPAddress() + ".key"); + + checkFileExists(folderStructure.publicServerFolder, folderStructure.certPrefix, ".crt"); + checkFileExists(folderStructure.privateServerFolder, folderStructure.certPrefix, ".key"); + + File authFile = new File("auth.pwd"); + File rulesFile = new File("rules.json"); + + if (!authFile.exists()) { + authFile.createNewFile(); + FileUtils.writeFile(authFile, """ + admin:5e884898da28047151d0e56f8dc6292773603d0d6aabbddab8f91d8e5f99f6c7 + user:e99a18c428cb38d5f260853678922e03abd8335f + """); + } + + if (!rulesFile.exists()) { + rulesFile.createNewFile(); + FileUtils.writeFile(rulesFile, """ + { + "allow": [ + "index.html", + "css/*", + "private/info.php" + ], + "deny": [ + "private/*" + ], + "auth": [ + "private/*", + "admin/*" + ] + } + """); + } + + AuthManager.loadAuthFile(authFile); + RuleManager.loadRules(rulesFile); + + pipelineServer = new NetworkServer.ServerBuilder(). + setPort(configurationManager.getInt("port.pipeline")).setTimeout(0). + setPacketHandler(new PacketHandler()).setEventManager(new EventManager()). + setLogger(new Logger(new File("logs"), false, true)). + setServerCertificate(certFile, keyFile).setRootCAFolder(folderStructure.publicCAFolder). + build(); + + pipelineServer.start(); + + SSLServerSocket webServer = (SSLServerSocket)NetworkServer.ServerBuilder. + createSSLServerSocketFactory(folderStructure.publicCAFolder, certFile,keyFile). + createServerSocket(configurationManager.getInt("port")); + webServer.setSoTimeout(0); + webServer.setEnabledProtocols(pipelineServer.getServerSocket().getEnabledProtocols()); + + // Stop WebServer if pipelineServer dies + new Thread(() -> { + while (true) { + if (!pipelineServer.getServerSocket().isBound()) { + try { + webServer.close(); + } catch (IOException e) { + pipelineServer.getLogger().exception("Failed to stop WebServer", e); + } finally { + Thread.currentThread().interrupt(); + break; + } + } + } + }).start(); + + new Thread(() -> { + while (true) { + try { + SSLSocket client = (SSLSocket) webServer.accept(); + threadPool.submit(() -> handleBrowser(client)); + } catch (IOException e) { + e.printStackTrace(); + } + } + }).start(); + } + + public static ConfigurationManager getConfigurationManager() throws IOException { + File configFile = new File("settings.properties"); + if (!configFile.exists()) configFile.createNewFile(); + + ConfigurationManager configurationManager = new ConfigurationManager(configFile); + configurationManager.loadProperties(); + + if (!configurationManager.isSet("port.webserver")) { + configurationManager.set("port.webserver", 9824); + configurationManager.saveProperties(); + } + + if (!configurationManager.isSet("port.pipeline")) { + configurationManager.set("port.pipeline", 9389); + configurationManager.saveProperties(); + } + + if (!configurationManager.isSet("filemaxuploadmb")) { + configurationManager.set("filemaxuploadmb", 1000); + configurationManager.saveProperties(); + } + + if (!configurationManager.isSet("sessionexpireminutes")) { + configurationManager.set("sessionexpireminutes", 60); + configurationManager.saveProperties(); + } + + return configurationManager; + } + + private static void checkFileExists(File folder, String prefix, String extension) throws CertificateException, IOException { + boolean found = false; + if (folder == null) throw new FileNotFoundException("Folder does not exist"); + + File[] files = folder.listFiles(); + if (files == null || files.length == 0) throw new FileNotFoundException("Folder " + folder.getAbsolutePath() + " is empty"); + + for (File file : files) { + if (!file.getName().startsWith(prefix) || !file.getName().endsWith(extension)) throw new CertificateException(file.getAbsolutePath() + " is not valid"); + if (!found) found = file.getName().equalsIgnoreCase(prefix + NetworkUtils.getPublicIPAddress() + extension); + } + + if (!found) throw new CertificateException("Missing " + prefix + NetworkUtils.getPublicIPAddress() + extension); + } + + private static void handleBrowser(SSLSocket client) { + try (InputStream in = client.getInputStream(); OutputStream out = client.getOutputStream()) { + BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); + String line; + String path = "/main.html"; + Map headers = new HashMap<>(); + while ((line = reader.readLine()) != null && !line.isEmpty()) { + if (line.toLowerCase().startsWith("get") || line.toLowerCase().startsWith("post")) { + path = line.split(" ")[1]; + } + if (line.contains(":")) { + String[] parts = line.split(":", 2); + headers.put(parts[0].trim().toLowerCase(), parts[1].trim()); + } + } + + path = URLDecoder.decode(path, StandardCharsets.UTF_8); + path = normalizePath(path); + + File file = new File(contentFolder, path); + + String sessionId = null; + if (headers.containsKey("cookie")) { + for (String cookie : headers.get("cookie").split(";")) { + cookie = cookie.trim(); + if (cookie.startsWith("SESSIONID=")) { + sessionId = cookie.substring("SESSIONID=".length()); + } + } + } + + if (!file.exists() || !file.isFile()) { + sendResponse(out, 404, new File(errorsFolder, "404.html")); + return; + } + + String clientIp = client.getInetAddress().getHostAddress(); + String userAgent = headers.getOrDefault("user-agent", null); + + boolean loggedIn = sessionId != null && SessionManager.isValid(sessionId, clientIp, userAgent); + + if (path.equals("/403-login") && headers.getOrDefault("content-type","").startsWith("application/x-www-form-urlencoded")) { + Map postParams = parsePostParams(in); + String login = postParams.get("login"); + String password = postParams.get("password"); + + if (AuthManager.checkAuth(login, password)) { + String newSessionId = SessionManager.create(login, clientIp, userAgent); + Map cookies = Map.of("Set-Cookie", "SESSIONID=" + newSessionId + "; HttpOnly; Path=/"); + sendRedirect(out, "/main.html", cookies); + return; + } else { + sendRedirect(out, "/403.php", null); + return; + } + } + + if (isMultipart(headers)) { + handleMultipart(in, headers, new File(contentFolder, "uploads")); + } + + if (RuleManager.requiresAuth(path) && !loggedIn) { + PHPResponse phpResp = renderPHPWithCookies(new File(contentFolder, "403.php")); + sendResponse(out, 200, phpResp.body.getBytes(StandardCharsets.UTF_8), "text/html", phpResp.cookies); + return; + } + + + if (RuleManager.isDenied(path) && !RuleManager.isAllowed(path)) { + sendResponse(out, 403, new File(errorsFolder, "403.php")); + return; + } + + if (path.endsWith(".php")) { + PHPResponse phpResp = renderPHPWithCookies(file); + sendResponse(out, 200, phpResp.body.getBytes(StandardCharsets.UTF_8), "text/html", phpResp.cookies); + } else { + sendResponse(out, 200, Files.readAllBytes(file.toPath()), getContentType(path), null); + } + + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { client.close(); } catch (IOException ignored) {} + } + } + + private static void sendRedirect(OutputStream out, String location, Map cookies) throws IOException { + out.write(("HTTP/1.1 302 Found\r\n").getBytes()); + out.write(("Location: " + location + "\r\n").getBytes()); + if (cookies != null) { + for (var entry : cookies.entrySet()) { + out.write((entry.getKey() + ": " + entry.getValue() + "\r\n").getBytes()); + } + } + out.write("\r\n".getBytes()); + out.flush(); + } + + private static Map parsePostParams(InputStream in) throws IOException { + BufferedReader reader = new BufferedReader(new InputStreamReader(in, StandardCharsets.UTF_8)); + StringBuilder sb = new StringBuilder(); + while (reader.ready()) { + sb.append((char) reader.read()); + } + Map map = new HashMap<>(); + String[] pairs = sb.toString().split("&"); + for (String p : pairs) { + String[] kv = p.split("=",2); + if (kv.length == 2) map.put(URLDecoder.decode(kv[0], StandardCharsets.UTF_8), URLDecoder.decode(kv[1], StandardCharsets.UTF_8)); + } + return map; + } + + private static String normalizePath(String path) { + path = path.replace("/", File.separator).replace("\\","/"); + while (path.contains("..")) path = path.replace("..", ""); + if (path.startsWith("/")) path = path.substring(1); + return path; + } + + private static Map parseQueryParams(String rawPath) { + Map map = new HashMap<>(); + if (rawPath.contains("?")) { + String[] params = rawPath.substring(rawPath.indexOf("?") + 1).split("&"); + for (String p : params) { + String[] kv = p.split("="); + if (kv.length == 2) map.put(kv[0], kv[1]); + } + } + return map; + } + + private static boolean isMultipart(Map headers) { + String contentType = headers.get("content-type"); + return contentType != null && contentType.startsWith("multipart/form-data"); + } + + private static void handleMultipart(InputStream in, Map headers, File uploadDir) throws IOException { + if (!uploadDir.exists()) uploadDir.mkdirs(); + + String contentType = headers.get("content-type"); + String boundary = "--" + contentType.split("boundary=")[1]; + + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + byte[] lineBuffer = new byte[8192]; + int read; + while ((read = in.read(lineBuffer)) != -1) { + buffer.write(lineBuffer, 0, read); + if (buffer.size() > 10 * 1024 * 1024) break; // 10 MB max + } + + String data = buffer.toString(StandardCharsets.UTF_8); + String[] parts = data.split(boundary); + + for (String part : parts) { + if (part.contains("Content-Disposition")) { + String name = null; + String filename = null; + + for (String headerLine : part.split("\r\n")) { + if (headerLine.startsWith("Content-Disposition")) { + if (headerLine.contains("filename=\"")) { + int start = headerLine.indexOf("filename=\"") + 10; + int end = headerLine.indexOf("\"", start); + filename = headerLine.substring(start, end); + } + if (headerLine.contains("name=\"")) { + int start = headerLine.indexOf("name=\"") + 6; + int end = headerLine.indexOf("\"", start); + name = headerLine.substring(start, end); + } + } + } + + if (filename != null && !filename.isEmpty()) { + int headerEnd = part.indexOf("\r\n\r\n"); + byte[] fileData = part.substring(headerEnd + 4).getBytes(StandardCharsets.UTF_8); + File outFile = new File(uploadDir, filename); + Files.write(outFile.toPath(), fileData); + } + } + } + } + + private static String renderPHP(File file) throws IOException, InterruptedException { + ProcessBuilder pb = new ProcessBuilder("php", file.getAbsolutePath()); + pb.redirectErrorStream(true); + Process p = pb.start(); + ByteArrayOutputStream output = new ByteArrayOutputStream(); + InputStream processIn = p.getInputStream(); + byte[] buf = new byte[8192]; + int read; + while ((read = processIn.read(buf)) != -1) { + output.write(buf, 0, read); + } + p.waitFor(); + return output.toString(StandardCharsets.UTF_8); + } + + private static void sendResponse(OutputStream out, int code, File file, Map headers) throws IOException { + byte[] body = Files.readAllBytes(file.toPath()); + sendResponse(out, code, body, "text/html", headers); + } + + private static void sendResponse(OutputStream out, int code, File file) throws IOException { + sendResponse(out, code, Files.readString(file.toPath()), "text/html"); + } + + private static void sendResponse(OutputStream out, int code, String body, String contentType) throws IOException { + sendResponse(out, code, body.getBytes(StandardCharsets.UTF_8), contentType, null); + } + + private static void sendResponse(OutputStream out, int code, File file, String contentType) throws IOException { + byte[] bytes = Files.readAllBytes(file.toPath()); + sendResponse(out, code, bytes, contentType, null); + } + + private static void sendResponse(OutputStream out, int code, byte[] body, String contentType, Map headers) throws IOException { + out.write(("HTTP/1.1 " + code + " " + getStatusText(code) + "\r\n").getBytes()); + out.write(("Content-Type: " + contentType + "\r\n").getBytes()); + out.write(("Content-Length: " + body.length + "\r\n").getBytes()); + if (headers != null) headers.forEach((k, v) -> { + try { out.write((k + ": " + v + "\r\n").getBytes()); } catch (IOException ignored) {} + }); + out.write("\r\n".getBytes()); + out.write(body); + out.flush(); + } + + private static String getStatusText(int code) { + return switch (code) { + case 200 -> "OK"; + case 301 -> "Moved Permanently"; + case 302 -> "Found"; + case 400 -> "Bad Request"; + case 401 -> "Unauthorized"; + case 403 -> "Forbidden"; + case 404 -> "Not Found"; + case 500 -> "Internal Server Error"; + default -> "Unknown"; + }; + } + + private static String getContentType(String name) { + return switch (name.substring(name.lastIndexOf('.') + 1).toLowerCase()) { + case "html", "php" -> "text/html"; + case "js" -> "text/javascript"; + case "css" -> "text/css"; + case "json" -> "application/json"; + case "png" -> "image/png"; + case "jpg", "jpeg" -> "image/jpeg"; + case "mp4" -> "video/mp4"; + case "mp3" -> "audio/mpeg3"; + case "wav" -> "audio/wav"; + case "pdf" -> "application/pdf"; + default -> "text/plain"; + }; + } + + private static PHPResponse renderPHPWithCookies(File file) throws IOException, InterruptedException { + ProcessBuilder pb = new ProcessBuilder("php", file.getAbsolutePath()); + pb.redirectErrorStream(true); + Process p = pb.start(); + + ByteArrayOutputStream output = new ByteArrayOutputStream(); + InputStream processIn = p.getInputStream(); + byte[] buf = new byte[8192]; + int read; + while ((read = processIn.read(buf)) != -1) { + output.write(buf, 0, read); + } + p.waitFor(); + + String fullOutput = output.toString(StandardCharsets.UTF_8); + Map cookies = new HashMap<>(); + + String[] parts = fullOutput.split("\r\n\r\n", 2); + String body; + if (parts.length == 2) { + String headers = parts[0]; + body = parts[1]; + for (String headerLine : headers.split("\r\n")) { + if (headerLine.toLowerCase().startsWith("set-cookie:")) { + String cookie = headerLine.substring("set-cookie:".length()).trim(); + String[] kv = cookie.split(";", 2); + String[] pair = kv[0].split("=", 2); + if (pair.length == 2) cookies.put(pair[0], pair[1]); + } + } + } else { + body = fullOutput; + } + + return new PHPResponse(body, cookies); + } + + private static class PHPResponse { + String body; + Map cookies; + + public PHPResponse(String body, Map cookies) { + this.body = body; + this.cookies = cookies; + } + } + +} \ No newline at end of file diff --git a/src/main/java/github/openautonomousconnection/webserver/RuleManager.java b/src/main/java/github/openautonomousconnection/webserver/RuleManager.java new file mode 100644 index 0000000..b0e7a87 --- /dev/null +++ b/src/main/java/github/openautonomousconnection/webserver/RuleManager.java @@ -0,0 +1,39 @@ +package github.openautonomousconnection.webserver; + +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; +import java.io.File; +import java.nio.file.Files; +import java.util.List; +import java.util.Map; + +public class RuleManager { + private static List allow; + private static List deny; + private static List auth; + + public static void loadRules(File rulesFile) throws Exception { + String json = new String(Files.readAllBytes(rulesFile.toPath())); + Map> map = new Gson().fromJson(json, new TypeToken>>(){}.getType()); + allow = map.getOrDefault("allow", List.of()); + deny = map.getOrDefault("deny", List.of()); + auth = map.getOrDefault("auth", List.of()); + } + + public static boolean isAllowed(String path) { + return allow.stream().anyMatch(p -> pathMatches(path, p)); + } + + public static boolean isDenied(String path) { + return deny.stream().anyMatch(p -> pathMatches(path, p)); + } + + public static boolean requiresAuth(String path) { + return auth.stream().anyMatch(p -> pathMatches(path, p)); + } + + private static boolean pathMatches(String path, String pattern) { + pattern = pattern.replace("/", File.separator).replace("*", ".*"); + return path.matches(pattern); + } +} diff --git a/src/main/java/github/openautonomousconnection/webserver/SessionManager.java b/src/main/java/github/openautonomousconnection/webserver/SessionManager.java new file mode 100644 index 0000000..19b9ae9 --- /dev/null +++ b/src/main/java/github/openautonomousconnection/webserver/SessionManager.java @@ -0,0 +1,79 @@ +package github.openautonomousconnection.webserver; + +import lombok.Getter; + +import java.io.IOException; +import java.security.SecureRandom; +import java.util.Base64; +import java.util.Map; +import java.util.concurrent.ConcurrentHashMap; + +public class SessionManager { + + private static final Map sessions = new ConcurrentHashMap<>(); + private static final SecureRandom secureRandom = new SecureRandom(); + + private static class Session { + @Getter + String login; + String ip; + String userAgent; + long expiresAt; + + Session(String login, String ip, String userAgent) throws IOException { + this.login = login; + this.ip = ip; + this.userAgent = userAgent; + this.expiresAt = System.currentTimeMillis() + (long) Main.getConfigurationManager().getInt("sessionexpireminutes") * 60 * 1000;;; + } + + boolean isExpired() { + return System.currentTimeMillis() > expiresAt; + } + + boolean matches(String ip, String userAgent) { + return this.ip.equals(ip) && this.userAgent.equals(userAgent); + } + + void refresh() throws IOException { + this.expiresAt = System.currentTimeMillis() + (long) Main.getConfigurationManager().getInt("sessionexpireminutes") * 60 * 1000;;; + } + } + + public static String create(String login, String ip, String userAgent) throws IOException { + byte[] bytes = new byte[32]; + secureRandom.nextBytes(bytes); + String sessionId = Base64.getUrlEncoder().withoutPadding().encodeToString(bytes); + sessions.put(sessionId, new Session(login, ip, userAgent)); + return sessionId; + } + + public static boolean isValid(String sessionId, String ip, String userAgent) throws IOException { + Session session = sessions.get(sessionId); + if (session == null || session.isExpired() || !session.matches(ip, userAgent)) { + sessions.remove(sessionId); + return false; + } + + session.refresh(); + return true; + } + + public static void invalidate(String sessionId) { + sessions.remove(sessionId); + } + + public static String getUser(String sessionId) { + Session session = sessions.get(sessionId); + if (session == null || session.isExpired()) { + sessions.remove(sessionId); + return null; + } + return session.getLogin(); + } + + public static void cleanupExpiredSessions() { + long now = System.currentTimeMillis(); + sessions.entrySet().removeIf(entry -> entry.getValue().isExpired()); + } +}