libc: remove MINIX3 restrictions from getnameinfo(3)

Change-Id: I4679f6804f229520d6399a06a5da0655f2bfd899
This commit is contained in:
David van Moolenbroek 2016-10-21 23:42:31 +00:00
parent f221d2ce48
commit dd41186aac
4 changed files with 122 additions and 13 deletions

View File

@ -1312,6 +1312,7 @@
./usr/include/net/if_arp.h minix-comp
./usr/include/net/if_dl.h minix-comp
./usr/include/net/if_ether.h minix-comp
./usr/include/net/if_ieee1394.h minix-comp
./usr/include/net/if_media.h minix-comp
./usr/include/net/if_pflog.h minix-comp
./usr/include/net/if_types.h minix-comp

View File

@ -57,12 +57,10 @@ __RCSID("$NetBSD: getnameinfo.c,v 1.59 2015/09/22 16:15:08 christos Exp $");
#include <sys/socket.h>
#include <sys/un.h>
#include <net/if.h>
#if !defined(__minix)
#include <net/if_dl.h>
#include <net/if_ieee1394.h>
#include <net/if_types.h>
#include <netatalk/at.h>
#endif /* !defined(__minix) */
#include <netinet/in.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
@ -110,7 +108,6 @@ static int ip6_parsenumeric(const struct sockaddr *, const char *, char *,
socklen_t, int);
static int ip6_sa2str(const struct sockaddr_in6 *, char *, size_t, int);
#endif
#if !defined(__minix)
static int getnameinfo_atalk(const struct sockaddr *, socklen_t, char *,
socklen_t, char *, socklen_t, int);
static int getnameinfo_local(const struct sockaddr *, socklen_t, char *,
@ -119,7 +116,6 @@ static int getnameinfo_local(const struct sockaddr *, socklen_t, char *,
static int getnameinfo_link(const struct sockaddr *, socklen_t, char *,
socklen_t, char *, socklen_t, int);
static int hexname(const uint8_t *, size_t, char *, socklen_t);
#endif /* !defined(__minix) */
/*
* Top-level getnameinfo() code. Look at the address family, and pick an
@ -133,29 +129,24 @@ getnameinfo(const struct sockaddr *sa, socklen_t salen,
{
switch (sa->sa_family) {
#if !defined(__minix)
case AF_APPLETALK:
return getnameinfo_atalk(sa, salen, host, hostlen,
serv, servlen, flags);
#endif /* !defined(__minix) */
case AF_INET:
case AF_INET6:
return getnameinfo_inet(sa, salen, host, hostlen,
serv, servlen, flags);
#if !defined(__minix)
case AF_LINK:
return getnameinfo_link(sa, salen, host, hostlen,
serv, servlen, flags);
case AF_LOCAL:
return getnameinfo_local(sa, salen, host, hostlen,
serv, servlen, flags);
#endif /* !defined(__minix) */
default:
return EAI_FAMILY;
}
}
#if !defined(__minix)
/*
* getnameinfo_atalk():
* Format an AppleTalk address into a printable format.
@ -238,7 +229,6 @@ getnameinfo_local(const struct sockaddr *sa, socklen_t salen,
return 0;
}
#endif /* !defined(__minix) */
/*
* getnameinfo_inet():
@ -538,7 +528,6 @@ ip6_sa2str(const struct sockaddr_in6 *sa6, char *buf, size_t bufsiz, int flags)
#endif /* INET6 */
#if !defined(__minix)
/*
* getnameinfo_link():
* Format a link-layer address into a printable format, paying attention to
@ -635,4 +624,3 @@ hexname(const uint8_t *cp, size_t len, char *host, socklen_t hostlen)
}
return 0;
}
#endif /* !defined(__minix) */

View File

