78591cea48
MariaDB is a fork of MySQL relational database management system. It is an enhanced, drop-in replacement for MySQL. This package contains client libraries.
55 lines
1.8 KiB
C
55 lines
1.8 KiB
C
$NetBSD: patch-vio_viosocket.c,v 1.1 2015/04/16 20:20:15 ryoon Exp $
|
|
|
|
--- vio/viosocket.c.orig 2015-02-13 12:07:16.000000000 +0000
|
|
+++ vio/viosocket.c
|
|
@@ -37,6 +37,12 @@
|
|
# include <sys/filio.h>
|
|
#endif
|
|
|
|
+#if defined(_SCO_DS)
|
|
+/* SCO OpenServer 5.0.7/3.2 has no SHUT_* macros.
|
|
+ See http://osr507doc.sco.com/en/netguide/disockD.system_calls.html */
|
|
+#define SHUT_RDWR 2
|
|
+#endif
|
|
+
|
|
int vio_errno(Vio *vio __attribute__((unused)))
|
|
{
|
|
return socket_errno; /* On Win32 this mapped to WSAGetLastError() */
|
|
@@ -552,7 +558,12 @@ my_bool vio_get_normalized_ip_string(con
|
|
char *ip_string,
|
|
size_t ip_string_size)
|
|
{
|
|
+/* SCO OpenServer 5.0.7/3.2 has no sockaddr_storage. */
|
|
+#if defined(_SCO_DS)
|
|
+ struct sockaddr_in norm_addr_storage;
|
|
+#else
|
|
struct sockaddr_storage norm_addr_storage;
|
|
+#endif
|
|
struct sockaddr *norm_addr= (struct sockaddr *) &norm_addr_storage;
|
|
int norm_addr_length;
|
|
int err_code;
|
|
@@ -596,7 +607,11 @@ my_bool vio_peer_addr(Vio *vio, char *ip
|
|
*/
|
|
struct in_addr *ip4= &((struct sockaddr_in *) &(vio->remote))->sin_addr;
|
|
|
|
+/* SCO OpenServer 5.0.7/3.2 has no sockaddr_storage, and use sockaddr_in.
|
|
+ So there is no ss_family in sockaddr_in. */
|
|
+#if !defined(_SCO_DS)
|
|
vio->remote.ss_family= AF_INET;
|
|
+#endif
|
|
vio->addrLen= sizeof (struct sockaddr_in);
|
|
|
|
ip4->s_addr= htonl(INADDR_LOOPBACK);
|
|
@@ -611,7 +626,12 @@ my_bool vio_peer_addr(Vio *vio, char *ip
|
|
int err_code;
|
|
char port_buffer[NI_MAXSERV];
|
|
|
|
+/* SCO OpenServer 5.0.7/3.2 has no sockaddr_storage. */
|
|
+#if defined(_SCO_DS)
|
|
+ struct sockaddr_in addr_storage;
|
|
+#else
|
|
struct sockaddr_storage addr_storage;
|
|
+#endif
|
|
struct sockaddr *addr= (struct sockaddr *) &addr_storage;
|
|
size_socket addr_length= sizeof (addr_storage);
|
|
|