From owner-freebsd-bugs@FreeBSD.ORG Wed Jan 14 13:30:37 2004 Return-Path: Delivered-To: freebsd-bugs@hub.freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1E29116A4CE for ; Wed, 14 Jan 2004 13:30:37 -0800 (PST) Received: from freefall.freebsd.org (freefall.freebsd.org [216.136.204.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5A49943D72 for ; Wed, 14 Jan 2004 13:30:13 -0800 (PST) (envelope-from gnats@FreeBSD.org) Received: from freefall.freebsd.org (gnats@localhost [127.0.0.1]) i0ELUDFR053766 for ; Wed, 14 Jan 2004 13:30:13 -0800 (PST) (envelope-from gnats@freefall.freebsd.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.12.10/8.12.10/Submit) id i0ELUDF7053765; Wed, 14 Jan 2004 13:30:13 -0800 (PST) (envelope-from gnats) Resent-Date: Wed, 14 Jan 2004 13:30:13 -0800 (PST) Resent-Message-Id: <200401142130.i0ELUDF7053765@freefall.freebsd.org> Resent-From: FreeBSD-gnats-submit@FreeBSD.org (GNATS Filer) Resent-To: freebsd-bugs@FreeBSD.org Resent-Reply-To: FreeBSD-gnats-submit@FreeBSD.org, Mark Andrews Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id B1E5016A4CE for ; Wed, 14 Jan 2004 13:22:32 -0800 (PST) Received: from drugs.dv.isc.org (c211-30-120-24.carlnfd2.nsw.optusnet.com.au [211.30.120.24]) by mx1.FreeBSD.org (Postfix) with ESMTP id 73A1843D3F for ; Wed, 14 Jan 2004 13:22:29 -0800 (PST) (envelope-from marka@isc.org) Received: from drugs.dv.isc.org (localhost [127.0.0.1]) by drugs.dv.isc.org (8.12.9p2/8.12.9) with ESMTP id i0ELMR15070809 for ; Thu, 15 Jan 2004 08:22:27 +1100 (EST) (envelope-from marka@drugs.dv.isc.org) Received: (from marka@localhost) by drugs.dv.isc.org (8.12.9p2/8.12.9/Submit) id i0ELMR55070808; Thu, 15 Jan 2004 08:22:27 +1100 (EST) (envelope-from marka) Message-Id: <200401142122.i0ELMR55070808@drugs.dv.isc.org> Date: Thu, 15 Jan 2004 08:22:27 +1100 (EST) From: Mark Andrews To: FreeBSD-gnats-submit@FreeBSD.org X-Send-Pr-Version: 3.113 Subject: bin/61369: EAI_NODATA and EAI_NONAME are define to be the same. X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list Reply-To: Mark Andrews List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 14 Jan 2004 21:30:37 -0000 >Number: 61369 >Category: bin >Synopsis: EAI_NODATA and EAI_NONAME are define to be the same. >Confidential: no >Severity: serious >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Wed Jan 14 13:30:13 PST 2004 >Closed-Date: >Last-Modified: >Originator: Mark Andrews >Release: FreeBSD 5.2 i386 >Organization: ISC >Environment: FreeBSD 5.2 $FreeBSD: src/include/netdb.h,v 1.30 2003/10/24 06:53:12 ume Exp $ >Description: EAI_NODATA and EAI_NONAME are defined to be the same. This breaks switch statements that look at result codes from getaddrinfo(). This change has made every portable application that does this have to change from #ifdef EAI_NODATA case EAI_NODATA: #endif to #if defined(EAI_NODATA) && (EAI_NODATA != EAI_NONAME) case EAI_NODATA: #endif Having a unused result code doesn't hurt anyone. Removing the result code causes some pain but portable applications already have that pain. EAI_NODATA doesn't exist on all platforms already. Defining EAI_NODATA to be EAI_NONAME is just plain wrong as it breaks existing unbroken code. I really am not looking forward to the bug reports that I will have to handle about this. I've already got one. >How-To-Repeat: #include main() { int i = 0; /* i = getaddrinfo(....); */ switch (i) { case EAI_NONAME: printf("EAI_NONAME\n"); break; #ifdef EAI_NODATA case EAI_NODATA: printf("EAI_NODATA\n"); break; #endif default: printf("default\n"); } } >Fix: Remove the offending #define. >Release-Note: >Audit-Trail: >Unformatted: