diff --git a/lib/Standard_ProxySQL_Admin.cpp b/lib/Standard_ProxySQL_Admin.cpp index 154aae6d5..cdd4066f9 100644 --- a/lib/Standard_ProxySQL_Admin.cpp +++ b/lib/Standard_ProxySQL_Admin.cpp @@ -287,6 +287,9 @@ class ifaces_desc { ~ifaces_desc() { while(ifaces->len) { char *d=(char *)ifaces->remove_index_fast(0); + char *add=NULL; char *port=NULL; + c_split_2(d, ":" , &add, &port); + if (atoi(port)==0) { unlink(add); } free(d); } delete ifaces; @@ -1271,7 +1274,7 @@ void Standard_ProxySQL_Admin::print_version() { }; bool Standard_ProxySQL_Admin::init() { - int i; + //int i; size_t mystacksize=256*1024; child_func[0]=child_mysql; diff --git a/lib/network.cpp b/lib/network.cpp index 1311268f0..4fb5120fc 100644 --- a/lib/network.cpp +++ b/lib/network.cpp @@ -12,7 +12,8 @@ int listen_on_port(char *ip, uint16_t port, int backlog) { // create a socket if ( (sd = socket(PF_INET, SOCK_STREAM, 0)) < 0 ) { proxy_error("Error on creating socket\n"); - exit(EXIT_FAILURE); + close(sd); + return -1; } // set SO_REUSEADDR @@ -29,13 +30,15 @@ int listen_on_port(char *ip, uint16_t port, int backlog) { // call bind() to bind the socket on the specified address if ( bind(sd, (struct sockaddr*)&addr, sizeof(addr)) != 0 ) { proxy_error("Error on Bind , address %s:%d\n", ip, port); - exit(EXIT_FAILURE); + close(sd); + return -1; } // define the backlog if ( listen(sd, backlog) != 0 ) { proxy_error("Error on Listen , address %s:%d\n", ip, port); - exit(EXIT_FAILURE); + close(sd); + return -1; } // return the socket @@ -55,13 +58,15 @@ int listen_on_unix(char *path, int backlog) { r=unlink(path); if ( (r==-1) && (errno!=ENOENT) ) { proxy_error("Error unlink Unix Socket %s", path); - exit(EXIT_FAILURE); + close(sd); + return -1; } // create a socket if ( ( sd = socket(AF_UNIX, SOCK_STREAM, 0)) <0 ) { proxy_error("Error on creating socket\n"); - exit(EXIT_FAILURE); + close(sd); + return -1; } memset(&serveraddr, 0, sizeof(serveraddr)); @@ -71,13 +76,15 @@ int listen_on_unix(char *path, int backlog) { // call bind() to bind the socket on the specified file if ( bind(sd, (struct sockaddr *)&serveraddr, sizeof(struct sockaddr_un)) != 0 ) { proxy_error("Error on Bind , Unix Socket %s\n", path); - exit(EXIT_FAILURE); + close(sd); + return -1; } // define the backlog if ( listen(sd, backlog) != 0 ) { proxy_error("Error on Listen , Unix Socket %s\n", path); - exit(EXIT_FAILURE); + close(sd); + return -1; } // change the permission on socket