Re: [zeromq-dev] ROUTER not routing?

2014-02-19 Thread Justin Karneges
On 02/13/2014 02:51 PM, Justin Karneges wrote: Also I tried to log an item in the Jira but I'm not sure how. Maybe I need special access rights? I created an account at least. Also, I see issues in github too. Which is the right place to log things? Still hoping to get clarification on this.

Re: [zeromq-dev] ROUTER not routing?

2014-02-14 Thread Laurent Alebarde
The existing IDENTITY socket option is useless for your purpose because it is transmitted at the end of the handcheck in the metadata. When a ROUTER receives a new connection, it assigns to it a own forged identity (random for the first peer and then incremented for the next ones). It is a 5

Re: [zeromq-dev] ROUTER not routing?

2014-02-14 Thread Laurent Alebarde
The greeting's signature would be an easier place (8 bytes available). Le 14/02/2014 09:50, Laurent Alebarde a écrit : The existing IDENTITY socket option is useless for your purpose because it is transmitted at the end of the handcheck in the metadata. When a ROUTER receives a new connection,

Re: [zeromq-dev] ROUTER not routing?

2014-02-14 Thread Justin Karneges
Having the local socket tell the remote peer about the mapping it has created seems very roundabout. How about just allowing the mapping in the local socket to be replaced anytime identity information is received from the remote peer? I don't know how this works at the ZMTP level, but I assume

Re: [zeromq-dev] ROUTER not routing?

2014-02-14 Thread Laurent Alebarde
Le 14/02/2014 19:44, Justin Karneges a écrit : Having the local socket tell the remote peer about the mapping it has created seems very roundabout. How about just allowing the mapping in the local socket to be replaced anytime identity information is received from the remote peer? That's what

Re: [zeromq-dev] ROUTER not routing?

2014-02-13 Thread Justin Karneges
I'd like to move forward with fixing this. Can I get a confirmation that I should proceed? Basically I want to make it so if a connection reconnects, and an explicit identity is received from the peer, then it should overwrite any previously set identity for that peer. Also I tried to log an

Re: [zeromq-dev] ROUTER not routing?

2014-02-13 Thread Ahmet Kakıcı
It's not about zmq, just imagine someone comes to you and you say him you are x, after he left someone came too, so without his identity how will you decide if he is the same person or not? On Fri, Feb 14, 2014 at 12:51 AM, Justin Karneges jus...@affinix.comwrote: I'd like to move forward with

Re: [zeromq-dev] ROUTER not routing?

2014-02-13 Thread Justin Karneges
The new peer asserts its own identity. There is not a question about whether the new peer is the same as before. The peer very clearly is or is not the same, based on the identity it provides. The problem is that remote identities are only honored for the first peer. On 02/13/2014 03:00 PM,

Re: [zeromq-dev] ROUTER not routing?

2014-02-08 Thread Justin Karneges
Here's an even simpler example using REQ/ROUTER: https://gist.github.com/jkarneges/1fa64e9763561f53daef It doesn't demonstrate the routing problem but it does demonstrate the identity binding oddity. You can see the ROUTER side that the envelope id is always the first id it has ever seen, even

[zeromq-dev] ROUTER not routing?

2014-02-07 Thread Justin Karneges
Hi, 1) ROUTER in program A is set to connect to a bind socket in program B. 2) Both programs are started, and the connection is established. 3) A determines B's socket identity out-of-band, and is able to send messages to B. 3) B is terminated and the connection is lost. 4) B is started again,

Re: [zeromq-dev] ROUTER not routing?

2014-02-07 Thread Ahmet Kakıcı
I think you are creating new socket at step 4, then Router will assign new socket identites to incoming peers. https://github.com/zeromq/libzmq/blob/9c6aa1e9e00ab11a1c716e1fd2f1c56030972e30/src/router.cpp#L437 That's why you cannot send replies to a client with same identity. On Fri, Feb 7,

Re: [zeromq-dev] ROUTER not routing?

2014-02-07 Thread Justin Karneges
Yes, when B is run again, it creates a new bind socket. A's connect socket will then reconnect to it. B does not care what the identity is of A's socket, so I think this is not a problem. For example, I can restart A repeatedly and all is fine. On 02/07/2014 01:06 PM, Ahmet Kakıcı wrote: I

Re: [zeromq-dev] ROUTER not routing?

2014-02-07 Thread Panu Wetterstrand
I did not quite get the problem but could this be because (I think) router is not able to route messages to socket from which it has not reveived data first... 7.2.2014 22.51 kirjoitti Justin Karneges jus...@affinix.com: Hi, 1) ROUTER in program A is set to connect to a bind socket in program

Re: [zeromq-dev] ROUTER not routing?

2014-02-07 Thread Justin Karneges
It is my understanding that being able to route requires the socket to have an identity mapping in its routing table for the peer. For peers that do not explicitly specify their own identity, then I believe you are correct that routing is not possible until at least one message has been

Re: [zeromq-dev] ROUTER not routing?

2014-02-07 Thread Justin Karneges
Here's some small sample code to reproduce the issue: https://gist.github.com/jkarneges/ab2b1abea1ee4cfc1332 A (ztest1.py) creates REQ and ROUTER sockets. B (ztest2.py) creates REP and ROUTER sockets. B binds and provides a random identity to its ROUTER socket. A connects its sockets to B. A