[
https://issues.apache.org/jira/browse/HBASE-17860?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955999#comment-15955999
]
Ted Yu edited comment on HBASE-17860 at 4/5/17 5:31 PM:
--------------------------------------------------------
[~eclark] was asking why not casting the callback methods.
I answered on RB but the compilation errors are not properly formatted.
However, the assignment of callback functions triggers the following
compilation errors:
{code}
connection/connection-factory.cc:164:22: error: reinterpret_cast from 'int
(SaslHandler::*)(void *, int, const char *)' to 'sasl_callback_ft' (aka 'int
(*)()') is not allowed
callback->proc = reinterpret_cast<sasl_callback_ft>
(&SaslHandler::SaslLogFn);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
connection/connection-factory.cc:169:22: error: cannot cast from type 'int
(SaslHandler::*)(void *, const char **)' to pointer type 'sasl_callback_ft'
(aka 'int (*)()')
callback->proc = (sasl_callback_ft) &SaslHandler::GetPluginPath;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
connection/connection-factory.cc:175:22: error: cannot cast from type 'int
(SaslHandler::*)(void *, int, const char **, unsigned int *)' to pointer type
'sasl_callback_ft' (aka 'int (*)()')
callback->proc = (sasl_callback_ft) &SaslHandler::Simple;
{code}
I also tried other cast's which resulted in other compilation errors.
was (Author: [email protected]):
[~eclark] was asking why not casting the callback methods.
I answered on RB but the compilation errors are not properly formatted.
However, the assignment of callback functions triggers the following
compilation errors:
{code}
connection/connection-factory.cc:164:22: error: reinterpret_cast from 'int
(SaslHandler::*)(void *, int, const char *)' to 'sasl_callback_ft' (aka 'int
(*)()') is not allowed
callback->proc = reinterpret_cast<sasl_callback_ft>
(&SaslHandler::SaslLogFn);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
connection/connection-factory.cc:169:22: error: cannot cast from type 'int
(SaslHandler::*)(void *, const char **)' to pointer type 'sasl_callback_ft'
(aka 'int (*)()')
callback->proc = (sasl_callback_ft) &SaslHandler::GetPluginPath;
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
connection/connection-factory.cc:175:22: error: cannot cast from type 'int
(SaslHandler::*)(void *, int, const char **, unsigned int *)' to pointer type
'sasl_callback_ft' (aka 'int (*)()')
callback->proc = (sasl_callback_ft) &SaslHandler::Simple;
{code}
> Implement secure native client connection
> -----------------------------------------
>
> Key: HBASE-17860
> URL: https://issues.apache.org/jira/browse/HBASE-17860
> Project: HBase
> Issue Type: Sub-task
> Reporter: Ted Yu
> Assignee: Ted Yu
> Priority: Critical
> Attachments: 17860.v2.txt, 17860.v3.txt, 17860.v4.txt
>
>
> So far, the native client communicates with insecure cluster.
> This JIRA is to add secure connection support for native client using Cyrus
> library.
> The work is based on earlier implementation and is redone via wangle and
> folly frameworks.
> Thanks to [~devaraj] who started the initiative.
> Here is high level description of the design:
> * SaslHandler is declared as:
> {code}
> class SaslHandler
> : public wangle::HandlerAdapter<folly::IOBufQueue&,
> std::unique_ptr<folly::IOBuf>>{
> {code}
> It would be inserted between EventBaseHandler and
> LengthFieldBasedFrameDecoder in the pipeline (via
> ConnectionFactory::Connect())
> * SaslHandler would intercept writes to server by buffering the IOBuf's and
> start the handshake process (via sasl_client_XX calls provided by Cyrus)
> * after handshake is complete, SaslHandler would send the buffered IOBuf's to
> server and act as pass-thru from then on
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)