94 95 extern getaddrinfo_f getaddrinfo_ptr; 96 extern freeaddrinfo_f freeaddrinfo_ptr; 97 extern getnameinfo_f getnameinfo_ptr; 98 99 /* do we have address translation support */ 100 101 extern jboolean NET_addrtransAvailable(); 102 103 #define NET_WAIT_READ 0x01 104 #define NET_WAIT_WRITE 0x02 105 #define NET_WAIT_CONNECT 0x04 106 107 extern jint NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout); 108 109 /************************************************************************ 110 * Macros and constants 111 */ 112 113 /* 114 * Its safe to increase the buffer to 8K, this gives a 5-20% 115 * performance boost on volano and overall socket performance. 116 */ 117 #define MAX_BUFFER_LEN 8192 118 #define MAX_HEAP_BUFFER_LEN 65536 119 120 #ifdef AF_INET6 121 122 #define SOCKADDR union { \ 123 struct sockaddr_in him4; \ 124 struct sockaddr_in6 him6; \ 125 } 126 127 #define SOCKADDR_LEN (ipv6_available() ? sizeof(SOCKADDR) : \ 128 sizeof(struct sockaddr_in)) 129 130 #else 131 132 #define SOCKADDR union { struct sockaddr_in him4 } 133 #define SOCKADDR_LEN sizeof(SOCKADDR) 134 135 #endif 136 137 /************************************************************************ 138 * Utilities | 94 95 extern getaddrinfo_f getaddrinfo_ptr; 96 extern freeaddrinfo_f freeaddrinfo_ptr; 97 extern getnameinfo_f getnameinfo_ptr; 98 99 /* do we have address translation support */ 100 101 extern jboolean NET_addrtransAvailable(); 102 103 #define NET_WAIT_READ 0x01 104 #define NET_WAIT_WRITE 0x02 105 #define NET_WAIT_CONNECT 0x04 106 107 extern jint NET_Wait(JNIEnv *env, jint fd, jint flags, jint timeout); 108 109 /************************************************************************ 110 * Macros and constants 111 */ 112 113 /* 114 * On 64-bit JDKs we use a much larger stack and heap buffer. 115 */ 116 #ifdef _LP64 117 #define MAX_BUFFER_LEN 65536 118 #define MAX_HEAP_BUFFER_LEN 131072 119 #else 120 #define MAX_BUFFER_LEN 8192 121 #define MAX_HEAP_BUFFER_LEN 65536 122 #endif 123 124 #ifdef AF_INET6 125 126 #define SOCKADDR union { \ 127 struct sockaddr_in him4; \ 128 struct sockaddr_in6 him6; \ 129 } 130 131 #define SOCKADDR_LEN (ipv6_available() ? sizeof(SOCKADDR) : \ 132 sizeof(struct sockaddr_in)) 133 134 #else 135 136 #define SOCKADDR union { struct sockaddr_in him4 } 137 #define SOCKADDR_LEN sizeof(SOCKADDR) 138 139 #endif 140 141 /************************************************************************ 142 * Utilities |