diff --git a/Makefile.am b/Makefile.am index f6d04a0a..abe13e38 100644 --- a/Makefile.am +++ b/Makefile.am @@ -334,7 +334,6 @@ test_apps = \ tests/test_connect_rid \ tests/test_bind_src_address \ tests/test_metadata \ - tests/test_id2fd \ tests/test_capabilities \ tests/test_xpub_nodrop \ tests/test_xpub_manual \ diff --git a/include/zmq.h b/include/zmq.h index 989e13f3..a01ed01d 100644 --- a/include/zmq.h +++ b/include/zmq.h @@ -292,7 +292,6 @@ ZMQ_EXPORT const char *zmq_msg_gets (zmq_msg_t *msg, const char *property); #define ZMQ_GSSAPI_SERVICE_PRINCIPAL 64 #define ZMQ_GSSAPI_PLAINTEXT 65 #define ZMQ_HANDSHAKE_IVL 66 -#define ZMQ_IDENTITY_FD 67 #define ZMQ_SOCKS_PROXY 68 #define ZMQ_XPUB_NODROP 69 #define ZMQ_BLOCKY 70 diff --git a/src/i_engine.hpp b/src/i_engine.hpp index e406b8fc..49896c21 100644 --- a/src/i_engine.hpp +++ b/src/i_engine.hpp @@ -20,8 +20,6 @@ #ifndef __ZMQ_I_ENGINE_HPP_INCLUDED__ #define __ZMQ_I_ENGINE_HPP_INCLUDED__ -#include "fd.hpp" - namespace zmq { @@ -49,10 +47,7 @@ namespace zmq // are messages to send available. virtual void restart_output () = 0; - virtual void zap_msg_available () = 0; - - // provide a way to link from engine to file descriptor - virtual fd_t get_assoc_fd () { return retired_fd;}; + virtual void zap_msg_available () = 0; }; } diff --git a/src/pipe.cpp b/src/pipe.cpp index f7a543ec..fcb14a10 100644 --- a/src/pipe.cpp +++ b/src/pipe.cpp @@ -65,7 +65,6 @@ int zmq::pipepair (class object_t *parents_ [2], class pipe_t* pipes_ [2], zmq::pipe_t::pipe_t (object_t *parent_, upipe_t *inpipe_, upipe_t *outpipe_, int inhwm_, int outhwm_, bool conflate_) : object_t (parent_), - assoc_fd (retired_fd), inpipe (inpipe_), outpipe (outpipe_), in_active (true), diff --git a/src/pipe.hpp b/src/pipe.hpp index 7567bbb2..ef17a406 100644 --- a/src/pipe.hpp +++ b/src/pipe.hpp @@ -27,7 +27,6 @@ #include "stdint.hpp" #include "array.hpp" #include "blob.hpp" -#include "fd.hpp" namespace zmq { @@ -120,8 +119,6 @@ namespace zmq // check HWM bool check_hwm () const; - // provide a way to link pipe to engine fd. Set on session initialization - fd_t assoc_fd; //=retired_fd private: // Type of the underlying lock-free pipe. diff --git a/src/router.cpp b/src/router.cpp index ee696181..fc1035e8 100644 --- a/src/router.cpp +++ b/src/router.cpp @@ -133,33 +133,6 @@ int zmq::router_t::xsetsockopt (int option_, const void *optval_, return -1; } -int zmq::router_t::xgetsockopt (int option_, const void *optval_, - size_t *optvallen_) -{ - switch (option_) { - case ZMQ_IDENTITY_FD: - if (optval_==NULL && optvallen_) { - *optvallen_=sizeof(fd_t); - return 0; - } - if (optval_ && optvallen_ && *optvallen_) { - blob_t identity= blob_t((unsigned char*)optval_,*optvallen_); - outpipes_t::iterator it = outpipes.find (identity); - if (it == outpipes.end() ){ - return ENOTSOCK; - } - *((fd_t*)optval_)=it->second.pipe->assoc_fd; - *optvallen_=sizeof(fd_t); - return 0; - } - break; - default: - break; - } - errno = EINVAL; - return -1; -} - void zmq::router_t::xpipe_terminated (pipe_t *pipe_) { diff --git a/src/router.hpp b/src/router.hpp index 5af85e53..f5b1ff6c 100644 --- a/src/router.hpp +++ b/src/router.hpp @@ -47,7 +47,6 @@ namespace zmq // Overrides of functions from socket_base_t. void xattach_pipe (zmq::pipe_t *pipe_, bool subscribe_to_all_); int xsetsockopt (int option_, const void *optval_, size_t optvallen_); - int xgetsockopt (int option_, const void *optval_, size_t *optvallen_); int xsend (zmq::msg_t *msg_); int xrecv (zmq::msg_t *msg_); bool xhas_in (); diff --git a/src/session_base.cpp b/src/session_base.cpp index 46dc401e..548675df 100644 --- a/src/session_base.cpp +++ b/src/session_base.cpp @@ -367,9 +367,7 @@ void zmq::session_base_t::process_attach (i_engine *engine_) // Remember the local end of the pipe. zmq_assert (!pipe); pipe = pipes [0]; - // Store engine assoc_fd for linking pipe to fd - pipe->assoc_fd = engine_->get_assoc_fd (); - pipes [1]->assoc_fd = pipe->assoc_fd; + // Ask socket to plug into the remote end of the pipe. send_bind (socket, pipes [1]); } diff --git a/src/socket_base.cpp b/src/socket_base.cpp index 617c4b30..0c12e37d 100644 --- a/src/socket_base.cpp +++ b/src/socket_base.cpp @@ -289,11 +289,6 @@ int zmq::socket_base_t::getsockopt (int option_, void *optval_, errno = ETERM; return -1; } - - // First, check whether specific socket type overloads the option. - int rc = xgetsockopt (option_, optval_, optvallen_); - if (rc == 0 || errno != EINVAL) - return rc; if (option_ == ZMQ_RCVMORE) { if (*optvallen_ < sizeof (int)) { @@ -1067,11 +1062,6 @@ int zmq::socket_base_t::xsetsockopt (int, const void *, size_t) errno = EINVAL; return -1; } -int zmq::socket_base_t::xgetsockopt (int, const void *, size_t*) -{ - errno = EINVAL; - return -1; -} bool zmq::socket_base_t::xhas_out () { diff --git a/src/socket_base.hpp b/src/socket_base.hpp index f2c624c5..afbb36f4 100644 --- a/src/socket_base.hpp +++ b/src/socket_base.hpp @@ -133,13 +133,10 @@ namespace zmq // The default implementation assumes there are no specific socket // options for the particular socket type. If not so, override this - // methods. + // method. virtual int xsetsockopt (int option_, const void *optval_, size_t optvallen_); - virtual int xgetsockopt (int option_, const void *optval_, - size_t *optvallen_); - // The default implementation assumes that send is not supported. virtual bool xhas_out (); virtual int xsend (zmq::msg_t *msg_); diff --git a/src/stream_engine.hpp b/src/stream_engine.hpp index c2448aa1..a538943e 100644 --- a/src/stream_engine.hpp +++ b/src/stream_engine.hpp @@ -76,8 +76,6 @@ namespace zmq void out_event (); void timer_event (int id_); - // export s via i_engine so it is possible to link a pipe to fd - fd_t get_assoc_fd (){ return s; }; private: // Unplug the engine from the session. diff --git a/tests/test_id2fd.cpp b/tests/test_id2fd.cpp deleted file mode 100644 index 0882ccba..00000000 --- a/tests/test_id2fd.cpp +++ /dev/null @@ -1,87 +0,0 @@ -/* - Copyright (c) 2007-2014 Contributors as noted in the AUTHORS file - - This file is part of 0MQ. - - 0MQ is free software; you can redistribute it and/or modify it under - the terms of the GNU Lesser General Public License as published by - the Free Software Foundation; either version 3 of the License, or - (at your option) any later version. - - 0MQ is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with this program. If not, see . -*/ - -#include "testutil.hpp" - - -int main (void) -{ - setup_test_environment(); - - void *ctx = zmq_ctx_new (); - assert (ctx); - - void *client = zmq_socket (ctx, ZMQ_REQ); - assert (client); - - void *server = zmq_socket (ctx, ZMQ_ROUTER); - assert (server); - - // Now do a basic ping test - int rc = zmq_bind (server, "tcp://127.0.0.1:9998"); - assert (rc == 0); - rc = zmq_connect (client, "tcp://127.0.0.1:9998"); - assert (rc == 0); - - rc=zmq_send(client,"1234567890",10,0); - assert (rc != -1); - - - int partnumber=1; - int recvfd=-1; - zmq_msg_t part; - do { - /* if not first free prev message part */ - if (partnumber!=1) zmq_msg_close (&part); - - /* Create an empty ØMQ message to hold the message part */ - int rc = zmq_msg_init (&part); - assert (rc == 0); - - /* Block until a message is available to be received from socket */ - rc = zmq_msg_recv (&part,server, 0); - assert (rc != -1); - if (partnumber==1) {// this is the identity of the receiving pipe - - //buffer for zmq_getsockopt / ZMQ_IDENTITY_FD - char idbuf[255]; - size_t idbufsz=zmq_msg_size (&part); - - assert (idbufsz<=255); - memcpy(idbuf,zmq_msg_data(&part),idbufsz); - - rc = zmq_getsockopt (server, ZMQ_IDENTITY_FD, idbuf, &idbufsz); - assert (rc == 0); - - memcpy(&recvfd,idbuf,sizeof(recvfd)); - - //depending on your system this should be around 14 - assert (recvfd > 0); - } - partnumber++; - } while (zmq_msg_more(&part)); - zmq_msg_close (&part); - - close_zero_linger (client); - close_zero_linger (server); - - zmq_ctx_term (ctx); - - return 0 ; -}