diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-08-13 20:27:58 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-08-13 20:27:58 +0000 |
commit | 0b290bde6e4966a2a0ecad1cac504ff610383d2d (patch) | |
tree | f88a6dd28d676360a2f41b76141ddd6cc711dbc0 /cdr | |
parent | 41406abb7a733d99555171650f6befa220c9d567 (diff) |
Build on older versions of TDS (bug #2194)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3606 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'cdr')
-rwxr-xr-x | cdr/cdr_tds.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/cdr/cdr_tds.c b/cdr/cdr_tds.c index d4c4eafb8..448c02495 100755 --- a/cdr/cdr_tds.c +++ b/cdr/cdr_tds.c @@ -54,6 +54,11 @@ CREATE TABLE [dbo].[cdr] ( #include <tdsconvert.h> #include <ctype.h> +#if !defined(TDS_INT_EXIT) +#define TDS_PRE_0_62 +#warning "You have older TDS, you should upgrade!" +#endif + #define DATE_FORMAT "%Y/%m/%d %T" static char *desc = "MSSQL CDR Backend"; @@ -75,6 +80,9 @@ static int tds_log(struct ast_cdr *cdr) char sqlcmd[2048], start[80], answer[80], end[80]; char *accountcode, *src, *dst, *dcontext, *clid, *channel, *dstchannel, *lastapp, *lastdata, *uniqueid; int res = 0; +#ifdef TDS_PRE_0_62 + TDS_INT result_type; +#endif ast_mutex_lock(&tds_lock); @@ -156,7 +164,11 @@ static int tds_log(struct ast_cdr *cdr) uniqueid ); +#ifdef TDS_PRE_0_62 + if ((tds_submit_query(tds, sqlcmd) != TDS_SUCCEED) || (tds_process_simple_query(tds, &result_type) != TDS_SUCCEED || result_type != TDS_CMD_SUCCEED)) +#else if ((tds_submit_query(tds, sqlcmd) != TDS_SUCCEED) || (tds_process_simple_query(tds) != TDS_SUCCEED)) +#endif { ast_log(LOG_ERROR, "Failed to insert record into database.\n"); @@ -375,6 +387,9 @@ int load_module(void) struct ast_variable *var; char query[1024], *ptr = NULL; char *hostname = NULL, *dbname = NULL, *dbuser = NULL, *password = NULL, *charset = NULL, *language = NULL; +#ifdef TDS_PRE_0_62 + TDS_INT result_type; +#endif cfg = ast_load(config); if (!cfg) @@ -462,7 +477,9 @@ int load_module(void) tds_set_passwd(login, password); tds_set_app(login, "TSQL"); tds_set_library(login, "TDS-Library"); +#ifndef TDS_PRE_0_62 tds_set_client_charset(login, charset); +#endif tds_set_language(login, language); tds_set_packet(login, 512); tds_set_version(login, 7, 0); @@ -483,7 +500,11 @@ int load_module(void) { memset(query, 0, sizeof(query)); sprintf(query, "USE %s", dbname); +#ifdef TDS_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)) +#endif { ast_log(LOG_ERROR, "Could not change database (%s)\n", dbname); res = -1; |