From fff28350a84ed60df173ba73f1035db4f7b383bd Mon Sep 17 00:00:00 2001 From: Jake Woltersdorf Date: Tue, 12 Mar 2019 17:26:39 +0800 Subject: nng_msg_dup correctly duplicates pipe (mentioned in #862) --- src/core/message.c | 1 + tests/message.c | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/src/core/message.c b/src/core/message.c index 41f42234..a054ac9e 100644 --- a/src/core/message.c +++ b/src/core/message.c @@ -469,6 +469,7 @@ nni_msg_dup(nni_msg **dup, const nni_msg *src) memcpy(newmo->mo_val, mo->mo_val, mo->mo_sz); nni_list_append(&m->m_options, newmo); } + m->m_pipe = src->m_pipe; *dup = m; return (0); diff --git a/tests/message.c b/tests/message.c index 4c0af912..cc50f542 100644 --- a/tests/message.c +++ b/tests/message.c @@ -186,6 +186,16 @@ TestMain("Message Tests", { So(strcmp(nng_msg_body(m2), "back2basics") == 0); }); + Convey("Message dup copies pipe", { + nng_pipe p = NNG_PIPE_INITIALIZER; + nng_msg *m2; + memset(&p, 0x22, sizeof(p)); + nng_msg_set_pipe(msg, p); + So(nng_msg_dup(&m2, msg) == 0); + p = nng_msg_get_pipe(m2); + So(nng_pipe_id(p) == 0x22222222); + }); + Convey("Missing option fails properly", { char buf[128]; size_t sz = sizeof(buf); -- cgit v1.2.3-70-g09d2