diff options
Diffstat (limited to 'src/lib/openjpip/sock_manager.c')
| -rw-r--r-- | src/lib/openjpip/sock_manager.c | 184 |
1 files changed, 92 insertions, 92 deletions
diff --git a/src/lib/openjpip/sock_manager.c b/src/lib/openjpip/sock_manager.c index 5634556d..3c220ee4 100644 --- a/src/lib/openjpip/sock_manager.c +++ b/src/lib/openjpip/sock_manager.c @@ -54,129 +54,129 @@ typedef SSIZE_T ssize_t; SOCKET open_listeningsocket( uint16_t port) { - SOCKET listening_socket; - struct sockaddr_in sin; - int sock_optval = 1; - - listening_socket = socket(AF_INET, SOCK_STREAM, 0); - if ( listening_socket == -1 ){ - perror("socket"); - exit(1); - } - - if ( setsockopt(listening_socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&sock_optval, sizeof(sock_optval)) == -1 ){ - perror("setsockopt"); - exit(1); - } - - memset(&sin, 0, sizeof(sin)); - sin.sin_family = AF_INET; - sin.sin_port = htons(port); - sin.sin_addr.s_addr = htonl(INADDR_ANY); - - if ( bind(listening_socket, (struct sockaddr *)&sin, sizeof(sin)) < 0 ){ - perror("bind"); - close_socket(listening_socket); - exit(1); - } - - if( listen(listening_socket, SOMAXCONN) == -1){ - perror("listen"); - close_socket(listening_socket); - exit(1); - } - fprintf( FCGI_stderr, "port %d is listened\n", port); - - return listening_socket; + SOCKET listening_socket; + struct sockaddr_in sin; + int sock_optval = 1; + + listening_socket = socket(AF_INET, SOCK_STREAM, 0); + if ( listening_socket == -1 ) { + perror("socket"); + exit(1); + } + + if ( setsockopt(listening_socket, SOL_SOCKET, SO_REUSEADDR, (const char *)&sock_optval, sizeof(sock_optval)) == -1 ) { + perror("setsockopt"); + exit(1); + } + + memset(&sin, 0, sizeof(sin)); + sin.sin_family = AF_INET; + sin.sin_port = htons(port); + sin.sin_addr.s_addr = htonl(INADDR_ANY); + + if ( bind(listening_socket, (struct sockaddr *)&sin, sizeof(sin)) < 0 ) { + perror("bind"); + close_socket(listening_socket); + exit(1); + } + + if( listen(listening_socket, SOMAXCONN) == -1) { + perror("listen"); + close_socket(listening_socket); + exit(1); + } + fprintf( FCGI_stderr, "port %d is listened\n", port); + + return listening_socket; } SOCKET accept_socket( SOCKET listening_socket) { - struct sockaddr_in peer_sin; - unsigned int addrlen = sizeof(peer_sin); + struct sockaddr_in peer_sin; + unsigned int addrlen = sizeof(peer_sin); - return accept( listening_socket, (struct sockaddr *)&peer_sin, &addrlen); + return accept( listening_socket, (struct sockaddr *)&peer_sin, &addrlen); } void send_stream( SOCKET connected_socket, const void *stream, OPJ_SIZE_T length) { - char *ptr = (char*)stream; - OPJ_SIZE_T remlen = length; - - while( remlen > 0){ - ssize_t sentlen = send( connected_socket, ptr, remlen, 0); - if( sentlen == -1){ - fprintf( FCGI_stderr, "sending stream error\n"); - break; + char *ptr = (char*)stream; + OPJ_SIZE_T remlen = length; + + while( remlen > 0) { + ssize_t sentlen = send( connected_socket, ptr, remlen, 0); + if( sentlen == -1) { + fprintf( FCGI_stderr, "sending stream error\n"); + break; + } + remlen = remlen - (OPJ_SIZE_T)sentlen; + ptr = ptr + sentlen; } - remlen = remlen - (OPJ_SIZE_T)sentlen; - ptr = ptr + sentlen; - } } void * receive_stream( SOCKET connected_socket, OPJ_SIZE_T length) { - char *stream, *ptr; - OPJ_SIZE_T remlen; - - ptr = stream = malloc( length); - remlen = length; - - while( remlen > 0){ - ssize_t redlen = recv( connected_socket, ptr, remlen, 0); - if( redlen == -1){ - fprintf( FCGI_stderr, "receive stream error\n"); - free( stream); - stream = NULL; - break; + char *stream, *ptr; + OPJ_SIZE_T remlen; + + ptr = stream = malloc( length); + remlen = length; + + while( remlen > 0) { + ssize_t redlen = recv( connected_socket, ptr, remlen, 0); + if( redlen == -1) { + fprintf( FCGI_stderr, "receive stream error\n"); + free( stream); + stream = NULL; + break; + } + remlen -= (OPJ_SIZE_T)redlen; + ptr = ptr + redlen; } - remlen -= (OPJ_SIZE_T)redlen; - ptr = ptr + redlen; - } - return stream; + return stream; } OPJ_SIZE_T receive_line(SOCKET connected_socket, char *p) { - OPJ_SIZE_T len = 0; - while (1){ - ssize_t ret; - ret = recv( connected_socket, p, 1, 0); - if ( ret == -1 ){ - perror("receive"); - exit(1); - } else if ( ret == 0 ){ - break; + OPJ_SIZE_T len = 0; + while (1) { + ssize_t ret; + ret = recv( connected_socket, p, 1, 0); + if ( ret == -1 ) { + perror("receive"); + exit(1); + } else if ( ret == 0 ) { + break; + } + if ( *p == '\n' ) + break; + p++; + len++; } - if ( *p == '\n' ) - break; - p++; - len++; - } - *p = '\0'; + *p = '\0'; - if( len == 0) - fprintf( FCGI_stderr, "Header receive error\n"); + if( len == 0) + fprintf( FCGI_stderr, "Header receive error\n"); - return len; + return len; } char * receive_string( SOCKET connected_socket) { - char buf[BUF_LEN]; - - /* MM FIXME: there is a nasty bug here, size of buf if BUF_LEN which is never - indicated to downstream receive_line */ - receive_line( connected_socket, buf); - - return strdup(buf); + char buf[BUF_LEN]; + + /* MM FIXME: there is a nasty bug here, size of buf if BUF_LEN which is never + indicated to downstream receive_line */ + receive_line( connected_socket, buf); + + return strdup(buf); } int close_socket( SOCKET sock) { #ifdef _WIN32 - return closesocket( sock); + return closesocket( sock); #else - return close( sock); + return close( sock); #endif } |
