static void tds_config_login(TDSLOGIN * connection, TDSLOGIN * login) { if (!tds_dstr_isempty(&login->server_name)) { if (1 || tds_dstr_isempty(&connection->server_name)) tds_dstr_dup(&connection->server_name, &login->server_name); } if (login->tds_version) connection->tds_version = login->tds_version; if (!tds_dstr_isempty(&login->language)) { tds_dstr_dup(&connection->language, &login->language); } if (!tds_dstr_isempty(&login->server_charset)) { tds_dstr_dup(&connection->server_charset, &login->server_charset); } if (!tds_dstr_isempty(&login->client_charset)) { tds_dstr_dup(&connection->client_charset, &login->client_charset); tdsdump_log(TDS_DBG_INFO1, "tds_config_login: %s is %s.\n", "client_charset", tds_dstr_cstr(&connection->client_charset)); } if (!tds_dstr_isempty(&login->database)) { tds_dstr_dup(&connection->database, &login->database); tdsdump_log(TDS_DBG_INFO1, "tds_config_login: %s is %s.\n", "database_name", tds_dstr_cstr(&connection->database)); } if (!tds_dstr_isempty(&login->client_host_name)) { tds_dstr_dup(&connection->client_host_name, &login->client_host_name); } if (!tds_dstr_isempty(&login->app_name)) { tds_dstr_dup(&connection->app_name, &login->app_name); } if (!tds_dstr_isempty(&login->user_name)) { tds_dstr_dup(&connection->user_name, &login->user_name); } if (!tds_dstr_isempty(&login->password)) { /* for security reason clear memory */ tds_dstr_zero(&connection->password); tds_dstr_dup(&connection->password, &login->password); } if (!tds_dstr_isempty(&login->library)) { tds_dstr_dup(&connection->library, &login->library); } if (login->encryption_level) { connection->encryption_level = login->encryption_level; } if (login->suppress_language) { connection->suppress_language = 1; } if (login->bulk_copy) { connection->bulk_copy = 1; } if (login->block_size) { connection->block_size = login->block_size; } if (login->port) connection->port = login->port; if (login->connect_timeout) connection->connect_timeout = login->connect_timeout; if (login->query_timeout) connection->query_timeout = login->query_timeout; /* copy other info not present in configuration file */ connection->capabilities = login->capabilities; }
static int tds_config_login(TDSLOGIN * connection, TDSLOGIN * login) { DSTR *res = &login->server_name; if (!tds_dstr_isempty(&login->server_name)) { if (1 || tds_dstr_isempty(&connection->server_name)) res = tds_dstr_dup(&connection->server_name, &login->server_name); } if (login->tds_version) connection->tds_version = login->tds_version; if (res && !tds_dstr_isempty(&login->language)) { res = tds_dstr_dup(&connection->language, &login->language); } if (res && !tds_dstr_isempty(&login->server_charset)) { res = tds_dstr_dup(&connection->server_charset, &login->server_charset); } if (res && !tds_dstr_isempty(&login->client_charset)) { res = tds_dstr_dup(&connection->client_charset, &login->client_charset); tdsdump_log(TDS_DBG_INFO1, "tds_config_login: %s is %s.\n", "client_charset", tds_dstr_cstr(&connection->client_charset)); } if (!login->use_utf16) connection->use_utf16 = login->use_utf16; if (res && !tds_dstr_isempty(&login->database)) { res = tds_dstr_dup(&connection->database, &login->database); tdsdump_log(TDS_DBG_INFO1, "tds_config_login: %s is %s.\n", "database_name", tds_dstr_cstr(&connection->database)); } if (res && !tds_dstr_isempty(&login->client_host_name)) { res = tds_dstr_dup(&connection->client_host_name, &login->client_host_name); } if (res && !tds_dstr_isempty(&login->app_name)) { res = tds_dstr_dup(&connection->app_name, &login->app_name); } if (res && !tds_dstr_isempty(&login->user_name)) { res = tds_dstr_dup(&connection->user_name, &login->user_name); } if (res && !tds_dstr_isempty(&login->password)) { /* for security reason clear memory */ tds_dstr_zero(&connection->password); res = tds_dstr_dup(&connection->password, &login->password); } if (res && !tds_dstr_isempty(&login->library)) { res = tds_dstr_dup(&connection->library, &login->library); } if (login->encryption_level) { connection->encryption_level = login->encryption_level; } if (login->suppress_language) { connection->suppress_language = 1; } if (login->bulk_copy) { connection->bulk_copy = 1; } if (login->block_size) { connection->block_size = login->block_size; } if (login->port) connection->port = login->port; if (login->connect_timeout) connection->connect_timeout = login->connect_timeout; if (login->query_timeout) connection->query_timeout = login->query_timeout; if (!login->check_ssl_hostname) connection->check_ssl_hostname = login->check_ssl_hostname; if (res && !tds_dstr_isempty(&login->db_filename)) { res = tds_dstr_dup(&connection->db_filename, &login->db_filename); } /* copy other info not present in configuration file */ connection->capabilities = login->capabilities; if (login->readonly_intent) connection->readonly_intent = login->readonly_intent; connection->use_new_password = login->use_new_password; if (res) res = tds_dstr_dup(&connection->new_password, &login->new_password); return res != NULL; }
static void tds_config_login(TDSCONNECTINFO * connect_info, TDSLOGIN * login) { if (!tds_dstr_isempty(&login->server_name)) { tds_dstr_copy(&connect_info->server_name, tds_dstr_cstr(&login->server_name)); } if (login->major_version || login->minor_version) { connect_info->major_version = login->major_version; connect_info->minor_version = login->minor_version; } if (!tds_dstr_isempty(&login->language)) { tds_dstr_copy(&connect_info->language, tds_dstr_cstr(&login->language)); } if (!tds_dstr_isempty(&login->server_charset)) { tds_dstr_copy(&connect_info->server_charset, tds_dstr_cstr(&login->server_charset)); } if (!tds_dstr_isempty(&login->client_charset)) { tds_dstr_copy(&connect_info->client_charset, tds_dstr_cstr(&login->client_charset)); tdsdump_log(TDS_DBG_INFO1, "%L tds_config_login:%d: %s is %s.\n", __LINE__, "client_charset", connect_info->client_charset); } if (!tds_dstr_isempty(&login->host_name)) { tds_dstr_copy(&connect_info->host_name, tds_dstr_cstr(&login->host_name)); /* DBSETLHOST and it's equivilants are commentary fields * ** they don't affect connect_info->ip_addr (the server) but they show * ** up in an sp_who as the *clients* hostname. (bsb, 11/10) */ /* should work with IP (mlilback, 11/7/01) */ /* * if (connect_info->ip_addr) free(connect_info->ip_addr); * connect_info->ip_addr = calloc(sizeof(char),18); * tds_lookup_host(connect_info->host_name, NULL, connect_info->ip_addr, NULL); */ } if (!tds_dstr_isempty(&login->app_name)) { tds_dstr_copy(&connect_info->app_name, tds_dstr_cstr(&login->app_name)); } if (!tds_dstr_isempty(&login->user_name)) { tds_dstr_copy(&connect_info->user_name, tds_dstr_cstr(&login->user_name)); } if (!tds_dstr_isempty(&login->password)) { /* for security reason clear memory */ tds_dstr_zero(&connect_info->password); tds_dstr_copy(&connect_info->password, tds_dstr_cstr(&login->password)); } if (!tds_dstr_isempty(&login->library)) { tds_dstr_copy(&connect_info->library, tds_dstr_cstr(&login->library)); } if (login->encrypted) { connect_info->encrypted = 1; } if (login->suppress_language) { connect_info->suppress_language = 1; } if (login->bulk_copy) { connect_info->bulk_copy = 1; } if (login->block_size) { connect_info->block_size = login->block_size; } if (login->port) { connect_info->port = login->port; } if (login->connect_timeout) connect_info->connect_timeout = login->connect_timeout; /* copy other info not present in configuration file */ connect_info->query_timeout = login->query_timeout; connect_info->longquery_timeout = login->longquery_timeout; connect_info->longquery_func = login->longquery_func; connect_info->longquery_param = login->longquery_param; memcpy(connect_info->capabilities, login->capabilities, TDS_MAX_CAPABILITY); }