[zeromq-dev] [PULL] x318: implement zmq_unbind(const char*), zmq_disconnect(const char*)

Pieter Hintjens ph at imatix.com
Fri Apr 20 20:48:37 CEST 2012


Sergey,

Would you write an example / test case in C? That would be helpful.

I'll make the man pages for these functions then.

-Pieter

On Fri, Apr 20, 2012 at 10:09 AM, Sergey Hripchenko
<shripchenko at intermedia.net> wrote:
> https://github.com/zeromq/libzmq/pull/318
>
>
>
> 2nd try wuth sock->unbind() and sock->disconnect(). now with blackjack and
> const char*'s argument
>
>
>
> int sock->unbind(const char)
>
> int sock->disconnect(const char)
>
> returns
>
> -1 - on error
>
> 0 - if at least one endpoint was terminated
>
>
>
> P.S.
>
> Thanks to Martin Sustrik for templates ^) I took some…
>
>
>
> From: zeromq-dev-bounces at lists.zeromq.org
> [mailto:zeromq-dev-bounces at lists.zeromq.org] On Behalf Of Sergey Hripchenko
> Sent: Thursday, April 19, 2012 12:22 AM
> To: zeromq-dev at lists.zeromq.org
> Subject: [zeromq-dev] [PULL] x317: implement zmq_unbind(), zmq_disconnect(),
> zmq->sock->getsockopt(ZMQ_LAST_ENDPOINT_ID)
>
>
>
> Please review and approve.
>
> The usage scheme:
>
>
>
> After EACH successful call to sock->bind() or sock->connect() you can call
> sock->getsockopt(ZMQ_LAST_ENDPOINT) to obtain resolved endpoint address
> string and
> sock->getsockopt(ZMQ_LAST_ENDPOINT_ID) to obtain 'void *' endpoint handle.
>
>
>
> Later on you can call sock->unbind() or sock->disconnect() with saved
> endpoint handle to terminate endpoint.
> (Of course if we want to do it right we need to change sock->bind() and
> sock->connect() to return endpoint handle if succeeded, but API change is
> almost impossible...)
>
>
>
> Current implementation cons/incompatibilities (and potential improvements):
> * doesn't work with 'inproc' transport(just unset ZMQLAST_ENDPOINT and
> ZMQ_LAST_ENDPOINT_ID after every call to bind(inproc://) or
> connect(inproc://). I just don't know how it works :(
> * no specific error code/confirmation that endpoint handle passed to
> unbind()/disconnect() is actually valid and terminated. Easily could be
> implemented if needed.
> * ZMQ_LAST_ENDPOINT changed more often than before(after _EACH successful
> call to bind()/connect() )
> * *address_t->to_string() hierarchy could be improved.
>
>
>
>
>
> ________________________________
>
>
> This message is intended only for the person(s) to which it is addressed and
> may contain Intermedia.net Inc privileged, confidential and/or proprietary
> information. If you have received this communication in error, please notify
> us immediately by replying to the message and deleting it from your
> computer. Any disclosure, copying, distribution, or the taking of any action
> concerning the contents of this message and any attachment(s) by anyone
> other than the named recipient(s) is strictly prohibited.
>
>
> ________________________________
>
> This message is intended only for the person(s) to which it is addressed and
> may contain Intermedia.net Inc privileged, confidential and/or proprietary
> information. If you have received this communication in error, please notify
> us immediately by replying to the message and deleting it from your
> computer. Any disclosure, copying, distribution, or the taking of any action
> concerning the contents of this message and any attachment(s) by anyone
> other than the named recipient(s) is strictly prohibited.
>
> _______________________________________________
> zeromq-dev mailing list
> zeromq-dev at lists.zeromq.org
> http://lists.zeromq.org/mailman/listinfo/zeromq-dev
>



More information about the zeromq-dev mailing list