summaryrefslogtreecommitdiff
path: root/vio
diff options
context:
space:
mode:
authorunknown <tsmith@quadxeon.mysql.com>2007-06-05 17:51:30 +0200
committerunknown <tsmith@quadxeon.mysql.com>2007-06-05 17:51:30 +0200
commit38ed1be3ec579e55bfb12c16c9a5d2434dcd5d3d (patch)
tree50b7ef6b918f2c9add6a6f5f3237ef8e777f57e8 /vio
parentc59c004c9a298c944c67672e301da8ec435461d6 (diff)
parent0484d44eebff70ef5a2c328c7a9d50ac07a89409 (diff)
downloadmariadb-git-38ed1be3ec579e55bfb12c16c9a5d2434dcd5d3d.tar.gz
Merge quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/51
into quadxeon.mysql.com:/benchmarks/ext3/TOSAVE/tsmith/bk/maint/jun05/51 client/mysqldump.c: Auto merged include/m_string.h: Auto merged include/mysql_com.h: Auto merged include/violite.h: Auto merged libmysql/libmysql.c: Auto merged mysql-test/include/mix1.inc: Auto merged mysql-test/mysql-test-run.pl: Auto merged mysql-test/r/innodb_mysql.result: Auto merged mysql-test/r/ps.result: Auto merged mysql-test/t/mysqltest.test: Auto merged mysql-test/t/ps.test: Auto merged mysys/my_init.c: Auto merged server-tools/instance-manager/mysql_connection.cc: Auto merged sql/field.cc: Auto merged sql/item.cc: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/mysqld.cc: Auto merged sql/net_serv.cc: Auto merged sql/set_var.cc: Auto merged sql/sql_connect.cc: Auto merged sql/sql_parse.cc: Auto merged sql/sql_prepare.cc: Auto merged sql/sql_repl.cc: Auto merged sql/sql_select.cc: Auto merged sql/sql_show.cc: Auto merged sql-common/client.c: Auto merged sql/sql_yacc.yy: Auto merged strings/ctype-mb.c: Auto merged strings/ctype-ucs2.c: Auto merged strings/strtod.c: Auto merged vio/vio_priv.h: Auto merged vio/viosocket.c: Auto merged client/mysqltest.c: SCCS merged include/my_global.h: SCCS merged sql/field.h: SCCS merged sql/sql_table.cc: Manual merge strings/ctype-bin.c: Manual merge
Diffstat (limited to 'vio')
-rw-r--r--vio/test-ssl.c26
-rw-r--r--vio/test-sslclient.c6
-rw-r--r--vio/test-sslserver.c8
-rw-r--r--vio/vio.c4
-rw-r--r--vio/vio_priv.h4
-rw-r--r--vio/viosocket.c95
-rw-r--r--vio/viossl.c26
-rw-r--r--vio/viosslfactories.c2
-rw-r--r--vio/viotest-ssl.c26
9 files changed, 100 insertions, 97 deletions
diff --git a/vio/test-ssl.c b/vio/test-ssl.c
index 76833e25949..855dc5fbb3e 100644
--- a/vio/test-ssl.c
+++ b/vio/test-ssl.c
@@ -106,8 +106,8 @@ main(int argc, char** argv)
child_pid = fork();
if (child_pid==-1) {
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
fatal_error("fork");
}
if (child_pid==0)
@@ -116,28 +116,28 @@ main(int argc, char** argv)
char xbuf[100];
int r = vio_read(client_vio,xbuf, sizeof(xbuf));
if (r<=0) {
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
fatal_error("client:SSL_read");
}
xbuf[r] = 0;
printf("client:got %s\n", xbuf);
- my_free((gptr)client_vio,MYF(0));
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)client_vio,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
}
else
{
const char* s = "Huhuhuh";
- int r = vio_write(server_vio,(gptr)s, strlen(s));
+ int r = vio_write(server_vio,(uchar*)s, strlen(s));
if (r<=0) {
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
fatal_error("server:SSL_write");
}
- my_free((gptr)server_vio,MYF(0));
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)server_vio,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
}
return 0;
}
diff --git a/vio/test-sslclient.c b/vio/test-sslclient.c
index c8e14721375..e1b8461397b 100644
--- a/vio/test-sslclient.c
+++ b/vio/test-sslclient.c
@@ -84,13 +84,13 @@ main( int argc __attribute__((unused)),
sslconnect(ssl_connector,client_vio,60L);
err = vio_read(client_vio,xbuf, sizeof(xbuf));
if (err<=0) {
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
fatal_error("client:SSL_read");
}
xbuf[err] = 0;
printf("client:got %s\n", xbuf);
- my_free((gptr)client_vio,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)client_vio,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
return 0;
}
#else /* HAVE_OPENSSL */
diff --git a/vio/test-sslserver.c b/vio/test-sslserver.c
index 59456db1fd4..f55b5bae53a 100644
--- a/vio/test-sslserver.c
+++ b/vio/test-sslserver.c
@@ -59,9 +59,9 @@ do_ssl_stuff( TH_ARGS* args)
/* ----------------------------------------------- */
/* TCP connection is ready. Do server side SSL. */
- err = write(server_vio->sd,(gptr)s, strlen(s));
+ err = write(server_vio->sd,(uchar*)s, strlen(s));
sslaccept(args->ssl_acceptor,server_vio,60L);
- err = server_vio->write(server_vio,(gptr)s, strlen(s));
+ err = server_vio->write(server_vio,(uchar*)s, strlen(s));
DBUG_VOID_RETURN;
}
@@ -139,12 +139,12 @@ main(int argc __attribute__((unused)), char** argv)
#if 0
if (err<=0) {
- my_free((gptr)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
fatal_error("server:SSL_write");
}
#endif /* 0 */
- my_free((gptr)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
return 0;
}
#else /* HAVE_OPENSSL */
diff --git a/vio/vio.c b/vio/vio.c
index 5db54d58a79..e088687098b 100644
--- a/vio/vio.c
+++ b/vio/vio.c
@@ -228,8 +228,8 @@ void vio_delete(Vio* vio)
if (vio->type != VIO_CLOSED)
vio->vioclose(vio);
- my_free((gptr) vio->read_buffer, MYF(MY_ALLOW_ZERO_PTR));
- my_free((gptr) vio,MYF(0));
+ my_free((uchar*) vio->read_buffer, MYF(MY_ALLOW_ZERO_PTR));
+ my_free((uchar*) vio,MYF(0));
}
diff --git a/vio/vio_priv.h b/vio/vio_priv.h
index 9036952d575..b9f5dd0c9c4 100644
--- a/vio/vio_priv.h
+++ b/vio/vio_priv.h
@@ -28,8 +28,8 @@ void vio_timeout(Vio *vio,uint which, uint timeout);
#ifdef HAVE_OPENSSL
#include "my_net.h" /* needed because of struct in_addr */
-int vio_ssl_read(Vio *vio,gptr buf, int size);
-int vio_ssl_write(Vio *vio,const gptr buf,int size);
+size_t vio_ssl_read(Vio *vio,uchar* buf, size_t size);
+size_t vio_ssl_write(Vio *vio,const uchar* buf, size_t size);
/* When the workday is over... */
int vio_ssl_close(Vio *vio);
diff --git a/vio/viosocket.c b/vio/viosocket.c
index 058230b8124..5d8ca6d118c 100644
--- a/vio/viosocket.c
+++ b/vio/viosocket.c
@@ -28,12 +28,12 @@ int vio_errno(Vio *vio __attribute__((unused)))
}
-int vio_read(Vio * vio, gptr buf, int size)
+size_t vio_read(Vio * vio, uchar* buf, size_t size)
{
- int r;
+ size_t r;
DBUG_ENTER("vio_read");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
- size));
+ DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
+ (uint) size));
/* Ensure nobody uses vio_read_buff and vio_read simultaneously */
DBUG_ASSERT(vio->read_end == vio->read_pos);
@@ -44,12 +44,12 @@ int vio_read(Vio * vio, gptr buf, int size)
r = read(vio->sd, buf, size);
#endif /* __WIN__ */
#ifndef DBUG_OFF
- if (r < 0)
+ if (r == (size_t) -1)
{
DBUG_PRINT("vio_error", ("Got error %d during read",errno));
}
#endif /* DBUG_OFF */
- DBUG_PRINT("exit", ("%d", r));
+ DBUG_PRINT("exit", ("%ld", (long) r));
DBUG_RETURN(r);
}
@@ -59,17 +59,17 @@ int vio_read(Vio * vio, gptr buf, int size)
reduce number of syscalls.
*/
-int vio_read_buff(Vio *vio, gptr buf, int size)
+size_t vio_read_buff(Vio *vio, uchar* buf, size_t size)
{
- int rc;
+ size_t rc;
#define VIO_UNBUFFERED_READ_MIN_SIZE 2048
DBUG_ENTER("vio_read_buff");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
- size));
+ DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
+ (uint) size));
if (vio->read_pos < vio->read_end)
{
- rc= min(vio->read_end - vio->read_pos, size);
+ rc= min((size_t) (vio->read_end - vio->read_pos), size);
memcpy(buf, vio->read_pos, rc);
vio->read_pos+= rc;
/*
@@ -81,7 +81,7 @@ int vio_read_buff(Vio *vio, gptr buf, int size)
else if (size < VIO_UNBUFFERED_READ_MIN_SIZE)
{
rc= vio_read(vio, vio->read_buffer, VIO_READ_BUFFER_SIZE);
- if (rc > 0)
+ if (rc != 0 && rc != (size_t) -1)
{
if (rc > size)
{
@@ -99,24 +99,24 @@ int vio_read_buff(Vio *vio, gptr buf, int size)
}
-int vio_write(Vio * vio, const gptr buf, int size)
+size_t vio_write(Vio * vio, const uchar* buf, size_t size)
{
- int r;
+ size_t r;
DBUG_ENTER("vio_write");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
- size));
+ DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
+ (uint) size));
#ifdef __WIN__
r = send(vio->sd, buf, size,0);
#else
r = write(vio->sd, buf, size);
#endif /* __WIN__ */
#ifndef DBUG_OFF
- if (r < 0)
+ if (r == (size_t) -1)
{
DBUG_PRINT("vio_error", ("Got error on write: %d",socket_errno));
}
#endif /* DBUG_OFF */
- DBUG_PRINT("exit", ("%d", r));
+ DBUG_PRINT("exit", ("%u", (uint) r));
DBUG_RETURN(r);
}
@@ -417,33 +417,33 @@ void vio_timeout(Vio *vio, uint which, uint timeout)
#ifdef __WIN__
-int vio_read_pipe(Vio * vio, gptr buf, int size)
+size_t vio_read_pipe(Vio * vio, uchar* buf, size_t size)
{
DWORD length;
DBUG_ENTER("vio_read_pipe");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
- size));
+ DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
+ (uint) size));
if (!ReadFile(vio->hPipe, buf, size, &length, NULL))
DBUG_RETURN(-1);
DBUG_PRINT("exit", ("%d", length));
- DBUG_RETURN(length);
+ DBUG_RETURN((size_t) length);
}
-int vio_write_pipe(Vio * vio, const gptr buf, int size)
+size_t vio_write_pipe(Vio * vio, const uchar* buf, size_t size)
{
DWORD length;
DBUG_ENTER("vio_write_pipe");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
- size));
+ DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd, (long) buf,
+ (uint) size));
if (!WriteFile(vio->hPipe, (char*) buf, size, &length, NULL))
DBUG_RETURN(-1);
DBUG_PRINT("exit", ("%d", length));
- DBUG_RETURN(length);
+ DBUG_RETURN((size_t) length);
}
int vio_close_pipe(Vio * vio)
@@ -475,12 +475,11 @@ void vio_ignore_timeout(Vio *vio __attribute__((unused)),
#ifdef HAVE_SMEM
-int vio_read_shared_memory(Vio * vio, gptr buf, int size)
+size_t vio_read_shared_memory(Vio * vio, uchar* buf, size_t size)
{
- int length;
- int remain_local;
+ size_t length;
+ size_t remain_local;
char *current_postion;
-
DBUG_ENTER("vio_read_shared_memory");
DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
size));
@@ -497,7 +496,8 @@ int vio_read_shared_memory(Vio * vio, gptr buf, int size)
/*
WaitForMultipleObjects can return next values:
WAIT_OBJECT_0+0 - event from vio->event_server_wrote
- WAIT_OBJECT_0+1 - event from vio->event_conn_closed. We can't read anything
+ WAIT_OBJECT_0+1 - event from vio->event_conn_closed. We can't read
+ anything
WAIT_ABANDONED_0 and WAIT_TIMEOUT - fail. We can't read anything
*/
if (WaitForMultipleObjects(2, (HANDLE*)&events,FALSE,
@@ -526,23 +526,23 @@ int vio_read_shared_memory(Vio * vio, gptr buf, int size)
remain_local-=length;
if (!vio->shared_memory_remain)
- if (!SetEvent(vio->event_client_read)) DBUG_RETURN(-1);
+ {
+ if (!SetEvent(vio->event_client_read))
+ DBUG_RETURN(-1);
+ }
} while (remain_local);
length = size;
- DBUG_PRINT("exit", ("%d", length));
+ DBUG_PRINT("exit", ("%lu", (ulong) length));
DBUG_RETURN(length);
}
-int vio_write_shared_memory(Vio * vio, const gptr buf, int size)
+size_t vio_write_shared_memory(Vio * vio, const uchar* buf, size_t size)
{
- int length;
- uint remain;
+ size_t length, remain, sz;
HANDLE pos;
- int sz;
- char *current_postion;
-
+ const uchar *current_postion;
DBUG_ENTER("vio_write_shared_memory");
DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf,
size));
@@ -551,24 +551,27 @@ int vio_write_shared_memory(Vio * vio, const gptr buf, int size)
current_postion = buf;
while (remain != 0)
{
- if (WaitForSingleObject(vio->event_server_read, vio->net->write_timeout*1000)
- != WAIT_OBJECT_0)
+ if (WaitForSingleObject(vio->event_server_read,
+ vio->net->write_timeout*1000) !=
+ WAIT_OBJECT_0)
{
- DBUG_RETURN(-1);
- };
+ DBUG_RETURN((size_t) -1);
+ }
- sz = remain > shared_memory_buffer_length ? shared_memory_buffer_length: remain;
+ sz= (remain > shared_memory_buffer_length ? shared_memory_buffer_length :
+ remain);
int4store(vio->handle_map,sz);
pos = vio->handle_map + 4;
memcpy(pos,current_postion,sz);
remain-=sz;
current_postion+=sz;
- if (!SetEvent(vio->event_client_wrote)) DBUG_RETURN(-1);
+ if (!SetEvent(vio->event_client_wrote))
+ DBUG_RETURN((size_t) -1);
}
length = size;
- DBUG_PRINT("exit", ("%d", length));
+ DBUG_PRINT("exit", ("%lu", (ulong) length));
DBUG_RETURN(length);
}
diff --git a/vio/viossl.c b/vio/viossl.c
index 5e4203a3fb5..32cfecdb9c8 100644
--- a/vio/viossl.c
+++ b/vio/viossl.c
@@ -82,35 +82,36 @@ report_errors(SSL* ssl)
}
-int vio_ssl_read(Vio *vio, gptr buf, int size)
+size_t vio_ssl_read(Vio *vio, uchar* buf, size_t size)
{
- int r;
+ size_t r;
DBUG_ENTER("vio_ssl_read");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d ssl: 0x%lx",
- vio->sd, (long) buf, size, (long) vio->ssl_arg));
+ DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u ssl: 0x%lx",
+ vio->sd, (long) buf, (uint) size, (long) vio->ssl_arg));
r= SSL_read((SSL*) vio->ssl_arg, buf, size);
#ifndef DBUG_OFF
- if (r < 0)
+ if (r == (size_t) -1)
report_errors((SSL*) vio->ssl_arg);
#endif
- DBUG_PRINT("exit", ("%d", r));
+ DBUG_PRINT("exit", ("%u", (uint) r));
DBUG_RETURN(r);
}
-int vio_ssl_write(Vio *vio, const gptr buf, int size)
+size_t vio_ssl_write(Vio *vio, const uchar* buf, size_t size)
{
- int r;
+ size_t r;
DBUG_ENTER("vio_ssl_write");
- DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %d", vio->sd, (long) buf, size));
+ DBUG_PRINT("enter", ("sd: %d buf: 0x%lx size: %u", vio->sd,
+ (long) buf, (uint) size));
r= SSL_write((SSL*) vio->ssl_arg, buf, size);
#ifndef DBUG_OFF
- if (r < 0)
+ if (r == (size_t) -1)
report_errors((SSL*) vio->ssl_arg);
#endif
- DBUG_PRINT("exit", ("%d", r));
+ DBUG_PRINT("exit", ("%u", (uint) r));
DBUG_RETURN(r);
}
@@ -123,8 +124,7 @@ int vio_ssl_close(Vio *vio)
if (ssl)
{
- switch ((r= SSL_shutdown(ssl)))
- {
+ switch ((r= SSL_shutdown(ssl))) {
case 1:
/* Shutdown successful */
break;
diff --git a/vio/viosslfactories.c b/vio/viosslfactories.c
index d26d4147c9f..d7e4f380bc1 100644
--- a/vio/viosslfactories.c
+++ b/vio/viosslfactories.c
@@ -378,6 +378,6 @@ new_VioSSLAcceptorFd(const char *key_file, const char *cert_file,
void free_vio_ssl_acceptor_fd(struct st_VioSSLFd *fd)
{
SSL_CTX_free(fd->ssl_context);
- my_free((gptr) fd, MYF(0));
+ my_free((uchar*) fd, MYF(0));
}
#endif /* HAVE_OPENSSL */
diff --git a/vio/viotest-ssl.c b/vio/viotest-ssl.c
index 81d119ff207..b8abbac4ed6 100644
--- a/vio/viotest-ssl.c
+++ b/vio/viotest-ssl.c
@@ -106,8 +106,8 @@ int main(int argc, char **argv)
child_pid = fork();
if (child_pid==-1)
{
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
fatal_error("fork");
}
if (child_pid==0)
@@ -116,29 +116,29 @@ int main(int argc, char **argv)
char xbuf[100];
int r = vio_ssl_read(client_vio,xbuf, sizeof(xbuf));
if (r<=0) {
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
fatal_error("client:SSL_read");
}
xbuf[r] = 0;
printf("client:got %s\n", xbuf);
- my_free((gptr)client_vio,MYF(0));
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)client_vio,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
sleep(1);
}
else
{
const char* s = "Huhuhuh";
- int r = vio_ssl_write(server_vio,(gptr)s, strlen(s));
+ int r = vio_ssl_write(server_vio,(uchar*)s, strlen(s));
if (r<=0) {
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
fatal_error("server:SSL_write");
}
- my_free((gptr)server_vio,MYF(0));
- my_free((gptr)ssl_acceptor,MYF(0));
- my_free((gptr)ssl_connector,MYF(0));
+ my_free((uchar*)server_vio,MYF(0));
+ my_free((uchar*)ssl_acceptor,MYF(0));
+ my_free((uchar*)ssl_connector,MYF(0));
sleep(1);
}
return 0;