104 | @@ -105,6 +105,17 @@ int Sock::GetSockOpt(int level, int opt_name, void* opt_val, socklen_t* opt_len)
105 | return getsockopt(m_socket, level, opt_name, static_cast<char*>(opt_val), opt_len);
106 | }
107 |
108 | +int Sock::SetSockOpt(int level, int opt_name, const void* opt_val, socklen_t opt_len) const
109 | +{
110 | + return setsockopt(m_socket, level, opt_name, static_cast<const char*>(opt_val), opt_len);
111 | +}
112 | +
113 | +bool Sock::SetNoDelay() const
It's a little bit ugly imo to have both a general SetSockOpt and a specific SetNoDelay on the same interface. I think we should decide either way:
- Add a general
SetSockOpt . Move the SetSockOpt(IPPROTO_TCP, TCP_NODELAY, &on, sizeof(on)) into the caller, or,
- Add specific calls for SetNoDelay, ReuseAddr, V6only, etc etc.
Good point! There is already a general SetSockOpt(), so I used it and ditched the SetNoDelay() method.