[freetds] FreeTDS on OpenVMS (compiler messages)
Gert de Boom
usenet_ihc at hotmail.com
Thu Mar 18 05:00:34 EST 2004
Hi,
I've got FreeTDS (only just tested with TSQL) working on our OpenVMS system
(had some trouble with iconv, but solved that almost the same as I saw later
in the mailinglist).
Our OpenVMS version is 7.3, C Compiler is version 6.4, SQL Server are
2000-versions. TCP/IP stack on the VMS server is TCPWare 5.3.
The TCPWare implementation has the following definition for the
sockaddr_in-struct:
/*
** Socket Address Structure (internet style):
*/
struct sockaddr_in {
short sin_family;
unsigned short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
struct in_addr {
unsigned long s_addr;
};
In login.c the following code is used:
sin.sin_addr.s_addr = inet_addr(tds_dstr_cstr(&connect_info->ip_addr));
if (sin.sin_addr.s_addr == -1) {
tdsdump_log(TDS_DBG_ERROR, "%L inet_addr() failed, IP = %s\n",
connect_info->ip_addr);
tds_free_socket(tds);
return TDS_FAIL;
}
I get a compiler message on the compare. Seems logical, because an unsigned
long is very unlikely to become negative.
Is this TCPWare specific ?
Further I got some more compiler messages due to signed/unsigned typedefs.
convert.c
=========
TDS_INT
tds_convert(TDSCONTEXT * tds_ctx, int srctype, const TDS_CHAR * src,
TDS_UINT srclen, int desttype, CONV_RESULT * cr)
{
TDS_INT length = 0;
assert(srclen >= 0 && srclen <= 2147483647u);
The assert statement is checking for values that are already defined by the
type TDS_UINT. Is TDS_UINT for some systems/compilers of another type ?
read.c/write.c
==============
tds_iconv function return value is of size_t (and checked for "-1" values).
The size_t type is defined in the DEC C headers as an unsigned int.
user.c/meber.c
==============
tds->in_len is checked for "-1" values. It is defined as unsigned in tds.h.
Should I worry about these compiler messages (and make adjustments) or
should I just ignore and enjoy a working FreeTDS library ?
I still have to find out how to link the library to a Fortran-program.
Anyone has any experience (examples) for doing this on VMS ?
Regards,
Gert
_________________________________________________________________
Play online games with your friends with MSN Messenger
http://messenger.msn.nl/
More information about the FreeTDS
mailing list