VS>> Отож. Было бы там просто, я не стал бы обращаться к помощи клуба, VS>> а ман я сам почитать умею.
VS>> Там с 1211 строки создается сокет, SOCK_DGRAM, а вот как туда еще VS>> setsockopt дописать, я не знаю.
VN> Банально - берёш и дописываешь ровно две строчки по образцу в любом VN> месте между созданием сокета и использованием, например:
Как просто, когда знаешь. Спасибо большое.
VN> - --- sud1.c.orig 2017-05-05 04:09:35.000000000 +0300 VN> +++ sud1.c 2017-05-06 12:25:03.253401283 +0300 VN> @@ -1213,6 +1213,9 @@ VN> snmp_reply(errno, sd, 0); VN> return; VN> } VN> + /* Set TOS */ VN> + const int tos = IPTOS_DSCP_CS6; VN> + setsockopt(sd->sock, IPPROTO_IP, IP_TOS, &tos, sizeof(tos)); VN> /* bind datagram socket to local source address */ VN> from = (struct sockaddr_in *)&sd->me; VN> if ( from->sin_addr.s_addr != INADDR_ANY ) {
VN> код возврата я уже не стал проверять.
А почему компилятор выдает
snmp.c: In function 'snmp_start': snmp.c:1217: error: 'IPTOS_DSCP_CS6' undeclared (first use in this function) snmp.c:1217: error: (Each undeclared identifier is reported only once snmp.c:1217: error: for each function it appears in.) *** [snmp.o] Error code 1
тогда как в начале данного исходника инклюдится <netinet/in.h> и в нём внутри определён IPTOS_DSCP_CS6?
Если вписать "#define IPTOS_DSCP_CS6 0xc0" прямо в начало данного файла, то всё собирается, но это неспортивно же.