| Multiple client handling in openVPN server code Hi all,
I'm working on openVPN server that is available to me. I have built it and configured it properly.
Actualy, i need to understand how multiple clients handling is done in openVPN server code. i need to ask how it is implemented using threads, fork(), etc.
What is architecture that is implemented in openVPN to handle multiple clients.
I studied flow in its code like :
tunnel_server() calls tunnel_server_tcp()
tunnel_server_tcp() calls multi_tcp_process_io()
multi_tcp_process_io() calls multi_create_instance_tcp()
multi_create_instance_tcp() calls multi_create_instance()
multi_create_instance()calls inherit_context_child()
inherit_context_child() calls init_instance()
but i m not getting proper idea how multiple client's instance are getting created what's going inside code whether threads(getting created ) or new process is created using fork().
I think mutex are used ?
Please guide me to understand flow (internal implementation and functions used) of handling multiple clients.
Thanking you,
Regards,
Tarun. |