summaryrefslogtreecommitdiff
path: root/usr/src/common/smbsrv/smb_inet.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/common/smbsrv/smb_inet.c')
-rw-r--r--usr/src/common/smbsrv/smb_inet.c36
1 files changed, 26 insertions, 10 deletions
diff --git a/usr/src/common/smbsrv/smb_inet.c b/usr/src/common/smbsrv/smb_inet.c
index 5822a49b24..2d56870fda 100644
--- a/usr/src/common/smbsrv/smb_inet.c
+++ b/usr/src/common/smbsrv/smb_inet.c
@@ -21,21 +21,31 @@
/*
* Copyright 2009 Sun Microsystems, Inc. All rights reserved.
* Use is subject to license terms.
+ *
+ * Copyright 2014 Nexenta Systems, Inc. All rights reserved.
*/
/*
* This file was originally generated using rpcgen.
*/
-#ifndef _KERNEL
-#include <string.h>
-#include <stdlib.h>
-#include <arpa/inet.h>
-#endif /* !_KERNEL */
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
-#include <inet/tcp.h>
+
+#if !defined(_KERNEL)
+#include <errno.h>
+#include <string.h>
+#include <strings.h>
+#include <arpa/inet.h>
+#else /* !_KERNEL */
+#include <sys/errno.h>
+#include <sys/sunddi.h>
+/* Don't want the rest of what's in inet/ip.h */
+extern char *inet_ntop(int, const void *, char *, int);
+extern int inet_pton(int, char *, void *);
+#endif /* !_KERNEL */
+
#include <smbsrv/smb_inet.h>
const struct in6_addr ipv6addr_any = IN6ADDR_ANY_INIT;
@@ -50,7 +60,7 @@ smb_inet_equal(smb_inaddr_t *ip1, smb_inaddr_t *ip2)
if ((ip1->a_family == AF_INET6) &&
(ip2->a_family == AF_INET6) &&
- (!memcmp(&ip1->a_ipv6, &ip2->a_ipv6, IPV6_ADDR_LEN)))
+ (!memcmp(&ip1->a_ipv6, &ip2->a_ipv6, sizeof (in6_addr_t))))
return (B_TRUE);
else
return (B_FALSE);
@@ -66,7 +76,7 @@ smb_inet_same_subnet(smb_inaddr_t *ip1, smb_inaddr_t *ip2, uint32_t v4mask)
if ((ip1->a_family == AF_INET6) &&
(ip2->a_family == AF_INET6) &&
- (!memcmp(&ip1->a_ipv6, &ip2->a_ipv6, IPV6_ADDR_LEN)))
+ (!memcmp(&ip1->a_ipv6, &ip2->a_ipv6, sizeof (in6_addr_t))))
return (B_TRUE);
else
return (B_FALSE);
@@ -82,7 +92,7 @@ smb_inet_iszero(smb_inaddr_t *ipaddr)
return (B_TRUE);
if ((ipaddr->a_family == AF_INET6) &&
- !memcmp(&ipaddr->a_ipv6, ipsz, IPV6_ADDR_LEN))
+ !memcmp(&ipaddr->a_ipv6, ipsz, sizeof (in6_addr_t)))
return (B_TRUE);
else
return (B_FALSE);
@@ -91,5 +101,11 @@ smb_inet_iszero(smb_inaddr_t *ipaddr)
const char *
smb_inet_ntop(smb_inaddr_t *addr, char *buf, int size)
{
- return ((char *)inet_ntop(addr->a_family, (char *)addr, buf, size));
+ /* Lint avoidance. */
+#if !defined(_KERNEL)
+ size_t sz = (size_t)size;
+#else
+ int sz = size;
+#endif
+ return ((char *)inet_ntop(addr->a_family, addr, buf, sz));
}