diff options
| author | Garrett D'Amore <garrett@damore.org> | 2020-01-20 23:31:55 -0800 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2020-01-20 23:35:08 -0800 |
| commit | 38c005e7c07b5ccaab3345dc8c66cbc27b95692a (patch) | |
| tree | 7d35c74df9f0f320942e6c8c601e963a4cc11741 /src/protocol/reqrep0/req.c | |
| parent | 058ad941dc55ad6288f6b07f4cdf237fd13f1a93 (diff) | |
| download | nng-38c005e7c07b5ccaab3345dc8c66cbc27b95692a.tar.gz nng-38c005e7c07b5ccaab3345dc8c66cbc27b95692a.tar.bz2 nng-38c005e7c07b5ccaab3345dc8c66cbc27b95692a.zip | |
fixes #1169 survey and xsurvey could use message cloning
fixes #1160 Consider limiting maximum hop count to 15
fixes #1098 Maximum maxTTL should be compile time defined
This doesn't expose the max-MaxTTL in the CMakeList.txt -- there
is really no reason anyone should be changing it. This does not
yet inline the message header into the nni_msg_t, but it is my
intention to do so soon, and eliminate most of the conditional cases
for failure on inserting into the header.
Diffstat (limited to 'src/protocol/reqrep0/req.c')
| -rw-r--r-- | src/protocol/reqrep0/req.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/protocol/reqrep0/req.c b/src/protocol/reqrep0/req.c index b8ca498d..fea95725 100644 --- a/src/protocol/reqrep0/req.c +++ b/src/protocol/reqrep0/req.c @@ -666,12 +666,9 @@ req0_ctx_send(void *arg, nni_aio *aio) return; } ctx->request_id = (uint32_t) id; - if ((rv = nni_msg_header_append_u32(msg, ctx->request_id)) != 0) { - nni_idhash_remove(s->requests, id); - nni_mtx_unlock(&s->mtx); - nni_aio_finish_error(aio, rv); - return; - } + nni_msg_header_clear(msg); + nni_msg_header_must_append_u32(msg, ctx->request_id); + // If no pipes are ready, and the request was a poll (no background // schedule), then fail it. Should be NNG_ETIMEDOUT. rv = nni_aio_schedule(aio, req0_ctx_cancel_send, ctx); @@ -713,7 +710,7 @@ req0_sock_set_max_ttl(void *arg, const void *buf, size_t sz, nni_opt_type t) req0_sock *s = arg; int ttl; int rv; - if ((rv = nni_copyin_int(&ttl, buf, sz, 1, 255, t)) == 0) { + if ((rv = nni_copyin_int(&ttl, buf, sz, 1, NNI_MAX_MAX_TTL, t)) == 0) { nni_atomic_set(&s->ttl, ttl); } return (rv); |
