Use int type for setsockopt IP_TOS value
authorEd Maste <emaste@freebsd.org>
Mon, 30 Jul 2012 22:29:40 +0000 (15:29 -0700)
committerBen Pfaff <blp@nicira.com>
Mon, 30 Jul 2012 22:31:38 +0000 (15:31 -0700)
FreeBSD requires that setsockopt(..., IP_TOS, ...) be passed an int
value.  Linux accepts either int or char types (and has since at least
kernel 2.6.12) so just use int type unconditionally.

Signed-off-by: Ed Maste <emaste@freebsd.org>
Signed-off-by: Ben Pfaff <blp@nicira.com>
lib/socket-util.c

index 2c5e6cc..314761d 100644 (file)
@@ -94,12 +94,14 @@ xset_nonblocking(int fd)
 static int
 set_dscp(int fd, uint8_t dscp)
 {
+    int val;
+
     if (dscp > 63) {
         return EINVAL;
     }
 
-    dscp = dscp << 2;
-    if (setsockopt(fd, IPPROTO_IP, IP_TOS, &dscp, sizeof dscp)) {
+    val = dscp << 2;
+    if (setsockopt(fd, IPPROTO_IP, IP_TOS, &val, sizeof val)) {
         return errno;
     }