1
/* - mode: c; c-basic-offset: 2; indent-tabs-mode: nil; -*-
2
* vim:expandtab:shiftwidth=2:tabstop=2:smarttab:
4
* Copyright (C) 2008 Sun Microsystems, Inc.
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License as published by
8
* the Free Software Foundation; version 2 of the License.
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
#ifndef PLUGIN_MYSQL_PROTOCOL_NET_SERV_H
22
#define PLUGIN_MYSQL_PROTOCOL_NET_SERV_H
28
#define LIBDRIZZLE_ERRMSG_SIZE 512
29
#define LIBDRIZZLE_SQLSTATE_LENGTH 5
35
typedef struct st_net {
37
unsigned char *buff,*buff_end,*write_pos,*read_pos;
38
int fd; /* For Perl DBI/dbd */
40
The following variable is set if we are doing several queries in one
41
command ( as in LOAD TABLE ... FROM MASTER ),
42
and do not want to confuse the client with OK at the wrong time
44
unsigned long remain_in_buf,length, buf_length, where_b;
45
unsigned long max_packet,max_packet_size;
46
unsigned int pkt_nr,compress_pkt_nr;
47
unsigned int write_timeout;
48
unsigned int read_timeout;
49
unsigned int retry_count;
51
unsigned int *return_status;
52
unsigned char reading_or_writing;
56
Pointer to query object in query cache, do not equal NULL (0) for
57
queries in cache that have not stored its results yet
60
Unused, please remove with the next incompatible ABI change.
62
unsigned char *unused;
63
unsigned int last_errno;
65
/** Client library error message buffer. Actually belongs to struct MYSQL. */
66
char last_error[LIBDRIZZLE_ERRMSG_SIZE];
67
/** Client library sqlstate buffer. Set along with the error message. */
68
char sqlstate[LIBDRIZZLE_SQLSTATE_LENGTH+1];
72
bool drizzleclient_net_init(NET *net, Vio* vio, uint32_t buffer_length);
73
void drizzleclient_net_end(NET *net);
74
void drizzleclient_net_clear(NET *net, bool clear_buffer);
75
bool drizzleclient_net_flush(NET *net);
76
bool drizzleclient_net_write(NET *net,const unsigned char *packet, size_t len);
77
bool drizzleclient_net_write_command(NET *net,unsigned char command,
78
const unsigned char *header, size_t head_len,
79
const unsigned char *packet, size_t len);
80
uint32_t drizzleclient_net_read(NET *net);
81
void drizzleclient_net_close(NET *net);
82
bool drizzleclient_net_init_sock(NET * net, int sock, int flags,
83
uint32_t buffer_length);
84
bool drizzleclient_net_peer_addr(NET *net, char *buf, uint16_t *port, size_t buflen);
85
void drizzleclient_net_keepalive(NET *net, bool flag);
86
int drizzleclient_net_get_sd(NET *net);
87
bool drizzleclient_net_more_data(NET *net);
89
void drizzleclient_net_set_write_timeout(NET *net, uint32_t timeout);
90
void drizzleclient_net_set_read_timeout(NET *net, uint32_t timeout);
91
void drizzleclient_drizzleclient_net_clear_error(NET *net);
97
#endif /* PLUGIN_MYSQL_PROTOCOL_NET_SERV_H */