aboutsummaryrefslogtreecommitdiff
path: root/src/nng.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nng.c')
-rw-r--r--src/nng.c59
1 files changed, 31 insertions, 28 deletions
diff --git a/src/nng.c b/src/nng.c
index 9b10c3b1..a2398a9d 100644
--- a/src/nng.c
+++ b/src/nng.c
@@ -1,23 +1,10 @@
/*
* Copyright 2016 Garrett D'Amore <garrett@damore.org>
*
- * Permission is hereby granted, free of charge, to any person obtaining a copy
- * of this software and associated documentation files (the "Software"),
- * to deal in the Software without restriction, including without limitation
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,
- * and/or sell copies of the Software, and to permit persons to whom
- * the Software is furnished to do so, subject to the following conditions:
- *
- * The above copyright notice and this permission notice shall be included
- * in all copies or substantial portions of the Software.
- *
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
- * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
- * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
- * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
- * IN THE SOFTWARE.
+ * This software is supplied under the terms of the MIT License, a
+ * copy of which should be located in the distribution where this
+ * file was obtained (LICENSE.txt). A copy of the license may also be
+ * found online at https://opensource.org/licenses/MIT.
*/
#include "core/nng_impl.h"
@@ -32,27 +19,30 @@
* Pretty much every function calls the nni_platform_init to check against
* fork related activity.
*/
-
int
nng_socket_create(nng_socket_t *s, uint16_t proto)
{
int rv;
+
if ((rv = nni_init()) != 0) {
return (rv);
}
return (nni_socket_create(s, proto));
}
+
int
nng_socket_close(nng_socket_t s)
{
int rv;
+
if ((rv = nni_init()) != 0) {
return (rv);
}
return (nni_socket_close(s));
}
+
uint16_t
nng_socket_protocol(nng_socket_t s)
{
@@ -60,59 +50,72 @@ nng_socket_protocol(nng_socket_t s)
return (nni_socket_protocol(s));
}
+
/*
* Misc.
*/
-
const char *
nng_strerror(int num)
{
nni_init();
switch (num) {
case 0:
- return ("Hunky dory"); /* what did you expect? */
- case NNG_EINTR:
- return ("Interrupted");
+ return ("Hunky dory"); /* what did you expect? */
+
+ case NNG_EINTR:
+ return ("Interrupted");
+
case NNG_ENOMEM:
return ("Out of memory");
+
case NNG_EINVAL:
return ("Invalid argument");
+
case NNG_EBUSY:
return ("Resource busy");
+
case NNG_ETIMEDOUT:
return ("Timed out");
+
case NNG_ECONNREFUSED:
return ("Connection refused");
+
case NNG_ECLOSED:
return ("Object closed");
+
case NNG_EAGAIN:
return ("Try again");
+
case NNG_ENOTSUP:
return ("Not supported");
+
case NNG_EADDRINUSE:
return ("Address in use");
+
default:
return ("Unknown error");
- }
+ }
}
+
/*
* Message handling.
*/
-
int
nng_msg_alloc(nng_msg_t *msgp, size_t size)
{
int rv;
+
if ((rv = nni_init()) != 0) {
return (rv);
}
- return (nni_msg_alloc(msgp, size));
+ return (nni_msg_alloc(msgp, size));
}
+
void
nng_msg_free(nng_msg_t msg)
{
- nni_init();
- return (nni_msg_free(msg));
-} \ No newline at end of file
+ nni_init();
+ return (nni_msg_free(msg));
+}