+ // If the reuse flag is set, use the applicable socket reuse flags(s)
+ if (m_reusable)
+ {
+ setsockopt(m_fd, SOL_SOCKET, SO_REUSEADDR, (const char*)&arg, sizeof(u_long));
+#ifdef SO_REUSEPORT
+ setsockopt(m_fd, SOL_SOCKET, SO_REUSEPORT, (const char*)&arg, sizeof(u_long));
+#endif
+ }
+
+ // If a local address has been set, then we need to bind to it before calling connect
+ if (m_local && m_local->m_addr)
+ {
+ bind(m_fd, m_local->m_addr, m_local->m_len);
+ }
+