"Fossies" - the Fresh Open Source Software Archive

Member "libpcap-1.9.1/./pcap/socket.h" (30 Sep 2019, 3528 Bytes) of package /linux/misc/libpcap-1.9.1.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "socket.h" see the Fossies "Dox" file reference documentation.

    1 /* -*- Mode: c; tab-width: 8; indent-tabs-mode: 1; c-basic-offset: 8; -*- */
    2 /*
    3  * Copyright (c) 1993, 1994, 1995, 1996, 1997
    4  *  The Regents of the University of California.  All rights reserved.
    5  *
    6  * Redistribution and use in source and binary forms, with or without
    7  * modification, are permitted provided that the following conditions
    8  * are met:
    9  * 1. Redistributions of source code must retain the above copyright
   10  *    notice, this list of conditions and the following disclaimer.
   11  * 2. Redistributions in binary form must reproduce the above copyright
   12  *    notice, this list of conditions and the following disclaimer in the
   13  *    documentation and/or other materials provided with the distribution.
   14  * 3. All advertising materials mentioning features or use of this software
   15  *    must display the following acknowledgement:
   16  *  This product includes software developed by the Computer Systems
   17  *  Engineering Group at Lawrence Berkeley Laboratory.
   18  * 4. Neither the name of the University nor of the Laboratory may be used
   19  *    to endorse or promote products derived from this software without
   20  *    specific prior written permission.
   21  *
   22  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   23  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   24  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   25  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   26  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   27  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   28  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   29  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   30  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   31  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   32  * SUCH DAMAGE.
   33  */
   34 
   35 #ifndef lib_pcap_socket_h
   36 #define lib_pcap_socket_h
   37 
   38 /*
   39  * Some minor differences between sockets on various platforms.
   40  * We include whatever sockets are needed for Internet-protocol
   41  * socket access on UN*X and Windows.
   42  */
   43 #ifdef _WIN32
   44   /* Need windef.h for defines used in winsock2.h under MingW32 */
   45   #ifdef __MINGW32__
   46     #include <windef.h>
   47   #endif
   48   #include <winsock2.h>
   49   #include <ws2tcpip.h>
   50 
   51   /*
   52    * Winsock doesn't have this UN*X type; it's used in the UN*X
   53    * sockets API.
   54    *
   55    * XXX - do we need to worry about UN*Xes so old that *they*
   56    * don't have it, either?
   57    */
   58   typedef int socklen_t;
   59 
   60   /*
   61    * Winsock doesn't have this POSIX type; it's used for the
   62    * tv_usec value of struct timeval.
   63    */
   64   typedef long suseconds_t;
   65 #else /* _WIN32 */
   66   #include <sys/types.h>
   67   #include <sys/socket.h>
   68   #include <netdb.h>        /* for struct addrinfo/getaddrinfo() */
   69   #include <netinet/in.h>   /* for sockaddr_in, in BSD at least */
   70   #include <arpa/inet.h>
   71 
   72   /*!
   73    * \brief In Winsock, a socket handle is of type SOCKET; in UN*X, it's
   74    * a file descriptor, and therefore a signed integer.
   75    * We define SOCKET to be a signed integer on UN*X, so that it can
   76    * be used on both platforms.
   77    */
   78   #ifndef SOCKET
   79     #define SOCKET int
   80   #endif
   81 
   82   /*!
   83    * \brief In Winsock, the error return if socket() fails is INVALID_SOCKET;
   84    * in UN*X, it's -1.
   85    * We define INVALID_SOCKET to be -1 on UN*X, so that it can be used on
   86    * both platforms.
   87    */
   88   #ifndef INVALID_SOCKET
   89     #define INVALID_SOCKET -1
   90   #endif
   91 #endif /* _WIN32 */
   92 
   93 #endif /* lib_pcap_socket_h */