From 6a151fcce1fbe8acfb34180fad6322b162bfbf5e Mon Sep 17 00:00:00 2001 From: itojun Date: Tue, 12 Nov 2002 01:57:07 +0000 Subject: [PATCH] ckout previous - doesn't compile --- sys/netinet/ip_input.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index b9d3be7243a9..bc2139e82526 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -1,4 +1,4 @@ -/* $NetBSD: ip_input.c,v 1.161 2002/11/12 01:38:09 itojun Exp $ */ +/* $NetBSD: ip_input.c,v 1.162 2002/11/12 01:57:07 itojun Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -102,7 +102,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: ip_input.c,v 1.161 2002/11/12 01:38:09 itojun Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_input.c,v 1.162 2002/11/12 01:57:07 itojun Exp $"); #include "opt_gateway.h" #include "opt_pfil_hooks.h" @@ -1826,8 +1826,13 @@ ip_sysctl(name, namelen, oldp, oldlenp, newp, newlen) case IPCTL_MTUDISC: error = sysctl_int(oldp, oldlenp, newp, newlen, &ip_mtudisc); - if (ip_mtudisc == 0) - rt_timer_queue_remove_all(ip_mtudisc_timeout_q, TRUE); + if (ip_mtudisc != 0 && ip_mtudisc_timeout_q == NULL) { + ip_mtudisc_timeout_q = + rt_timer_queue_create(ip_mtudisc_timeout); + } else if (ip_mtudisc == 0 && ip_mtudisc_timeout_q != NULL) { + rt_timer_queue_destroy(ip_mtudisc_timeout_q, TRUE); + ip_mtudisc_timeout_q = NULL; + } return error; case IPCTL_ANONPORTMIN: old = anonportmin; @@ -1863,7 +1868,9 @@ ip_sysctl(name, namelen, oldp, oldlenp, newp, newlen) ip_mtudisc_timeout = old; return (EINVAL); } - rt_timer_queue_change(ip_mtudisc_timeout_q, ip_mtudisc_timeout); + if (ip_mtudisc_timeout_q != NULL) + rt_timer_queue_change(ip_mtudisc_timeout_q, + ip_mtudisc_timeout); return (error); #ifdef GATEWAY case IPCTL_MAXFLOWS: