1 /*
2  *
3  * Copyright 2015 gRPC authors.
4  *
5  * Licensed under the Apache License, Version 2.0 (the "License");
6  * you may not use this file except in compliance with the License.
7  * You may obtain a copy of the License at
8  *
9  *     http://www.apache.org/licenses/LICENSE-2.0
10  *
11  * Unless required by applicable law or agreed to in writing, software
12  * distributed under the License is distributed on an "AS IS" BASIS,
13  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14  * See the License for the specific language governing permissions and
15  * limitations under the License.
16  *
17  */
18 
19 #include <grpcpp/security/credentials.h>
20 
21 #include <grpc/grpc.h>
22 #include <grpc/support/log.h>
23 #include <grpcpp/channel.h>
24 #include <grpcpp/support/channel_arguments.h>
25 #include <grpcpp/support/config.h>
26 #include "src/cpp/client/create_channel_internal.h"
27 
28 namespace grpc {
29 
30 namespace {
31 class InsecureChannelCredentialsImpl final : public ChannelCredentials {
32  public:
CreateChannel(const string & target,const grpc::ChannelArguments & args)33   std::shared_ptr<grpc::Channel> CreateChannel(
34       const string& target, const grpc::ChannelArguments& args) override {
35     grpc_channel_args channel_args;
36     args.SetChannelArgs(&channel_args);
37     return CreateChannelInternal(
38         "",
39         grpc_insecure_channel_create(target.c_str(), &channel_args, nullptr));
40   }
41 
AsSecureCredentials()42   SecureChannelCredentials* AsSecureCredentials() override { return nullptr; }
43 };
44 }  // namespace
45 
InsecureChannelCredentials()46 std::shared_ptr<ChannelCredentials> InsecureChannelCredentials() {
47   return std::shared_ptr<ChannelCredentials>(
48       new InsecureChannelCredentialsImpl());
49 }
50 
51 }  // namespace grpc
52