aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/libmysql_r/include/wolfssl_fix_namespace_pollution.h
diff options
context:
space:
mode:
authorhcpp <hcpp@ydb.tech>2023-11-08 12:09:41 +0300
committerhcpp <hcpp@ydb.tech>2023-11-08 12:56:14 +0300
commita361f5b98b98b44ea510d274f6769164640dd5e1 (patch)
treec47c80962c6e2e7b06798238752fd3da0191a3f6 /contrib/libs/libmysql_r/include/wolfssl_fix_namespace_pollution.h
parent9478806fde1f4d40bd5a45e7cbe77237dab613e9 (diff)
downloadydb-a361f5b98b98b44ea510d274f6769164640dd5e1.tar.gz
metrics have been added
Diffstat (limited to 'contrib/libs/libmysql_r/include/wolfssl_fix_namespace_pollution.h')
-rw-r--r--contrib/libs/libmysql_r/include/wolfssl_fix_namespace_pollution.h64
1 files changed, 64 insertions, 0 deletions
diff --git a/contrib/libs/libmysql_r/include/wolfssl_fix_namespace_pollution.h b/contrib/libs/libmysql_r/include/wolfssl_fix_namespace_pollution.h
new file mode 100644
index 0000000000..5de26bc87e
--- /dev/null
+++ b/contrib/libs/libmysql_r/include/wolfssl_fix_namespace_pollution.h
@@ -0,0 +1,64 @@
+/* Copyright (c) 2017, 2018, Oracle and/or its affiliates. All rights reserved.
+
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License, version 2.0,
+as published by the Free Software Foundation.
+
+This program is also distributed with certain software (including
+but not limited to OpenSSL) that is licensed under separate terms,
+as designated in a particular file or component or in included license
+documentation. The authors of MySQL hereby grant you an additional
+permission to link the program and your derivative works with the
+separately licensed software that they have included with MySQL.
+
+This program 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 General Public License, version 2.0, for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */
+
+/**
+ The WolfSSL library does #define certain global symbol that pollute the
+ C namespace.
+ This file is to be included after the wolf headers to fix this.
+*/
+#ifndef WOLFSSL_FIX_NAMESPACE_POLLUTION_H
+#define WOLFSSL_FIX_NAMESPACE_POLLUTION_H 1
+
+#ifdef HAVE_WOLFSSL
+
+#if defined(_WIN32)
+/* defined in wolfssl's io.h. Replaces all mentions of the word close */
+#if defined(close)
+#undef close
+#endif
+
+/*
+ Defined in wolfssl's io.h.
+ Conflict with the same constants defined in mysql
+ Keep in sync with my_io.h
+*/
+#if defined(SOCKET_EWOULDBLOCK)
+#undef SOCKET_EWOULDBLOCK
+#define SOCKET_EWOULDBLOCK WSAEWOULDBLOCK
+#endif
+#if defined(SOCKET_EAGAIN)
+#undef SOCKET_EAGAIN
+#define SOCKET_EAGAIN WSAEINPROGRESS
+#endif
+#if defined(SOCKET_ECONNRESET)
+#undef SOCKET_ECONNRESET
+#define SOCKET_ECONNRESET WSAECONNRESET
+#endif
+#if defined(SOCKET_EINTR)
+#undef SOCKET_EINTR
+#define SOCKET_EINTR WSAEINTR
+#endif
+
+#endif /* _WIN32 */
+#endif /* HAVE_WOLFSSL */
+
+#endif /* WOLFSSL_FIX_NAMESPACE_POLLUTION_H */