Description
Hi, @rjkroege
I'm wondering if there's a way to support running edwood remotely over ssh.
I've found this set of programs (https://github.com/4ad/mgk.ro/tree/master/cmd/plan9) which forwards a devdraw connection and sets DRAWTERM
to a proxy on the other side. The proxy needs the following patch to fix the io order to work at all with edwood
. Oddly, it will work just fine out of the box with acme
. I think it maybe has to do with the different semantics for pipe(2)
in plan9, but I'm not sure.
diff --git a/cmd/plan9/devdraw-proxy/proxy.go b/cmd/plan9/devdraw-proxy/proxy.go
index ac8b295..0cdedae 100644
--- a/cmd/plan9/devdraw-proxy/proxy.go
+++ b/cmd/plan9/devdraw-proxy/proxy.go
@@ -51,8 +51,8 @@ func main() {
if err != nil {
log.Fatal(err)
}
- go proxy(os.Stdin, conn)
- proxy(conn, os.Stdout)
+ go proxy(conn, os.Stdin)
+ proxy(os.Stdout, conn)
}
func proxy(dst io.Writer, src io.Reader) {
With acme
, the UI shows up and seems to work. The above fix allows edwood
to do RPC (I can see the calls going and responses coming back), but the UI remains blank.
Netcat also works fine as a proxy for acme
but edwood
behaves like it does with the devdraw-proxy
program.
I don't think the bug is in netcat or the proxy, so my guess is 9fans.net/go
or edwood
or even go
are doing something differently with file descriptors that doesn't work for edwood/devdraw.
Wondering if you have managed running edwood over ssh and if so, how.