Defines | |
#define | TEMP_FREE ; |
#define | TEMP_INIT(s) char temp[s] |
#define | TEMP_SIZE sizeof(temp) |
Functions | |
static int | goodread (TDSSOCKET *tds, unsigned char *buf, int buflen) |
static int | read_and_convert (TDSSOCKET *tds, const TDSICONV *char_conv, size_t *wire_size, char **outbuf, size_t *outbytesleft) |
int | tds7_get_instance_port (const char *ip_addr, const char *instance) |
Get port of given instance. | |
static int | tds_check_socket_write (TDSSOCKET *tds) |
int | tds_close_socket (TDSSOCKET *tds) |
int | tds_flush_packet (TDSSOCKET *tds) |
Flush packet to server. | |
unsigned char | tds_get_byte (TDSSOCKET *tds) |
int | tds_get_char_data (TDSSOCKET *tds, char *row_buffer, size_t wire_size, TDSCOLUMN *curcol) |
Fetch character data the wire. | |
TDS_INT | tds_get_int (TDSSOCKET *tds) |
Get an int32 from the server. | |
void * | tds_get_n (TDSSOCKET *tds, void *dest, int need) |
Get N bytes from the buffer and return them in the already allocated space given to us. | |
int | tds_get_size_by_type (int servertype) |
Return the number of bytes needed by specified type. | |
TDS_SMALLINT | tds_get_smallint (TDSSOCKET *tds) |
Get an int16 from the server. | |
int | tds_get_string (TDSSOCKET *tds, int string_len, char *dest, size_t dest_size) |
Fetch a string from the wire. | |
static int | tds_goodread (TDSSOCKET *tds, unsigned char *buf, int buflen, unsigned char unfinished) |
Loops until we have received buflen characters return -1 on failure. | |
static int | tds_goodwrite (TDSSOCKET *tds, const unsigned char *p, int len, unsigned char last) |
int | tds_init_write_buf (TDSSOCKET *tds) |
int | tds_open_socket (TDSSOCKET *tds, const char *ip_addr, unsigned int port, int timeout) |
unsigned char | tds_peek (TDSSOCKET *tds) |
int | tds_put_buf (TDSSOCKET *tds, const unsigned char *buf, int dsize, int ssize) |
int | tds_put_byte (TDSSOCKET *tds, unsigned char c) |
int | tds_put_int (TDSSOCKET *tds, TDS_INT i) |
int | tds_put_int8 (TDSSOCKET *tds, TDS_INT8 i) |
int | tds_put_n (TDSSOCKET *tds, const void *buf, int n) |
int | tds_put_smallint (TDSSOCKET *tds, TDS_SMALLINT si) |
int | tds_put_string (TDSSOCKET *tds, const char *s, int len) |
Output a string to wire automatic translate string to unicode if needed. | |
int | tds_read_packet (TDSSOCKET *tds) |
Read in one 'packet' from the server. | |
void | tds_unget_byte (TDSSOCKET *tds) |
Unget will always work as long as you don't call it twice in a row. | |
int | tds_write_packet (TDSSOCKET *tds, unsigned char final) |
|
Get port of given instance.
|
|
Flush packet to server.
|
|
Fetch character data the wire. Output is NOT null terminated. If char_conv is not NULL, convert data accordingly.
|
|
Get N bytes from the buffer and return them in the already allocated space given to us. We ASSUME that the person calling this function has done the bounds checking for us since they know how many bytes they want here. dest of NULL means we just want to eat the bytes. (tetherow@nol.org) |
|
Fetch a string from the wire. Output string is NOT null terminated. If TDS version is 7 or 8 read unicode string and convert it. This function should be use to read server default encoding strings like columns name, table names, etc, not for data (use tds_get_char_data instead)
|
|
Output a string to wire automatic translate string to unicode if needed.
|
|
Read in one 'packet' from the server. This is a wrapped outer packet of the protocol (they bundle result packets into chunks and wrap them at what appears to be 512 bytes regardless of how that breaks internal packet up. (tetherow@nol.org)
|
|
Unget will always work as long as you don't call it twice in a row. It it may work if you call it multiple times as long as you don't backup over the beginning of network packet boundary which can occur anywhere in the token stream. |