Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Kea
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
Operations
Operations
Incidents
Packages & Registries
Packages & Registries
Container Registry
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
Sebastian Schrader
Kea
Commits
a32e0822
Commit
a32e0822
authored
Mar 15, 2011
by
hanfeng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
[trac678] merge code from ticket 657
parent
d48aaf1a
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
21 additions
and
8 deletions
+21
-8
src/lib/asiolink/tcp_server.cc
src/lib/asiolink/tcp_server.cc
+12
-4
src/lib/asiolink/udp_server.cc
src/lib/asiolink/udp_server.cc
+9
-4
No files found.
src/lib/asiolink/tcp_server.cc
View file @
a32e0822
...
...
@@ -81,10 +81,18 @@ TCPServer::operator()(error_code ec, size_t length) {
/// try again
do
{
CORO_YIELD
acceptor_
->
async_accept
(
*
socket_
,
*
this
);
/// If user stop the server which will close the acceptor
/// we just return
if
(
ec
==
asio
::
error
::
bad_descriptor
)
CORO_YIELD
return
;
// return if we meet fatal error
// Todo add log
if
(
ec
)
{
using
namespace
asio
::
error
;
if
(
ec
.
value
()
!=
would_block
&&
ec
.
value
()
!=
try_again
&&
ec
.
value
()
!=
connection_aborted
&&
ec
.
value
()
!=
interrupted
)
{
return
;
}
}
}
while
(
ec
);
...
...
src/lib/asiolink/udp_server.cc
View file @
a32e0822
...
...
@@ -188,10 +188,15 @@ UDPServer::operator()(error_code ec, size_t length) {
buffer
(
data_
->
data_
.
get
(),
MAX_LENGTH
),
*
data_
->
sender_
,
*
this
);
// If the server is stopped which will close the socket,
// we just return
if
(
ec
==
asio
::
error
::
bad_descriptor
)
CORO_YIELD
return
;
//return if we met fatal error
//Todo add log
if
(
ec
)
{
using
namespace
asio
::
error
;
if
(
ec
.
value
()
!=
would_block
&&
ec
.
value
()
!=
try_again
&&
ec
.
value
()
!=
interrupted
)
{
return
;
}
}
}
while
(
ec
||
length
==
0
);
...
...
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