From jc@cayman.irbs.com  Sun Sep 15 13:32:42 1996
Received: from cayman.irbs.com (cayman.irbs.com [199.182.75.3])
          by freefall.freebsd.org (8.7.5/8.7.3) with ESMTP id NAA12411
          for <FreeBSD-gnats-submit@freebsd.org>; Sun, 15 Sep 1996 13:32:40 -0700 (PDT)
Received: (from jc@localhost) by cayman.irbs.com (8.7.5/8.7.3) id QAA08309; Sun, 15 Sep 1996 16:32:06 -0400 (EDT)
Message-Id: <199609152032.QAA08309@cayman.irbs.com>
Date: Sun, 15 Sep 1996 16:32:06 -0400 (EDT)
From: jc@cayman.irbs.com
Reply-To: jc@cayman.irbs.com
To: FreeBSD-gnats-submit@freebsd.org
Subject: Routed byte order problem  [FIX]
X-Send-Pr-Version: 3.2

>Number:         1615
>Category:       bin
>Synopsis:       Routed byte order problem  [FIX]
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Sep 15 13:40:01 PDT 1996
>Closed-Date:    Mon Sep 16 09:34:09 PDT 1996
>Last-Modified:  Tue Nov 27 19:22:58 PST 2001
>Originator:     John Capo
>Release:        FreeBSD 2.2-CURRENT i386
>Organization:
>Environment:

	

>Description:

Addresses are in network order,  masks are in host order.  getnet()
in parms.c gets it wrong if the address is dotted decimal.

>How-To-Repeat:

Attempt to use -P subnet=address/mask on the command line or with a
net address/mask entry in the config file.

>Fix:


Index: parms.c
===================================================================
RCS file: /usr/cvs/src/usr.sbin/routed/parms.c,v
retrieving revision 1.1.3.3
diff -c -r1.1.3.3 parms.c
*** parms.c	1996/08/27 16:12:52	1.1.3.3
--- parms.c	1996/09/15 20:20:09
***************
*** 566,572 ****
  	if (np != 0) {
  		in.s_addr = (naddr)np->n_net;
  	} else if (inet_aton(name, &in) == 1) {
! 		HTONL(in.s_addr);
  	} else {
  		return 0;
  	}
--- 566,572 ----
  	if (np != 0) {
  		in.s_addr = (naddr)np->n_net;
  	} else if (inet_aton(name, &in) == 1) {
! 		NTOHL(in.s_addr);
  	} else {
  		return 0;
  	}
***************
*** 576,582 ****
  		 * looked at them yet.
  		 */
  		mask = std_mask(in.s_addr);
! 		if ((~mask & ntohl(in.s_addr)) != 0)
  			mask = HOST_MASK;
  	} else {
  		mask = (naddr)strtoul(mname, &p, 0);
--- 576,582 ----
  		 * looked at them yet.
  		 */
  		mask = std_mask(in.s_addr);
! 		if ((~mask & in.s_addr) != 0)
  			mask = HOST_MASK;
  	} else {
  		mask = (naddr)strtoul(mname, &p, 0);
***************
*** 586,595 ****
  	}
  	if (mask != 0 && in.s_addr == RIP_DEFAULT)
  		return 0;
! 	if ((~mask & ntohl(in.s_addr)) != 0)
  		return 0;
  
! 	*addrp = in.s_addr;
  	*maskp = mask;
  	return 1;
  }
--- 586,596 ----
  	}
  	if (mask != 0 && in.s_addr == RIP_DEFAULT)
  		return 0;
! 
! 	if ((~mask & in.s_addr) != 0)
  		return 0;
  
! 	*addrp = htonl(in.s_addr);
  	*maskp = mask;
  	return 1;
  }

>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: wollman 
State-Changed-When: Mon Sep 16 09:34:09 PDT 1996 
State-Changed-Why:  
A new version of routed will be imported soon.  Please re-submit 
this report of the problem persists in that new version. 
>Unformatted:
