
62 5.2 Further Extensions
5.2
5.3
Now, we need to make a couple of design decisions:
• Whether to listen to multiple sockets and use poll(2)/select(2), or listen to a
single socket and run multiple instances of popa3d
• What we should do about sessions[].addr
Here, we made the following decisions:
• Make popa3d listen to a single socket only, and switch the address family using
a command-line argument: -4 or -6.
• Use string representation of the address for session[].addr. The member is used
to rate-limit access from the same address; therefore, the format (binary or
string) does not matter if we can uniquely identify the peer. ...