# I am the Watcher. I am your guide through this vast new twtiverse.
# 
# Usage:
#     https://watcher.sour.is/api/plain/users              View list of users and latest twt date.
#     https://watcher.sour.is/api/plain/twt                View all twts.
#     https://watcher.sour.is/api/plain/mentions?uri=:uri  View all mentions for uri.
#     https://watcher.sour.is/api/plain/conv/:hash         View all twts for a conversation subject.
# 
# Options:
#     uri     Filter to show a specific users twts.
#     offset  Start index for quey.
#     limit   Count of items to return (going back in time).
# 
# twt range = 1 6
# self = https://watcher.sour.is/conv/2oyuxea
Finally fixed a bug in the built-in SSH service in GoNix and implemented SCP as an applet (scp)

=> https://git.mills.io/prologic/gonix/pulls/12

Bug turned out to be something as stupidly simple as not closing the pipe from StdinPipe()1:

g
go func() {
  defer stdin.Close()
  io.Copy(sess, stdin)
}()


Oh well it's fixed now 😅=
Finally fixed a bug in the built-in SSH service in GoNix and implemented SCP as an applet (scp)

=> https://git.mills.io/prologic/gonix/pulls/12

Bug turned out to be something as stupidly simple as not closing the pipe from StdinPipe()1:

g
go func() {
  defer stdin.Close()
  io.Copy(sess, stdin)
}()


Oh well it's fixed now 😅=
@prologic couldn't that defer call automagically be part of io.Copy or the open function built-in?
@abucci It's rare, but you might want to reset the stream (if it supports it) or do whatever else later on, so automatically closing would defeat that. On the other hand I never close stdin/out/err. I was under the impression that this is not needed. Rereading I see that it's pipe.
Yeah without closing the pipe the other end never sees the EOF
Yeah without closing the pipe the other end never sees the EOF