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 _libdrizzle_net_serv_h_
22
#define _libdrizzle_net_serv_h_
24
#include <vio/violite.h>
26
#define net_new_transaction(net) ((net)->pkt_nr=0)
32
#define LIBDRIZZLE_ERRMSG_SIZE 512
33
#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 my_net_init(NET *net, Vio* vio);
73
void my_net_local_init(NET *net);
74
void net_end(NET *net);
75
void net_clear(NET *net, bool clear_buffer);
76
bool net_realloc(NET *net, size_t length);
77
bool net_flush(NET *net);
78
bool my_net_write(NET *net,const unsigned char *packet, size_t len);
79
bool net_write_command(NET *net,unsigned char command,
80
const unsigned char *header, size_t head_len,
81
const unsigned char *packet, size_t len);
82
int32_t net_real_write(NET *net,const unsigned char *packet, size_t len);
83
uint32_t my_net_read(NET *net);
84
void net_close(NET *net);
85
bool net_init_sock(NET * net, int sock, int flags);
86
bool net_peer_addr(NET *net, char *buf, uint16_t *port, size_t buflen);
87
void net_keepalive(NET *net, bool flag);
88
int net_get_sd(NET *net);
89
bool net_should_close(NET *net);
90
bool net_more_data(NET *net);
92
void my_net_set_write_timeout(NET *net, uint32_t timeout);
93
void my_net_set_read_timeout(NET *net, uint32_t timeout);
94
void net_clear_error(NET *net);