MacOS Networking, localhost and SIGPIPE
Alan Williams (2601) 88 posts |
I have been trying RPCEmu 0.9.3b on 10.14.6 Mojave on 2012 15" MBP. I am using RISC OS 4.39 ROMS from my RPC and disc contents from VA on a PC. (WinClip and drive popper were disabled at boot due to complaints about missing VA facilities, but otherwise this worked pretty well) I was in a bit of a quandary since I wanted the filer ‘Refresh’ option which is not in the 3.7 setup but in 5 but I also wanted working !Zap (triple click to select a line is broken in in Zap on 5 at the moment), so 4.39 it had to be. I want to do some RPI Pico dev on the Macbook but I have been struggling to like the tabbed worlds of VScode, Sublime, Atom etc. I was really missing !Zap so I thought with RPCEmu I could make softlinks out of HostFS back to the pico sdk folders (Works nicely as a alternative to not having multiple hostfs mounts), and telnet localhost with !nettle to get shell windows. I have, after a couple days grief, sort of hung that together, but there are a number of pitfalls and I am still not sure its robust enough to actually use. I knew Macos does not have client or server telnet any more so started with SSH. I made set of new ssh keys from the mac side in choices:ssh and copied the public key to ~/.ssh/authorized_keys. Essentially I wanted !Nettle running as me to ssh me using its own keys. Taking RISC OS out of the equation this does not work on Macos. I repeated the experiment on linux where it does wort. So I abandoned the idea of ssh. Also from the RPCemu perspective I had to make connections to the LAN address of the Mac ie its ethernet port, not 127.0.0.1 since that would be RISC OS and not 10.10.10.2 RISC OS’s default route as that didn’t work. brew will make telnet and telnetd but it won’t install telnetd to actually work so I was starting telnetd by hand in a terminal (iTerm2) window on the mac where it will server one connection and then quite. A start at least. The big hairy RPCEmu bug that has plagued me though this is that if you make a network connection to something that doesn’t exist RPCEmu will simple exit bang,gone without trace. This is 100% repeatable by telnetting something that is running but not listening for telnet. At the moment I have sunfish and omniclient disabled in my boot sequence as they will cause the same to happen some time randomly after boot. When I say without trace that’s not quite true as I think the only clue to this is that RPCEmu exists on SIGPIPE according to the syslog file. If anybody has any clues as to how to make this more stable that they would be fabulous. |