My code is not working. I play the root role (same behavior as a regular user)
First I want to install TOS and then get the value.
int tos_local = 0x28; if (setsockopt(sockfd, IPPROTO_TCP, IP_TOS, &tos_local, sizeof(tos_local))) { error("error at socket option"); } else { int tos=0; int toslen=0; if (getsockopt(sockfd, IPPROTO_TCP, IP_TOS, &tos, &toslen) < 0) { error("error to get option"); }else { printf ("changing tos opt = %d\n",tos); } }
printf prints
change tos opt = 0
I would expect to print 0x28 (40).
What is the problem?
Correct answer:
if (setsockopt(sockfd, **IPPROTO_IP**, IP_TOS, &tos_local, sizeof(tos_local))) { int tos=0; int toslen=sizeof(tos);
source share