From 82b27d1b97b3b8bcc05f6cf54f5480bb4bdcd545 Mon Sep 17 00:00:00 2001 From: Daniel Stenberg 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 f77d73e6e..95a547976 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 fa4adc55f..a168341fd 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); }