A simple web panel for Ross NK Routers
monoxane / rtr Goto Github PK
View Code? Open in Web Editor NEWWeb Panel for Ross NK Broadcast Routers
License: GNU General Public License v3.0
Web Panel for Ross NK Broadcast Routers
License: GNU General Public License v3.0
Often engineers want to be able to give someone access to control their own router output without affecting other users or outputs on the system. rtr should provide a page for each output on the connected router with simple source selection for that output.
yea its a mess.
[GIN] 2023/03/21 - 22:22:40 | 200 | 282.029µs | 172.17.0.1 | GET "/v1/ws/probe"
2023/03/21 22:22:40 New client registered. Total: 1
fatal error: concurrent map iteration and map write
2023/03/21 22:22:47 Client unregistered. Total: 0
goroutine 1297 [running]:
main.(*ProbeSocketHandler).BroadcastData(0xc0003b30e0, 0xc0006129d8)
github.com/monoxane/rtr/probe.go:145 +0xc5
main.HandleProbeStream(0xc00016c400)
github.com/monoxane/rtr/main.go:279 +0x71
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
main.CORSMiddleware.func1(0xc00016c400)
github.com/monoxane/rtr/main.go:172 +0x11c
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1(0xc00016c400)
github.com/gin-gonic/[email protected]/recovery.go:102 +0x82
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc00016c400)
github.com/gin-gonic/[email protected]/logger.go:240 +0xe7
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0003c8ea0, 0xc00016c400)
github.com/gin-gonic/[email protected]/gin.go:620 +0x66b
github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0003c8ea0, {0x902a20?, 0xc0003760e0}, 0xc00016c100)
github.com/gin-gonic/[email protected]/gin.go:576 +0x1dd
net/http.serverHandler.ServeHTTP({0x901b00?}, {0x902a20, 0xc0003760e0}, 0xc00016c100)
net/http/server.go:2936 +0x316
net/http.(*conn).serve(0xc0004182d0, {0x903008, 0xc0003b3380})
net/http/server.go:1995 +0x612
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
goroutine 1 [chan receive, 8023 minutes]:
main.main()
github.com/monoxane/rtr/main.go:124 +0x3d5
goroutine 19 [select]:
main.(*ProbeSocketHandler).Run(0xc0003b30e0)
github.com/monoxane/rtr/probe.go:102 +0xce
created by main.main
github.com/monoxane/rtr/main.go:107 +0x265
goroutine 20 [IO wait]:
internal/poll.runtime_pollWait(0x7feb40624818, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc000402000?, 0xc000470800?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000402000, {0xc000470800, 0x800, 0x800})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc000402000, {0xc000470800?, 0x7feb404f8eb8?, 0x7feb689f55b8?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc0000b0dd0, {0xc000470800?, 0x7c8ca0?, 0xc00067b701?})
net/net.go:183 +0x45
github.com/monoxane/nk.(*Router).Connect(0xc00039a820)
github.com/monoxane/[email protected]/nk.go:127 +0x23c
created by main.main
github.com/monoxane/rtr/main.go:110 +0x2ae
goroutine 21 [IO wait]:
internal/poll.runtime_pollWait(0x7feb40624728, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc000381a80?, 0x4?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Accept(0xc000381a80)
internal/poll/fd_unix.go:614 +0x2bd
net.(*netFD).accept(0xc000381a80)
net/fd_unix.go:172 +0x35
net.(*TCPListener).accept(0xc0000ab878)
net/tcpsock_posix.go:148 +0x25
net.(*TCPListener).Accept(0xc0000ab878)
net/tcpsock.go:297 +0x3d
net/http.(*Server).Serve(0xc0002d6ff0, {0x902870, 0xc0000ab878})
net/http/server.go:3059 +0x385
net/http.(*Server).ListenAndServe(0xc0002d6ff0)
net/http/server.go:2988 +0x7d
net/http.ListenAndServe(...)
net/http/server.go:3242
github.com/gin-gonic/gin.(*Engine).Run(0xc0003c8ea0, {0xc00005ef90, 0x1, 0x1})
github.com/gin-gonic/[email protected]/gin.go:386 +0x20e
main.serveHTTP()
github.com/monoxane/rtr/main.go:153 +0x48f
created by main.main
github.com/monoxane/rtr/main.go:111 +0x2ba
goroutine 23 [syscall, 8023 minutes]:
os/signal.signal_recv()
runtime/sigqueue.go:152 +0x2f
os/signal.loop()
os/signal/signal_unix.go:23 +0x19
created by os/signal.Notify.func1.1
os/signal/signal.go:151 +0x2a
goroutine 34 [chan receive, 8023 minutes]:
main.main.func3()
github.com/monoxane/rtr/main.go:118 +0x31
created by main.main
github.com/monoxane/rtr/main.go:117 +0x399
goroutine 24 [chan receive]:
github.com/monoxane/nk.(*Router).Connect.func1()
github.com/monoxane/[email protected]/nk.go:120 +0x9d
created by github.com/monoxane/nk.(*Router).Connect
github.com/monoxane/[email protected]/nk.go:119 +0x1df
goroutine 2143 [chan receive, 1252 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005bb8a8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2146 [chan receive, 1256 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b7368)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 329 [chan receive, 8018 minutes]:
main.(*ProbeClient).WriteHandler(0xc0002860a8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 371 [chan receive, 8013 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007aa2a0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 576 [chan receive, 8003 minutes]:
main.(*ProbeClient).WriteHandler(0xc000619ef0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1781 [chan receive, 3919 minutes]:
main.(*ProbeClient).WriteHandler(0xc000860780)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1938 [chan receive, 3587 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c6dc8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1946 [chan receive, 3478 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ceac8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1634 [chan receive, 3960 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612318)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1609 [chan receive, 3970 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007aa750)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 334 [chan receive, 8014 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612120)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 264 [chan receive, 8021 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012150)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 220 [chan receive, 8021 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000aa9a8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2178 [chan receive, 1256 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ce8b8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 611 [chan receive, 8004 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012258)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2260 [IO wait, 82 minutes]:
internal/poll.runtime_pollWait(0x7feb40645f00, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc00050ed80?, 0xc00071e000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00050ed80, {0xc00071e000, 0x1000, 0x1000})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc00050ed80, {0xc00071e000?, 0x4c44a6?, 0x0?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc00007e188, {0xc00071e000?, 0x0?, 0xc000027568?})
net/net.go:183 +0x45
net/http.(*connReader).Read(0xc000027560, {0xc00071e000, 0x1000, 0x1000})
net/http/server.go:782 +0x171
bufio.(*Reader).fill(0xc0002f1080)
bufio/bufio.go:106 +0xff
bufio.(*Reader).Peek(0xc0002f1080, 0x4)
bufio/bufio.go:144 +0x5d
net/http.(*conn).serve(0xc000a96750, {0x903008, 0xc0003b3380})
net/http/server.go:2030 +0x77c
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
goroutine 2323 [runnable]:
main.(*ProbeClient).WriteHandler(0xc000b271e8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1788 [chan receive, 3670 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b2b260)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1033 [chan receive, 7861 minutes]:
main.(*ProbeClient).WriteHandler(0xc000618270)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1828 [chan receive, 3915 minutes]:
main.(*ProbeClient).WriteHandler(0xc0002867f8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1276 [chan receive, 5401 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b6090)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 142 [chan receive, 8021 minutes]:
main.(*ProbeClient).WriteHandler(0xc000287d10)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 497 [chan receive, 8007 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c77b8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1577 [chan receive, 3916 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ce810)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1806 [chan receive, 3867 minutes]:
main.(*ProbeClient).WriteHandler(0xc000619ea8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1639 [chan receive, 3945 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005ba450)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1459 [chan receive, 5196 minutes]:
main.(*ProbeClient).WriteHandler(0xc000613050)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1326 [chan receive, 5376 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b20750)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 727 [chan receive, 7994 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b70f8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 866 [chan receive, 7979 minutes]:
main.(*ProbeClient).WriteHandler(0xc000013ba8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2037 [chan receive, 2685 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007cf1d0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1464 [chan receive, 5149 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005bba28)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1422 [chan receive, 5215 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006190e0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1112 [chan receive, 7836 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007cfa58)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1604 [chan receive, 3970 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ce510)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 649 [chan receive, 8002 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b63d8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 15 [chan receive, 8023 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000aa7e0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 450 [chan receive, 8006 minutes]:
main.(*ProbeClient).WriteHandler(0xc000013b18)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 952 [chan receive, 7979 minutes]:
main.(*ProbeClient).WriteHandler(0xc000618f30)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1762 [chan receive, 3925 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000ab320)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2114 [chan receive, 1252 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612498)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 531 [chan receive, 8008 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012438)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 616 [chan receive, 8000 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000aa7f8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 597 [chan receive, 7990 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000125d0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 290 [chan receive, 8021 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006135d8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1004 [chan receive, 5401 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b210f8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 202 [chan receive, 8022 minutes]:
main.(*ProbeClient).WriteHandler(0xc0002871e8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 302 [chan receive, 8017 minutes]:
main.(*ProbeClient).WriteHandler(0xc000613158)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 413 [chan receive, 8010 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612258)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1249 [chan receive, 5384 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c68e8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 238 [chan receive, 8019 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005ba0c0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 644 [chan receive, 8004 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b6048)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1131 [chan receive, 5126 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612510)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 172 [chan receive, 8019 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612048)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 364 [chan receive, 8010 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000126c0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 381 [chan receive, 8013 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012240)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 418 [chan receive, 8011 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612090)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2258 [IO wait, 82 minutes]:
internal/poll.runtime_pollWait(0x7feb405eb5f0, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc00050ea00?, 0xc000988000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00050ea00, {0xc000988000, 0x1000, 0x1000})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc00050ea00, {0xc000988000?, 0x4c44a6?, 0x0?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc00007e170, {0xc000988000?, 0x0?, 0xc0000273e8?})
net/net.go:183 +0x45
net/http.(*connReader).Read(0xc0000273e0, {0xc000988000, 0x1000, 0x1000})
net/http/server.go:782 +0x171
bufio.(*Reader).fill(0xc0005c0840)
bufio/bufio.go:106 +0xff
bufio.(*Reader).Peek(0xc0005c0840, 0x4)
bufio/bufio.go:144 +0x5d
net/http.(*conn).serve(0xc000a963f0, {0x903008, 0xc0003b3380})
net/http/server.go:2030 +0x77c
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
goroutine 2254 [IO wait, 82 minutes]:
internal/poll.runtime_pollWait(0x7feb40623fa8, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc000381280?, 0xc000ab6000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000381280, {0xc000ab6000, 0x1000, 0x1000})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc000381280, {0xc000ab6000?, 0x4c44a6?, 0x0?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc0005c6128, {0xc000ab6000?, 0x0?, 0xc000026998?})
net/net.go:183 +0x45
net/http.(*connReader).Read(0xc000026990, {0xc000ab6000, 0x1000, 0x1000})
net/http/server.go:782 +0x171
bufio.(*Reader).fill(0xc0007916e0)
bufio/bufio.go:106 +0xff
bufio.(*Reader).Peek(0xc0007916e0, 0x4)
bufio/bufio.go:144 +0x5d
net/http.(*conn).serve(0xc000148090, {0x903008, 0xc0003b3380})
net/http/server.go:2030 +0x77c
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
goroutine 1265 [chan receive, 5376 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005bb560)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 834 [chan receive, 7986 minutes]:
main.(*ProbeClient).WriteHandler(0xc0002873e0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 791 [chan receive, 7987 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007aa0d8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 439 [chan receive, 8010 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005ba480)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 313 [chan receive, 8009 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006122e8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 498 [chan receive, 8008 minutes]:
main.(*ProbeClient).WriteHandler(0xc000287fb0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 590 [chan receive, 8004 minutes]:
main.(*ProbeClient).WriteHandler(0xc000618660)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2306 [chan receive]:
main.(*ProbeClient).WriteHandler(0xc0006c62b8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 544 [chan receive, 8007 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612450)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 510 [chan receive, 8008 minutes]:
main.(*ProbeClient).WriteHandler(0xc0002860d8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 536 [chan receive, 8008 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005ba048)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 548 [chan receive, 8008 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c74e8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 786 [chan receive, 7990 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b6918)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1724 [chan receive, 3925 minutes]:
main.(*ProbeClient).WriteHandler(0xc000286078)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 755 [chan receive, 7994 minutes]:
main.(*ProbeClient).WriteHandler(0xc00067a000)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 626 [chan receive, 8004 minutes]:
main.(*ProbeClient).WriteHandler(0xc0002861e0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1719 [chan receive, 3925 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ab5f0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1389 [chan receive, 5148 minutes]:
main.(*ProbeClient).WriteHandler(0xc00067b188)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 765 [chan receive, 7959 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ab8a8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 128 [chan receive, 8002 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c64c8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 446 [chan receive, 8001 minutes]:
main.(*ProbeClient).WriteHandler(0xc000287518)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 637 [chan receive, 8000 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c6b28)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 674 [chan receive, 7997 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005baa20)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1072 [chan receive, 6891 minutes]:
main.(*ProbeClient).WriteHandler(0xc000612de0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1023 [chan receive, 6921 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c7cf8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1340 [chan receive, 5143 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012390)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 813 [chan receive, 7987 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c6708)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 990 [chan receive, 7945 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000128a0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 707 [chan receive, 7997 minutes]:
main.(*ProbeClient).WriteHandler(0xc000618378)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 688 [chan receive, 7997 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000ab800)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 711 [chan receive, 7994 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b6060)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1428 [chan receive, 5376 minutes]:
main.(*ProbeClient).WriteHandler(0xc000613ec0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1063 [chan receive, 7836 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007cf9b0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 759 [chan receive, 7982 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ab3e0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 781 [chan receive, 7994 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b72a8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 776 [chan receive, 7994 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b6078)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1287 [chan receive, 5400 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005ba078)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 256 [chan receive, 7986 minutes]:
main.(*ProbeClient).WriteHandler(0xc00067b668)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1076 [chan receive, 7836 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007cf3c8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1759 [chan receive, 3918 minutes]:
main.(*ProbeClient).WriteHandler(0xc0008612d8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2261 [IO wait, 82 minutes]:
internal/poll.runtime_pollWait(0x7feb405eb050, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc00050ee00?, 0xc0007ae000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00050ee00, {0xc0007ae000, 0x1000, 0x1000})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc00050ee00, {0xc0007ae000?, 0x4c44a6?, 0x0?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc00007e190, {0xc0007ae000?, 0x0?, 0xc0003b3ce8?})
net/net.go:183 +0x45
net/http.(*connReader).Read(0xc0003b3ce0, {0xc0007ae000, 0x1000, 0x1000})
net/http/server.go:782 +0x171
bufio.(*Reader).fill(0xc00002e480)
bufio/bufio.go:106 +0xff
bufio.(*Reader).Peek(0xc00002e480, 0x4)
bufio/bufio.go:144 +0x5d
net/http.(*conn).serve(0xc000a967e0, {0x903008, 0xc0003b3380})
net/http/server.go:2030 +0x77c
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
goroutine 876 [chan receive, 7984 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007cfad0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1291 [chan receive, 5400 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b2a228)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1194 [chan receive, 6891 minutes]:
main.(*ProbeClient).WriteHandler(0xc00067a090)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1231 [chan receive, 5376 minutes]:
main.(*ProbeClient).WriteHandler(0xc000013578)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 749 [chan receive, 7960 minutes]:
main.(*ProbeClient).WriteHandler(0xc00067b1b8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 962 [chan receive, 7980 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012210)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 936 [chan receive, 7982 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012228)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1049 [chan receive, 7836 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b21038)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1680 [chan receive, 3926 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b71a0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1044 [chan receive, 7836 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b21230)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1209 [chan receive, 6593 minutes]:
main.(*ProbeClient).WriteHandler(0xc000013a40)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1475 [chan receive, 5143 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012750)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1142 [chan receive, 7708 minutes]:
main.(*ProbeClient).WriteHandler(0xc000286540)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 695 [chan receive, 7708 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012078)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 700 [chan receive, 7708 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ce030)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1281 [chan receive, 5400 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c7e18)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1649 [chan receive, 3926 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b62a0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1393 [chan receive, 5143 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b6f18)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1198 [chan receive, 6891 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007abaa0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1355 [chan receive, 5196 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005bb530)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1746 [chan receive, 3925 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000129f0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1495 [chan receive, 5143 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007cff80)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1100 [chan receive, 5376 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006133e0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1442 [chan receive, 5215 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007aba40)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2240 [IO wait, 82 minutes]:
internal/poll.runtime_pollWait(0x7feb405eae70, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc00050e900?, 0xc000aa0000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00050e900, {0xc000aa0000, 0x1000, 0x1000})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc00050e900, {0xc000aa0000?, 0x4c44a6?, 0x0?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc00007e138, {0xc000aa0000?, 0x0?, 0xc000026f38?})
net/net.go:183 +0x45
net/http.(*connReader).Read(0xc000026f30, {0xc000aa0000, 0x1000, 0x1000})
net/http/server.go:782 +0x171
bufio.(*Reader).fill(0xc000790120)
bufio/bufio.go:106 +0xff
bufio.(*Reader).Peek(0xc000790120, 0x4)
bufio/bufio.go:144 +0x5d
net/http.(*conn).serve(0xc000a961b0, {0x903008, 0xc0003b3380})
net/http/server.go:2030 +0x77c
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
goroutine 1449 [chan receive, 3916 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c69f0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1549 [chan receive, 2685 minutes]:
main.(*ProbeClient).WriteHandler(0xc000618000)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1436 [chan receive, 3974 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005ba918)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1595 [chan receive, 3971 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007ce858)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1875 [chan receive, 3683 minutes]:
main.(*ProbeClient).WriteHandler(0xc00067a960)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1368 [chan receive, 3539 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b265d0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1873 [chan receive, 3686 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006c6510)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1794 [chan receive, 3919 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007aa6f0)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1560 [chan receive, 3975 minutes]:
main.(*ProbeClient).WriteHandler(0xc000012780)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1672 [chan receive, 3932 minutes]:
main.(*ProbeClient).WriteHandler(0xc000860090)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2162 [chan receive, 1256 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005bb398)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1707 [chan receive, 3927 minutes]:
main.(*ProbeClient).WriteHandler(0xc0005bba88)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1737 [chan receive, 3925 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b2a618)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1742 [chan receive, 3925 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b2ae88)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1546 [chan receive, 3599 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b79f8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1820 [chan receive, 3812 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b2bcc8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1697 [IO wait, 82 minutes]:
internal/poll.runtime_pollWait(0x7feb405eb7d0, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc000402b00?, 0xc000d46000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc000402b00, {0xc000d46000, 0x1000, 0x1000})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc000402b00, {0xc000d46000?, 0x4c44a6?, 0x0?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc0004fe0a0, {0xc000d46000?, 0x0?, 0xc0003b3ad8?})
net/net.go:183 +0x45
net/http.(*connReader).Read(0xc0003b3ad0, {0xc000d46000, 0x1000, 0x1000})
net/http/server.go:782 +0x171
bufio.(*Reader).fill(0xc00002e240)
bufio/bufio.go:106 +0xff
bufio.(*Reader).Peek(0xc00002e240, 0x4)
bufio/bufio.go:144 +0x5d
net/http.(*conn).serve(0xc000418000, {0x903008, 0xc0003b3380})
net/http/server.go:2030 +0x77c
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
goroutine 1692 [chan receive, 3916 minutes]:
main.(*ProbeClient).WriteHandler(0xc000861f08)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1933 [chan receive, 3599 minutes]:
main.(*ProbeClient).WriteHandler(0xc000861878)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2048 [chan receive, 1950 minutes]:
main.(*ProbeClient).WriteHandler(0xc0004b7308)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2138 [chan receive, 1256 minutes]:
main.(*ProbeClient).WriteHandler(0xc0000abe30)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1890 [chan receive, 3687 minutes]:
main.(*ProbeClient).WriteHandler(0xc000860f60)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1911 [chan receive, 3686 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007aad98)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1957 [chan receive, 3478 minutes]:
main.(*ProbeClient).WriteHandler(0xc0002874b8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1988 [chan receive, 3478 minutes]:
main.(*ProbeClient).WriteHandler(0xc000618048)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2054 [chan receive, 2685 minutes]:
main.(*ProbeClient).WriteHandler(0xc0007cedc8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2251 [chan receive, 1054 minutes]:
main.(*ProbeClient).WriteHandler(0xc0006125b8)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 1981 [chan receive, 2685 minutes]:
main.(*ProbeClient).WriteHandler(0xc000b2bd28)
github.com/monoxane/rtr/probe.go:72 +0x95
created by main.(*ProbeClient).Run
github.com/monoxane/rtr/probe.go:86 +0x97
goroutine 2184 [IO wait]:
internal/poll.runtime_pollWait(0x7feb405ecb80, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc00050f100?, 0xc0000dd000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00050f100, {0xc0000dd000, 0x400, 0x400})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc00050f100, {0xc0000dd000?, 0x4acf7c?, 0x1?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc00007e198, {0xc0000dd000?, 0x1?, 0x3?})
net/net.go:183 +0x45
bufio.(*Reader).fill(0xc000d635c0)
bufio/bufio.go:106 +0xff
bufio.(*Reader).Peek(0xc000d635c0, 0x2)
bufio/bufio.go:144 +0x5d
github.com/gorilla/websocket.(*Conn).read(0xc00085bce0, 0x0?)
github.com/gorilla/[email protected]/conn.go:371 +0x2c
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc00085bce0)
github.com/gorilla/[email protected]/conn.go:809 +0x7b
github.com/gorilla/websocket.(*Conn).NextReader(0xc00085bce0)
github.com/gorilla/[email protected]/conn.go:1009 +0xcc
github.com/gorilla/websocket.(*Conn).ReadMessage(0xc00039a820?)
github.com/gorilla/[email protected]/conn.go:1093 +0x19
main.HandleMatrixWS(0xc000cb6100)
github.com/monoxane/rtr/main.go:237 +0x34a
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
main.CORSMiddleware.func1(0xc000cb6100)
github.com/monoxane/rtr/main.go:172 +0x11c
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1(0xc000cb6100)
github.com/gin-gonic/[email protected]/recovery.go:102 +0x82
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc000cb6100)
github.com/gin-gonic/[email protected]/logger.go:240 +0xe7
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0003c8ea0, 0xc000cb6100)
github.com/gin-gonic/[email protected]/gin.go:620 +0x66b
github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0003c8ea0, {0x902a20?, 0xc000376460}, 0xc000cb6700)
github.com/gin-gonic/[email protected]/gin.go:576 +0x1dd
net/http.serverHandler.ServeHTTP({0xc0001f9170?}, {0x902a20, 0xc000376460}, 0xc000cb6700)
net/http/server.go:2936 +0x316
net/http.(*conn).serve(0xc000a966c0, {0x903008, 0xc0003b3380})
net/http/server.go:1995 +0x612
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
goroutine 2187 [IO wait, 5 minutes]:
internal/poll.runtime_pollWait(0x7feb405eca90, 0x72)
runtime/netpoll.go:306 +0x89
internal/poll.(*pollDesc).wait(0xc00050f480?, 0xc000a54000?, 0x0)
internal/poll/fd_poll_runtime.go:84 +0x32
internal/poll.(*pollDesc).waitRead(...)
internal/poll/fd_poll_runtime.go:89
internal/poll.(*FD).Read(0xc00050f480, {0xc000a54000, 0x400, 0x400})
internal/poll/fd_unix.go:167 +0x299
net.(*netFD).Read(0xc00050f480, {0xc000a54000?, 0xc00041f380?, 0x0?})
net/fd_posix.go:55 +0x29
net.(*conn).Read(0xc00007e1b8, {0xc000a54000?, 0xc00041f3b0?, 0x534c89?})
net/net.go:183 +0x45
bufio.(*Reader).fill(0xc00002ea20)
bufio/bufio.go:106 +0xff
bufio.(*Reader).Peek(0xc00002ea20, 0x2)
bufio/bufio.go:144 +0x5d
github.com/gorilla/websocket.(*Conn).read(0xc0006da2c0, 0x81f400?)
github.com/gorilla/[email protected]/conn.go:371 +0x2c
github.com/gorilla/websocket.(*Conn).advanceFrame(0xc0006da2c0)
github.com/gorilla/[email protected]/conn.go:809 +0x7b
github.com/gorilla/websocket.(*Conn).NextReader(0xc0006da2c0)
github.com/gorilla/[email protected]/conn.go:1009 +0xcc
github.com/gorilla/websocket.(*Conn).ReadMessage(0x7deb80?)
github.com/gorilla/[email protected]/conn.go:1093 +0x19
main.HandleMatrixWS(0xc000a2c000)
github.com/monoxane/rtr/main.go:237 +0x34a
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
main.CORSMiddleware.func1(0xc000a2c000)
github.com/monoxane/rtr/main.go:172 +0x11c
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.CustomRecoveryWithWriter.func1(0xc000a2c000)
github.com/gin-gonic/[email protected]/recovery.go:102 +0x82
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.LoggerWithConfig.func1(0xc000a2c000)
github.com/gin-gonic/[email protected]/logger.go:240 +0xe7
github.com/gin-gonic/gin.(*Context).Next(...)
github.com/gin-gonic/[email protected]/context.go:174
github.com/gin-gonic/gin.(*Engine).handleHTTPRequest(0xc0003c8ea0, 0xc000a2c000)
github.com/gin-gonic/[email protected]/gin.go:620 +0x66b
github.com/gin-gonic/gin.(*Engine).ServeHTTP(0xc0003c8ea0, {0x902a20?, 0xc000a280e0}, 0xc00016c900)
github.com/gin-gonic/[email protected]/gin.go:576 +0x1dd
net/http.serverHandler.ServeHTTP({0xc0004deb10?}, {0x902a20, 0xc000a280e0}, 0xc00016c900)
net/http/server.go:2936 +0x316
net/http.(*conn).serve(0xc000a96a20, {0x903008, 0xc0003b3380})
net/http/server.go:1995 +0x612
created by net/http.(*Server).Serve
net/http/server.go:3089 +0x5ed
I've been contacted asking if BMD router support is possible, I just need access to a unit or for someone to do some work :P
Implementation architecture TBD
It's not a great idea to leave your router control open on the network, there should be an option for simple password auth specified by the user.
Deployment should be possible with minimal human interactions. This repo should provide a docker-compose.yaml file containing all the dependencies for an operational instance of rtr with at least 1 Probe channel
Whilst it is fairly easy to deploy I haven't actually provided instructions on how to do so.
AC:
The current state of the application does not allow configuration from the UI and instead needs the user to edit a config json on disk. This is not very user friendly and should be changed to expose all necessary configuration parameters in a page or modal in the UI.
AC:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.