Commit 60f15026 authored by Marco De Marco's avatar Marco De Marco
Browse files

Connected with client work; very basic

parent 4da44754
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -340,7 +340,7 @@ void MetadataExporter::get_device_property()
//--------------------------------------------------------
void MetadataExporter::always_executed_hook()
{
	INFO_STREAM << "MetadataExporter::always_executed_hook()  " << device_name << endl;
	DEBUG_STREAM << "MetadataExporter::always_executed_hook()  " << device_name << endl;
	/*----- PROTECTED REGION ID(MetadataExporter::always_executed_hook) ENABLED START -----*/

    if(get_state() != Tango::FAULT)
@@ -431,7 +431,7 @@ void MetadataExporter::off()
    try
    {
        if(m_server_sp)
            m_server_sp->start();
            m_server_sp->stop();
    }
    catch(std::exception& ex)
    {
+18 −13
Original line number Diff line number Diff line
@@ -51,13 +51,14 @@ void PlainSession::start()
{
    DEBUG_STREAM << "PlainSession::start()" << endl;

    INFO_STREAM << "CONNECTED TO " << m_socket.remote_endpoint() << endl;
    INFO_STREAM << "PlainSession::start() connection from "
        << m_socket.remote_endpoint() << endl;

    BufferSP recvBuffer_sp(new Buffer);

    m_socket.async_read_some(boost::asio::buffer(*recvBuffer_sp),
        m_strand.wrap(boost::bind(&PlainSession::handleRequest,
        shared_from_this(), recvBuffer_sp, boost::asio::placeholders::bytes_transferred,
        m_strand.wrap(boost::bind( &PlainSession::handleRequest, shared_from_this(),
        recvBuffer_sp, boost::asio::placeholders::bytes_transferred,
        boost::asio::placeholders::error)));
}

@@ -79,17 +80,19 @@ void PlainSession::handleRequest(BufferSP recvBuffer_sp, std::size_t size,
        }

        boost::asio::async_write(m_socket, boost::asio::buffer(*sendBuffer_sp, size),
            m_strand.wrap(boost::bind(&PlainSession::handleResponse,
            shared_from_this(), sendBuffer_sp, boost::asio::placeholders::bytes_transferred,
            m_strand.wrap(boost::bind(&PlainSession::handleResponse, shared_from_this(),
            sendBuffer_sp, boost::asio::placeholders::bytes_transferred,
            boost::asio::placeholders::error)));
    }
    else if(ec == boost::asio::error::eof)
    {
        INFO_STREAM << "DICONNECTED FROM " << m_socket.remote_endpoint() << endl;
        INFO_STREAM << "PlainSession::handleRequest() disconnection from "
            << m_socket.remote_endpoint() << endl;
    }
    else
    {
        WARN_STREAM << "ERROR FROM " << m_socket.remote_endpoint() << endl;
        WARN_STREAM << "PlainSession::handleRequest() error " << ec.message()
            << " from " << m_socket.remote_endpoint() << endl;
    }
}

@@ -106,17 +109,19 @@ void PlainSession::handleResponse(BufferSP sendBuffer_sp, std::size_t size,
        BufferSP recvBuffer_sp( new Buffer );

        m_socket.async_read_some(boost::asio::buffer(*recvBuffer_sp),
            m_strand.wrap(boost::bind(&PlainSession::handleRequest,
            shared_from_this(), recvBuffer_sp, boost::asio::placeholders::bytes_transferred,
            m_strand.wrap(boost::bind(&PlainSession::handleRequest, shared_from_this(),
            recvBuffer_sp, boost::asio::placeholders::bytes_transferred,
            boost::asio::placeholders::error)));
    }
    else if(ec == boost::asio::error::eof)
    {
        INFO_STREAM << "DICONNECTED FROM " << m_socket.remote_endpoint() << endl;
        INFO_STREAM << "PlainSession::handleResponse() disconnection from "
            << m_socket.remote_endpoint() << endl;
    }
    else
    {
        WARN_STREAM << "ERROR FROM " << m_socket.remote_endpoint() << endl;
        WARN_STREAM << "PlainSession::handleResponse() error " << ec.message()
            << " from " << m_socket.remote_endpoint() << endl;
    }
}

+40 −12
Original line number Diff line number Diff line
@@ -53,6 +53,36 @@ boost::asio::ip::tcp::socket& SSLSession::getSocket()
void SSLSession::start()
{
    DEBUG_STREAM << "SSLSession::start()" << endl;

    INFO_STREAM << "SSLSession::start() connection from "
        << m_sslSocket.lowest_layer().remote_endpoint() << endl;

    m_sslSocket.async_handshake(boost::asio::ssl::stream_base::server,
        boost::bind(&SSLSession::handleHandShake, shared_from_this(),
        boost::asio::placeholders::error));
}

//==============================================================================
//      SSLSession::handleRequest()
//==============================================================================
void SSLSession::handleHandShake(const boost::system::error_code& ec)
{
        DEBUG_STREAM << "SSLSession::handleHandShake()" << endl;

        if(!ec)
        {
            BufferSP recvBuffer_sp( new Buffer );

            m_sslSocket.async_read_some(boost::asio::buffer(*recvBuffer_sp),
                m_strand.wrap(boost::bind(&SSLSession::handleRequest, shared_from_this(),
                recvBuffer_sp, boost::asio::placeholders::bytes_transferred,
                boost::asio::placeholders::error)));
        }
        else
        {
            WARN_STREAM << "SSLSession::handleHandShake() error " << ec.message()
                << " from " << m_sslSocket.lowest_layer().remote_endpoint() << endl;
        }
}

//==============================================================================
@@ -68,24 +98,22 @@ void SSLSession::handleRequest(BufferSP recvBuffer_sp, std::size_t size,
        BufferSP sendBuffer_sp( new Buffer );

        for(std::size_t i=0; i<size; ++i)
        {
            (*sendBuffer_sp)[i] = toupper( (*recvBuffer_sp)[i] );
        }

        boost::asio::async_write(m_sslSocket, boost::asio::buffer(*sendBuffer_sp, size),
            m_strand.wrap(boost::bind(&SSLSession::handleResponse,
            shared_from_this(), sendBuffer_sp, boost::asio::placeholders::bytes_transferred,
            m_strand.wrap(boost::bind(&SSLSession::handleResponse, shared_from_this(),
            sendBuffer_sp, boost::asio::placeholders::bytes_transferred,
            boost::asio::placeholders::error)));
    }
    else if(ec == boost::asio::error::eof)
    {
        INFO_STREAM << "DICONNECTED FROM "
        INFO_STREAM << "SSLSession::handleRequest() disconnection from "
            << m_sslSocket.lowest_layer().remote_endpoint() << endl;
    }
    else
    {
        WARN_STREAM << "ERROR FROM "
            << m_sslSocket.lowest_layer().remote_endpoint() << endl;
        WARN_STREAM << "SSLSession::handleRequest() error " << ec.message()
            << " from " << m_sslSocket.lowest_layer().remote_endpoint() << endl;
    }
}

@@ -102,19 +130,19 @@ void SSLSession::handleResponse(BufferSP sendBuffer_sp, std::size_t size,
        BufferSP recvBuffer_sp( new Buffer );

        m_sslSocket.async_read_some(boost::asio::buffer(*recvBuffer_sp),
            m_strand.wrap(boost::bind(&SSLSession::handleRequest,
            shared_from_this(), recvBuffer_sp, boost::asio::placeholders::bytes_transferred,
            m_strand.wrap(boost::bind(&SSLSession::handleRequest, shared_from_this(),
            recvBuffer_sp, boost::asio::placeholders::bytes_transferred,
            boost::asio::placeholders::error)));
    }
    else if(ec == boost::asio::error::eof)
    {
        INFO_STREAM << "DICONNECTED FROM "
        INFO_STREAM << "SSLSession::handleResponse() disconnection from "
            << m_sslSocket.lowest_layer().remote_endpoint() << endl;
    }
    else
    {
        WARN_STREAM << "ERROR FROM "
            << m_sslSocket.lowest_layer().remote_endpoint() << endl;
        WARN_STREAM << "SSLSession::handleResponse() error " << ec.message()
            << " from " << m_sslSocket.lowest_layer().remote_endpoint() << endl;
    }
}

+2 −0
Original line number Diff line number Diff line
@@ -47,6 +47,8 @@ protected:
//------------------------------------------------------------------------------
//  [Protected] Utilities methods
//------------------------------------------------------------------------------
    virtual void handleHandShake(const boost::system::error_code& ec);

    virtual void handleRequest(BufferSP, std::size_t,
        const boost::system::error_code&);

+1 −1

File changed.

Contains only whitespace changes.