From c376f9d0925a7cfdf1a07d7ebd783cb90ea818f7 Mon Sep 17 00:00:00 2001 From: Moises Silva Date: Fri, 4 Dec 2009 18:25:48 +0000 Subject: [PATCH] added zap_strndup git-svn-id: http://svn.openzap.org/svn/openzap/branches/sangoma_boost@928 a93c3328-9c30-0410-af19-c9cd2b2d52af --- libs/freetdm/src/include/openzap.h | 1 + libs/freetdm/src/zap_io.c | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) diff --git a/libs/freetdm/src/include/openzap.h b/libs/freetdm/src/include/openzap.h index b114e844fb..64791f4eec 100644 --- a/libs/freetdm/src/include/openzap.h +++ b/libs/freetdm/src/include/openzap.h @@ -652,6 +652,7 @@ OZ_DECLARE(zap_status_t) zap_global_set_queue_handler(zap_queue_handler_t *handl /*! \brief Duplicate string */ OZ_DECLARE(char *) zap_strdup(const char *str); +OZ_DECLARE(char *) zap_strndup(const char *str, zap_size_t inlen); OZ_DECLARE(zap_size_t) zap_fsk_modulator_generate_bit(zap_fsk_modulator_t *fsk_trans, int8_t bit, int16_t *buf, zap_size_t buflen); OZ_DECLARE(int32_t) zap_fsk_modulator_generate_carrier_bits(zap_fsk_modulator_t *fsk_trans, uint32_t bits); diff --git a/libs/freetdm/src/zap_io.c b/libs/freetdm/src/zap_io.c index b967a4c418..ba95e94bbf 100644 --- a/libs/freetdm/src/zap_io.c +++ b/libs/freetdm/src/zap_io.c @@ -3252,6 +3252,24 @@ OZ_DECLARE(char *) zap_strdup(const char *str) return (char *)memcpy(new, str, len); } +OZ_DECLARE(char *) zap_strndup(const char *str, zap_size_t inlen) +{ + char *new = NULL; + zap_size_t len = strlen(str) + 1; + if (len > (inlen+1)) { + len = inlen+1; + } + new = (char *)zap_malloc(len); + + if (!new) { + return NULL; + } + + memcpy(new, str, len-1); + new[len-1] = 0; + return new; +} + /* For Emacs: * Local Variables: