Loading include/violite.h +3 −3 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ my_bool vio_peer_addr(Vio* vio, char *buf, uint16 *port); /* Remotes in_addr */ void vio_in_addr(Vio *vio, struct in_addr *in); my_bool vio_poll_read(Vio *vio,uint timeout); void vio_timeout(Vio *vio,uint timeout); void vio_timeout(Vio *vio, uint which, uint timeout); #ifdef HAVE_OPENSSL #include <openssl/opensslv.h> Loading Loading @@ -140,7 +140,7 @@ Vio *new_VioSSL(struct st_VioSSLAcceptorFd *fd, Vio *sd, int state); #define vio_close(vio) ((vio)->vioclose)(vio) #define vio_peer_addr(vio, buf, prt) (vio)->peer_addr(vio, buf, prt) #define vio_in_addr(vio, in) (vio)->in_addr(vio, in) #define vio_timeout(vio, seconds) (vio)->timeout(vio, seconds) #define vio_timeout(vio, which, seconds) (vio)->timeout(vio, which, seconds) #endif /* defined(HAVE_VIO) && !defined(DONT_MAP_VIO) */ /* This enumerator is used in parser - should be always visible */ Loading Loading @@ -180,7 +180,7 @@ struct st_vio my_bool (*should_retry)(Vio*); my_bool (*was_interrupted)(Vio*); int (*vioclose)(Vio*); void (*timeout)(Vio*, unsigned int timeout); void (*timeout)(Vio*, unsigned int which, unsigned int timeout); void *ssl_arg; #endif /* HAVE_VIO */ }; Loading libmysqld/lib_vio.c +1 −0 Original line number Diff line number Diff line Loading @@ -229,6 +229,7 @@ my_bool vio_poll_read(Vio *vio,uint timeout) void vio_timeout(Vio *vio __attribute__((unused)), uint which __attribute__((unused)), uint timeout __attribute__((unused))) { } Loading sql/net_serv.cc +2 −2 Original line number Diff line number Diff line Loading @@ -436,7 +436,7 @@ net_real_write(NET *net,const char *packet,ulong len) thr_alarm(&alarmed,(uint) net->write_timeout,&alarm_buff); #else alarmed=0; vio_timeout(net->vio, net->write_timeout); vio_timeout(net->vio, 1, net->write_timeout); #endif /* NO_ALARM */ pos=(char*) packet; end=pos+len; Loading Loading @@ -627,7 +627,7 @@ my_real_read(NET *net, ulong *complen) if (net_blocking) thr_alarm(&alarmed,net->read_timeout,&alarm_buff); #else vio_timeout(net->vio, net->read_timeout); vio_timeout(net->vio, 0, net->read_timeout); #endif /* NO_ALARM */ pos = net->buff + net->where_b; /* net->packet -4 */ Loading vio/viosocket.c +20 −6 Original line number Diff line number Diff line Loading @@ -345,12 +345,26 @@ my_bool vio_poll_read(Vio *vio,uint timeout) } void vio_timeout(Vio *vio __attribute__((unused)), uint timeout __attribute__((unused))) void vio_timeout(Vio *vio, uint which, uint timeout) { #if defined(SO_SNDTIMEO) && defined(SO_RCVTIMEO) #ifdef __WIN__ ulong wait_timeout= (ulong) timeout * 1000; (void) setsockopt(vio->sd, SOL_SOCKET, SO_RCVTIMEO, (char*) &wait_timeout, sizeof(wait_timeout)); #endif /* __WIN__ */ /* Windows expects time in milliseconds as int. */ int wait_timeout= (int) timeout * 1000; #else /* ! __WIN__ */ /* POSIX specifies time as struct timeval. */ struct timeval wait_timeout; wait_timeout.tv_sec= timeout; wait_timeout.tv_usec= 0; #endif /* ! __WIN__ */ (void) setsockopt(vio->sd, SOL_SOCKET, which ? SO_SNDTIMEO : SO_RCVTIMEO, (char*) &wait_timeout, sizeof(wait_timeout)); #endif /* defined(SO_SNDTIMEO) && defined(SO_RCVTIMEO) */ } Loading
include/violite.h +3 −3 Original line number Diff line number Diff line Loading @@ -77,7 +77,7 @@ my_bool vio_peer_addr(Vio* vio, char *buf, uint16 *port); /* Remotes in_addr */ void vio_in_addr(Vio *vio, struct in_addr *in); my_bool vio_poll_read(Vio *vio,uint timeout); void vio_timeout(Vio *vio,uint timeout); void vio_timeout(Vio *vio, uint which, uint timeout); #ifdef HAVE_OPENSSL #include <openssl/opensslv.h> Loading Loading @@ -140,7 +140,7 @@ Vio *new_VioSSL(struct st_VioSSLAcceptorFd *fd, Vio *sd, int state); #define vio_close(vio) ((vio)->vioclose)(vio) #define vio_peer_addr(vio, buf, prt) (vio)->peer_addr(vio, buf, prt) #define vio_in_addr(vio, in) (vio)->in_addr(vio, in) #define vio_timeout(vio, seconds) (vio)->timeout(vio, seconds) #define vio_timeout(vio, which, seconds) (vio)->timeout(vio, which, seconds) #endif /* defined(HAVE_VIO) && !defined(DONT_MAP_VIO) */ /* This enumerator is used in parser - should be always visible */ Loading Loading @@ -180,7 +180,7 @@ struct st_vio my_bool (*should_retry)(Vio*); my_bool (*was_interrupted)(Vio*); int (*vioclose)(Vio*); void (*timeout)(Vio*, unsigned int timeout); void (*timeout)(Vio*, unsigned int which, unsigned int timeout); void *ssl_arg; #endif /* HAVE_VIO */ }; Loading
libmysqld/lib_vio.c +1 −0 Original line number Diff line number Diff line Loading @@ -229,6 +229,7 @@ my_bool vio_poll_read(Vio *vio,uint timeout) void vio_timeout(Vio *vio __attribute__((unused)), uint which __attribute__((unused)), uint timeout __attribute__((unused))) { } Loading
sql/net_serv.cc +2 −2 Original line number Diff line number Diff line Loading @@ -436,7 +436,7 @@ net_real_write(NET *net,const char *packet,ulong len) thr_alarm(&alarmed,(uint) net->write_timeout,&alarm_buff); #else alarmed=0; vio_timeout(net->vio, net->write_timeout); vio_timeout(net->vio, 1, net->write_timeout); #endif /* NO_ALARM */ pos=(char*) packet; end=pos+len; Loading Loading @@ -627,7 +627,7 @@ my_real_read(NET *net, ulong *complen) if (net_blocking) thr_alarm(&alarmed,net->read_timeout,&alarm_buff); #else vio_timeout(net->vio, net->read_timeout); vio_timeout(net->vio, 0, net->read_timeout); #endif /* NO_ALARM */ pos = net->buff + net->where_b; /* net->packet -4 */ Loading
vio/viosocket.c +20 −6 Original line number Diff line number Diff line Loading @@ -345,12 +345,26 @@ my_bool vio_poll_read(Vio *vio,uint timeout) } void vio_timeout(Vio *vio __attribute__((unused)), uint timeout __attribute__((unused))) void vio_timeout(Vio *vio, uint which, uint timeout) { #if defined(SO_SNDTIMEO) && defined(SO_RCVTIMEO) #ifdef __WIN__ ulong wait_timeout= (ulong) timeout * 1000; (void) setsockopt(vio->sd, SOL_SOCKET, SO_RCVTIMEO, (char*) &wait_timeout, sizeof(wait_timeout)); #endif /* __WIN__ */ /* Windows expects time in milliseconds as int. */ int wait_timeout= (int) timeout * 1000; #else /* ! __WIN__ */ /* POSIX specifies time as struct timeval. */ struct timeval wait_timeout; wait_timeout.tv_sec= timeout; wait_timeout.tv_usec= 0; #endif /* ! __WIN__ */ (void) setsockopt(vio->sd, SOL_SOCKET, which ? SO_SNDTIMEO : SO_RCVTIMEO, (char*) &wait_timeout, sizeof(wait_timeout)); #endif /* defined(SO_SNDTIMEO) && defined(SO_RCVTIMEO) */ }