=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/nc/netcat.c,v retrieving revision 1.126 retrieving revision 1.127 diff -c -r1.126 -r1.127 *** src/usr.bin/nc/netcat.c 2014/10/30 16:08:31 1.126 --- src/usr.bin/nc/netcat.c 2015/02/14 22:40:22 1.127 *************** *** 1,4 **** ! /* $OpenBSD: netcat.c,v 1.126 2014/10/30 16:08:31 tedu Exp $ */ /* * Copyright (c) 2001 Eric Jackson * --- 1,4 ---- ! /* $OpenBSD: netcat.c,v 1.127 2015/02/14 22:40:22 jca Exp $ */ /* * Copyright (c) 2001 Eric Jackson * *************** *** 113,119 **** int unix_bind(char *); int unix_connect(char *); int unix_listen(char *); ! void set_common_sockopts(int); int map_tos(char *, int *); void report_connect(const struct sockaddr *, socklen_t); void usage(int); --- 113,119 ---- int unix_bind(char *); int unix_connect(char *); int unix_listen(char *); ! void set_common_sockopts(int, int); int map_tos(char *, int *); void report_connect(const struct sockaddr *, socklen_t); void usage(int); *************** *** 619,625 **** freeaddrinfo(ares); } ! set_common_sockopts(s); if (timeout_connect(s, res0->ai_addr, res0->ai_addrlen) == 0) break; --- 619,625 ---- freeaddrinfo(ares); } ! set_common_sockopts(s, res0->ai_family); if (timeout_connect(s, res0->ai_addr, res0->ai_addrlen) == 0) break; *************** *** 712,718 **** if (ret == -1) err(1, NULL); ! set_common_sockopts(s); if (bind(s, (struct sockaddr *)res0->ai_addr, res0->ai_addrlen) == 0) --- 712,718 ---- if (ret == -1) err(1, NULL); ! set_common_sockopts(s, res0->ai_family); if (bind(s, (struct sockaddr *)res0->ai_addr, res0->ai_addrlen) == 0) *************** *** 1128,1134 **** } void ! set_common_sockopts(int s) { int x = 1; --- 1128,1134 ---- } void ! set_common_sockopts(int s, int af) { int x = 1; *************** *** 1143,1150 **** err(1, NULL); } if (Tflag != -1) { ! if (setsockopt(s, IPPROTO_IP, IP_TOS, ! &Tflag, sizeof(Tflag)) == -1) err(1, "set IP ToS"); } if (Iflag) { --- 1143,1159 ---- err(1, NULL); } if (Tflag != -1) { ! int proto, option; ! ! if (af == AF_INET6) { ! proto = IPPROTO_IPV6; ! option = IPV6_TCLASS; ! } else { ! proto = IPPROTO_IP; ! option = IP_TOS; ! } ! ! if (setsockopt(s, proto, option, &Tflag, sizeof(Tflag)) == -1) err(1, "set IP ToS"); } if (Iflag) {