Open firepear opened 6 months ago
Tickets #70 and #72 need to happen first.
Once you have a handle on open conns, rather than them only existing, anonymously and immutably, inside goroutines spawned by the Listener, you can change whatever you'd like about them, at any point in time. This means configuration doesn't have to happen while we're still inside whatever initial-connection-handshake thing is implemented. It can be driven by the app, and it can happen after the app handles authentication, etc., etc.
Petrel not having to be concerned about any of that is correct and a huge win.
there are cases where at least certain portions of a server's configuration should be per-connection rather than per-server. this dovetails nicely with other changes to petrel, the client, and the server itself.
to do this though, there needs to be a way to inject that configuration. the reasonable place to do it is inside
sockAccept
inserver/net.go
, but it could also be in a function called from there.my thoughts on this so far are that clients should be able to identify themselves in some way, and then the server should be able to look them up in some way, and the configuration should then happen (a lot of
petrel.Conn
configuration is applied per-operation rather than at instantiation so that's convenient).