diff options
Diffstat (limited to 'ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h')
-rw-r--r-- | ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h | 180 |
1 files changed, 180 insertions, 0 deletions
diff --git a/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h new file mode 100644 index 00000000000..44dfbdc68dc --- /dev/null +++ b/ACE/apps/JAWS/clients/WebSTONE/src/nsapi-includes/base/net.h @@ -0,0 +1,180 @@ +/* + * $Id$ + * + * Copyright (c) 1994, 1995. Netscape Communications Corporation. All + * rights reserved. + * + * Use of this software is governed by the terms of the license agreement for + * the Netscape Communications or Netscape Comemrce Server between the + * parties. + */ + + +/* ------------------------------------------------------------------------ */ + + +/* + * net.h: system specific networking definitions + * + * Rob McCool + */ + + +#ifndef NET_H +#define NET_H + +#include "systems.h" + +#include "file.h" /* for client file descriptors */ + +#include "pblock.h" /* for client data block */ + + +/* This should be a user-given parameter later */ +#define NET_BUFFERSIZE 8192 +/* So should this. */ +#define NET_READ_TIMEOUT 120 +#define NET_WRITE_TIMEOUT 300 + +#define SSL_HANDSHAKE_TIMEOUT 300 + +#if defined(NET_SOCKETS) || defined(NET_SSL) + +#ifdef NET_WINSOCK +#include <winsock.h> +#else /* XP_UNIX */ +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> /* sockaddr and in_addr */ +#include <arpa/inet.h> /* inet_ntoa */ +#include <netdb.h> /* hostent stuff */ +#endif /* NET_WINSOCK */ + +#ifdef NET_SSL +#include "minissl.h" +#endif + + +/* -------------------------------- Global -------------------------------- */ + +extern int net_enabledns; + + + +/* ------------------------------ Data types ------------------------------ */ + + +#ifdef NET_WINSOCK +typedef SOCKET SYS_NETFD; +#else /* XP_UNIX */ +typedef int SYS_NETFD; +#endif /* NET_WINSOCK */ + +#define SYS_NET_ERRORFD -1 + + +/* -------------------------------- Macros -------------------------------- */ + + +/* These may be different for non-UNIX systems. */ + + +#ifndef NET_SSL +#define net_socket socket +#define net_setsockopt setsockopt +#define net_getsockopt getsockopt +#define net_listen listen +#define net_select select +#define net_getpeername getpeername + +#ifndef NET_WINSOCK +#define net_close(sd) close(sd) +#define net_bind bind +#else /* NET_WINSOCK */ +#define net_close(sd) closesocket(sd) +#define system_netbind bind +int net_bind(SYS_NETFD s, const struct sockaddr *name, int namelen); +#endif /* NET_WINSOCK */ + +#ifdef DAEMON_NEEDS_SEMAPHORE +#define net_accept net_semaccept +#else /* ! DAEMON_NEEDS_SEMAPHORE */ +#define net_accept accept +#endif /* DAEMON_NEEDS_SEMAPHORE */ + +#else /* NET_SSL */ +#define net_close(sd) SSL_Close(sd) +#define net_socket SSL_Socket +#define net_setsockopt SSL_SetSockOpt +#define net_getsockopt SSL_GetSockOpt + +#ifdef XP_UNIX +#define net_bind SSL_Bind +#else /* WIN32 */ +#define system_netbind SSL_Bind +int net_bind(SYS_NETFD s, const struct sockaddr *name, int namelen); +#endif /* XP_UNIX */ + +#define net_listen SSL_Listen +#define net_select select /* !!! */ +#define net_getpeername SSL_GetPeerName +#define net_accept SSL_Accept +#endif /* ! NET_SSL */ + + +/* Users should never call the system_net* functions. */ +#ifdef NET_SSL +#define system_netread(sd, buf, sz) SSL_Read(sd, buf, sz) +#define system_netwrite SSL_Write +#else /* ! NET_SSL */ + +#if !defined(NET_WINSOCK) +#define system_netread(sd, buf, sz) read(sd, buf, sz) +#define system_netwrite write +#else /* NET_WINSOCK */ +#define system_netread(sd, buf, sz) recv(sd, buf, sz, 0) +#define system_netwrite(sd, buf, sz) send(sd, buf, sz, 0) +#endif /* ! NET_WINSOCK */ + +#endif /* NET_SSL */ + +int net_read(SYS_NETFD sd, char *buf, int sz, int timeout); +int net_write(SYS_NETFD sd, char *buf, int sz); + +#ifdef DAEMON_NEEDS_SEMAPHORE +int net_semaccept_init(int port); +int net_semaccept(int s, struct sockaddr *addr, int *addrlen); +void net_semaccept_terminate(void); +#endif + + +/* ------------------------------ Prototypes ------------------------------ */ + + +/* + * net_find_fqdn looks through the given hostent structure trying to find + * a FQDN for the host. If it finds none, it returns NULL. Otherwise, it + * returns a newly allocated copy of that string. + */ + +char *net_find_fqdn(struct hostent *p); + +/* + * net_ip2host transforms the given textual IP number into a FQDN. If it + * can't find a FQDN, it will return what it can get. Otherwise, NULL. + * + * verify is whether or not the function should verify the hostname it + * gets. This takes an extra query but is safer for use in access control. + */ + +char *net_ip2host(char *ip, int verify); + +/* + * net_sendmail sends mail to the specified recipient with the given subject + * and message. Currently uses external programs. + */ + +int net_sendmail(char *to, char *subject, char *msg); + +#endif +#endif |