Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
mariadb
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
e82e15b0
Commit
e82e15b0
authored
Aug 30, 2005
by
SergeyV@selena
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fixes bug #5588. vio_was_interrupted() function was added to detect
read timeout properly on win32.
parent
e2954b29
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
20 additions
and
2 deletions
+20
-2
include/my_global.h
include/my_global.h
+3
-0
include/violite.h
include/violite.h
+4
-0
sql/mini_client.cc
sql/mini_client.cc
+1
-1
sql/net_serv.cc
sql/net_serv.cc
+1
-1
vio/vio.c
vio/vio.c
+2
-0
vio/viosocket.c
vio/viosocket.c
+9
-0
No files found.
include/my_global.h
View file @
e82e15b0
...
...
@@ -760,6 +760,7 @@ typedef off_t os_off_t;
#define socket_errno WSAGetLastError()
#define SOCKET_EINTR WSAEINTR
#define SOCKET_EAGAIN WSAEINPROGRESS
#define SOCKET_ETIMEDOUT WSAETIMEDOUT
#define SOCKET_EWOULDBLOCK WSAEINPROGRESS
#define SOCKET_ENFILE ENFILE
#define SOCKET_EMFILE EMFILE
...
...
@@ -767,6 +768,7 @@ typedef off_t os_off_t;
#define socket_errno sock_errno()
#define SOCKET_EINTR SOCEINTR
#define SOCKET_EAGAIN SOCEINPROGRESS
#define SOCKET_ETIMEDOUT SOCKET_EINTR
#define SOCKET_EWOULDBLOCK SOCEWOULDBLOCK
#define SOCKET_ENFILE SOCENFILE
#define SOCKET_EMFILE SOCEMFILE
...
...
@@ -776,6 +778,7 @@ typedef off_t os_off_t;
#define closesocket(A) close(A)
#define SOCKET_EINTR EINTR
#define SOCKET_EAGAIN EAGAIN
#define SOCKET_ETIMEDOUT SOCKET_EINTR
#define SOCKET_EWOULDBLOCK EWOULDBLOCK
#define SOCKET_ENFILE ENFILE
#define SOCKET_EMFILE EMFILE
...
...
include/violite.h
View file @
e82e15b0
...
...
@@ -62,6 +62,8 @@ int vio_fastsend(Vio *vio);
int
vio_keepalive
(
Vio
*
vio
,
my_bool
onoff
);
/* Whenever we should retry the last read/write operation. */
my_bool
vio_should_retry
(
Vio
*
vio
);
/* Check that operation was timed out */
my_bool
vio_was_interrupted
(
Vio
*
vio
);
/* Short text description of the socket for those, who are curious.. */
const
char
*
vio_description
(
Vio
*
vio
);
/* Return the type of the connection */
...
...
@@ -134,6 +136,7 @@ Vio *new_VioSSL(struct st_VioSSLAcceptorFd *fd, Vio *sd, int state);
#define vio_fastsend(vio) (vio)->fastsend(vio)
#define vio_keepalive(vio, set_keep_alive) (vio)->viokeepalive(vio, set_keep_alive)
#define vio_should_retry(vio) (vio)->should_retry(vio)
#define vio_was_interrupted(vio) (vio)->was_interrupted(vio)
#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)
...
...
@@ -175,6 +178,7 @@ struct st_vio
my_bool
(
*
peer_addr
)(
Vio
*
,
char
*
,
uint16
*
);
void
(
*
in_addr
)(
Vio
*
,
struct
in_addr
*
);
my_bool
(
*
should_retry
)(
Vio
*
);
my_bool
(
*
was_interrupted
)(
Vio
*
);
int
(
*
vioclose
)(
Vio
*
);
void
(
*
timeout
)(
Vio
*
,
unsigned
int
timeout
);
void
*
ssl_arg
;
...
...
sql/mini_client.cc
View file @
e82e15b0
...
...
@@ -399,7 +399,7 @@ mc_net_safe_read(MYSQL *mysql)
{
DBUG_PRINT
(
"error"
,(
"Wrong connection or packet. fd: %s len: %d"
,
vio_description
(
net
->
vio
),
len
));
if
(
socket_errno
!=
SOCKET_EINTR
)
if
(
!
vio_was_interrupted
(
net
->
vio
)
)
{
mc_end_server
(
mysql
);
if
(
net
->
last_errno
!=
ER_NET_PACKET_TOO_LARGE
)
...
...
sql/net_serv.cc
View file @
e82e15b0
...
...
@@ -700,7 +700,7 @@ my_real_read(NET *net, ulong *complen)
len
=
packet_error
;
net
->
error
=
2
;
/* Close socket */
#ifdef MYSQL_SERVER
net
->
last_errno
=
(
interrupted
?
ER_NET_READ_INTERRUPTED
:
net
->
last_errno
=
(
vio_was_interrupted
(
net
->
vio
)
?
ER_NET_READ_INTERRUPTED
:
ER_NET_READ_ERROR
);
#endif
goto
end
;
...
...
vio/vio.c
View file @
e82e15b0
...
...
@@ -50,6 +50,7 @@ void vio_reset(Vio* vio, enum enum_vio_type type,
vio
->
fastsend
=
vio_ssl_fastsend
;
vio
->
viokeepalive
=
vio_ssl_keepalive
;
vio
->
should_retry
=
vio_ssl_should_retry
;
vio
->
was_interrupted
=
vio_was_interrupted
;
vio
->
vioclose
=
vio_ssl_close
;
vio
->
peer_addr
=
vio_ssl_peer_addr
;
vio
->
in_addr
=
vio_ssl_in_addr
;
...
...
@@ -67,6 +68,7 @@ void vio_reset(Vio* vio, enum enum_vio_type type,
vio
->
fastsend
=
vio_fastsend
;
vio
->
viokeepalive
=
vio_keepalive
;
vio
->
should_retry
=
vio_should_retry
;
vio
->
was_interrupted
=
vio_was_interrupted
;
vio
->
vioclose
=
vio_close
;
vio
->
peer_addr
=
vio_peer_addr
;
vio
->
in_addr
=
vio_in_addr
;
...
...
vio/viosocket.c
View file @
e82e15b0
...
...
@@ -216,6 +216,15 @@ vio_should_retry(Vio * vio __attribute__((unused)))
}
my_bool
vio_was_interrupted
(
Vio
*
vio
__attribute__
((
unused
)))
{
int
en
=
socket_errno
;
return
(
en
==
SOCKET_EAGAIN
||
en
==
SOCKET_EINTR
||
en
==
SOCKET_EWOULDBLOCK
||
en
==
SOCKET_ETIMEDOUT
);
}
int
vio_close
(
Vio
*
vio
)
{
int
r
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment