1*8b26181fSAndroid Build Coastguard Worker /* 2*8b26181fSAndroid Build Coastguard Worker * Copyright (c) 1994, 1996 3*8b26181fSAndroid Build Coastguard Worker * The Regents of the University of California. All rights reserved. 4*8b26181fSAndroid Build Coastguard Worker * 5*8b26181fSAndroid Build Coastguard Worker * Redistribution and use in source and binary forms, with or without 6*8b26181fSAndroid Build Coastguard Worker * modification, are permitted provided that the following conditions 7*8b26181fSAndroid Build Coastguard Worker * are met: 8*8b26181fSAndroid Build Coastguard Worker * 1. Redistributions of source code must retain the above copyright 9*8b26181fSAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer. 10*8b26181fSAndroid Build Coastguard Worker * 2. Redistributions in binary form must reproduce the above copyright 11*8b26181fSAndroid Build Coastguard Worker * notice, this list of conditions and the following disclaimer in the 12*8b26181fSAndroid Build Coastguard Worker * documentation and/or other materials provided with the distribution. 13*8b26181fSAndroid Build Coastguard Worker * 3. All advertising materials mentioning features or use of this software 14*8b26181fSAndroid Build Coastguard Worker * must display the following acknowledgement: 15*8b26181fSAndroid Build Coastguard Worker * This product includes software developed by the Computer Systems 16*8b26181fSAndroid Build Coastguard Worker * Engineering Group at Lawrence Berkeley Laboratory. 17*8b26181fSAndroid Build Coastguard Worker * 4. Neither the name of the University nor of the Laboratory may be used 18*8b26181fSAndroid Build Coastguard Worker * to endorse or promote products derived from this software without 19*8b26181fSAndroid Build Coastguard Worker * specific prior written permission. 20*8b26181fSAndroid Build Coastguard Worker * 21*8b26181fSAndroid Build Coastguard Worker * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 22*8b26181fSAndroid Build Coastguard Worker * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 23*8b26181fSAndroid Build Coastguard Worker * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 24*8b26181fSAndroid Build Coastguard Worker * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 25*8b26181fSAndroid Build Coastguard Worker * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 26*8b26181fSAndroid Build Coastguard Worker * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 27*8b26181fSAndroid Build Coastguard Worker * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 28*8b26181fSAndroid Build Coastguard Worker * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 29*8b26181fSAndroid Build Coastguard Worker * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 30*8b26181fSAndroid Build Coastguard Worker * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 31*8b26181fSAndroid Build Coastguard Worker * SUCH DAMAGE. 32*8b26181fSAndroid Build Coastguard Worker */ 33*8b26181fSAndroid Build Coastguard Worker 34*8b26181fSAndroid Build Coastguard Worker #ifndef lib_pcap_namedb_h 35*8b26181fSAndroid Build Coastguard Worker #define lib_pcap_namedb_h 36*8b26181fSAndroid Build Coastguard Worker 37*8b26181fSAndroid Build Coastguard Worker #ifdef __cplusplus 38*8b26181fSAndroid Build Coastguard Worker extern "C" { 39*8b26181fSAndroid Build Coastguard Worker #endif 40*8b26181fSAndroid Build Coastguard Worker 41*8b26181fSAndroid Build Coastguard Worker /* 42*8b26181fSAndroid Build Coastguard Worker * As returned by the pcap_next_etherent() 43*8b26181fSAndroid Build Coastguard Worker * XXX this stuff doesn't belong in this interface, but this 44*8b26181fSAndroid Build Coastguard Worker * library already must do name to address translation, so 45*8b26181fSAndroid Build Coastguard Worker * on systems that don't have support for /etc/ethers, we 46*8b26181fSAndroid Build Coastguard Worker * export these hooks since they're already being used by 47*8b26181fSAndroid Build Coastguard Worker * some applications (such as tcpdump) and already being 48*8b26181fSAndroid Build Coastguard Worker * marked as exported in some OSes offering libpcap (such 49*8b26181fSAndroid Build Coastguard Worker * as Debian). 50*8b26181fSAndroid Build Coastguard Worker */ 51*8b26181fSAndroid Build Coastguard Worker struct pcap_etherent { 52*8b26181fSAndroid Build Coastguard Worker u_char addr[6]; 53*8b26181fSAndroid Build Coastguard Worker char name[122]; 54*8b26181fSAndroid Build Coastguard Worker }; 55*8b26181fSAndroid Build Coastguard Worker #ifndef PCAP_ETHERS_FILE 56*8b26181fSAndroid Build Coastguard Worker #define PCAP_ETHERS_FILE "/etc/ethers" 57*8b26181fSAndroid Build Coastguard Worker #endif 58*8b26181fSAndroid Build Coastguard Worker PCAP_API struct pcap_etherent *pcap_next_etherent(FILE *); 59*8b26181fSAndroid Build Coastguard Worker PCAP_API u_char *pcap_ether_hostton(const char*); 60*8b26181fSAndroid Build Coastguard Worker PCAP_API u_char *pcap_ether_aton(const char *); 61*8b26181fSAndroid Build Coastguard Worker 62*8b26181fSAndroid Build Coastguard Worker PCAP_API 63*8b26181fSAndroid Build Coastguard Worker PCAP_DEPRECATED("this is not reentrant; use 'pcap_nametoaddrinfo' instead") 64*8b26181fSAndroid Build Coastguard Worker bpf_u_int32 **pcap_nametoaddr(const char *); 65*8b26181fSAndroid Build Coastguard Worker PCAP_API struct addrinfo *pcap_nametoaddrinfo(const char *); 66*8b26181fSAndroid Build Coastguard Worker PCAP_API bpf_u_int32 pcap_nametonetaddr(const char *); 67*8b26181fSAndroid Build Coastguard Worker 68*8b26181fSAndroid Build Coastguard Worker PCAP_API int pcap_nametoport(const char *, int *, int *); 69*8b26181fSAndroid Build Coastguard Worker PCAP_API int pcap_nametoportrange(const char *, int *, int *, int *); 70*8b26181fSAndroid Build Coastguard Worker PCAP_API int pcap_nametoproto(const char *); 71*8b26181fSAndroid Build Coastguard Worker PCAP_API int pcap_nametoeproto(const char *); 72*8b26181fSAndroid Build Coastguard Worker PCAP_API int pcap_nametollc(const char *); 73*8b26181fSAndroid Build Coastguard Worker /* 74*8b26181fSAndroid Build Coastguard Worker * If a protocol is unknown, PROTO_UNDEF is returned. 75*8b26181fSAndroid Build Coastguard Worker * Also, pcap_nametoport() returns the protocol along with the port number. 76*8b26181fSAndroid Build Coastguard Worker * If there are ambiguous entried in /etc/services (i.e. domain 77*8b26181fSAndroid Build Coastguard Worker * can be either tcp or udp) PROTO_UNDEF is returned. 78*8b26181fSAndroid Build Coastguard Worker */ 79*8b26181fSAndroid Build Coastguard Worker #define PROTO_UNDEF -1 80*8b26181fSAndroid Build Coastguard Worker 81*8b26181fSAndroid Build Coastguard Worker #ifdef __cplusplus 82*8b26181fSAndroid Build Coastguard Worker } 83*8b26181fSAndroid Build Coastguard Worker #endif 84*8b26181fSAndroid Build Coastguard Worker 85*8b26181fSAndroid Build Coastguard Worker #endif 86