Skip to Content.
Sympa Menu

freetds - Endian madness

freetds AT lists.ibiblio.org

Subject: FreeTDS Development Group

List archive

Chronological Thread  
  • From: "Tom Coleman" <tcoleman AT autowares.com>
  • To: freetds
  • Subject: Endian madness
  • Date: Fri, 21 Jul 2000 16:52:47



The token datastream length in a query packet (0x0f) is apparently a long.

This turned up on a port to the RS-6000.

This code fragment from tds_submit_query will work on either big or
little endian machines:


if (IS_TDS50(tds)) {
bufsize = strlen(query)+6;
buf = (unsigned char *) malloc(bufsize);
memset(buf,'\0',bufsize);
buf[0]=TDS_LANG_TOKEN;

/* send 4-byte token datastream length */
{
TDS_INT qlen = strlen(query) + 1;
memcpy(buf+1, (void *)&qlen, 4);
}

/* original code
buf[1]=(strlen(query)+1)%256;
buf[2]=(strlen(query)+1)/256;
*/
}
else...



  • Endian madness, Tom Coleman, 07/21/2000

Archive powered by MHonArc 2.6.24.

Top of Page