FreeTDS API
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Functions | Variables
Configuration
LibTDS API

Handle reading of configuration. More...

Functions

static int hex2num (char *hex)
 
static int hexdigit (int c)
 
static int parse_server_name_for_port (TDSCONNECTION *connection, TDSLOGIN *login)
 Check the server name to find port info first Warning: connection-> & login-> are all modified when needed.
 
static int search_interface_file (TDSCONNECTION *connection, const char *dir, const char *file, const char *host)
 Open and read the file 'file' searching for a logical server by the name of 'host'.
 
int tds_config_boolean (const char *value)
 
static void tds_config_encryption (const char *value, TDSCONNECTION *connection)
 
static void tds_config_env_tdsdump (TDSCONNECTION *connection)
 
static void tds_config_env_tdshost (TDSCONNECTION *connection)
 
static void tds_config_env_tdsport (TDSCONNECTION *connection)
 
static void tds_config_env_tdsver (TDSCONNECTION *connection)
 
static void tds_config_login (TDSCONNECTION *connection, TDSLOGIN *login)
 
TDS_USMALLINT tds_config_verstr (const char *tdsver, TDSCONNECTION *connection)
 Set TDS version from given string.
 
void tds_fix_connection (TDSCONNECTION *connection)
 Fix configuration after reading it.
 
const TDS_COMPILETIME_SETTINGStds_get_compiletime_settings (void)
 Return a structure capturing the compile-time settings provided to the configure script.
 
static char * tds_get_home_file (const char *file)
 Return filename from HOME directory.
 
int tds_lookup_host (const char *servername, char *ip)
 Get the IP address for a hostname.
 
static int tds_lookup_port (const char *portname)
 Given a portname lookup the port.
 
void tds_parse_conf_section (const char *option, const char *value, void *param)
 
int tds_read_conf_file (TDSCONNECTION *connection, const char *server)
 Read configuration info for given server return 0 on error.
 
int tds_read_conf_section (FILE *in, const char *section, TDSCONFPARSE tds_conf_parse, void *param)
 Read a section of configuration file (INI style file)
 
static int tds_read_conf_sections (FILE *in, const char *server, TDSCONNECTION *connection)
 
TDSCONNECTIONtds_read_config_info (TDSSOCKET *tds, TDSLOGIN *login, TDSLOCALE *locale)
 tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values
 
static int tds_read_interfaces (const char *server, TDSCONNECTION *connection)
 Try to find the IP number and port for a (possibly) logical server name.
 
int tds_set_interfaces_file_loc (const char *interf)
 Set the full name of interface file.
 
static int tds_try_conf_file (const char *path, const char *how, const char *server, TDSCONNECTION *connection)
 

Variables

struct {
   unsigned char   to_return
 
   char   value [7]
 
boolean_values []
 

Detailed Description

Handle reading of configuration.

Function Documentation

static int parse_server_name_for_port ( TDSCONNECTION connection,
TDSLOGIN login 
)
static

Check the server name to find port info first Warning: connection-> & login-> are all modified when needed.

Returns
1 when found, else 0
static int search_interface_file ( TDSCONNECTION connection,
const char *  dir,
const char *  file,
const char *  host 
)
static

Open and read the file 'file' searching for a logical server by the name of 'host'.

If one is found then lookup the IP address and port number and store them in 'connection'

Parameters
dirname of base directory for interface file
filename of the interface file
hostlogical host to search for
Returns
0 if not fount 1 if found
TDS_USMALLINT tds_config_verstr ( const char *  tdsver,
TDSCONNECTION connection 
)

Set TDS version from given string.

Parameters
tdsvertds string version
connectionwhere to store information
Returns
as encoded hex value: high nybble major, low nybble minor.
void tds_fix_connection ( TDSCONNECTION connection)

Fix configuration after reading it.

Currently this read some environment variables and replace some options.

static char* tds_get_home_file ( const char *  file)
static

Return filename from HOME directory.

Returns
allocated string or NULL if error
int tds_lookup_host ( const char *  servername,
char *  ip 
)

Get the IP address for a hostname.

Store server's IP address in the string 'ip' in dotted-decimal notation. (The "hostname" might itself be a dotted-decimal address.

If we can't determine the IP address then 'ip' will be set to empty string.

static int tds_lookup_port ( const char *  portname)
static

Given a portname lookup the port.

If we can't determine the port number then return 0.

int tds_read_conf_file ( TDSCONNECTION connection,
const char *  server 
)

Read configuration info for given server return 0 on error.

Parameters
connectionwhere to store configuration
serversection of file configuration that hold configuration for a server
int tds_read_conf_section ( FILE *  in,
const char *  section,
TDSCONFPARSE  tds_conf_parse,
void *  param 
)

Read a section of configuration file (INI style file)

Parameters
inconfiguration file
sectionsection to read
tds_conf_parsecallback that receive every entry in section
paramparameter to pass to callback function
TDSCONNECTION* tds_read_config_info ( TDSSOCKET tds,
TDSLOGIN login,
TDSLOCALE locale 
)

tds_read_config_info() will fill the tds connection structure based on configuration information gathered in the following order: 1) Program specified in TDSLOGIN structure 2) The environment variables TDSVER, TDSDUMP, TDSPORT, TDSQUERY, TDSHOST 3) A config file with the following search order: a) a readable file specified by environment variable FREETDSCONF b) a readable file in ~/.freetds.conf c) a readable file in $prefix/etc/freetds.conf 3) ~/.interfaces if exists 4) $SYBASE/interfaces if exists 5) TDS_DEF_* default values

.tdsrc and freetds.conf have been added to make the package easier to integration with various Linux and *BSD distributions.

static int tds_read_interfaces ( const char *  server,
TDSCONNECTION connection 
)
static

Try to find the IP number and port for a (possibly) logical server name.

Note
This function uses only the interfaces file and is deprecated.
int tds_set_interfaces_file_loc ( const char *  interf)

Set the full name of interface file.

Parameters
interffile name

Variable Documentation

struct { ... } boolean_values[]
Initial value:
= {
{ "yes", 1 },
{ "no", 0 },
{ "on", 1 },
{ "off", 0 },
{ "true", 1 },
{ "false", 0 }
}