|
|
|
@ -83,7 +83,7 @@ index 77c519b..e09c0c9 100644
|
|
|
|
|
@@ -51,6 +51,12 @@
|
|
|
|
|
#include <winsock2.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+#ifdef RIOT
|
|
|
|
|
+int getpagesize(void) {
|
|
|
|
|
+ return 512;
|
|
|
|
@ -91,7 +91,7 @@ index 77c519b..e09c0c9 100644
|
|
|
|
|
+#endif
|
|
|
|
|
+
|
|
|
|
|
#include "common/autobuf.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
diff --git a/src-api/common/common_types.h b/src-api/common/common_types.h
|
|
|
|
|
index c90cf46..54ce281 100644
|
|
|
|
@ -116,7 +116,7 @@ index 103c88f..6ea603d 100644
|
|
|
|
|
@@ -48,7 +48,7 @@
|
|
|
|
|
#include "common/common_types.h"
|
|
|
|
|
#include "common/daemonize.h"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-#ifndef WIN32
|
|
|
|
|
+#if (!defined(_WIN32)) && (!defined(RIOT))
|
|
|
|
|
/**
|
|
|
|
@ -138,7 +138,7 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
+#include "inet_pton.h"
|
|
|
|
|
+#define DONT_HAVE_SIN6_SCOPE_ID
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "common/common_types.h"
|
|
|
|
|
#include "common/string.h"
|
|
|
|
|
@@ -175,12 +182,12 @@ netaddr_to_binary(void *dst, const struct netaddr *src, size_t len) {
|
|
|
|
@ -165,14 +165,14 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
+ dst->_type = (uint8_t)src->std.sin6_family;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -204,12 +211,12 @@ netaddr_from_socket(struct netaddr *dst, const union netaddr_socket *src) {
|
|
|
|
|
int
|
|
|
|
|
netaddr_to_socket(union netaddr_socket *dst, const struct netaddr *src) {
|
|
|
|
|
/* copy address type */
|
|
|
|
|
- dst->std.sa_family = src->_type;
|
|
|
|
|
+ dst->std.sin6_family = src->_type;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
switch (src->_type) {
|
|
|
|
|
case AF_INET:
|
|
|
|
|
/* ipv4 */
|
|
|
|
@ -183,13 +183,13 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
/* ipv6 */
|
|
|
|
|
@@ -221,7 +228,7 @@ netaddr_to_socket(union netaddr_socket *dst, const struct netaddr *src) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* copy address type */
|
|
|
|
|
- dst->std.sa_family= src->_type;
|
|
|
|
|
+ dst->std.sin6_family= src->_type;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -319,14 +326,16 @@ netaddr_socket_init(union netaddr_socket *combined, const struct netaddr *addr,
|
|
|
|
|
switch (addr->_type) {
|
|
|
|
|
case AF_INET:
|
|
|
|
@ -204,7 +204,7 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
memcpy(&combined->v6.sin6_addr, addr->_addr, 16);
|
|
|
|
|
- combined->v6.sin6_port = htons(port);
|
|
|
|
|
+ combined->v6.sin6_port = HTONS(port);
|
|
|
|
|
+#ifndef DONT_HAVE_SIN6_SCOPE_ID
|
|
|
|
|
+#ifndef DONT_HAVE_SIN6_SCOPE_ID
|
|
|
|
|
combined->v6.sin6_scope_id = if_index;
|
|
|
|
|
+#endif
|
|
|
|
|
break;
|
|
|
|
@ -212,13 +212,13 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
/* unknown address type */
|
|
|
|
|
@@ -334,7 +343,7 @@ netaddr_socket_init(union netaddr_socket *combined, const struct netaddr *addr,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* copy address type */
|
|
|
|
|
- combined->std.sa_family = addr->_type;
|
|
|
|
|
+ combined->std.sin6_family = addr->_type;
|
|
|
|
|
return 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -344,11 +353,11 @@ netaddr_socket_init(union netaddr_socket *combined, const struct netaddr *addr,
|
|
|
|
|
*/
|
|
|
|
|
uint16_t
|
|
|
|
@ -237,7 +237,7 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
@@ -555,28 +564,31 @@ const char *
|
|
|
|
|
netaddr_socket_to_string(struct netaddr_str *dst, const union netaddr_socket *src) {
|
|
|
|
|
struct netaddr_str buf;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- if (src->std.sa_family == AF_INET) {
|
|
|
|
|
+ if (src->std.sin6_family == AF_INET) {
|
|
|
|
|
snprintf(dst->buf, sizeof(*dst), "%s:%d",
|
|
|
|
@ -251,7 +251,7 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
+#ifndef DONT_HAVE_SIN6_SCOPE_ID
|
|
|
|
|
if (src->v6.sin6_scope_id) {
|
|
|
|
|
char scope_buf[IF_NAMESIZE];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
snprintf(dst->buf, sizeof(*dst), "[%s]:%d%%%s",
|
|
|
|
|
inet_ntop(AF_INET6, &src->v6.sin6_addr, buf.buf, sizeof(buf)),
|
|
|
|
|
- ntohs(src->v6.sin6_port),
|
|
|
|
@ -272,18 +272,18 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
- snprintf(dst->buf, sizeof(*dst), "\"Unknown socket type: %d\"", src->std.sa_family);
|
|
|
|
|
+ snprintf(dst->buf, sizeof(*dst), "\"Unknown socket type: %d\"", src->std.sin6_family);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return dst->buf;
|
|
|
|
|
@@ -622,13 +634,13 @@ int
|
|
|
|
|
netaddr_cmp_to_socket(const struct netaddr *a1, const union netaddr_socket *a2) {
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
- result = (int)a1->_type - (int)a2->std.sa_family;
|
|
|
|
|
+ result = (int)a1->_type - (int)a2->std.sin6_family;
|
|
|
|
|
if (result) {
|
|
|
|
|
return result;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (a1->_type == AF_INET) {
|
|
|
|
|
- result = memcmp(a1->_addr, &a2->v4.sin_addr, 4);
|
|
|
|
|
+ result = memcmp(a1->_addr, &a2->v4.sin6_addr, 4);
|
|
|
|
@ -317,7 +317,7 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
return dst;
|
|
|
|
|
}
|
|
|
|
|
@@ -795,7 +807,7 @@ inet_pton(int af, const char *src, void *dst)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sock = (union netaddr_socket *)res->ai_addr;
|
|
|
|
|
if (af == AF_INET) {
|
|
|
|
|
- memcpy(dst, &sock->v4.sin_addr, 4);
|
|
|
|
@ -327,11 +327,11 @@ index dedab2c..fdc3e82 100644
|
|
|
|
|
memcpy(dst, &sock->v6.sin6_addr, 16);
|
|
|
|
|
@@ -928,7 +940,7 @@ _subnetmask_to_prefixlen(const char *src) {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* transform into host byte order */
|
|
|
|
|
- v4 = ntohl(v4);
|
|
|
|
|
+ v4 = NTOHL(v4);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
shift = 0xffffffff;
|
|
|
|
|
for (len = 31; len >= 0; len--) {
|
|
|
|
|
diff --git a/src-api/common/netaddr.h b/src-api/common/netaddr.h
|
|
|
|
@ -340,8 +340,8 @@ index 78fd5b4..cfba7a9 100644
|
|
|
|
|
+++ b/src-api/common/netaddr.h
|
|
|
|
|
@@ -43,18 +43,26 @@
|
|
|
|
|
#define NETADDR_H_
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-#ifndef _WIN32
|
|
|
|
|
+#if (!defined(_WIN32)) && (!defined(RIOT))
|
|
|
|
|
#include <arpa/inet.h>
|
|
|
|
@ -354,10 +354,10 @@ index 78fd5b4..cfba7a9 100644
|
|
|
|
|
+#ifdef _WIN32
|
|
|
|
|
#include <winsock2.h>
|
|
|
|
|
#include <ws2tcpip.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#define IF_NAMESIZE 16
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+#ifdef RIOT
|
|
|
|
|
+#include "destiny/socket.h"
|
|
|
|
|
+#define INET_ADDRSTRLEN (16)
|
|
|
|
@ -366,7 +366,7 @@ index 78fd5b4..cfba7a9 100644
|
|
|
|
|
+
|
|
|
|
|
#include <assert.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -97,10 +105,10 @@ struct netaddr {
|
|
|
|
|
* to all variants without casting and compiler warnings.
|
|
|
|
|
*/
|
|
|
|
@ -380,7 +380,7 @@ index 78fd5b4..cfba7a9 100644
|
|
|
|
|
+ sockaddr6_t std;
|
|
|
|
|
+ sockaddr6_t storage;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@@ -337,7 +345,7 @@ netaddr_set_prefix_length(struct netaddr *n, uint8_t prefix_len) {
|
|
|
|
|
*/
|
|
|
|
@ -389,7 +389,7 @@ index 78fd5b4..cfba7a9 100644
|
|
|
|
|
- return s->std.sa_family;
|
|
|
|
|
+ return s->std.sin6_family;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif /* NETADDR_H_ */
|
|
|
|
|
diff --git a/src-api/rfc5444/Makefile b/src-api/rfc5444/Makefile
|
|
|
|
|
new file mode 100644
|
|
|
|
@ -472,9 +472,9 @@ index 4b3e04d..6b52f72 100644
|
|
|
|
|
#include <sys/socket.h>
|
|
|
|
|
#include <arpa/inet.h>
|
|
|
|
|
+#endif
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#include "common/netaddr.h"
|
|
|
|
|
#include "rfc5444/rfc5444_reader.h"
|
|
|
|
|
--
|
|
|
|
|
--
|
|
|
|
|
1.8.3.2
|
|
|
|
|
|
|
|
|
|