Hi Pieter,

Thank you for your great suggestion, because now it becomes an ambitious project.
it's here : https://github.com/lalebarde/streamq-proxy
with a RFC.

Shall I create a dedicated mauiling list, or is it preferable to discuss it here ?

Cheers,

Laurent.


Le 20/12/2013 09:34, Pieter Hintjens a écrit :
Hi Laurent,

This approach is the only one that can work, without real protocol
changes, as I explained initially.

I'd advise you *strongly* to work outside libzmq, on simple and
separate test cases that people can take and run. Just create a new
GitHub project. For building, you can use a hand-made Bash script that
invokes g++. Using libzmq as your codebase makes it too tricky for
others to take and play with this. Certainly I'm not comfortable
taking a fork of libzmq to test your specific case.

A minimal test case fits into a pastebin and builds and runs alone, as
I've always done for the Guide examples.

(You're going to argue that it's just one test program to try, and I'm
going to repeat that I won't run test code that's mixed into libzmq
like this. :-)

When you move your proxy to a separate project, I'll take a look at it.

-Pieter




On Thu, Dec 19, 2013 at 5:35 PM, Laurent Alebarde <[email protected]> wrote:
Hi all,

I am trying a more straight forward approach to proxy CURVE :

client (CURVE DEALER) --------- frontend (ZMQ_STREAM) proxy (ZMQ_STREAM)
backend ------- (CURVE DEALER) worker

I have sticked to test_stream.cpp. The idea here is the proxy pools only
workers at the beginning. When a worker connects, we pool also the client
and the backend stays on standby until the client is identified. Then the
proxy forwards all the messages from one to the other. There is a little
state machine for the frontend and for the backend in the proxy.

The code is simplified and works only with one client and one worker. So, I
don't have to manage any pairing.

It starts well, both client and worker are identified in the proxy, then
both backend and frontend forward the identity and signature of one peer to
the other.

The problem is that just after the frontend has sent them, it receive back
from the client its identity (as expected), and a 1 byte message (content =
3) instead of the greeting.

All this is in my repository here :
https://github.com/lalebarde/libzmq/commits/master
File to consider is: test_curve_proxying.cpp

Any help is welcome. Thanks.

Laurent



_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

_______________________________________________
zeromq-dev mailing list
[email protected]
http://lists.zeromq.org/mailman/listinfo/zeromq-dev

Reply via email to