1998-06-18 04:53:50 +04:00
|
|
|
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
|
|
|
|
*
|
|
|
|
* The contents of this file are subject to the Netscape Public License
|
|
|
|
* Version 1.0 (the "NPL"); you may not use this file except in
|
|
|
|
* compliance with the NPL. You may obtain a copy of the NPL at
|
|
|
|
* http://www.mozilla.org/NPL/
|
|
|
|
*
|
|
|
|
* Software distributed under the NPL is distributed on an "AS IS" basis,
|
|
|
|
* WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL
|
|
|
|
* for the specific language governing rights and limitations under the
|
|
|
|
* NPL.
|
|
|
|
*
|
|
|
|
* The Initial Developer of this code under the NPL is Netscape
|
|
|
|
* Communications Corporation. Portions created by Netscape are
|
|
|
|
* Copyright (C) 1998 Netscape Communications Corporation. All Rights
|
|
|
|
* Reserved.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __XP_SOCK_h_
|
|
|
|
#define __XP_SOCK_h_
|
|
|
|
|
|
|
|
#include "xp_core.h"
|
|
|
|
#include "xp_error.h"
|
|
|
|
|
|
|
|
#ifdef XP_UNIX
|
|
|
|
|
|
|
|
#ifdef AIXV3
|
|
|
|
#include <sys/signal.h>
|
|
|
|
#include <sys/select.h>
|
|
|
|
#endif /* AIXV3 */
|
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#include <errno.h>
|
|
|
|
#include <sys/time.h>
|
|
|
|
#include <sys/stat.h>
|
|
|
|
#include <sys/param.h>
|
|
|
|
#include <sys/file.h>
|
|
|
|
#include <sys/ioctl.h>
|
|
|
|
#include <sys/socket.h>
|
|
|
|
#include <netinet/in.h>
|
|
|
|
#include <unistd.h>
|
|
|
|
#ifndef __hpux
|
|
|
|
#include <arpa/inet.h>
|
|
|
|
#endif /* __hpux */
|
|
|
|
#include <netdb.h>
|
|
|
|
#endif /* XP_UNIX */
|
|
|
|
|
|
|
|
#ifdef XP_MAC
|
|
|
|
#include "macsocket.h"
|
|
|
|
#define SOCKET_BUFFER_SIZE 4096
|
|
|
|
#endif /* XP_MAC */
|
|
|
|
|
|
|
|
#ifdef XP_OS2 /* IBM-VPB050196 */
|
|
|
|
# include "os2sock.h"
|
|
|
|
# ifdef XP_OS2_DOUGSOCK
|
|
|
|
# include "dsfunc.h"
|
|
|
|
# endif
|
|
|
|
# define SOCKET_BUFFER_SIZE 4096
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifdef XP_WIN
|
|
|
|
#include "winsock.h"
|
|
|
|
#define SOCKET_BUFFER_SIZE 4096
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
|
|
|
extern int dupsocket(int foo); /* always fails */
|
|
|
|
|
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#ifndef EPIPE
|
|
|
|
#define EPIPE ECONNRESET
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#undef BOOLEAN
|
|
|
|
#define BOOLEAN char
|
|
|
|
#endif /* XP_WIN */
|
|
|
|
|
1998-09-25 03:54:31 +04:00
|
|
|
#ifndef SOCKET_ERRNO
|
1998-06-18 04:53:50 +04:00
|
|
|
#define SOCKET_ERRNO XP_GetError()
|
1998-09-25 03:54:31 +04:00
|
|
|
#endif
|
1998-06-18 04:53:50 +04:00
|
|
|
|
|
|
|
/************************************************************************/
|
|
|
|
|
|
|
|
#ifdef XP_UNIX
|
|
|
|
|
|
|
|
/* Network i/o wrappers */
|
|
|
|
#define XP_SOCKET int
|
|
|
|
#define XP_SOCK_ERRNO errno
|
|
|
|
#define XP_SOCK_SOCKET socket
|
|
|
|
#define XP_SOCK_CONNECT connect
|
|
|
|
#define XP_SOCK_ACCEPT accept
|
|
|
|
#define XP_SOCK_BIND bind
|
|
|
|
#define XP_SOCK_LISTEN listen
|
|
|
|
#define XP_SOCK_SHUTDOWN shutdown
|
|
|
|
#define XP_SOCK_IOCTL ioctl
|
|
|
|
#define XP_SOCK_RECV recv
|
|
|
|
#define XP_SOCK_RECVFROM recvfrom
|
|
|
|
#define XP_SOCK_RECVMSG recvmsg
|
|
|
|
#define XP_SOCK_SEND send
|
|
|
|
#define XP_SOCK_SENDTO sendto
|
|
|
|
#define XP_SOCK_SENDMSG sendmsg
|
|
|
|
#define XP_SOCK_READ read
|
|
|
|
#define XP_SOCK_WRITE write
|
|
|
|
#define XP_SOCK_READV readv
|
|
|
|
#define XP_SOCK_WRITEV writev
|
|
|
|
#define XP_SOCK_GETPEERNAME getpeername
|
|
|
|
#define XP_SOCK_GETSOCKNAME getsockname
|
|
|
|
#define XP_SOCK_GETSOCKOPT getsockopt
|
|
|
|
#define XP_SOCK_SETSOCKOPT setsockopt
|
|
|
|
#define XP_SOCK_CLOSE close
|
|
|
|
#define XP_SOCK_DUP dup
|
|
|
|
|
|
|
|
#endif /* XP_UNIX */
|
|
|
|
|
|
|
|
/*IBM-DSR072296 - now using WinSock 1.1 support in OS/2 Merlin instead of DOUGSOCK...*/
|
|
|
|
#if defined(XP_WIN) || ( defined(XP_OS2) && !defined(XP_OS2_DOUGSOCK) )
|
|
|
|
#define XP_SOCKET SOCKET
|
|
|
|
#define XP_SOCK_ERRNO WSAGetLastError()
|
|
|
|
|
|
|
|
#define XP_SOCK_SOCKET socket
|
|
|
|
#define XP_SOCK_CONNECT connect
|
|
|
|
#define XP_SOCK_ACCEPT accept
|
|
|
|
#define XP_SOCK_BIND bind
|
|
|
|
#define XP_SOCK_LISTEN listen
|
|
|
|
#define XP_SOCK_SHUTDOWN shutdown
|
|
|
|
#define XP_SOCK_IOCTL ioctlsocket
|
|
|
|
#define XP_SOCK_RECV recv
|
|
|
|
#define XP_SOCK_RECVFROM recvfrom
|
|
|
|
#define XP_SOCK_RECVMSG recvmsg
|
|
|
|
#define XP_SOCK_SEND send
|
|
|
|
#define XP_SOCK_SENDTO sendto
|
|
|
|
#define XP_SOCK_SENDMSG sendmsg
|
|
|
|
#define XP_SOCK_READ(s,b,l) recv(s,b,l,0)
|
|
|
|
#define XP_SOCK_WRITE(s,b,l) send(s,b,l,0)
|
|
|
|
#define XP_SOCK_READV readv
|
|
|
|
#define XP_SOCK_WRITEV writev
|
|
|
|
#define XP_SOCK_GETPEERNAME getpeername
|
|
|
|
#define XP_SOCK_GETSOCKNAME getsockname
|
|
|
|
#define XP_SOCK_GETSOCKOPT getsockopt
|
|
|
|
#define XP_SOCK_SETSOCKOPT setsockopt
|
|
|
|
#define XP_SOCK_CLOSE closesocket
|
|
|
|
#define XP_SOCK_DUP dupsocket
|
|
|
|
|
|
|
|
#endif /* XP_WIN/ XP_OS2 && not DOUGSOCK */
|
|
|
|
|
|
|
|
#if defined(XP_OS2) && defined(XP_OS2_DOUGSOCK)
|
|
|
|
|
|
|
|
/* Network i/o wrappers */
|
|
|
|
#define XP_SOCKET int
|
|
|
|
#define XP_SOCK_ERRNO sock_errno()
|
|
|
|
#define XP_SOCK_SOCKET socket
|
|
|
|
#define XP_SOCK_CONNECT connect
|
|
|
|
#define XP_SOCK_ACCEPT accept
|
|
|
|
#define XP_SOCK_BIND bind
|
|
|
|
#define XP_SOCK_LISTEN listen
|
|
|
|
#define XP_SOCK_SHUTDOWN shutdown
|
|
|
|
#define XP_SOCK_IOCTL ioctl
|
|
|
|
#define XP_SOCK_RECV receiveAndMakeReadSocketActive
|
|
|
|
#define XP_SOCK_RECVFROM recvfrom
|
|
|
|
#define XP_SOCK_RECVMSG recvmsg
|
|
|
|
#define XP_SOCK_SEND send
|
|
|
|
#define XP_SOCK_SENDTO sendto
|
|
|
|
#define XP_SOCK_SENDMSG sendmsg
|
|
|
|
#define XP_SOCK_READ(s,b,l) receiveAndMakeReadSocketActive(s,b,l,0)
|
|
|
|
#define XP_SOCK_WRITE(s,b,l) send(s,b,l,0)
|
|
|
|
#define XP_SOCK_READV readv
|
|
|
|
#define XP_SOCK_WRITEV writev
|
|
|
|
#define XP_SOCK_GETPEERNAME getpeername
|
|
|
|
#define XP_SOCK_GETSOCKNAME getsockname
|
|
|
|
#define XP_SOCK_GETSOCKOPT getsockopt
|
|
|
|
#define XP_SOCK_SETSOCKOPT setsockopt
|
|
|
|
#define XP_SOCK_CLOSE closeAndRemoveSocketFromPostList
|
|
|
|
#define XP_SOCK_DUP dupsocket
|
|
|
|
|
|
|
|
#endif /*XP_OS2 with DOUGSOCK*/
|
|
|
|
|
|
|
|
#ifdef XP_MAC
|
|
|
|
/*
|
|
|
|
Remap unix sockets into GUSI
|
|
|
|
*/
|
|
|
|
#define XP_SOCKET int
|
|
|
|
#define XP_SOCK_ERRNO errno
|
|
|
|
#define XP_SOCK_SOCKET macsock_socket
|
|
|
|
#define XP_SOCK_CONNECT macsock_connect
|
|
|
|
#define XP_SOCK_ACCEPT macsock_accept
|
|
|
|
#define XP_SOCK_BIND macsock_bind
|
|
|
|
#define XP_SOCK_LISTEN macsock_listen
|
|
|
|
#define XP_SOCK_SHUTDOWN macsock_shutdown
|
|
|
|
#define XP_SOCK_IOCTL macsock_ioctl
|
|
|
|
#define XP_SOCK_RECV(s,b,l,f) XP_SOCK_READ(s,b,l)
|
|
|
|
#define XP_SOCK_SEND(s,b,l,f) XP_SOCK_WRITE(s,b,l)
|
|
|
|
#define XP_SOCK_READ macsock_read
|
|
|
|
#define XP_SOCK_WRITE macsock_write
|
|
|
|
#define XP_SOCK_GETPEERNAME macsock_getpeername
|
|
|
|
#define XP_SOCK_GETSOCKNAME macsock_getsockname
|
|
|
|
#define XP_SOCK_GETSOCKOPT macsock_getsockopt
|
|
|
|
#define XP_SOCK_SETSOCKOPT macsock_setsockopt
|
|
|
|
#define XP_SOCK_CLOSE macsock_close
|
|
|
|
#define XP_SOCK_DUP macsock_dup
|
|
|
|
|
|
|
|
#endif /* XP_MAC */
|
|
|
|
|
|
|
|
#endif /* __XP_SOCK_h_ */
|