ithewei 5 years ago
parent
commit
ec9a33be9c
3 changed files with 19 additions and 10 deletions
  1. 5 1
      base/hdef.h
  2. 9 9
      base/hsocket.c
  3. 5 0
      base/hsocket.h

+ 5 - 1
base/hdef.h

@@ -79,7 +79,11 @@ typedef void (*procedure_t)(void* userdata);
 #endif
 #endif
 
 
 #ifndef ABS
 #ifndef ABS
-#define ABS(n) ((n) < 0 ? -(n) : (n))
+#define ABS(n)  ((n) > 0 ? (n) : -(n))
+#endif
+
+#ifndef NABS
+#define NABS(n) ((n) < 0 ? (n) : -(n))
 #endif
 #endif
 
 
 #ifndef MAX
 #ifndef MAX

+ 9 - 9
base/hsocket.c

@@ -1,6 +1,6 @@
 #include "hsocket.h"
 #include "hsocket.h"
 
 
-static inline int socket_errno_nagative() {
+static inline int socket_errno_negative() {
     int err = socket_errno();
     int err = socket_errno();
     return err > 0 ? -err : -1;
     return err > 0 ? -err : -1;
 }
 }
@@ -61,7 +61,7 @@ static int sockaddr_bind(sockaddr_u* localaddr, int type) {
     int sockfd = socket(localaddr->sa.sa_family, type, 0);
     int sockfd = socket(localaddr->sa.sa_family, type, 0);
     if (sockfd < 0) {
     if (sockfd < 0) {
         perror("socket");
         perror("socket");
-        return socket_errno_nagative();
+        return socket_errno_negative();
     }
     }
 
 
     // NOTE: SO_REUSEADDR means that you can reuse sockaddr of TIME_WAIT status
     // NOTE: SO_REUSEADDR means that you can reuse sockaddr of TIME_WAIT status
@@ -79,7 +79,7 @@ static int sockaddr_bind(sockaddr_u* localaddr, int type) {
     return sockfd;
     return sockfd;
 error:
 error:
     closesocket(sockfd);
     closesocket(sockfd);
-    return socket_errno_nagative();
+    return socket_errno_negative();
 }
 }
 
 
 static int sockaddr_connect(sockaddr_u* peeraddr, int nonblock) {
 static int sockaddr_connect(sockaddr_u* peeraddr, int nonblock) {
@@ -87,7 +87,7 @@ static int sockaddr_connect(sockaddr_u* peeraddr, int nonblock) {
     int connfd = socket(peeraddr->sa.sa_family, SOCK_STREAM, 0);
     int connfd = socket(peeraddr->sa.sa_family, SOCK_STREAM, 0);
     if (connfd < 0) {
     if (connfd < 0) {
         perror("socket");
         perror("socket");
-        return -socket_errno();
+        return socket_errno_negative();
     }
     }
 
 
     if (nonblock) {
     if (nonblock) {
@@ -102,7 +102,7 @@ static int sockaddr_connect(sockaddr_u* peeraddr, int nonblock) {
 #endif
 #endif
         perror("connect");
         perror("connect");
         closesocket(connfd);
         closesocket(connfd);
-        return socket_errno_nagative();
+        return socket_errno_negative();
     }
     }
     return connfd;
     return connfd;
 }
 }
@@ -112,7 +112,7 @@ static int ListenFD(int sockfd) {
     if (listen(sockfd, SOMAXCONN) < 0) {
     if (listen(sockfd, SOMAXCONN) < 0) {
         perror("listen");
         perror("listen");
         closesocket(sockfd);
         closesocket(sockfd);
-        return socket_errno_nagative();
+        return socket_errno_negative();
     }
     }
     return sockfd;
     return sockfd;
 }
 }
@@ -140,7 +140,7 @@ static int ConnectFDTimeout(int connfd, int ms) {
     return connfd;
     return connfd;
 error:
 error:
     closesocket(connfd);
     closesocket(connfd);
-    return socket_errno_nagative();
+    return socket_errno_negative();
 }
 }
 
 
 int Bind(int port, const char* host, int type) {
 int Bind(int port, const char* host, int type) {
@@ -156,7 +156,7 @@ int Bind(int port, const char* host, int type) {
     memset(&localaddr, 0, sizeof(localaddr));
     memset(&localaddr, 0, sizeof(localaddr));
     int ret = sockaddr_set_ipport(&localaddr, host, port);
     int ret = sockaddr_set_ipport(&localaddr, host, port);
     if (ret != 0) {
     if (ret != 0) {
-        return ret > 0 ? -ret : ret;
+        return NABS(ret);
     }
     }
     return sockaddr_bind(&localaddr, type);
     return sockaddr_bind(&localaddr, type);
 }
 }
@@ -172,7 +172,7 @@ int Connect(const char* host, int port, int nonblock) {
     memset(&peeraddr, 0, sizeof(peeraddr));
     memset(&peeraddr, 0, sizeof(peeraddr));
     int ret = sockaddr_set_ipport(&peeraddr, host, port);
     int ret = sockaddr_set_ipport(&peeraddr, host, port);
     if (ret != 0) {
     if (ret != 0) {
-        return ret > 0 ? -ret : ret;
+        return NABS(ret);
     }
     }
     return sockaddr_connect(&peeraddr, nonblock);
     return sockaddr_connect(&peeraddr, nonblock);
 }
 }

+ 5 - 0
base/hsocket.h

@@ -151,6 +151,11 @@ static inline const char* sockaddr_str(sockaddr_u* addr, char* buf, int len) {
         port = htons(addr->sin6.sin6_port);
         port = htons(addr->sin6.sin6_port);
         snprintf(buf, len, "[%s]:%d", ip, port);
         snprintf(buf, len, "[%s]:%d", ip, port);
     }
     }
+#ifdef ENABLE_UDS
+    else if (addr->sa.sa_family == AF_UNIX) {
+        snprintf(buf, len, "%s", addr->sun.sun_path);
+    }
+#endif
     return buf;
     return buf;
 }
 }