Moved a couple of assignments out of conditionals.

Easier to read this way.
Restructure InitServer to avoid repetition.

Two paths exited the same; the third returned a value.
Reworked as a cascade of if/else-if/else so as to make the exit shared
and put it at the end, where it's more visible.
Don't fcntl(-1, ...) !
Combine an initialization with a declaration.
Purge a pointless clearing of data before free().
More tidy-up in serverd's StartServer.

Moved some declarations to combine with their initializers.
Added an assert that select isn't doomed to a buffer over-run.
Removed a check against an impossible failure (if ConnectionInfoNew()
fails, it exits).
Moved a decl to combine with its initializer.
Carve up AuthenticationDialogue() into smaller functions.

Jimis had already localised the variables enough to make this
straightforward.
Simplify InstallServerAuthPath.
Rename some labels to convey semantics.

The names ret1, ret2 convey little information.  One is thread
clean-up, the other is connection finalisation; so rename them to
reflect that.
More accurate Log() message.

We haven't yet closed the connection, but we are about to.
Restructure SpawnConnection() to avoid goto.

It's incidentally shorter now, despite adding some comments.
Split up HandleConnection(); it was rather long !

This incidentally makes it easy to eliminate goto usage from it.
Which is, in fact, a general pattern ...
Tidy up in NewConn and DeleteConn.

If you're going to calloc(), there's little point explicitly setting
the fields that get zero/false/NULL values.

Make clear that the getsockname() code in NewConn() only serves to
impose a failure, without using the data it finds.

Testing conn->ipaddr against NULL is senseless; it's guaranteed to
succeed, as ipaddr is an array member of the struct.  However, if the
string it contains is *empty*, we probably shouldn't be calling
DeleteItemMatching() on it !

Shuffled order of parts slightly for ease of reading.
Break out ACL path-matching test into a function.

The same code was repeated in two places, one compactly the other with
spurious complications.  Putting it into a function makes it easier to
document the logic, while avoiding the duplication.
Petty tidy-up in server_classic.c

Fixed some misaligned indent, ditched some spurious parentheses, split
some long lines and test booleans as booleans rather than by
comparison with true and false.
Clean-up in server_transform.c

Change long chains of mutually exclusive if, with continue from each,
into proper else if chains that don't *need* to continue.  Simplify
the conditions in two of these by introducing a macro to take care of
the repetition.

Simplify some conditionals; lay others out more readably.
Make some variables more local, and const where they can be.
Split long lines.  Fix indentatin.
Eliminate a wanton goto.
Comments for further work in server_transform.c
Added a comment to help readers confused about call-collect.

It would have helped me during recent work, at least.