Add license file, and modify readme.md.Add Flag&Raw mode
This commit is contained in:
Vendored
+244
@@ -811,3 +811,247 @@ Stack trace:
|
||||
2024-01-29 08:29:51 pid:7583 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-29 08:31:33 pid:7583 Workerman[start.php] stopping ...
|
||||
2024-01-29 08:31:33 pid:7583 Workerman[start.php] has been stopped
|
||||
2024-01-30 05:45:51 pid:3591 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 05:56:47 pid:3591 Workerman[start.php] stopping ...
|
||||
2024-01-30 05:56:47 pid:3591 Workerman[start.php] has been stopped
|
||||
2024-01-30 05:56:47 pid:4659 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 06:09:39 pid:4659 Workerman[start.php] stopping ...
|
||||
2024-01-30 06:09:39 pid:4659 Workerman[start.php] has been stopped
|
||||
2024-01-30 13:46:59 pid:14283 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 13:47:51 pid:14284 Error: Cannot use object of type stdClass as array in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:300
|
||||
Stack trace:
|
||||
#0 /www/Workerman-DNS/vendor/workerman/workerman/Connection/UdpConnection.php(73): Workerman\Protocols\Dns::encode()
|
||||
#1 /www/Workerman-DNS/start.php(180): Workerman\Connection\UdpConnection->send()
|
||||
#2 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2569): {closure}()
|
||||
#3 [internal function]: Workerman\Worker->acceptUdpConnection()
|
||||
#4 /www/Workerman-DNS/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
|
||||
#5 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2463): Workerman\Events\Event->loop()
|
||||
#6 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1574): Workerman\Worker->run()
|
||||
#7 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1416): Workerman\Worker::forkOneWorkerForLinux()
|
||||
#8 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1390): Workerman\Worker::forkWorkersForLinux()
|
||||
#9 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(557): Workerman\Worker::forkWorkers()
|
||||
#10 /www/Workerman-DNS/start.php(184): Workerman\Worker::runAll()
|
||||
#11 {main}
|
||||
2024-01-30 13:47:51 pid:14283 worker[none:14284] exit with status 64000
|
||||
2024-01-30 13:47:53 pid:14283 Workerman[start.php] stopping ...
|
||||
2024-01-30 13:47:53 pid:14283 Workerman[start.php] has been stopped
|
||||
2024-01-30 13:49:09 pid:14608 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 13:49:12 pid:14609 Error: Cannot use object of type stdClass as array in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:301
|
||||
Stack trace:
|
||||
#0 /www/Workerman-DNS/vendor/workerman/workerman/Connection/UdpConnection.php(73): Workerman\Protocols\Dns::encode()
|
||||
#1 /www/Workerman-DNS/start.php(180): Workerman\Connection\UdpConnection->send()
|
||||
#2 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2569): {closure}()
|
||||
#3 [internal function]: Workerman\Worker->acceptUdpConnection()
|
||||
#4 /www/Workerman-DNS/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
|
||||
#5 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2463): Workerman\Events\Event->loop()
|
||||
#6 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1574): Workerman\Worker->run()
|
||||
#7 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1416): Workerman\Worker::forkOneWorkerForLinux()
|
||||
#8 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1390): Workerman\Worker::forkWorkersForLinux()
|
||||
#9 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(557): Workerman\Worker::forkWorkers()
|
||||
#10 /www/Workerman-DNS/start.php(184): Workerman\Worker::runAll()
|
||||
#11 {main}
|
||||
2024-01-30 13:49:12 pid:14608 worker[none:14609] exit with status 64000
|
||||
2024-01-30 13:49:53 pid:14608 Workerman[start.php] stopping ...
|
||||
2024-01-30 13:49:53 pid:14608 Workerman[start.php] has been stopped
|
||||
2024-01-30 13:49:53 pid:14716 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 13:52:30 pid:14716 Workerman[start.php] stopping ...
|
||||
2024-01-30 13:52:30 pid:14716 Workerman[start.php] has been stopped
|
||||
2024-01-30 13:52:31 pid:15036 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 13:57:14 pid:15036 Workerman[start.php] stopping ...
|
||||
2024-01-30 13:57:14 pid:15036 Workerman[start.php] has been stopped
|
||||
2024-01-30 13:57:14 pid:15609 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:04:37 pid:15609 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:04:37 pid:15609 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:04:40 pid:16331 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:05:39 pid:16331 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:05:39 pid:16331 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:05:40 pid:16528 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:06:02 pid:16528 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:06:02 pid:16528 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:06:03 pid:16617 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:12:35 pid:16617 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:12:35 pid:16617 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:12:35 pid:17252 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:12:53 pid:17252 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:12:53 pid:17252 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:12:53 pid:17320 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:13:28 pid:17320 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:13:28 pid:17320 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:13:29 pid:17415 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:13:54 pid:17415 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:13:54 pid:17415 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:13:54 pid:17489 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:15:00 pid:17489 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:15:00 pid:17489 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:15:01 pid:17626 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:17:41 pid:17626 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:17:41 pid:17626 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:17:41 pid:17913 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:18:25 pid:17913 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:18:25 pid:17913 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:18:26 pid:18020 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:19:30 pid:18020 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:19:30 pid:18020 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:19:30 pid:18154 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:20:59 pid:18154 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:20:59 pid:18154 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:21:01 pid:18337 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:21:22 pid:18337 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:21:22 pid:18337 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:21:22 pid:18429 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:22:16 pid:18429 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:22:16 pid:18429 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:22:17 pid:18587 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:22:58 pid:18587 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:22:58 pid:18587 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:22:58 pid:18693 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:23:11 pid:18693 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:23:11 pid:18693 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:23:12 pid:18755 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:23:29 pid:18755 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:23:29 pid:18755 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:23:29 pid:18817 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:23:56 pid:18817 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:23:56 pid:18817 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:23:57 pid:18912 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:31:03 pid:18912 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:31:03 pid:18912 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:31:14 pid:19625 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:31:33 pid:19625 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:31:33 pid:19625 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:31:34 pid:19693 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:35:02 pid:19693 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:35:02 pid:19693 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:35:02 pid:20047 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:35:05 pid:20048 Error: Call to undefined function Workerman\Protocols\test() in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:25
|
||||
Stack trace:
|
||||
#0 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2561): Workerman\Protocols\Dns::input()
|
||||
#1 [internal function]: Workerman\Worker->acceptUdpConnection()
|
||||
#2 /www/Workerman-DNS/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
|
||||
#3 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2463): Workerman\Events\Event->loop()
|
||||
#4 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1574): Workerman\Worker->run()
|
||||
#5 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1416): Workerman\Worker::forkOneWorkerForLinux()
|
||||
#6 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1390): Workerman\Worker::forkWorkersForLinux()
|
||||
#7 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(557): Workerman\Worker::forkWorkers()
|
||||
#8 /www/Workerman-DNS/start.php(208): Workerman\Worker::runAll()
|
||||
#9 {main}
|
||||
2024-01-30 14:35:05 pid:20047 worker[none:20048] exit with status 64000
|
||||
2024-01-30 14:35:07 pid:20067 Error: Call to undefined function Workerman\Protocols\test() in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:25
|
||||
Stack trace:
|
||||
#0 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2561): Workerman\Protocols\Dns::input()
|
||||
#1 [internal function]: Workerman\Worker->acceptUdpConnection()
|
||||
#2 /www/Workerman-DNS/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
|
||||
#3 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2463): Workerman\Events\Event->loop()
|
||||
#4 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1574): Workerman\Worker->run()
|
||||
#5 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1416): Workerman\Worker::forkOneWorkerForLinux()
|
||||
#6 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1390): Workerman\Worker::forkWorkersForLinux()
|
||||
#7 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1720): Workerman\Worker::forkWorkers()
|
||||
#8 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1660): Workerman\Worker::monitorWorkersForLinux()
|
||||
#9 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(559): Workerman\Worker::monitorWorkers()
|
||||
#10 /www/Workerman-DNS/start.php(208): Workerman\Worker::runAll()
|
||||
#11 {main}
|
||||
2024-01-30 14:35:07 pid:20047 worker[none:20067] exit with status 64000
|
||||
2024-01-30 14:35:09 pid:20074 Error: Call to undefined function Workerman\Protocols\test() in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:25
|
||||
Stack trace:
|
||||
#0 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2561): Workerman\Protocols\Dns::input()
|
||||
#1 [internal function]: Workerman\Worker->acceptUdpConnection()
|
||||
#2 /www/Workerman-DNS/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
|
||||
#3 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2463): Workerman\Events\Event->loop()
|
||||
#4 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1574): Workerman\Worker->run()
|
||||
#5 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1416): Workerman\Worker::forkOneWorkerForLinux()
|
||||
#6 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1390): Workerman\Worker::forkWorkersForLinux()
|
||||
#7 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1720): Workerman\Worker::forkWorkers()
|
||||
#8 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1660): Workerman\Worker::monitorWorkersForLinux()
|
||||
#9 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(559): Workerman\Worker::monitorWorkers()
|
||||
#10 /www/Workerman-DNS/start.php(208): Workerman\Worker::runAll()
|
||||
#11 {main}
|
||||
2024-01-30 14:35:09 pid:20047 worker[none:20074] exit with status 64000
|
||||
2024-01-30 14:35:11 pid:20093 Error: Call to undefined function Workerman\Protocols\test() in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:25
|
||||
Stack trace:
|
||||
#0 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2561): Workerman\Protocols\Dns::input()
|
||||
#1 [internal function]: Workerman\Worker->acceptUdpConnection()
|
||||
#2 /www/Workerman-DNS/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
|
||||
#3 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2463): Workerman\Events\Event->loop()
|
||||
#4 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1574): Workerman\Worker->run()
|
||||
#5 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1416): Workerman\Worker::forkOneWorkerForLinux()
|
||||
#6 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1390): Workerman\Worker::forkWorkersForLinux()
|
||||
#7 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1720): Workerman\Worker::forkWorkers()
|
||||
#8 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1660): Workerman\Worker::monitorWorkersForLinux()
|
||||
#9 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(559): Workerman\Worker::monitorWorkers()
|
||||
#10 /www/Workerman-DNS/start.php(208): Workerman\Worker::runAll()
|
||||
#11 {main}
|
||||
2024-01-30 14:35:11 pid:20047 worker[none:20093] exit with status 64000
|
||||
2024-01-30 14:35:13 pid:20097 Error: Call to undefined function Workerman\Protocols\test() in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:25
|
||||
Stack trace:
|
||||
#0 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2561): Workerman\Protocols\Dns::input()
|
||||
#1 [internal function]: Workerman\Worker->acceptUdpConnection()
|
||||
#2 /www/Workerman-DNS/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
|
||||
#3 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2463): Workerman\Events\Event->loop()
|
||||
#4 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1574): Workerman\Worker->run()
|
||||
#5 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1416): Workerman\Worker::forkOneWorkerForLinux()
|
||||
#6 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1390): Workerman\Worker::forkWorkersForLinux()
|
||||
#7 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1720): Workerman\Worker::forkWorkers()
|
||||
#8 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1660): Workerman\Worker::monitorWorkersForLinux()
|
||||
#9 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(559): Workerman\Worker::monitorWorkers()
|
||||
#10 /www/Workerman-DNS/start.php(208): Workerman\Worker::runAll()
|
||||
#11 {main}
|
||||
2024-01-30 14:35:13 pid:20047 worker[none:20097] exit with status 64000
|
||||
2024-01-30 14:35:16 pid:20047 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:35:16 pid:20047 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:35:17 pid:20128 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:35:18 pid:20129 Worker[20129] process terminated with ERROR: E_ERROR "Cannot redeclare Workerman\Protocols\test() (previously declared in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:24) in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php on line 23"
|
||||
2024-01-30 14:35:18 pid:20128 worker[none:20129] exit with status 65280
|
||||
2024-01-30 14:35:52 pid:20128 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:35:52 pid:20128 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:35:52 pid:20231 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:35:57 pid:20232 Error: Call to undefined function Workerman\Protocols\test() in /www/Workerman-DNS/vendor/workerman/workerman/Protocols/Dns.php:26
|
||||
Stack trace:
|
||||
#0 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2561): Workerman\Protocols\Dns::input()
|
||||
#1 [internal function]: Workerman\Worker->acceptUdpConnection()
|
||||
#2 /www/Workerman-DNS/vendor/workerman/workerman/Events/Event.php(193): EventBase->loop()
|
||||
#3 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(2463): Workerman\Events\Event->loop()
|
||||
#4 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1574): Workerman\Worker->run()
|
||||
#5 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1416): Workerman\Worker::forkOneWorkerForLinux()
|
||||
#6 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(1390): Workerman\Worker::forkWorkersForLinux()
|
||||
#7 /www/Workerman-DNS/vendor/workerman/workerman/Worker.php(557): Workerman\Worker::forkWorkers()
|
||||
#8 /www/Workerman-DNS/start.php(208): Workerman\Worker::runAll()
|
||||
#9 {main}
|
||||
2024-01-30 14:35:57 pid:20231 worker[none:20232] exit with status 64000
|
||||
2024-01-30 14:36:40 pid:20231 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:36:40 pid:20231 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:36:45 pid:20379 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:39:24 pid:20379 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:39:24 pid:20379 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:39:24 pid:20664 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:40:04 pid:20664 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:40:04 pid:20664 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:40:05 pid:20769 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:40:10 pid:20769 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:40:10 pid:20769 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:40:52 pid:20903 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:57:37 pid:20903 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:57:37 pid:20903 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:57:38 pid:22573 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 14:58:21 pid:22573 Workerman[start.php] stopping ...
|
||||
2024-01-30 14:58:21 pid:22573 Workerman[start.php] has been stopped
|
||||
2024-01-30 14:58:22 pid:22698 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 15:05:04 pid:22698 Workerman[start.php] stopping ...
|
||||
2024-01-30 15:05:04 pid:22698 Workerman[start.php] has been stopped
|
||||
2024-01-30 15:05:05 pid:23387 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 15:05:49 pid:23387 Workerman[start.php] stopping ...
|
||||
2024-01-30 15:05:49 pid:23387 Workerman[start.php] has been stopped
|
||||
2024-01-30 15:05:50 pid:23494 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 15:07:52 pid:23494 Workerman[start.php] stopping ...
|
||||
2024-01-30 15:07:52 pid:23494 Workerman[start.php] has been stopped
|
||||
2024-01-30 15:07:53 pid:23741 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 15:07:58 pid:23741 Workerman[start.php] stopping ...
|
||||
2024-01-30 15:07:58 pid:23741 Workerman[start.php] has been stopped
|
||||
2024-01-30 15:07:58 pid:23769 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 15:08:05 pid:23769 Workerman[start.php] stopping ...
|
||||
2024-01-30 15:08:05 pid:23769 Workerman[start.php] has been stopped
|
||||
2024-01-30 15:08:06 pid:23825 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 15:16:03 pid:23825 Workerman[start.php] stopping ...
|
||||
2024-01-30 15:16:03 pid:23825 Workerman[start.php] has been stopped
|
||||
2024-01-30 16:25:24 pid:30921 Workerman[start.php] start in DEBUG mode
|
||||
2024-01-30 16:25:31 pid:30921 Workerman[start.php] stopping ...
|
||||
2024-01-30 16:25:31 pid:30921 Workerman[start.php] has been stopped
|
||||
|
||||
+95
-92
@@ -10,6 +10,15 @@
|
||||
namespace Workerman\Protocols;
|
||||
class Dns
|
||||
{
|
||||
public static function send($response,$query,$info){
|
||||
$response=hex2bin($response);
|
||||
$traffic=strlen($response);
|
||||
$info=json_decode($info);
|
||||
#var_dump($info);
|
||||
#出流量统计
|
||||
#您也可以在此处保存$response,下一次通过raw类型实现快速缓存相应.
|
||||
return $response;
|
||||
}
|
||||
/**
|
||||
* 检查包的完整性
|
||||
* 如果能够得到包长,则返回包的在buffer中的长度,否则返回0继续等待数据
|
||||
@@ -19,8 +28,7 @@ class Dns
|
||||
*/
|
||||
public static function input($buffer)
|
||||
{
|
||||
|
||||
return 200;
|
||||
return 512;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -34,6 +42,39 @@ class Dns
|
||||
$buffer=json_decode($buffer);
|
||||
$type=$buffer->type;
|
||||
switch($type){
|
||||
case 'raw':
|
||||
return Dns::send($buffer->detail,$buffer->query,$buffer->info);
|
||||
break;
|
||||
case 'flag':
|
||||
if($buffer->flag=='NXDOMAIN'){
|
||||
$status='8183';
|
||||
$questions='0001';
|
||||
$AnswerRRs='0000';
|
||||
$AuthorityRRs='0001';
|
||||
/**
|
||||
* NXDOMAIN应当返回SOA记录,主要内容是TTL,LDNS会在SOA的TTL到期前缓存该FLAG,否则会被LDNS递归时拒绝
|
||||
*/
|
||||
$AdditionalRRs='0000';
|
||||
$response=$buffer->id.$status.$questions.$AnswerRRs.$AuthorityRRs.$AdditionalRRs.$buffer->query;
|
||||
return Dns::send($response,$buffer->query,$buffer->info);
|
||||
}elseif($buffer->flag=='SERVFAIL'){
|
||||
$status='8182';
|
||||
$questions='0001';
|
||||
$AnswerRRs='0000';
|
||||
$AuthorityRRs='0000';
|
||||
$AdditionalRRs='0000';
|
||||
$response=$buffer->id.$status.$questions.$AnswerRRs.$AuthorityRRs.$AdditionalRRs.$buffer->query;
|
||||
return Dns::send($response,$buffer->query,$buffer->info);
|
||||
}elseif($buffer->flag=='REFUSE'){
|
||||
$status='8185';
|
||||
$questions='0001';
|
||||
$AnswerRRs='0000';
|
||||
$AuthorityRRs='0000';
|
||||
$AdditionalRRs='0000';
|
||||
$response=$buffer->id.$status.$questions.$AnswerRRs.$AuthorityRRs.$AdditionalRRs.$buffer->query;
|
||||
return Dns::send($response,$buffer->query,$buffer->info);
|
||||
}
|
||||
break;
|
||||
case 'A':
|
||||
$type='0001';
|
||||
#$lenth='0004';
|
||||
@@ -150,7 +191,7 @@ class Dns
|
||||
$AnswerRRs=str_pad((count((array)$ip)+1),4,"0",STR_PAD_LEFT);
|
||||
|
||||
$response=$buffer->id.$status.$questions.$AnswerRRs.$AuthorityRRs.$AdditionalRRs.$buffer->query.$answer;
|
||||
return hex2bin($response);
|
||||
return Dns::send($response,$buffer->query,$buffer->info);
|
||||
|
||||
break;
|
||||
case 'CNAME+AAAA':
|
||||
@@ -201,14 +242,14 @@ class Dns
|
||||
$AnswerRRs=str_pad((count((array)$ip)+1),4,"0",STR_PAD_LEFT);
|
||||
|
||||
$response=$buffer->id.$status.$questions.$AnswerRRs.$AuthorityRRs.$AdditionalRRs.$buffer->query.$answer;
|
||||
return hex2bin($response);
|
||||
return Dns::send($response,$buffer->query,$buffer->info);
|
||||
|
||||
break;
|
||||
case 'SOA':
|
||||
$type='0006';
|
||||
$ns=$buffer->detail;
|
||||
$ns=json_decode( json_encode( $ns),true);
|
||||
if($ns['type']=='none'){
|
||||
if($ns['type']=='auto'){
|
||||
$Rns=dns_get_record($ns['name'],DNS_SOA);
|
||||
$Rns=$Rns[0];
|
||||
$ns=$Rns;
|
||||
@@ -282,24 +323,31 @@ class Dns
|
||||
case 'none':
|
||||
$type='0006';
|
||||
$ns=$buffer->detail;
|
||||
$url=$ns;
|
||||
while(true){
|
||||
preg_match("#\.(.*)#i",$url,$match);//获取根域名
|
||||
$domin = $match[1];
|
||||
$soa=dns_get_record($domin,DNS_SOA);
|
||||
if(array_key_exists('0',$soa)){
|
||||
if(array_key_exists('mname',$soa[0])){
|
||||
$qname=$domin;
|
||||
$ns=$soa[0];
|
||||
break;
|
||||
$ns=json_decode( json_encode( $ns),true);
|
||||
var_dump($ns);
|
||||
|
||||
if($ns['type']=='auto'){
|
||||
$ns=$ns['name'];
|
||||
$url=$ns;
|
||||
while(true){
|
||||
preg_match("#\.(.*)#i",$url,$match);//获取根域名
|
||||
$domin = $match[1];
|
||||
$soa=dns_get_record($domin,DNS_SOA);
|
||||
if(array_key_exists('0',$soa)){
|
||||
if(array_key_exists('mname',$soa[0])){
|
||||
$qname=$domin;
|
||||
$ns=$soa[0];
|
||||
break;
|
||||
}else{
|
||||
$url=$domin;
|
||||
}
|
||||
}else{
|
||||
$url=$domin;
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$url=$domin;
|
||||
$qname=$ns['qname'];
|
||||
}
|
||||
}else{
|
||||
$url=$domin;
|
||||
}
|
||||
}
|
||||
|
||||
$nss=explode('.',$ns['mname']);
|
||||
$detail='';
|
||||
foreach($nss as $part){
|
||||
@@ -340,7 +388,7 @@ class Dns
|
||||
$answer='';
|
||||
$answer=$answer.$qname.$type.'0001'.$ttl.$lenth.$detail;
|
||||
$response=$buffer->id.$status.$questions.$AnswerRRs.$AuthorityRRs.$AdditionalRRs.$buffer->query.$answer;
|
||||
return hex2bin($response);
|
||||
return Dns::send($response,$buffer->query,$buffer->info);
|
||||
break;
|
||||
}
|
||||
$ttl=str_pad(dechex($buffer->ttl),8,"0",STR_PAD_LEFT);
|
||||
@@ -358,7 +406,8 @@ class Dns
|
||||
$answer=$answer.'C00C'.$type.'0001'.$ttl.$rlenth.$c;
|
||||
}
|
||||
$response=$buffer->id.$status.$questions.$AnswerRRs.$AuthorityRRs.$AdditionalRRs.$buffer->query.$answer;
|
||||
return hex2bin($response);
|
||||
$traffic=strlen(hex2bin($response));
|
||||
return Dns::send($response,$buffer->query,$buffer->info);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -369,12 +418,27 @@ class Dns
|
||||
*/
|
||||
public static function decode($buffer)
|
||||
{
|
||||
/**
|
||||
$data=bin2hex($buffer);
|
||||
echo $data;
|
||||
$id=substr($data,0,4);
|
||||
$flag=substr($data,5,4);
|
||||
$type=substr($data,-8,4);
|
||||
$traffic=strlen($buffer);#接收流量
|
||||
$data=bin2hex($buffer);
|
||||
$id=substr($data,0,4);
|
||||
$flag=substr($data,4,4);
|
||||
$questions=substr($data,8,4);
|
||||
$answerRRs=substr($data,12,4);
|
||||
$authorityRRs=substr($data,16,4);
|
||||
$additionalRRs=substr($data,20,4);
|
||||
$startbyte=24;
|
||||
$dlen=substr($data,$startbyte,2);
|
||||
$startbyte=26;
|
||||
$i=1;
|
||||
while($dlen!='00'){
|
||||
$domain[$i]=hex2bin(substr($data,$startbyte,hexdec($dlen)*2));
|
||||
$startbyte=$startbyte+(hexdec($dlen)*2);
|
||||
$dlen=substr($data,$startbyte,2);
|
||||
$startbyte=$startbyte+2;
|
||||
$i++;
|
||||
}
|
||||
$realname=join(".",$domain);
|
||||
$type=substr($data,$startbyte,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
@@ -401,71 +465,10 @@ class Dns
|
||||
$type='MX';
|
||||
break;
|
||||
}
|
||||
$name=substr($data,24,-8);
|
||||
$namede=str_split($name,2);
|
||||
$realname='';
|
||||
foreach($namede as $cha){
|
||||
$chat=hex2bin($cha);
|
||||
if(!ctype_alnum($chat)){
|
||||
$chat='.';
|
||||
}
|
||||
$realname=$realname.$chat;
|
||||
}
|
||||
$realname=substr($realname,1,-1);
|
||||
$query=substr($data,24);
|
||||
***/
|
||||
|
||||
#$returndata="$type".'|||'."$realname";
|
||||
$data=bin2hex($buffer);
|
||||
$id=substr($data,0,4);
|
||||
$flag=substr($data,4,4);
|
||||
$questions=substr($data,8,4);
|
||||
$answerRRs=substr($data,12,4);
|
||||
$authorityRRs=substr($data,16,4);
|
||||
$additionalRRs=substr($data,20,4);
|
||||
$startbyte=24;
|
||||
$dlen=substr($data,$startbyte,2);
|
||||
$startbyte=26;
|
||||
$i=1;
|
||||
while($dlen!='00'){
|
||||
$domain[$i]=hex2bin(substr($data,$startbyte,hexdec($dlen)*2));
|
||||
$startbyte=$startbyte+(hexdec($dlen)*2);
|
||||
$dlen=substr($data,$startbyte,2);
|
||||
$startbyte=$startbyte+2;
|
||||
$i++;
|
||||
}
|
||||
$realname=join(".",$domain);
|
||||
$type=substr($data,$startbyte,4);
|
||||
switch($type){
|
||||
case '0001':
|
||||
$type='A';
|
||||
break;
|
||||
case '0002':
|
||||
$type='NS';
|
||||
break;
|
||||
case '000c':
|
||||
$type='PTR';
|
||||
break;
|
||||
case '0006':
|
||||
$type='SOA';
|
||||
break;
|
||||
case '001c':
|
||||
$type='AAAA';
|
||||
break;
|
||||
case '0005':
|
||||
$type='CNAME';
|
||||
break;
|
||||
case '0010':
|
||||
$type='TEXT';
|
||||
break;
|
||||
case '000f':
|
||||
$type='MX';
|
||||
break;
|
||||
}
|
||||
$query=substr($data,24,$startbyte-16);
|
||||
$query=substr($data,24,$startbyte-16);
|
||||
|
||||
|
||||
$returndata= json_encode(array('type' => $type, 'name' => "$realname", 'id'=>"$id", 'query'=>"$query"));
|
||||
$returndata= json_encode(array('type' => $type, 'name' => "$realname", 'id'=>"$id", 'query'=>"$query",'traffic'=>$traffic));
|
||||
|
||||
return $returndata;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user