Skip to content

Commit bf10c82

Browse files
committed
implement support for adding external fd to server
1 parent 4023382 commit bf10c82

File tree

22 files changed

+55
-54
lines changed

22 files changed

+55
-54
lines changed

BUILD

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ cc_library(
462462
"src/core/ext/client_config/subchannel_index.c",
463463
"src/core/ext/client_config/uri_parser.c",
464464
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
465+
"src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c",
465466
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
466467
"src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c",
467468
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",
@@ -1086,6 +1087,7 @@ cc_library(
10861087
"src/core/lib/transport/transport.c",
10871088
"src/core/lib/transport/transport_op_string.c",
10881089
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
1090+
"src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c",
10891091
"src/core/ext/transport/chttp2/transport/bin_encoder.c",
10901092
"src/core/ext/transport/chttp2/transport/chttp2_plugin.c",
10911093
"src/core/ext/transport/chttp2/transport/chttp2_transport.c",
@@ -1844,6 +1846,7 @@ objc_library(
18441846
"src/core/ext/client_config/subchannel_index.c",
18451847
"src/core/ext/client_config/uri_parser.c",
18461848
"src/core/ext/transport/chttp2/server/insecure/server_chttp2.c",
1849+
"src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c",
18471850
"src/core/ext/transport/chttp2/client/insecure/channel_create.c",
18481851
"src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c",
18491852
"src/core/ext/lb_policy/grpclb/load_balancer_api.c",

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2634,6 +2634,7 @@ LIBGRPC_SRC = \
26342634
src/core/ext/client_config/subchannel_index.c \
26352635
src/core/ext/client_config/uri_parser.c \
26362636
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
2637+
src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c \
26372638
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
26382639
src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c \
26392640
src/core/ext/lb_policy/grpclb/load_balancer_api.c \
@@ -3164,6 +3165,7 @@ LIBGRPC_UNSECURE_SRC = \
31643165
src/core/lib/transport/transport.c \
31653166
src/core/lib/transport/transport_op_string.c \
31663167
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
3168+
src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c \
31673169
src/core/ext/transport/chttp2/transport/bin_encoder.c \
31683170
src/core/ext/transport/chttp2/transport/chttp2_plugin.c \
31693171
src/core/ext/transport/chttp2/transport/chttp2_transport.c \

binding.gyp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -718,6 +718,7 @@
718718
'src/core/ext/client_config/subchannel_index.c',
719719
'src/core/ext/client_config/uri_parser.c',
720720
'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
721+
'src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c',
721722
'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
722723
'src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c',
723724
'src/core/ext/lb_policy/grpclb/load_balancer_api.c',

build.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -578,6 +578,7 @@ filegroups:
578578
- name: grpc_transport_chttp2_server_insecure
579579
src:
580580
- src/core/ext/transport/chttp2/server/insecure/server_chttp2.c
581+
- src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c
581582
uses:
582583
- grpc_transport_chttp2
583584
- grpc_base

config.m4

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -237,6 +237,7 @@ if test "$PHP_GRPC" != "no"; then
237237
src/core/ext/client_config/subchannel_index.c \
238238
src/core/ext/client_config/uri_parser.c \
239239
src/core/ext/transport/chttp2/server/insecure/server_chttp2.c \
240+
src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c \
240241
src/core/ext/transport/chttp2/client/insecure/channel_create.c \
241242
src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c \
242243
src/core/ext/lb_policy/grpclb/load_balancer_api.c \

gRPC.podspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -499,6 +499,7 @@ Pod::Spec.new do |s|
499499
'src/core/ext/client_config/subchannel_index.c',
500500
'src/core/ext/client_config/uri_parser.c',
501501
'src/core/ext/transport/chttp2/server/insecure/server_chttp2.c',
502+
'src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c',
502503
'src/core/ext/transport/chttp2/client/insecure/channel_create.c',
503504
'src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c',
504505
'src/core/ext/lb_policy/grpclb/load_balancer_api.c',

grpc.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,6 @@ EXPORTS
6767
grpc_census_call_get_context
6868
grpc_channel_get_target
6969
grpc_insecure_channel_create
70-
grpc_insecure_channel_create_from_fd
7170
grpc_lame_client_channel_create
7271
grpc_channel_destroy
7372
grpc_call_cancel
@@ -90,6 +89,7 @@ EXPORTS
9089
grpc_is_binary_header
9190
grpc_call_error_to_string
9291
grpc_insecure_channel_create_from_fd
92+
grpc_server_add_insecure_channel_from_fd
9393
grpc_auth_property_iterator_next
9494
grpc_auth_context_property_iterator
9595
grpc_auth_context_peer_identity

grpc.gemspec

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,6 +478,7 @@ Gem::Specification.new do |s|
478478
s.files += %w( src/core/ext/client_config/subchannel_index.c )
479479
s.files += %w( src/core/ext/client_config/uri_parser.c )
480480
s.files += %w( src/core/ext/transport/chttp2/server/insecure/server_chttp2.c )
481+
s.files += %w( src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c )
481482
s.files += %w( src/core/ext/transport/chttp2/client/insecure/channel_create.c )
482483
s.files += %w( src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c )
483484
s.files += %w( src/core/ext/lb_policy/grpclb/load_balancer_api.c )

package.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -485,6 +485,7 @@
485485
<file baseinstalldir="/" name="src/core/ext/client_config/subchannel_index.c" role="src" />
486486
<file baseinstalldir="/" name="src/core/ext/client_config/uri_parser.c" role="src" />
487487
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/server/insecure/server_chttp2.c" role="src" />
488+
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c" role="src" />
488489
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/insecure/channel_create.c" role="src" />
489490
<file baseinstalldir="/" name="src/core/ext/transport/chttp2/client/insecure/channel_create_posix.c" role="src" />
490491
<file baseinstalldir="/" name="src/core/ext/lb_policy/grpclb/load_balancer_api.c" role="src" />

src/core/ext/transport/chttp2/server/insecure/server_chttp2_posix.c

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@
3737

3838
#include <grpc/grpc.h>
3939
#include <grpc/grpc_posix.h>
40+
#include <grpc/support/string_util.h>
41+
42+
#include "src/core/ext/transport/chttp2/transport/chttp2_transport.h"
43+
#include "src/core/lib/channel/channel_args.h"
44+
#include "src/core/lib/iomgr/endpoint.h"
45+
#include "src/core/lib/iomgr/exec_ctx.h"
46+
#include "src/core/lib/iomgr/tcp_posix.h"
47+
#include "src/core/lib/surface/server.h"
4048

4149
void grpc_server_add_insecure_channel_from_fd(grpc_server *server, int fd) {
4250
grpc_exec_ctx exec_ctx = GRPC_EXEC_CTX_INIT;
@@ -46,12 +54,12 @@ void grpc_server_add_insecure_channel_from_fd(grpc_server *server, int fd) {
4654
grpc_endpoint *server_endpoint = grpc_tcp_create(
4755
grpc_fd_create(fd, name), GRPC_TCP_DEFAULT_READ_SLICE_SIZE, name);
4856

49-
grpc_channel_args *server_args = grpc_server_get_channel_args(server);
57+
const grpc_channel_args *server_args = grpc_server_get_channel_args(server);
5058
grpc_transport *transport = grpc_create_chttp2_transport(
5159
&exec_ctx, server_args, server_endpoint, 0 /* is_client */);
5260
grpc_server_setup_transport(&exec_ctx, server, transport, server_args);
53-
54-
61+
grpc_chttp2_transport_start_reading(&exec_ctx, transport, NULL, 0);
62+
grpc_exec_ctx_finish(&exec_ctx);
5563
}
5664

5765

0 commit comments

Comments
 (0)