Check for socklen_t type for accept, getpeername
[yaz-moved-to-github.git] / comstack / unix.c
index 222817e..edfa830 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 1995-2002, Index Data
  * See the file LICENSE for details.
  *
- * $Id: unix.c,v 1.4 2002-07-22 23:16:10 adam Exp $
+ * $Id: unix.c,v 1.5 2002-09-10 20:56:34 adam Exp $
  * UNIX socket COMSTACK. By Morten Bøgeskov.
  */
 #ifndef WIN32
 /* Chas added the following, so we get the definition of completeBER */
 #include <yaz/odr.h>
 
+#if HAVE_SOCKLEN_T
+#define NET_LEN_T socklen_t
+#else
+#if GETPEERNAME_ACCEPTS_SIZE_T_FOR_THIRD_ARGUMENT
+#define NET_LEN_T size_t
+#else
+#define NET_LEN_T int
+#endif
+#endif
+
 int unix_close(COMSTACK h);
 int unix_put(COMSTACK h, char *buf, int size);
 int unix_get(COMSTACK h, char **buf, int *bufsize);
@@ -305,11 +315,7 @@ int unix_listen(COMSTACK h, char *raddr, int *addrlen,
                void *cd)
 {
     struct sockaddr_un addr;
-#ifdef __cplusplus
-    socklen_t len = SUN_LEN(&addr);
-#else
-    int len = SUN_LEN(&addr);
-#endif
+    NET_LEN_T len = SUN_LEN(&addr);
 
     TRC(fprintf(stderr, "unix_listen pid=%d\n", getpid()));
     if (h->state != CS_ST_IDLE)