diff options
author | Daniel Schauenberg <d@unwiredcouch.com> | 2011-02-02 00:51:22 +0100 |
---|---|---|
committer | Daniel Schauenberg <d@unwiredcouch.com> | 2011-02-02 00:51:22 +0100 |
commit | cb05151b4dc324fd1b1cb5bc088a214a34f55a37 (patch) | |
tree | 36acb765be0867837531d261eed9f65539c2abf5 | |
parent | 6d721316c72dfa18809e6c02e02403042773f023 (diff) | |
download | rabbitmq-c-github-ask-cb05151b4dc324fd1b1cb5bc088a214a34f55a37.tar.gz |
move strdup to separate file and add guards
-rw-r--r-- | librabbitmq/amqp_api.c | 12 | ||||
-rw-r--r-- | librabbitmq/unix/socket.c | 10 | ||||
-rw-r--r-- | librabbitmq/utils/strdup.h | 10 | ||||
-rw-r--r-- | librabbitmq/windows/socket.c | 12 |
4 files changed, 24 insertions, 20 deletions
diff --git a/librabbitmq/amqp_api.c b/librabbitmq/amqp_api.c index 37f6605..e35fa2d 100644 --- a/librabbitmq/amqp_api.c +++ b/librabbitmq/amqp_api.c @@ -58,6 +58,10 @@ #include "amqp_framing.h" #include "amqp_private.h" +#ifndef _GNU_SOURCE +#include "utils/strdup.h" +#endif + #include <assert.h> static const char *client_error_strings[ERROR_MAX] = { @@ -70,12 +74,6 @@ static const char *client_error_strings[ERROR_MAX] = { "connection closed unexpectedly", /* ERROR_CONNECTION_CLOSED */ }; -/* strdup is not in ISO C90! */ -static inline char *strdup(const char *str) -{ - return strcpy(malloc(strlen(str) + 1),str); -} - char *amqp_error_string(int err) { const char *str; @@ -92,7 +90,7 @@ char *amqp_error_string(int err) case ERROR_CATEGORY_OS: return amqp_os_error_string(err); - + default: str = "(undefined error category)"; } diff --git a/librabbitmq/unix/socket.c b/librabbitmq/unix/socket.c index 4f5368e..1edc52f 100644 --- a/librabbitmq/unix/socket.c +++ b/librabbitmq/unix/socket.c @@ -59,6 +59,10 @@ #include "amqp_private.h" #include "socket.h" +#ifndef _GNU_SOURCE +#include "utils/strdup.h" +#endif + int amqp_socket_socket(int domain, int type, int proto) { int flags; @@ -80,12 +84,6 @@ int amqp_socket_socket(int domain, int type, int proto) return s; } -/* strdup is not in ISO C90! */ -static inline char *strdup(const char *str) -{ - return strcpy(malloc(strlen(str) + 1),str); -} - char *amqp_os_error_string(int err) { return strdup(strerror(err)); diff --git a/librabbitmq/utils/strdup.h b/librabbitmq/utils/strdup.h new file mode 100644 index 0000000..1571763 --- /dev/null +++ b/librabbitmq/utils/strdup.h @@ -0,0 +1,10 @@ +#ifndef LIBRABBITMQ_STRDUP_H_ +#define LIBRABBITMQ_STRDUP_H_ +/* strdup is not in ISO C90! + * we define it here for easy inclusion + */ +static inline char *strdup(const char *str) +{ + return strcpy(malloc(strlen(str) + 1),str); +} +#endif diff --git a/librabbitmq/windows/socket.c b/librabbitmq/windows/socket.c index bef7b95..57914b1 100644 --- a/librabbitmq/windows/socket.c +++ b/librabbitmq/windows/socket.c @@ -59,6 +59,10 @@ #include "amqp_private.h" #include "socket.h" +#ifndef _GNU_SOURCE +#include "utils/strdup.h" +#endif + static int called_wsastartup; int amqp_socket_init(void) @@ -75,19 +79,13 @@ int amqp_socket_init(void) return 0; } -/* strdup is not in ISO C90! */ -static inline char *strdup(const char *str) -{ - return strcpy(malloc(strlen(str) + 1),str); -} - char *amqp_os_error_string(int err) { char *msg, *copy; if (!FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_ALLOCATE_BUFFER, - NULL, err, + NULL, err, MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPSTR)&msg, 0, NULL)) return strdup("(error retrieving Windows error message)"); |