Commit | Line | Data |
---|---|---|
7f918cf1 CE |
1 | #include "platform.h" |
2 | ||
3 | void | |
4 | Socket_INetSock_toAddr (Vector(Word8_t) in_addr, Word16_t port, | |
5 | Array(Word8_t) addr, Ref(C_Socklen_t) addrlen) { | |
6 | struct sockaddr_in *sa = (struct sockaddr_in*)addr; | |
7 | ||
8 | sa->sin_family = AF_INET; | |
9 | sa->sin_port = (uint16_t)port; | |
10 | sa->sin_addr = *(const struct in_addr*)in_addr; | |
11 | *((socklen_t*)addrlen) = sizeof(struct sockaddr_in); | |
12 | } | |
13 | ||
14 | static uint16_t Socket_INetSock_fromAddr_port; | |
15 | static struct in_addr Socket_INetSock_fromAddr_in_addr; | |
16 | ||
17 | void Socket_INetSock_fromAddr (Vector(Word8_t) addr) { | |
18 | const struct sockaddr_in *sa = (const struct sockaddr_in*)addr; | |
19 | ||
20 | assert(sa->sin_family == AF_INET); | |
21 | Socket_INetSock_fromAddr_port = sa->sin_port; | |
22 | Socket_INetSock_fromAddr_in_addr = sa->sin_addr; | |
23 | } | |
24 | ||
25 | Word16_t Socket_INetSock_getPort (void) { | |
26 | return (Word16_t)Socket_INetSock_fromAddr_port; | |
27 | } | |
28 | ||
29 | void Socket_INetSock_getInAddr (Array(Word8_t) addr) { | |
30 | *(struct in_addr*)addr = Socket_INetSock_fromAddr_in_addr; | |
31 | } |