@ -4,7 +4,7 @@ INCSDIR= /usr/include/net
INCS= bpf.h bpfdesc.h bpfjit.h dlt.h ethertypes.h if.h if_arp.h \
if_dl.h if_ether.h \
if_media.h \
if_ieee1394.h if_media.h \
if_pflog.h \
if_types.h \
pfil.h pfkeyv2.h pfvar.h radix.h \

120
sys/net/if_ieee1394.h Normal file
View File

@ -0,0 +1,120 @@
/* $NetBSD: if_ieee1394.h,v 1.9 2008/04/28 20:24:09 martin Exp $ */
/*
* Copyright (c) 2000 The NetBSD Foundation, Inc.
* All rights reserved.
*
* This code is derived from software contributed to The NetBSD Foundation
* by Atsushi Onoe.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
* ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
* TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
* PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#ifndef _NET_IF_IEEE1394_H_
#define _NET_IF_IEEE1394_H_
/* hardware address information for arp / nd */
struct ieee1394_hwaddr {
uint8_t iha_uid[8]; /* node unique ID */
uint8_t iha_maxrec; /* max_rec in the config ROM */
uint8_t iha_speed; /* min of link/PHY speed */
uint8_t iha_offset[6]; /* unicast FIFO address */
};
/*
* BPF wants to see one of these.
*/
struct ieee1394_bpfhdr {
uint8_t ibh_dhost[8];
uint8_t ibh_shost[8];
uint16_t ibh_type;
};
#ifdef _KERNEL
/* pseudo header */
struct ieee1394_header {
uint8_t ih_uid[8]; /* dst/src uid */
uint8_t ih_maxrec; /* dst maxrec for tx */
uint8_t ih_speed; /* speed */
uint8_t ih_offset[6]; /* dst offset */
};
/* unfragment encapsulation header */
struct ieee1394_unfraghdr {
uint16_t iuh_ft; /* fragment type == 0 */
uint16_t iuh_etype; /* ether_type */
};
/* fragmented encapsulation header */
struct ieee1394_fraghdr {
uint16_t ifh_ft_size; /* fragment type, data size-1 */
uint16_t ifh_etype_off; /* etype for first fragment */
/* offset for subseq frag */
uint16_t ifh_dgl; /* datagram label */
uint16_t ifh_reserved;
};
#define IEEE1394_FT_SUBSEQ 0x8000
#define IEEE1394_FT_MORE 0x4000
#define IEEE1394MTU 1500
#define IEEE1394_GASP_LEN 8 /* GASP header for Stream */
#define IEEE1394_ADDR_LEN 8
#define IEEE1394_CRC_LEN 4
struct ieee1394_reass_pkt {
LIST_ENTRY(ieee1394_reass_pkt) rp_next;
struct mbuf *rp_m;
uint16_t rp_size;
uint16_t rp_etype;
uint16_t rp_off;
uint16_t rp_dgl;
uint16_t rp_len;
uint16_t rp_ttl;
};
struct ieee1394_reassq {
LIST_ENTRY(ieee1394_reassq) rq_node;
LIST_HEAD(, ieee1394_reass_pkt) rq_pkt;
uint32_t fr_id;
};
struct ieee1394com {
struct ifnet fc_if;
struct ieee1394_hwaddr ic_hwaddr;
uint16_t ic_dgl;
LIST_HEAD(, ieee1394_reassq) ic_reassq;
};
const char *ieee1394_sprintf(const uint8_t *);
void ieee1394_input(struct ifnet *, struct mbuf *, uint16_t);
void ieee1394_ifattach(struct ifnet *, const struct ieee1394_hwaddr *);
void ieee1394_ifdetach(struct ifnet *);
int ieee1394_ioctl(struct ifnet *, u_long, void *);
struct mbuf * ieee1394_fragment(struct ifnet *, struct mbuf *, int, uint16_t);
void ieee1394_drain(struct ifnet *);
void ieee1394_watchdog(struct ifnet *);
#endif /* _KERNEL */
#endif /* !_NET_IF_IEEE1394_H_ */