aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cpp
diff options
context:
space:
mode:
authorGravatar yang-g <yangg@google.com>2015-07-07 17:47:31 -0700
committerGravatar yang-g <yangg@google.com>2015-07-07 17:47:31 -0700
commit85c04f938f242031cf819f626da21ac597ccd6a6 (patch)
treed351513c484ed6f2df9c7b880ae286f1badf0e99 /src/cpp
parente114a017203b1f42257154bf23e764b215176eff (diff)
resolve comments
Diffstat (limited to 'src/cpp')
-rw-r--r--src/cpp/client/client_context.cc7
-rw-r--r--src/cpp/common/insecure_auth_context.h59
-rw-r--r--src/cpp/common/insecure_create_auth_context.cc5
-rw-r--r--src/cpp/common/secure_auth_context.h2
-rw-r--r--src/cpp/common/secure_create_auth_context.cc11
-rw-r--r--src/cpp/server/server.cc4
-rw-r--r--src/cpp/server/server_context.cc5
7 files changed, 19 insertions, 74 deletions
diff --git a/src/cpp/client/client_context.cc b/src/cpp/client/client_context.cc
index ac154d557a..c68f6dd9f8 100644
--- a/src/cpp/client/client_context.cc
+++ b/src/cpp/client/client_context.cc
@@ -76,8 +76,11 @@ void ClientContext::set_call(grpc_call* call,
}
}
-std::unique_ptr<const AuthContext> ClientContext::auth_context() const {
- return CreateAuthContext(call_);
+std::shared_ptr<const AuthContext> ClientContext::auth_context() const {
+ if (auth_context_.get() == nullptr) {
+ auth_context_ = CreateAuthContext(call_);
+ }
+ return auth_context_;
}
void ClientContext::TryCancel() {
diff --git a/src/cpp/common/insecure_auth_context.h b/src/cpp/common/insecure_auth_context.h
deleted file mode 100644
index 8d1653a477..0000000000
--- a/src/cpp/common/insecure_auth_context.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/*
- *
- * Copyright 2015, Google Inc.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are
- * met:
- *
- * * Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * * Redistributions in binary form must reproduce the above
- * copyright notice, this list of conditions and the following disclaimer
- * in the documentation and/or other materials provided with the
- * distribution.
- * * Neither the name of Google Inc. nor the names of its
- * contributors may be used to endorse or promote products derived from
- * this software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
- * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
- * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
- * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
- * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
- * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
- * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
- * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
- * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
- *
- */
-
-#ifndef GRPC_INTERNAL_CPP_COMMON_INSECURE_AUTH_CONTEXT_H
-#define GRPC_INTERNAL_CPP_COMMON_INSECURE_AUTH_CONTEXT_H
-
-#include <grpc++/auth_context.h>
-
-namespace grpc {
-
-class InsecureAuthContext : public AuthContext {
- public:
- ~InsecureAuthContext() GRPC_OVERRIDE {}
-
- std::vector<grpc::string> GetPeerIdentity() const GRPC_OVERRIDE {
- return std::vector<grpc::string>();
- }
-
- grpc::string GetPeerIdentityPropertyName() const GRPC_OVERRIDE { return ""; }
-
- std::vector<grpc::string> FindPropertyValues(const grpc::string& name) const
- GRPC_OVERRIDE {
- return std::vector<grpc::string>();
- }
-};
-
-} // namespace grpc
-
-#endif // GRPC_INTERNAL_CPP_COMMON_INSECURE_AUTH_CONTEXT_H
diff --git a/src/cpp/common/insecure_create_auth_context.cc b/src/cpp/common/insecure_create_auth_context.cc
index 79d868254d..07fc0bd549 100644
--- a/src/cpp/common/insecure_create_auth_context.cc
+++ b/src/cpp/common/insecure_create_auth_context.cc
@@ -34,13 +34,12 @@
#include <grpc/grpc.h>
#include <grpc++/auth_context.h>
-#include "src/cpp/common/insecure_auth_context.h"
namespace grpc {
-std::unique_ptr<const AuthContext> CreateAuthContext(grpc_call* call) {
+std::shared_ptr<const AuthContext> CreateAuthContext(grpc_call* call) {
(void)call;
- return std::unique_ptr<const AuthContext>(new InsecureAuthContext);
+ return std::shared_ptr<const AuthContext>();
}
} // namespace grpc
diff --git a/src/cpp/common/secure_auth_context.h b/src/cpp/common/secure_auth_context.h
index 892f8d522c..b406f675ae 100644
--- a/src/cpp/common/secure_auth_context.h
+++ b/src/cpp/common/secure_auth_context.h
@@ -39,7 +39,7 @@
namespace grpc {
-class SecureAuthContext : public AuthContext {
+class SecureAuthContext GRPC_FINAL : public AuthContext {
public:
SecureAuthContext(grpc_auth_context* ctx);
diff --git a/src/cpp/common/secure_create_auth_context.cc b/src/cpp/common/secure_create_auth_context.cc
index d9fba4f4d4..21994945f8 100644
--- a/src/cpp/common/secure_create_auth_context.cc
+++ b/src/cpp/common/secure_create_auth_context.cc
@@ -39,12 +39,13 @@
namespace grpc {
-std::unique_ptr<const AuthContext> CreateAuthContext(grpc_call* call) {
- grpc_auth_context* context = nullptr;
- if (call) {
- context = const_cast<grpc_auth_context*>(grpc_call_auth_context(call));
+std::shared_ptr<const AuthContext> CreateAuthContext(grpc_call* call) {
+ if (call == nullptr) {
+ return std::shared_ptr<const AuthContext>();
}
- return std::unique_ptr<const AuthContext>(new SecureAuthContext(context));
+ grpc_auth_context* context =
+ const_cast<grpc_auth_context*>(grpc_call_auth_context(call));
+ return std::shared_ptr<const AuthContext>(new SecureAuthContext(context));
}
} // namespace grpc
diff --git a/src/cpp/server/server.cc b/src/cpp/server/server.cc
index 1437b2dea7..033c18490b 100644
--- a/src/cpp/server/server.cc
+++ b/src/cpp/server/server.cc
@@ -118,7 +118,7 @@ class Server::SyncRequest GRPC_FINAL : public CompletionQueueTag {
has_request_payload_(mrd->has_request_payload_),
request_payload_(mrd->request_payload_),
method_(mrd->method_) {
- ctx_.call_ = mrd->call_;
+ ctx_.set_call(mrd->call_);
ctx_.cq_ = &cq_;
GPR_ASSERT(mrd->in_flight_);
mrd->in_flight_ = false;
@@ -325,7 +325,7 @@ bool Server::BaseAsyncRequest::FinalizeResult(void** tag, bool* status) {
}
}
grpc_metadata_array_destroy(&initial_metadata_array_);
- context_->call_ = call_;
+ context_->set_call(call_);
context_->cq_ = call_cq_;
Call call(call_, server_, call_cq_, server_->max_message_size_);
if (*status && call_) {
diff --git a/src/cpp/server/server_context.cc b/src/cpp/server/server_context.cc
index 357d1a5a02..1bb3a8bcc4 100644
--- a/src/cpp/server/server_context.cc
+++ b/src/cpp/server/server_context.cc
@@ -148,8 +148,9 @@ bool ServerContext::IsCancelled() {
return completion_op_ && completion_op_->CheckCancelled(cq_);
}
-std::unique_ptr<const AuthContext> ServerContext::auth_context() const {
- return CreateAuthContext(call_);
+void ServerContext::set_call(grpc_call* call) {
+ call_ = call;
+ auth_context_ = CreateAuthContext(call);
}
} // namespace grpc