diff --git a/Socket/Protocols/INet/ConnectedRawINetSocketHandle.cc b/Socket/Protocols/INet/ConnectedRawINetSocketHandle.cc index 45715cb272a551a3684357c2d531caa8c78718ad..bb0383140e78702ac98c2b5f5d203d1e9ab95e37 100644 --- a/Socket/Protocols/INet/ConnectedRawINetSocketHandle.cc +++ b/Socket/Protocols/INet/ConnectedRawINetSocketHandle.cc @@ -83,7 +83,10 @@ senf::ConnectedRawV6SocketProtocol::init_client(int const & protocol, INet6Socke const { init_client(protocol); - clientHandle().connect(address); + if(address.boolean_test()){ + //only connect if socket is not [::]:0, this results in an irreversible binding to the lo interface (linux 2.6.15) + clientHandle().connect(address); + } } ///////////////////////////////cc.e////////////////////////////////////////