{section: Converting Sock} Sock is not only used by TCP/UDP connection but also used by Unix domain socket (AF_UNIX). Basically, Sock can only create TCP or UDP socket internally but SharedEndPoint and SharedPortClient creates Unix domain socket and calls Sock::assign() to pass the descriptor. I guess this is broken abstraction since Sock has IP related functions such as peer_addr() or peer_port() which are not available to Unix domain socket. It seems assign() is only used by these Shared* thing. So maybe we could end up with refactoring it. This makes conversion complicated. I hope to get 'clean' code. {section: What is it?} What is CEDAR?? TCP_FORWARDING_HOST ?