Index: cdr/cdr_tds.c =================================================================== RCS file: /usr/cvsroot/asterisk/cdr/cdr_tds.c,v retrieving revision 1.13 diff -u -r1.13 cdr_tds.c --- cdr/cdr_tds.c 15 Sep 2005 15:44:26 -0000 1.13 +++ cdr/cdr_tds.c 26 Oct 2005 18:35:57 -0000 @@ -69,8 +69,7 @@ #include "asterisk/module.h" #include "asterisk/logger.h" -#if !defined(TDS_INT_EXIT) -#define TDS_PRE_0_62 +#ifdef FREETDS_PRE_0_62 #warning "You have older TDS, you should upgrade!" #endif @@ -103,7 +102,7 @@ char *accountcode, *src, *dst, *dcontext, *clid, *channel, *dstchannel, *lastapp, *lastdata, *uniqueid; int res = 0; int retried = 0; -#ifdef TDS_PRE_0_62 +#ifdef FREETDS_PRE_0_62 TDS_INT result_type; #endif @@ -197,7 +196,7 @@ retried = 1; /* note that we have now tried */ } -#ifdef TDS_PRE_0_62 +#ifdef FREETDS_PRE_0_62 if (!connected || (tds_submit_query(tds, sqlcmd) != TDS_SUCCEED) || (tds_process_simple_query(tds, &result_type) != TDS_SUCCEED || result_type != TDS_CMD_SUCCEED)) #else if (!connected || (tds_submit_query(tds, sqlcmd) != TDS_SUCCEED) || (tds_process_simple_query(tds) != TDS_SUCCEED)) @@ -426,7 +425,11 @@ static int mssql_connect(void) { +#ifdef FREETDS_0_63 + TDSCONNECTION *connection = NULL; +#else TDSCONNECTINFO *connection = NULL; +#endif char query[128]; /* Connect to M$SQL Server */ @@ -441,7 +444,7 @@ tds_set_passwd(login, password); tds_set_app(login, "TSQL"); tds_set_library(login, "TDS-Library"); -#ifndef TDS_PRE_0_62 +#ifndef FREETDS_PRE_0_62 tds_set_client_charset(login, charset); #endif tds_set_language(login, language); @@ -471,15 +474,23 @@ { ast_log(LOG_ERROR, "Failed to connect to MSSQL server.\n"); tds = NULL; /* freed by tds_connect() on error */ +#ifdef FREETDS_0_63 + tds_free_connection(connection); +#else tds_free_connect(connection); +#endif connection = NULL; goto connect_fail; } +#ifdef FREETDS_0_63 + tds_free_connection(connection); +#else tds_free_connect(connection); +#endif connection = NULL; sprintf(query, "USE %s", dbname); -#ifdef TDS_PRE_0_62 +#ifdef FREETDS_PRE_0_62 if ((tds_submit_query(tds, query) != TDS_SUCCEED) || (tds_process_simple_query(tds, &result_type) != TDS_SUCCEED || result_type != TDS_CMD_SUCCEED)) #else if ((tds_submit_query(tds, query) != TDS_SUCCEED) || (tds_process_simple_query(tds) != TDS_SUCCEED)) @@ -519,7 +530,7 @@ struct ast_config *cfg; struct ast_variable *var; char *ptr = NULL; -#ifdef TDS_PRE_0_62 +#ifdef FREETDS_PRE_0_62 TDS_INT result_type; #endif Index: cdr/Makefile =================================================================== RCS file: /usr/cvsroot/asterisk/cdr/Makefile,v retrieving revision 1.31 diff -u -r1.31 Makefile --- cdr/Makefile 30 Aug 2005 15:59:25 -0000 1.31 +++ cdr/Makefile 26 Oct 2005 18:35:57 -0000 @@ -40,6 +40,15 @@ # FreeTDS stuff... # ifneq ($(wildcard $(CROSS_COMPILE_TARGET)/usr/include/tds.h)$(wildcard $(CROSS_COMPILE_TARGET)/usr/local/include/tds.h),) + ifeq ($(shell grep TDS_VERSION_NO $(CROSS_COMPILE_TARGET)/usr/include/tdsver.h $(CROSS_COMPILE_TARGET)/usr/local/include/tdsver.h | grep -c 0.63),1) + CFLAGS += -DFREETDS_0_63 + else + ifeq ($(shell grep TDS_VERSION_NO $(CROSS_COMPILE_TARGET)/usr/include/tdsver.h $(CROSS_COMPILE_TARGET)/usr/local/include/tdsver.h | grep -c 0.62),1) + CFLAGS += -DFREETDS_0_62 + else + CFLAGS += -DFREETDS_PRE_0_62 + endif + endif MODS+=cdr_tds.so endif