Hi folks, I am trying to observe the effect of MSG_OOB while receiving data.
I have a small demo program that creates an accepting socket, connect a sending socket to the accepting, closes the accepting socket to keep only the sending and the receiving, forks, and handle receive on the parent and send on the child. No flags of any kinds are set. write(send_sk, (void *)&payload, sizeof(payload)) / read(recv_sk, (void *)&payload, sizeof(payload)) => no problem. sendto(send_sk, (void *)&payload, sizeof(payload), 0, NULL, 0) / recvfrom(recv_sk, (void *)&payload, sizeof(payload), 0, NULL, 0) => no problem. sendto(send_sk, (void *)&payload, sizeof(payload), MSG_OOB, NULL, 0) / recvfrom(recv_sk, (void *)&payload, sizeof(payload), 0, NULL, 0) => fails with errno = 0, and tcpdump shows me the packet with the URG flag set. sendto(send_sk, (void *)&payload, sizeof(payload), MSG_OOB, NULL, 0) / recvfrom(recv_sk, (void *)&payload, sizeof(payload), MSG_OOB, NULL, 0) => fails with EINVAL on the receiving end, and tcpdump shows me the packet with the URG flag set. Did I miss something on the man pages ? or is it something more sinister ? Thnaks for your time -- Vincent / dermiste [demime 1.01d removed an attachment of type application/pgp-signature]

