with-authinfo-kludge
5 years agoRelease 0.1.2. master 0.1.2
Mark Wooding [Mon, 4 Jun 2018 02:25:33 +0000 (03:25 +0100)]
Release 0.1.2.

Now with fixes to the bugfixes.  And a more truthful manual.

5 years agowith-authinfo-kludge.1: Fix the various lies in the manual.
Mark Wooding [Sun, 3 Jun 2018 23:23:59 +0000 (00:23 +0100)]
with-authinfo-kludge.1: Fix the various lies in the manual.

5 years agowith-authinfo-kludge: Fix race between `setpgrp' and `kill'.
Mark Wooding [Sun, 3 Jun 2018 22:37:39 +0000 (23:37 +0100)]
with-authinfo-kludge: Fix race between `setpgrp' and `kill'.

Make up a pipe so we don't try to `kill' (actually, arrange to continue)
our new process group before it's actually become a process group.

6 years agoRelease 0.1.1. 0.1.1
Mark Wooding [Thu, 21 Sep 2017 08:40:57 +0000 (09:40 +0100)]
Release 0.1.1.

Now with bug fixes.

6 years agowith-authinfo-kludge: Do job-control to make interrupt characters work.
Mark Wooding [Thu, 21 Sep 2017 07:51:50 +0000 (08:51 +0100)]
with-authinfo-kludge: Do job-control to make interrupt characters work.

Terminal-based newsreaders use terminal interrupt characters for their
own purposes, i.e. slrn(1) arranges that C-g is the `VINTR' character
(i.e., it sends `SIGINT' to the foreground process group).  This is bad
unless we take evasive action: it makes `slrn' go ding and cancel some
UI action, but it also wipes out `with-authinfo-kludge' and its various
helper processes, and brings the parent shell back into the foreground
where it fights `slrn' over the terminal.

Avoid this by running the client in a separate process group, pushing it
into the foreground, and proxying signals and foregroundness back and
forth to keep the shell happy.  It's all a bit ugly and desperate, but
it works well in practice and doesn't involve ignoring signals
everywhere (which was my first attempt at solving this bug).

6 years agowith-authinfo-kludge: Use `native' exit status and related interfaces.
Mark Wooding [Thu, 21 Sep 2017 07:51:50 +0000 (08:51 +0100)]
with-authinfo-kludge: Use `native' exit status and related interfaces.

We're going to need to do things with process exit statuses that Perl
doesn't expose through its cooked exit status.

6 years agowith-authinfo-kludge: Add machinery to restore signals in child processes.
Mark Wooding [Wed, 20 Sep 2017 19:30:04 +0000 (20:30 +0100)]
with-authinfo-kludge: Add machinery to restore signals in child processes.

In particular, this fixes a minor bug which restores `SIGCHLD' to its
default disposition in children of `with-authinfo-kludge', even if it
was ignored initially (which it probably shouldn't have been).

6 years agowith-authinfo-kludge: Fix some bogus whitespace.
Mark Wooding [Wed, 20 Sep 2017 19:31:43 +0000 (20:31 +0100)]
with-authinfo-kludge: Fix some bogus whitespace.

No functional change.

6 years agowith-authinfo-kludge: Declare this an actual version. 0.1.0
Mark Wooding [Wed, 9 Aug 2017 02:59:04 +0000 (03:59 +0100)]
with-authinfo-kludge: Declare this an actual version.

It's been running with proper users and no complaints for over a year,
so I think I can safely say that it's working well enough.

6 years agowith-authinfo-kludge: Fix a poorly formatted comment.
Mark Wooding [Wed, 9 Aug 2017 02:58:16 +0000 (03:58 +0100)]
with-authinfo-kludge: Fix a poorly formatted comment.

6 years agowith-authinfo-kludge.1: Give the real reason for the `+' marker.
Mark Wooding [Wed, 9 Aug 2017 02:57:07 +0000 (03:57 +0100)]
with-authinfo-kludge.1: Give the real reason for the `+' marker.

6 years agowith-authinfo-kludge.1: Fix garbled introductory text.
Mark Wooding [Wed, 9 Aug 2017 02:41:29 +0000 (03:41 +0100)]
with-authinfo-kludge.1: Fix garbled introductory text.

7 years agowith-authinfo-kludge: Actually write pidfiles like the manual says.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge: Actually write pidfiles like the manual says.

7 years agowith-authinfo-kludge: Change how ssh(1) signals that it's started.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge: Change how ssh(1) signals that it's started.

  * In `server_listen', arrange for the remote shell echo something to
    stdout.  Also, use `read' rather than cat(1), which saves a process
    on the remote system.  And, finally, include a comment so that the
    ps(1) output is approximately useful.

  * In `wait_for_ssh', go into a loop waiting for the echoed stuff from
    the remote servers to arrive (or for them to report early EOF).

