summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2018-02-27 14:47:13 -0800
committerGarrett D'Amore <garrett@damore.org>2018-02-28 07:11:41 -0800
commit65e01d3c7917983d5066335cffb84c93494f1b14 (patch)
tree618260276445adfd4c9d279d59248d780f93d23a /src
parentfeeec674529cf563f8507c307ae833dc93044664 (diff)
downloadnng-65e01d3c7917983d5066335cffb84c93494f1b14.tar.gz
nng-65e01d3c7917983d5066335cffb84c93494f1b14.tar.bz2
nng-65e01d3c7917983d5066335cffb84c93494f1b14.zip
fixes #240 nngcat is MIA
This is intended to provide compatibility with, and has been tested against, legacy nanocat. There are a few differences though. At this time support for the alias names (where argv[0] is set to something like nngreq or somesuch) is missing. By default this library operations without NNG_FLAG_NONBLOCK on dial and listen, so that failures here are immediately diagnosable. (This behavior can be changed with the --async flag.) By default --pair means PAIRv1, but you can specify --pair0 or --pair1 explicitly. (There is also a --compat mode, and in that mode --pair means PAIRv0. The --compat mode also turns on NNG_FLAG_NONBLOCK by default.) The "quoted" mode also quotes tabs. (Legacy nanocat did not.) It is possible to connect to *multiple* peers by using the --dial or --listen (or similar) options multiple times. Shorthands can be used for long options that are not ambiguous. For example, --surv can be used to mean surveyor, but --re is invalid because it can mean req, rep, or respondent. We assume you have a reasonable standard C environment. This won't work in embedded environments without support for FILE *. TLS options are missing but to be added soon. A man page is still to be written.
Diffstat (limited to 'src')
-rw-r--r--src/nng.c2
-rw-r--r--src/nng.h2
-rw-r--r--src/protocol/pair0/pair.c1
-rw-r--r--src/protocol/pipeline0/pull.c1
-rw-r--r--src/protocol/pipeline0/push.c1
-rw-r--r--src/supplemental/util/options.c4
6 files changed, 9 insertions, 2 deletions
diff --git a/src/nng.c b/src/nng.c
index b906431b..c2e3161d 100644
--- a/src/nng.c
+++ b/src/nng.c
@@ -732,6 +732,8 @@ static const struct {
{ NNG_EWRITEONLY, "Write only resource" },
{ NNG_ECRYPTO, "Cryptographic error" },
{ NNG_EPEERAUTH, "Peer could not be authenticated" },
+ { NNG_ENOARG, "Option requires argument" },
+ { NNG_EAMBIGUOUS, "Ambiguous option" },
{ NNG_EINTERNAL, "Internal error detected" },
{ 0, NULL },
// clang-format on
diff --git a/src/nng.h b/src/nng.h
index 779612c7..b3acc86c 100644
--- a/src/nng.h
+++ b/src/nng.h
@@ -590,6 +590,8 @@ enum nng_errno_enum {
NNG_EWRITEONLY = 25,
NNG_ECRYPTO = 26,
NNG_EPEERAUTH = 27,
+ NNG_ENOARG = 28,
+ NNG_EAMBIGUOUS = 29,
NNG_EINTERNAL = 1000,
NNG_ESYSERR = 0x10000000,
NNG_ETRANERR = 0x20000000,
diff --git a/src/protocol/pair0/pair.c b/src/protocol/pair0/pair.c
index 10498c0a..d3591df9 100644
--- a/src/protocol/pair0/pair.c
+++ b/src/protocol/pair0/pair.c
@@ -12,6 +12,7 @@
#include <string.h>
#include "core/nng_impl.h"
+#include "protocol/pair0/pair.h"
// Pair protocol. The PAIR protocol is a simple 1:1 messaging pattern.
// While a peer is connected to the server, all other peer connection
diff --git a/src/protocol/pipeline0/pull.c b/src/protocol/pipeline0/pull.c
index 76c680c1..ccc1ef40 100644
--- a/src/protocol/pipeline0/pull.c
+++ b/src/protocol/pipeline0/pull.c
@@ -12,6 +12,7 @@
#include <string.h>
#include "core/nng_impl.h"
+#include "protocol/pipeline0/pull.h"
// Pull protocol. The PULL protocol is the "read" side of a pipeline.
diff --git a/src/protocol/pipeline0/push.c b/src/protocol/pipeline0/push.c
index 1e6cf30e..e77bfe99 100644
--- a/src/protocol/pipeline0/push.c
+++ b/src/protocol/pipeline0/push.c
@@ -12,6 +12,7 @@
#include <string.h>
#include "core/nng_impl.h"
+#include "protocol/pipeline0/push.h"
// Push protocol. The PUSH protocol is the "write" side of a pipeline.
// Push distributes fairly, or tries to, by giving messages in round-robin
diff --git a/src/supplemental/util/options.c b/src/supplemental/util/options.c
index d8f78deb..a8cc969d 100644
--- a/src/supplemental/util/options.c
+++ b/src/supplemental/util/options.c
@@ -90,7 +90,7 @@ nng_opts_parse(int argc, const char **argv, const nng_optspec *opts, int *val,
break;
default:
// Ambiguous (not match)
- return (NNG_EINVAL);
+ return (NNG_EAMBIGUOUS);
break;
}
@@ -113,7 +113,7 @@ nng_opts_parse(int argc, const char **argv, const nng_optspec *opts, int *val,
} else {
i++;
if (i >= argc) {
- return (NNG_EINVAL);
+ return (NNG_ENOARG);
}
*optarg = argv[i];
}