X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Flib%2Fnanomsg.cc;h=61e6c08ce9e66fa738300b9a417267356f71a8b6;hb=cda2e5441938ebca1c94afd96f9a3a93e7bf3a08;hp=b66d966afb7cc4bd02ed5b42142b6f7cc736f9fe;hpb=33e13c4053138930f4b2f59349e441c76111059d;p=dcpomatic.git diff --git a/src/lib/nanomsg.cc b/src/lib/nanomsg.cc index b66d966af..61e6c08ce 100644 --- a/src/lib/nanomsg.cc +++ b/src/lib/nanomsg.cc @@ -43,17 +43,24 @@ Nanomsg::Nanomsg (bool server) throw runtime_error("Could not set up nanomsg socket"); } if (server) { - if (nn_bind(_socket, NANOMSG_URL) < 0) { + if ((_endpoint = nn_bind(_socket, NANOMSG_URL)) < 0) { throw runtime_error(String::compose("Could not bind nanomsg socket (%1)", errno)); } } else { - if (nn_connect(_socket, NANOMSG_URL) < 0) { + if ((_endpoint = nn_connect(_socket, NANOMSG_URL)) < 0) { throw runtime_error(String::compose("Could not connect nanomsg socket (%1)", errno)); } } } +Nanomsg::~Nanomsg () +{ + nn_shutdown (_socket, _endpoint); + nn_close (_socket); +} + + bool Nanomsg::send (string s, int timeout) { @@ -99,6 +106,7 @@ Nanomsg::recv_and_parse (int flags) return; } + LOG_DISK_NC("nn_recv failed"); throw CommunicationFailedError (); }