Lines Matching refs:addr

44 coap_address_get_port(const coap_address_t *addr) {
45 assert(addr != NULL);
46 switch (addr->addr.sa.sa_family) {
49 return ntohs(addr->addr.sin.sin_port);
53 return ntohs(addr->addr.sin6.sin6_port);
62 coap_address_set_port(coap_address_t *addr, uint16_t port) {
63 assert(addr != NULL);
64 switch (addr->addr.sa.sa_family) {
67 addr->addr.sin.sin_port = htons(port);
72 addr->addr.sin6.sin6_port = htons(port);
85 if (a->size != b->size || a->addr.sa.sa_family != b->addr.sa.sa_family)
89 switch (a->addr.sa.sa_family) {
92 return a->addr.sin.sin_port == b->addr.sin.sin_port &&
93 memcmp(&a->addr.sin.sin_addr, &b->addr.sin.sin_addr,
98 return a->addr.sin6.sin6_port == b->addr.sin6.sin6_port &&
99 memcmp(&a->addr.sin6.sin6_addr, &b->addr.sin6.sin6_addr,
111 return a->addr.sa.sa_family == AF_UNIX;
127 switch (a->addr.sa.sa_family) {
130 return IN_MULTICAST(ntohl(a->addr.sin.sin_addr.s_addr));
135 return IN6_IS_ADDR_MULTICAST(&a->addr.sin6.sin6_addr) ||
136 (IN6_IS_ADDR_V4MAPPED(&a->addr.sin6.sin6_addr) &&
137 IN_MULTICAST(ntohl(a->addr.sin6.sin6_addr.s6_addr[12])));
139 return a->addr.sin6.sin6_addr.s6_addr[0] == 0xff;
161 switch(a->addr.sa.sa_family) {
163 if (a->addr.sin.sin_addr.s_addr == 0xFFFFFFFF)
192 switch (a->addr.sa.sa_family) {
195 ipv4.s_addr = a->addr.sin.sin_addr.s_addr;
201 if (IN6_IS_ADDR_V4MAPPED(&a->addr.sin6.sin6_addr)) {
202 memcpy(&ipv4, &a->addr.sin6.sin6_addr.s6_addr[12], sizeof(ipv4));
259 coap_address_init(coap_address_t *addr) {
260 assert(addr);
261 memset(addr, 0, sizeof(coap_address_t));
264 addr->size = sizeof(addr->addr);
269 coap_address_ntop(const coap_address_t *addr, char *dst, int len) {
270 if ((addr == NULL) || (dst == NULL) || (len < INET6_ADDRSTRLEN))
273 (void)ipaddr_ntoa_r(&(addr->addr), dst, len);
277 if (addr->addr.sa.sa_family == AF_INET) {
278 const void *addrptr = &addr->addr.sin.sin_addr;
279 (void)inet_ntop(addr->addr.sa.sa_family, addrptr, dst, len);
281 const void *addrptr = &addr->addr.sin6.sin6_addr;
282 (void)inet_ntop(addr->addr.sa.sa_family, addrptr, dst, len);
288 coap_address_set_unix_domain(coap_address_t *addr,
294 coap_address_init(addr);
295 addr->addr.cun.sun_family = AF_UNIX;
299 addr->addr.cun.sun_path[ofs++] = '/';
302 addr->addr.cun.sun_path[ofs++] = host[i];
308 addr->addr.cun.sun_path[ofs] = '\000';
310 addr->addr.cun.sun_path[ofs-1] = '\000';
313 (void)addr;
322 update_port(coap_address_t *addr, uint16_t port, uint16_t default_port,
328 coap_address_set_port(addr, port);
496 coap_address_init(&info->addr);
497 if (!coap_address_set_unix_domain(&info->addr, address->s,
526 if (ainfo->ai_addrlen > (socklen_t)sizeof(info->addr.addr))
593 coap_address_init(&info->addr);
595 info->addr.size = (socklen_t)ainfo->ai_addrlen;
596 memcpy(&info->addr.addr, ainfo->ai_addr, ainfo->ai_addrlen);
598 memset(&info->addr, 0, sizeof(info->addr));
607 info->addr.port = ntohs(sock4->sin_port);
608 memcpy(&info->addr.addr, &sock4->sin_addr, 4);
610 info->addr.addr.type = IPADDR_TYPE_V4;
617 info->addr.port = ntohs(sock6->sin6_port);
618 memcpy(&info->addr.addr, &sock6->sin6_addr, 16);
620 info->addr.addr.type = IPADDR_TYPE_V6;
630 update_port(&info->addr, port, COAP_DEFAULT_PORT,
634 update_port(&info->addr, secure_port, COAPS_DEFAULT_PORT,
638 update_port(&info->addr, port, COAP_DEFAULT_PORT,
642 update_port(&info->addr, secure_port, COAPS_DEFAULT_PORT,
646 update_port(&info->addr, port, 80,
650 update_port(&info->addr, secure_port, 443,
654 update_port(&info->addr, ws_port, 80,
658 update_port(&info->addr, ws_secure_port, 443,
671 coap_address_equals(&info_tmp->addr, &info->addr)) {
776 coap_address_init(&info->addr);
777 info->addr.size = sizeof(struct sockaddr_in6);
778 info->addr.addr.sin6.sin6_family = AF_INET6;
779 memcpy(&info->addr.addr.sin6.sin6_addr, &addr_ipv6,
780 sizeof(info->addr.addr.sin6.sin6_addr));
781 info->addr.addr.sin6.sin6_scope_id = (uint32_t)netif_get_id(netif);
784 update_port(&info->addr, port, COAP_DEFAULT_PORT,
788 update_port(&info->addr, secure_port, COAPS_DEFAULT_PORT,
792 update_port(&info->addr, port, COAP_DEFAULT_PORT,
796 update_port(&info->addr, secure_port, COAPS_DEFAULT_PORT,
800 update_port(&info->addr, port, ws_port,
804 update_port(&info->addr, secure_port, ws_secure_port,
840 if (src->addr.sa.sa_family == AF_INET6) {
841 dst->addr.sin6.sin6_family = src->addr.sin6.sin6_family;
842 dst->addr.sin6.sin6_addr = src->addr.sin6.sin6_addr;
843 dst->addr.sin6.sin6_port = src->addr.sin6.sin6_port;
844 dst->addr.sin6.sin6_scope_id = src->addr.sin6.sin6_scope_id;
851 if (src->addr.sa.sa_family == AF_INET) {
852 dst->addr.sin = src->addr.sin;
856 memcpy(&dst->addr, &src->addr, src->size);
864 switch (a->addr.sa.sa_family) {
867 return a->addr.sin.sin_addr.s_addr == INADDR_ANY;
872 &a->addr.sin6.sin6_addr,