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.