tds_connect does too much

"James K. Lowden" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <[email protected]>
tds_connect() connects to the server and logs in.  I plan to change it to
only connect.  tds_connect() will return immediately from
tds_open_socket().  

The rest of the logic, the part that sends the login packet, will be moved
to a new function.  But what to call it?  Our namespace is so crowded!  
Ideally, it would be called tds_login(), but tds_login is a data
structure.  Next best is tds_send_login(), but that's already taken for
sending 4.2/5.0 login packets.  

Best is to rename tds_send_login() to tds5_send_login(), and call the new
function tds_send_login().  

This will make it easier to distinguish between network-level errors --
DNS lookup errors, server not listening -- from login failures.  

It will also make it possible to change tsql to make -U and -P optional,
so the user could be prompted for a username after the connection was
made.  You'll be able to see the difference between network and
authentication failures:

	$ tsql -S servername
	locale is "C"
	locale charset is "646"
	connected, please log in
	username: superman
	password: ********
	1>

or

	$ tsql -S servername
	locale is "C"
	locale charset is "646"
	Msg 20008, Level 9, State -1, Server OpenClient, Line -1
	Unable to open socket
	There was a problem connecting to the server

Eventually I'd like to see functionality like this: 

	$ tsql 
	locale is "C"
	locale charset is "646"
	servername: elixer
	elixer not found in /home/username/.freetds.conf
	elixer not found in /etc/freetds.conf
	/etc/interfaces not found
	elixer.example.com has address 10.1.1.14
	connecting to port 4000 with TDS version 5.0
	Msg 20008, Level 9, State -1, Server OpenClient, Line -1
	Unable to open socket
	There was a problem connecting to the server

But that requires rewriting the configuration file parser....

Comments welcome. 

--jkl
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.