drill-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From laurentgo <...@git.apache.org>
Subject [GitHub] drill pull request #950: DRILL-5431: SSL Support
Date Thu, 05 Oct 2017 16:48:33 GMT
Github user laurentgo commented on a diff in the pull request:

    https://github.com/apache/drill/pull/950#discussion_r142994068
  
    --- Diff: contrib/native/client/src/clientlib/channel.hpp ---
    @@ -0,0 +1,236 @@
    +/*
    + * Licensed to the Apache Software Foundation (ASF) under one
    + * or more contributor license agreements.  See the NOTICE file
    + * distributed with this work for additional information
    + * regarding copyright ownership.  The ASF licenses this file
    + * to you under the Apache License, Version 2.0 (the
    + * "License"); you may not use this file except in compliance
    + * with the License.  You may obtain a copy of the License at
    + *
    + * http://www.apache.org/licenses/LICENSE-2.0
    + *
    + * Unless required by applicable law or agreed to in writing, software
    + * distributed under the License is distributed on an "AS IS" BASIS,
    + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    + * See the License for the specific language governing permissions and
    + * limitations under the License.
    + */
    +
    +#ifndef CHANNEL_HPP
    +#define CHANNEL_HPP
    +
    +#include "drill/common.hpp"
    +#include "drill/drillClient.hpp"
    +#include "streamSocket.hpp"
    +
    +namespace Drill {
    +
    +class UserProperties;
    +
    +    class ConnectionEndpoint{
    +        public:
    +            ConnectionEndpoint(const char* connStr);
    +            ConnectionEndpoint(const char* host, const char* port);
    +            ~ConnectionEndpoint();
    +
    +            //parse the connection string and set up the host and port to connect to
    +            connectionStatus_t getDrillbitEndpoint();
    +
    +            std::string& getProtocol(){return m_protocol;}
    +            std::string& getHost(){return m_host;}
    +            std::string& getPort(){return m_port;}
    +            DrillClientError* getError(){ return m_pError;};
    +
    +        private:
    +            void parseConnectString();
    +            bool isDirectConnection();
    +            bool isZookeeperConnection();
    +            connectionStatus_t getDrillbitEndpointFromZk();
    +            connectionStatus_t handleError(connectionStatus_t status, std::string msg);
    +
    +            std::string m_connectString;
    +            std::string m_pathToDrill;
    +            std::string m_protocol; 
    +            std::string m_hostPortStr;
    +            std::string m_host;
    +            std::string m_port;
    +
    +            DrillClientError* m_pError;
    +
    +    };
    +
    +    class ChannelContext{
    +        public:
    +            ChannelContext(DrillUserProperties* props):m_properties(props){};
    +            virtual ~ChannelContext(){};
    +            const DrillUserProperties* getUserProperties() const { return m_properties;}
    +        protected:
    +            DrillUserProperties* m_properties;
    +    };
    +
    +    class SSLChannelContext: public ChannelContext{
    +        public:
    +            static boost::asio::ssl::context::method getTlsVersion(std::string version){
    --- End diff --
    
    sorry, it's abbreviation for const ref (I believe std::cref was introduced in C++11, which
we are not using sadly, although there's a boost equivalent of course).


---

Mime
View raw message