comms.cpp:1207:41: error: use of undeclared identifier 'O_NDELAY'
     if (fcntl (*listen_socket, F_SETFL, O_NDELAY))
                                         ^
 comms.cpp:1063:35: warning: unused parameter 'broadcast_socket' [-Wunused-parameter]
                   comms_channel * broadcast_socket, const char *hostname)
                                   ^
 comms.cpp:1384:26: error: no matching function for call to 'recvfrom'
         bytes_received = recvfrom (listen_socket, buf, 1000, 0,
                          ^~~~~~~~
 /home/janus/emscripten/system/include/sys/socket.h:42:9: note: candidate function not viable: no known conversion from 'unsigned int *' to 'socklen_t *' (aka 'int *') for 6th argument; 
 ssize_t recvfrom(int socket, void *buffer, size_t length, int flags, struct sockaddr *address, socklen_t *address_len);
         ^
 comms.cpp:1534:47: error: use of undeclared identifier 'SO_KEEPALIVE'
         if (setsockopt (*channel, SOL_SOCKET, SO_KEEPALIVE, (char *) &keepalive_opt,
                                               ^
 comms.cpp:1581:35: error: use of undeclared identifier 'O_NDELAY'
     if (fcntl (*channel, F_SETFL, O_NDELAY))
                                   ^
 comms.cpp:1623:16: warning: conversion from string literal to 'char *' is deprecated [-Wdeprecated-writable-strings]
         return ("ipx");
                ^
 comms.cpp:1635:9: error: no matching function for call to 'getpeername'
     if (getpeername (channel, (struct sockaddr *) &client_address, &client_len))
         ^~~~~~~~~~~
 /home/janus/emscripten/system/include/sys/socket.h:43:5: note: candidate function not viable: no known conversion from 'unsigned int *' to 'socklen_t *' (aka 'int *') for 3rd argument; 
 int getpeername(int socket, struct sockaddr *address, socklen_t *address_len);
     ^
 comms.cpp:1850:85: warning: format specifies type 'int' but the argument has type 'long' [-Wformat]
                 log_debug("comms::queue_data: reallocating outgoing data buffer to %d bytes\n", buf->buffer_size);
                                                                                    ~^           ~~~~~~~~~~~~~~~~
                                                                                    %ld
 comms.cpp:2289:14: error: no matching function for call to 'getsockopt'
     if (0 != getsockopt(channel, SOL_SOCKET, SO_SNDBUF, (char*)&os_bufsize, 
              ^~~~~~~~~~
 /home/janus/emscripten/system/include/sys/socket.h:51:5: note: candidate function not viable: no known conversion from 'unsigned int *' to 'socklen_t *' (aka 'int *') for 5th argument; 
 int getsockopt(int s, int level, int optname, void *optval, socklen_t *optlen);
     ^
 comms.cpp:3034:31: error: no matching function for call to 'recvfrom'
         if ((bytes_received = recvfrom (*channel, buf, 1000, 0, &addr,
                               ^~~~~~~~
 /home/janus/emscripten/system/include/sys/socket.h:42:9: note: candidate function not viable: no known conversion from 'unsigned int *' to 'socklen_t *' (aka 'int *') for 6th argument; 
 ssize_t recvfrom(int socket, void *buffer, size_t length, int flags, struct sockaddr *address, socklen_t *address_len);
         ^
 comms.cpp:3167:35: error: use of undeclared identifier 'O_NDELAY'
     if (fcntl (*channel, F_SETFL, O_NDELAY))
                                   ^
 comms.cpp:3196:25: error: use of undeclared identifier 'FIONREAD'
     if (ioctl (channel, FIONREAD, &bytes_waiting))
                         ^
 3 warnings and 9 errors generated.
 emcc: compiler frontend failed to generate LLVM bitcode, halting