Good to know! If someone does make this mistake, further calls against that socket should probably return an error that makes the problem obvious. We have EFSM and other library-created errors, so perhaps EINCOMPATIBLESOCKET (or similar) should be returned.
On Sep 19, 2013, at 5:01 AM, Pieter Hintjens <[email protected]> wrote: > OK, I've checked and libzmq master _does_ check socket types, thanks > to our cherished Martin Hurton. > > Commit 2a4aef is the one. The code is in mechanism.cpp:check_socket_type. > > My comments about raising the error to the user still apply; we now > get a failed connection but no signalling to the application. > > -Pieter > > On Thu, Sep 19, 2013 at 11:57 AM, Pieter Hintjens <[email protected]> wrote: >> This was certainly our intention. I'm not sure the code does that type >> checking yet, but the protocol supports it. >> >> However, it's not as simple as it sounds, since connections are >> background actions and invisible to applications. So connection >> failures are too. We have the same issue with security, and the >> current answer is to simply deny the connection, as if there was no >> network connection. But this won't help users debug problems. I'm not >> a fan of having to do extra work (context monitoring) to catch such >> errors. >> >> Perhaps the better approach is to raise a fatal error on the socket so >> all further operations on it fail, after a socket type error, or a >> security failure. The error would happen asynchronously, but would at >> least show on the radar without extra work. >> >> -Pieter >> >> >> >> >> >> On Thu, Sep 19, 2013 at 11:34 AM, Charles Remes <[email protected]> wrote: >>> Will the upcoming version 4 release enforce proper socket pairings so that >>> doing something odd like connecting PUSH and SUB will raise an error? >>> >>> cr >>> >>> On Sep 19, 2013, at 2:46 AM, Pieter Hintjens <[email protected]> wrote: >>> >>>> You can't connect a PUSH to a SUB; use a PUB socket to send the data. >>> >>> _______________________________________________ >>> 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
