socket_t open_listening_socket (int port)
{
+ int val = 1;
+
VERBOSE (DEBUG, fprintf (stdout, "Opening socket\n"));
- socket_t sock = socket (PF_INET, SOCK_STREAM, IPPROTO_TCP);
+ //socket_t sock = socket (PF_INET, SOCK_STREAM, IPPROTO_TCP);
+ socket_t sock = socket (AF_INET, SOCK_STREAM, 0);
if (sock == INVALID_SOCKET) {
return -1;
}
struct sockaddr_in addr = {0};
- addr.sin_family = PF_INET;
+ bzero (&addr, sizeof (addr));
+ //addr.sin_family = PF_INET;
+ addr.sin_family = AF_INET;
addr.sin_port = htons (port);
addr.sin_addr.s_addr = htonl (INADDR_ANY);
VERBOSE (DEBUG, fprintf (stdout, "Binding socket\n"));
+ //setsockopt (sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof (val));
int rc = bind (sock, (struct sockaddr *)&addr, sizeof (addr));
if (rc == SOCKET_ERROR) {
VERBOSE (ERROR, fprintf (stderr, "error: bind %d\n", ERRNO));
#ifndef _WIN32 /* Posix */
fcntl (sock, F_SETFL, O_NONBLOCK);
#endif
- int val = 1;
rc = setsockopt (sock, IPPROTO_TCP, TCP_NODELAY, (char *)&val, sizeof (val));
if (rc < 0) {
VERBOSE (ERROR, fprintf (stderr, "error: %s\n", "setsockopt/TCP_NODELAY"));