- struct sockaddr_in sin;
- memset(&sin, 0, sizeof(sin));
- sin.sin_family = AF_INET;
- sin.sin_port = htons(port);
-
- tcp_ = socket(AF_INET, SOCK_STREAM, 0);
- if (tcp_ < 0) {
- perror("tcpsconn::tcpsconn accept_loop socket:");
- VERIFY(0);
- }
-
- int yes = 1;
- setsockopt(tcp_, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
- setsockopt(tcp_, IPPROTO_TCP, TCP_NODELAY, &yes, sizeof(yes));
-
- if (bind(tcp_, (sockaddr *)&sin, sizeof(sin)) < 0) {
- perror("accept_loop tcp bind:");
- VERIFY(0);
- }
-
- if (listen(tcp_, 1000) < 0) {
- perror("tcpsconn::tcpsconn listen:");
- VERIFY(0);
- }
+ struct sockaddr_in sin;
+ memset(&sin, 0, sizeof(sin));
+ sin.sin_family = AF_INET;
+ sin.sin_port = hton(port);
+
+ tcp_ = socket(AF_INET, SOCK_STREAM, 0);
+ if (tcp_ < 0) {
+ perror("accept_loop socket:");
+ VERIFY(0);
+ }
+
+ int yes = 1;
+ setsockopt(tcp_, SOL_SOCKET, SO_REUSEADDR, &yes, sizeof(yes));
+ setsockopt(tcp_, IPPROTO_TCP, TCP_NODELAY, &yes, sizeof(yes));
+
+ // careful to exactly match type signature of bind arguments so we don't
+ // get std::bind instead
+ if (bind(tcp_, (const struct sockaddr *)&sin, (socklen_t)sizeof(sin)) < 0) {
+ perror("accept_loop tcp bind:");
+ VERIFY(0);
+ }
+
+ if (listen(tcp_, 1000) < 0) {
+ perror("listen:");
+ VERIFY(0);
+ }