| /* |
| * Copyright (c) 2002-2011 by XMLVM.org |
| * |
| * Project Info: http://www.xmlvm.org |
| * |
| * This program is free software; you can redistribute it and/or modify it |
| * under the terms of the GNU Lesser General Public License as published by |
| * the Free Software Foundation; either version 2.1 of the License, or |
| * (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, but |
| * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY |
| * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public |
| * License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, |
| * USA. |
| */ |
| |
| |
| #include "hysock.h" |
| |
| |
| #ifndef __XMLVM_SOCK_H__ |
| #define __XMLVM_SOCK_H__ |
| |
| /* socket structure flags */ |
| #define SOCKET_IPV4_OPEN_MASK '\x1' /* 00000001 */ |
| #define SOCKET_IPV6_OPEN_MASK '\x2' /* 00000010 */ |
| #define SOCKET_BOTH_OPEN_MASK '\x3' /* 00000011 */ |
| #define SOCKET_USE_IPV4_MASK '\x4' /* 00000100 - this tells which one to pick when doing an operation */ |
| |
| int harmony_supports_ipv6(); |
| int preferIPv4Stack(); |
| int preferIPv6Addresses(); |
| |
| char* netLookupErrorString (I_32 anErrorNum); |
| U_16 hysock_htons(U_16 port); |
| U_16 hysock_ntohs (U_16 val); |
| I_32 hysock_socketIsValid (hysocket_t handle); |
| U_16 hysock_sockaddr_port (hysockaddr_t handle); |
| void setJavaIoFileDescriptorContents (JAVA_OBJECT fd, void *value); |
| void* getJavaIoFileDescriptorContentsAsAPointer (JAVA_OBJECT fd); |
| void netGetJavaNetInetAddressValue (JAVA_OBJECT anInetAddress, U_8* buffer, U_32* length); |
| void netGetJavaNetInetAddressScopeId (JAVA_OBJECT anInetAddress, U_32* scope_id); |
| I_32 netGetSockAddr (JAVA_OBJECT fileDescriptor, hysockaddr_t sockaddrP, JAVA_BOOLEAN preferIPv6Addresses); |
| JAVA_OBJECT newJavaNetInetAddressGenericBS (JAVA_ARRAY_BYTE* address, U_32 length, const char* hostName, U_32 scope_id); |
| I_32 hysock_socket (hysocket_t * handle, I_32 family, I_32 socktype, I_32 protocol); |
| I_32 hysock_sockaddr_init6 (hysockaddr_t handle, U_8 * addr, I_32 addrlength, I_16 family, U_16 nPort, U_32 flowinfo, U_32 scope_id, hysocket_t sock); |
| I_32 hysock_getnameinfo (hysockaddr_t in_addr, I_32 sockaddr_size, char *name, I_32 name_length, int flags); |
| I_32 hysock_bind (hysocket_t sock, hysockaddr_t addr); |
| I_32 hysock_getsockname (hysocket_t handle, hysockaddr_t addrHandle); |
| I_32 hysock_connect (hysocket_t sock, hysockaddr_t addr); |
| I_32 hysock_write (hysocket_t sock, U_8 * buf, I_32 nbyte, I_32 flags); |
| I_32 hysock_read (hysocket_t sock, U_8 * buf, I_32 nbyte, I_32 flags); |
| I_32 hysock_close (hysocket_t * sock); |
| I_32 hysock_listen (hysocket_t sock, I_32 backlog); |
| I_32 hysock_accept (hysocket_t serverSock, hysockaddr_t addrHandle, hysocket_t * sockHandle); |
| I_32 hysock_timeval_init (U_32 secTime, U_32 uSecTime, hytimeval_t timeP); |
| I_32 hysock_select_read (hysocket_t hysocketP, I_32 secTime, I_32 uSecTime, BOOLEAN accept); |
| I_32 hysock_fdset_init (hysocket_t socketP); |
| I_32 hysock_fdset_size (hysocket_t handle); |
| I_32 hysock_select (I_32 nfds, hyfdset_t readfds, hyfdset_t writefds, hyfdset_t exceptfds, hytimeval_t timeout); |
| I_32 platformSocketLevel (I_32 portableSocketLevel); |
| I_32 platformSocketOption (I_32 portableSocketOption); |
| I_32 hysock_setopt_bool (hysocket_t socketP, I_32 optlevel, I_32 optname, BOOLEAN * optval); |
| |
| void throwJavaNetSocketException (I_32 errorNumber); |
| |
| #endif |