Hello I got an strange behavior when compiling the gcoap example. Maye someone has an idea.
I run Riot on an atxmega256a3u with an at86rf233.
When I compile with ENABLE_DEBUG (1) tin gcoap.c then everything works as expected and I am able to get .well-known/core information from the node.
But when I disable debug I always get the error -EPROTO from gnrc_sock_udp.
Which checks
if (
(sock->remote.family != AF_UNSPEC) && /* check remote end-point if set */
((sock->remote.port != byteorder_ntohs(hdr->src_port)) ||
/* We only have IPv6 for now, so just comparing the whole end point
- should suffice */
((memcmp(&sock->remote.addr, &ipv6_addr_unspecified,
sizeof(ipv6_addr_t)) != 0) &&
(memcmp(&sock->remote.addr, &tmp.addr, sizeof(ipv6_addr_t)) != 0)))) {
With debug:
_recv_ieee802154: received packet from 18:c0:ff:ee:1a:c0:ff:ee of length 65
00000000 6F 00 08 E0 8B 21 A5 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 01 21 A5 00 00 00 00 00 00 20 28 3C
00000020 DC 25 BB 61 3E F0 81 3D 16 33 F2 6F 50 01 73 6A
00000030 BB 2E 77 65 6C 6C 2D 6B 6E 6F 77 6E 04 63 6F 72
00000040 65
_recv_ieee802154: reallocating.
Address Format specified unspecified 0, Format 0
Port 0 != 33085
IP good ipv6_addr_unspecified: 0
IP good tmp.addr: 1
Without Debug:
_recv_ieee802154: received packet from 18:c0:ff:ee:1a:c0:ff:ee of length 65
00000000 6F 00 05 01 10 21 A5 00 00 00 00 00 00 00 00 00
00000010 00 00 00 00 01 21 A5 00 00 00 00 00 00 20 28 3C
00000020 DC 25 BB 61 3E F0 83 5E 16 33 F0 4E 50 01 73 6A
00000030 BB 2E 77 65 6C 6C 2D 6B 6E 6F 77 6E 04 63 6F 72
00000040 65
_recv_ieee802154: reallocating.
Address Format specified unspecified 1, Format -29115
Port 41 != 33630
IP good ipv6_addr_unspecified: 1
IP good tmp.addr: 1
So the question is where are these values assigned to the sock, so I can investigate this further.
And what could cause this strange behavior.
Thanks in advance
Josua Arndt