diff --git a/src/XrdCl/CMakeLists.txt b/src/XrdCl/CMakeLists.txt index b50504e98d4..eb3ec608f8c 100644 --- a/src/XrdCl/CMakeLists.txt +++ b/src/XrdCl/CMakeLists.txt @@ -64,7 +64,6 @@ add_library( XrdClClassicCopyJob.cc XrdClClassicCopyJob.hh XrdClThirdPartyCopyJob.cc XrdClThirdPartyCopyJob.hh XrdClAsyncSocketHandler.cc XrdClAsyncSocketHandler.hh - XrdClAsyncTlsSocketHandler.cc XrdClAsyncTlsSocketHandler.hh XrdClChannelHandlerList.cc XrdClChannelHandlerList.hh XrdClForkHandler.cc XrdClForkHandler.hh XrdClCheckSumManager.cc XrdClCheckSumManager.hh diff --git a/src/XrdCl/XrdClAsyncSocketHandler.cc b/src/XrdCl/XrdClAsyncSocketHandler.cc index 6932359dff2..f7d4e4c5bff 100644 --- a/src/XrdCl/XrdClAsyncSocketHandler.cc +++ b/src/XrdCl/XrdClAsyncSocketHandler.cc @@ -55,7 +55,8 @@ namespace XrdCl pOutMsgDone( false ), pOutHandler( 0 ), pIncMsgSize( 0 ), - pOutMsgSize( 0 ) + pOutMsgSize( 0 ), + encrypt( false ) { Env *env = DefaultEnv::GetEnv(); @@ -370,6 +371,19 @@ namespace XrdCl Status( stFatal, errPollerError ) ); return; } + + //-------------------------------------------------------------------------- + // TODO this is temporary + //-------------------------------------------------------------------------- + if( encrypt ) + { + if( !pSocket->EnableEncryption( this ).IsOK() ) + { + pStream->OnConnectError( pSubStreamNum, + Status( stFatal, errSocketError ) ); + return; + } + } } //---------------------------------------------------------------------------- diff --git a/src/XrdCl/XrdClAsyncSocketHandler.hh b/src/XrdCl/XrdClAsyncSocketHandler.hh index d35f7761ee7..2098a190534 100644 --- a/src/XrdCl/XrdClAsyncSocketHandler.hh +++ b/src/XrdCl/XrdClAsyncSocketHandler.hh @@ -150,7 +150,8 @@ namespace XrdCl Status EnableEncryption() { - return pSocket->EnableEncryption( this ); + encrypt = true; + return Status(); } protected: @@ -293,6 +294,8 @@ namespace XrdCl uint32_t pIncMsgSize; uint32_t pOutMsgSize; time_t pLastActivity; + + bool encrypt; }; } diff --git a/src/XrdCl/XrdClAsyncTlsSocketHandler.cc b/src/XrdCl/XrdClAsyncTlsSocketHandler.cc deleted file mode 100644 index 28e7bde9eeb..00000000000 --- a/src/XrdCl/XrdClAsyncTlsSocketHandler.cc +++ /dev/null @@ -1,68 +0,0 @@ -//------------------------------------------------------------------------------ -// Copyright (c) 2011-2012 by European Organization for Nuclear Research (CERN) -// Author: Michal Simon -//------------------------------------------------------------------------------ -// XRootD 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. -// -// XRootD 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 General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with XRootD. If not, see . -//------------------------------------------------------------------------------ - -#include "XrdCl/XrdClAsyncTlsSocketHandler.hh" -#include "XrdCl/XrdClXRootDMsgHandler.hh" -#include "XrdCl/XrdClXRootDTransport.hh" -#include "XrdCl/XrdClTls.hh" -#include "XrdCl/XrdClStream.hh" -#include "XrdCl/XrdClLog.hh" -#include "XrdCl/XrdClTlsSocket.hh" - -#include -#include -#include - -namespace XrdCl -{ - //---------------------------------------------------------------------------- - // Constructor - //---------------------------------------------------------------------------- - AsyncTlsSocketHandler::AsyncTlsSocketHandler( Poller *poller, - TransportHandler *transport, - AnyObject *channelData, - uint16_t subStreamNum ): - AsyncSocketHandler( poller, transport, channelData, subStreamNum ) - { - } - - //---------------------------------------------------------------------------- - // Destructor - //---------------------------------------------------------------------------- - AsyncTlsSocketHandler::~AsyncTlsSocketHandler() - { - } - - //---------------------------------------------------------------------------- - // Connect returned - //---------------------------------------------------------------------------- - void AsyncTlsSocketHandler::OnConnectionReturn() - { - AsyncSocketHandler::OnConnectionReturn(); - - if( pSocket->GetStatus() == Socket::Connected ) - { - //------------------------------------------------------------------------ - // Upgrade socket to TLS - //------------------------------------------------------------------------ - // what to do with status ??? TODO - pSocket->EnableEncryption( this ); - } - } -} - diff --git a/src/XrdCl/XrdClAsyncTlsSocketHandler.hh b/src/XrdCl/XrdClAsyncTlsSocketHandler.hh deleted file mode 100644 index 84a1c787eb1..00000000000 --- a/src/XrdCl/XrdClAsyncTlsSocketHandler.hh +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// Copyright (c) 2011-2012 by European Organization for Nuclear Research (CERN) -// Author: Michal Simon -//------------------------------------------------------------------------------ -// XRootD 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. -// -// XRootD 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 General Public License for more details. -// -// You should have received a copy of the GNU Lesser General Public License -// along with XRootD. If not, see . -//------------------------------------------------------------------------------ - -#ifndef __XRD_CL_ASYNC_TLS_SOCKET_HANDLER_HH__ -#define __XRD_CL_ASYNC_TLS_SOCKET_HANDLER_HH__ - - -#include "XrdCl/XrdClAsyncSocketHandler.hh" -#include "XrdCl/XrdClXRootDResponses.hh" -#include "XrdCl/XrdClTlsSocket.hh" -#include - -namespace XrdCl -{ - class Tls; - class XRootDTransport; - class XRootDMsgHandler; - - //---------------------------------------------------------------------------- - //! Utility class handling asynchronous TLS socket interactions and forwarding - //! events to the parent stream. - //---------------------------------------------------------------------------- - class AsyncTlsSocketHandler: public AsyncSocketHandler - { - public: - //------------------------------------------------------------------------ - //! Constructor - //------------------------------------------------------------------------ - AsyncTlsSocketHandler( Poller *poller, - TransportHandler *transport, - AnyObject *channelData, - uint16_t subStreamNum ); - - //------------------------------------------------------------------------ - //! Destructor - //------------------------------------------------------------------------ - ~AsyncTlsSocketHandler(); - - private: - - //------------------------------------------------------------------------ - // Connect returned - //------------------------------------------------------------------------ - void OnConnectionReturn(); - }; -} - -#endif // __XRD_CL_ASYNC_TLS_SOCKET_HANDLER_HH__