Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
L
libzmq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
libzmq
Commits
d7919326
Commit
d7919326
authored
8 years ago
by
somdoron
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
problem: terminating conn doesn't make sense in disconnected protocol
parent
8cd64b76
No related merge requests found
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
7 additions
and
19 deletions
+7
-19
dgram.cpp
src/dgram.cpp
+7
-19
No files found.
src/dgram.cpp
View file @
d7919326
...
...
@@ -97,7 +97,7 @@ int zmq::dgram_t::xsend (msg_t *msg_)
errno_assert
(
rc
==
0
);
return
-
1
;
}
// If this is the first part of the message it's the ID of the
// peer to send the message to.
if
(
!
more_out
)
{
...
...
@@ -115,25 +115,13 @@ int zmq::dgram_t::xsend (msg_t *msg_)
// This is the last part of the message.
more_out
=
false
;
}
// Close the remote connection if user has asked to do so
// by sending zero length message.
// Pending messages in the pipe will be dropped (on receiving term- ack)
if
(
msg_
->
size
()
==
0
)
{
pipe
->
terminate
(
false
);
int
rc
=
msg_
->
close
();
errno_assert
(
rc
==
0
);
rc
=
msg_
->
init
();
errno_assert
(
rc
==
0
);
pipe
=
NULL
;
return
0
;
}
// Push the message into the pipe.
// Push the message into the pipe.
if
(
!
pipe
->
write
(
msg_
))
{
errno
=
EAGAIN
;
return
-
1
;
}
if
(
!
(
msg_
->
flags
()
&
msg_t
::
more
))
pipe
->
flush
();
...
...
@@ -149,7 +137,7 @@ int zmq::dgram_t::xrecv (msg_t *msg_)
// Deallocate old content of the message.
int
rc
=
msg_
->
close
();
errno_assert
(
rc
==
0
);
if
(
!
pipe
||
!
pipe
->
read
(
msg_
))
{
// Initialise the output parameter to be a 0-byte message.
rc
=
msg_
->
init
();
...
...
@@ -159,7 +147,7 @@ int zmq::dgram_t::xrecv (msg_t *msg_)
return
-
1
;
}
last_in
=
pipe
;
if
(
prefetched
)
{
msg_
->
reset_flags
(
msg_t
::
more
);
prefetched
=
false
;
...
...
@@ -188,7 +176,7 @@ bool zmq::dgram_t::xhas_out ()
{
//if (more_out)
// return false;
if
(
!
pipe
)
return
false
;
...
...
This diff is collapsed.
Click to expand it.
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