Module Name:    src
Committed By:   minskim
Date:           Sun Jul 19 23:17:33 UTC 2009

Modified Files:
        src/share/man/man4: ip.4
        src/sys/netinet: udp_usrreq.c

Log Message:
Enable IP_MINTTL option for SOCK_DGRAM sockets.


To generate a diff of this commit:
cvs rdiff -u -r1.28 -r1.29 src/share/man/man4/ip.4
cvs rdiff -u -r1.177 -r1.178 src/sys/netinet/udp_usrreq.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/share/man/man4/ip.4
diff -u src/share/man/man4/ip.4:1.28 src/share/man/man4/ip.4:1.29
--- src/share/man/man4/ip.4:1.28	Sat Jul 18 06:31:54 2009
+++ src/share/man/man4/ip.4	Sun Jul 19 23:17:33 2009
@@ -1,4 +1,4 @@
-.\"	$NetBSD: ip.4,v 1.28 2009/07/18 06:31:54 wiz Exp $
+.\"	$NetBSD: ip.4,v 1.29 2009/07/19 23:17:33 minskim Exp $
 .\"
 .\" Copyright (c) 1983, 1991, 1993
 .\"	The Regents of the University of California.  All rights reserved.
@@ -29,7 +29,7 @@
 .\"
 .\"     @(#)ip.4	8.2 (Berkeley) 11/30/93
 .\"
-.Dd July 17, 2009
+.Dd July 19, 2009
 .Dt IP 4
 .Os
 .Sh NAME
@@ -190,7 +190,7 @@
 The
 .Dv IP_MINTTL
 option may be used on
-.Dv SOCK_STREAM
+.Dv SOCK_DGRAM or SOCK_STREAM
 sockets to discard packets with a TTL lower than the option value.
 This can be used to implement the
 .Em Generalized TTL Security Mechanism (GTSM)

Index: src/sys/netinet/udp_usrreq.c
diff -u src/sys/netinet/udp_usrreq.c:1.177 src/sys/netinet/udp_usrreq.c:1.178
--- src/sys/netinet/udp_usrreq.c:1.177	Sat Apr 18 14:58:05 2009
+++ src/sys/netinet/udp_usrreq.c	Sun Jul 19 23:17:33 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: udp_usrreq.c,v 1.177 2009/04/18 14:58:05 tsutsui Exp $	*/
+/*	$NetBSD: udp_usrreq.c,v 1.178 2009/07/19 23:17:33 minskim Exp $	*/
 
 /*
  * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project.
@@ -61,7 +61,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.177 2009/04/18 14:58:05 tsutsui Exp $");
+__KERNEL_RCSID(0, "$NetBSD: udp_usrreq.c,v 1.178 2009/07/19 23:17:33 minskim Exp $");
 
 #include "opt_inet.h"
 #include "opt_compat_netbsd.h"
@@ -836,6 +836,12 @@
 		}
 #endif
 
+		/*
+		 * Check the minimum TTL for socket.
+		 */
+		if (mtod(m, struct ip *)->ip_ttl < inp->inp_ip_minttl)
+			goto bad;
+
 		udp4_sendup(m, off, (struct sockaddr *)src, inp->inp_socket);
 		rcvcnt++;
 	}

Reply via email to