From 82b27d1b97b3b8bcc05f6cf54f5480bb4bdcd545 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Wed, 4 Feb 2004 08:00:25 +0000
Subject: [PATCH] prevent the windows version to use global symbol names added
 prototypes for the strcasecmp() functions

---
 ares/nameser.h      | 15 +++++++++++++++
 ares/windows_port.c |  4 ++--
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/ares/nameser.h b/ares/nameser.h
index f77d73e6e4..95a5479760 100644
--- a/ares/nameser.h
+++ b/ares/nameser.h
@@ -1,3 +1,6 @@
+#ifndef ARES_NAMESER_H
+#define ARES_NAMESER_H
+
 /* Windows-only header file provided by liren@vivisimo.com to make his Windows
    port build */
 
@@ -204,3 +207,15 @@ typedef enum __ns_rcode {
 #define T_MAILB         ns_t_mailb
 #define T_MAILA         ns_t_maila
 #define T_ANY           ns_t_any
+
+/* protos for the functions we provide in windows_port.c */
+int ares_strncasecmp(const char *s1, const char *s2, size_t n);
+int ares_strcasecmp(const char *s1, const char *s2);
+
+/* use this define magic to prevent us from adding symbol names to the library
+   that is a high-risk to collide with another libraries' attempts to do the
+   same */
+#define strncasecmp(a,b,c) ares_strncasecmp(a,b,c)
+#define strcasecmp(a,b) ares_strcasecmp(a,b)
+
+#endif /* ARES_NAMESER_H */
diff --git a/ares/windows_port.c b/ares/windows_port.c
index fa4adc55f0..a168341fdd 100644
--- a/ares/windows_port.c
+++ b/ares/windows_port.c
@@ -6,7 +6,7 @@
 #include "nameser.h"
 
 int
-strncasecmp(const char *a, const char *b, size_t n)
+ares_strncasecmp(const char *a, const char *b, size_t n)
 {
     size_t i;
 
@@ -19,7 +19,7 @@ strncasecmp(const char *a, const char *b, size_t n)
 }
 
 int
-strcasecmp(const char *a, const char *b)
+ares_strcasecmp(const char *a, const char *b)
 {
     return strncasecmp(a, b, strlen(a)+1);
 }
-- 
GitLab