Hi,

as I'm trying to implement the SSL layer, I have some suggestion regarding the IoSession.

Right now, the session is navigating through different states :
CREATED, CONNECTED, CLOSING, CLOSED

I have added two more states :
SECURING, SECURED

The possible transition are :

o--> CREATED
CREATED --> CONNECTED, CLOSING, SECURING
CONNECTED --> CLOSING
CLOSING --> CLOSED
CLOSED --o
SECURING --> SECURED, CLOSING
SECURED --> CLOSING

At first it seems enough, but when it comes to deal with TLS, we may need to switch from a CONNECTED state to a SECURING state, and the very same for SECURED --> CONNECTED. That adds two more transitions :
CONNECTED --> SECURING
SECURED --> CONNECTED

We could also add an IDLE and an IDLE_SECURED states, to manage idle sessions. That's 6 more transitions :
CONNECTED --> IDLE
SECURED --> IDLE_SECURED
IDLE --> CONNECTED, CLOSING
IDLE_SECURED --> SECURED, CLOSING

We could even think about two other possible transitions, to deal with a switch from an idle session to a secured session (or the same for a secure idle session) :
IDLE --> SECURING
IDLE_SECURED --> CONNECTED

So here is the full transition table :
o--> CREATED
CREATED --> CONNECTED, CLOSING, SECURING
CONNECTED --> CLOSING, SECURING, IDLE
CLOSING --> CLOSED
CLOSED --o
SECURING --> SECURED, CLOSING
SECURED --> CLOSING, CONNECTED, IDLE_SECURED
IDLE --> CONNECTED, CLOSING, SECURING
IDLE_SECURED --> SECURED, CLOSING, CONNECTED

I'm over the roof ?

--
Regards,
Cordialement,
Emmanuel Lécharny
www.iktek.com

Reply via email to