Thanks to Ian Jackson for suggesting this approach: it's much better
than the previous one.

7 years agowith-authinfo-kludge: Make $CLIENTKID be defined.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge: Make $CLIENTKID be defined.

Otherwise Perl tells me off.

7 years agowith-authinfo-kludge: Make the listening sockets be non-blocking.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge: Make the listening sockets be non-blocking.

There's the traditional race if you don't, where a client comes along,
connects, and dies before you get around to accepting.

7 years agowith-authinfo-kludge (accept_loop): Might as well use the loop name.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge (accept_loop): Might as well use the loop name.

7 years agowith-authinfo-kludge (accept_loop): Fix `select' error handling.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge (accept_loop): Fix `select' error handling.

We shouldn't go through the file descriptors if select(2) failed: the
table is likely to be bobbins.

7 years agowith-authinfo-kludge: Remove done things from to-do list.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge: Remove done things from to-do list.

7 years agowith-authinfo-kludge: Trim default port from `authinfo-kludge' argument.
Mark Wooding [Mon, 25 Apr 2016 01:14:42 +0000 (02:14 +0100)]
with-authinfo-kludge: Trim default port from `authinfo-kludge' argument.

Only my specially hacked version can actually cope with this.

7 years agowith-authinfo-kludge: Add in some missing sigils.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge: Add in some missing sigils.

Perl 5.20 helpfully warned about these where 5.14 didn't bother.

7 years agowith-authinfo-kludge, with-authinfo-kludge.1: Implementation!
Mark Wooding [Sun, 24 Apr 2016 22:31:49 +0000 (23:31 +0100)]
with-authinfo-kludge, with-authinfo-kludge.1: Implementation!

It mostly seems to work, but don't lean on it too heavily yet, please!

I've made some very sketchy notes in the manpage about things I've
changed my mind about while writing the program.  These will be turned
into actual text later.

7 years agowith-authinfo-kludge.1: Explain that we don't configure the client.
Mark Wooding [Sun, 24 Apr 2016 22:30:15 +0000 (23:30 +0100)]
with-authinfo-kludge.1: Explain that we don't configure the client.

7 years agowith-authinfo-kludge.1: Clarifications about finding the runtime dir.
Mark Wooding [Sun, 24 Apr 2016 22:30:30 +0000 (23:30 +0100)]
with-authinfo-kludge.1: Clarifications about finding the runtime dir.

7 years agowith-authinfo-kludge.1: Zap some trailing whitespace.
Mark Wooding [Sun, 24 Apr 2016 22:29:31 +0000 (23:29 +0100)]
with-authinfo-kludge.1: Zap some trailing whitespace.

It's like brambles.  If you let it, it'll take over.

7 years agowith-authinfo-kludge.1: Remove bug paragraph about multiple runtime dirs.
Mark Wooding [Sat, 23 Apr 2016 18:57:17 +0000 (19:57 +0100)]
with-authinfo-kludge.1: Remove bug paragraph about multiple runtime dirs.

Even I can't imagine why anyone would want more than `-d' provides.

A result of feedback from Ian Jackson.

7 years agowith-authinfo-kludge.1: Don't bother digging into the password database.
Mark Wooding [Sat, 23 Apr 2016 18:56:31 +0000 (19:56 +0100)]
with-authinfo-kludge.1: Don't bother digging into the password database.

A result of feedback from Ian Jackson.

7 years agowith-authinfo-kludge.1: Let's start with a manpage.
Mark Wooding [Sat, 23 Apr 2016 16:50:15 +0000 (17:50 +0100)]
with-authinfo-kludge.1: Let's start with a manpage.