aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/compiler/cpp_generator.cc15
-rw-r--r--src/core/ext/client_channel/resolver_registry.h4
-rw-r--r--src/core/lib/iomgr/resource_quota.c5
-rw-r--r--src/core/lib/iomgr/resource_quota.h6
-rw-r--r--src/cpp/common/channel_arguments.cc8
-rw-r--r--src/python/grpcio/grpc/__init__.py23
-rw-r--r--src/python/grpcio_tests/tests/http2/negative_http2_client.py (renamed from src/python/grpcio_tests/tests/http2/_negative_http2_client.py)11
7 files changed, 48 insertions, 24 deletions
diff --git a/src/compiler/cpp_generator.cc b/src/compiler/cpp_generator.cc
index a26eeb46b9..e481aaf811 100644
--- a/src/compiler/cpp_generator.cc
+++ b/src/compiler/cpp_generator.cc
@@ -1218,13 +1218,15 @@ void PrintSourceService(Printer *printer, const Service *service,
std::map<grpc::string, grpc::string> *vars) {
(*vars)["Service"] = service->name();
- printer->Print(*vars,
- "static const char* $prefix$$Service$_method_names[] = {\n");
- for (int i = 0; i < service->method_count(); ++i) {
- (*vars)["Method"] = service->method(i).get()->name();
- printer->Print(*vars, " \"/$Package$$Service$/$Method$\",\n");
+ if (service->method_count() > 0) {
+ printer->Print(*vars,
+ "static const char* $prefix$$Service$_method_names[] = {\n");
+ for (int i = 0; i < service->method_count(); ++i) {
+ (*vars)["Method"] = service->method(i).get()->name();
+ printer->Print(*vars, " \"/$Package$$Service$/$Method$\",\n");
+ }
+ printer->Print(*vars, "};\n\n");
}
- printer->Print(*vars, "};\n\n");
printer->Print(*vars,
"std::unique_ptr< $ns$$Service$::Stub> $ns$$Service$::NewStub("
@@ -1272,7 +1274,6 @@ void PrintSourceService(Printer *printer, const Service *service,
printer->Print(*vars, "$ns$$Service$::Service::Service() {\n");
printer->Indent();
- printer->Print(*vars, "(void)$prefix$$Service$_method_names;\n");
for (int i = 0; i < service->method_count(); ++i) {
auto method = service->method(i);
(*vars)["Idx"] = as_string(i);
diff --git a/src/core/ext/client_channel/resolver_registry.h b/src/core/ext/client_channel/resolver_registry.h
index 4fb16131db..a4606463eb 100644
--- a/src/core/ext/client_channel/resolver_registry.h
+++ b/src/core/ext/client_channel/resolver_registry.h
@@ -60,7 +60,9 @@ void grpc_register_resolver_type(grpc_resolver_factory *factory);
return it.
If a resolver factory was not found, return NULL.
\a args is a set of channel arguments to be included in the result
- (typically the set of arguments passed in from the client API). */
+ (typically the set of arguments passed in from the client API).
+ \a pollset_set is used to drive IO in the name resolution process, it
+ should not be NULL. */
grpc_resolver *grpc_resolver_create(grpc_exec_ctx *exec_ctx, const char *target,
const grpc_channel_args *args,
grpc_pollset_set *pollset_set);
diff --git a/src/core/lib/iomgr/resource_quota.c b/src/core/lib/iomgr/resource_quota.c
index 21aa05e57a..41ea609c73 100644
--- a/src/core/lib/iomgr/resource_quota.c
+++ b/src/core/lib/iomgr/resource_quota.c
@@ -695,6 +695,11 @@ grpc_resource_user *grpc_resource_user_create(
return resource_user;
}
+grpc_resource_quota *grpc_resource_user_quota(
+ grpc_resource_user *resource_user) {
+ return resource_user->resource_quota;
+}
+
static void ru_ref_by(grpc_resource_user *resource_user, gpr_atm amount) {
GPR_ASSERT(amount > 0);
GPR_ASSERT(gpr_atm_no_barrier_fetch_add(&resource_user->refs, amount) != 0);
diff --git a/src/core/lib/iomgr/resource_quota.h b/src/core/lib/iomgr/resource_quota.h
index ef286c2fce..d1127ce9ea 100644
--- a/src/core/lib/iomgr/resource_quota.h
+++ b/src/core/lib/iomgr/resource_quota.h
@@ -88,6 +88,12 @@ typedef struct grpc_resource_user grpc_resource_user;
grpc_resource_user *grpc_resource_user_create(
grpc_resource_quota *resource_quota, const char *name);
+
+/* Returns a borrowed reference to the underlying resource quota for this
+ resource user. */
+grpc_resource_quota *grpc_resource_user_quota(
+ grpc_resource_user *resource_user);
+
void grpc_resource_user_ref(grpc_resource_user *resource_user);
void grpc_resource_user_unref(grpc_exec_ctx *exec_ctx,
grpc_resource_user *resource_user);
diff --git a/src/cpp/common/channel_arguments.cc b/src/cpp/common/channel_arguments.cc
index 1fdd106130..65f3277499 100644
--- a/src/cpp/common/channel_arguments.cc
+++ b/src/cpp/common/channel_arguments.cc
@@ -143,6 +143,14 @@ void ChannelArguments::SetResourceQuota(
grpc_resource_quota_arg_vtable());
}
+void ChannelArguments::SetMaxReceiveMessageSize(int size) {
+ SetInt(GRPC_ARG_MAX_RECEIVE_MESSAGE_LENGTH, size);
+}
+
+void ChannelArguments::SetMaxSendMessageSize(int size) {
+ SetInt(GRPC_ARG_MAX_SEND_MESSAGE_LENGTH, size);
+}
+
void ChannelArguments::SetLoadBalancingPolicyName(
const grpc::string& lb_policy_name) {
SetString(GRPC_ARG_LB_POLICY_NAME, lb_policy_name);
diff --git a/src/python/grpcio/grpc/__init__.py b/src/python/grpcio/grpc/__init__.py
index abe14e7049..fe29971799 100644
--- a/src/python/grpcio/grpc/__init__.py
+++ b/src/python/grpcio/grpc/__init__.py
@@ -487,9 +487,9 @@ class UnaryUnaryMultiCallable(six.with_metaclass(abc.ABCMeta)):
Returns:
An object that is both a Call for the RPC and a Future. In the event of
- RPC completion, the return Future's result value will be the response
- message of the RPC. Should the event terminate with non-OK status, the
- returned Future's exception value will be an RpcError.
+ RPC completion, the return Call-Future's result value will be the
+ response message of the RPC. Should the event terminate with non-OK
+ status, the returned Call-Future's exception value will be an RpcError.
"""
raise NotImplementedError()
@@ -510,8 +510,8 @@ class UnaryStreamMultiCallable(six.with_metaclass(abc.ABCMeta)):
Returns:
An object that is both a Call for the RPC and an iterator of response
- values. Drawing response values from the returned iterator may raise
- RpcError indicating termination of the RPC with non-OK status.
+ values. Drawing response values from the returned Call-iterator may
+ raise RpcError indicating termination of the RPC with non-OK status.
"""
raise NotImplementedError()
@@ -535,8 +535,7 @@ class StreamUnaryMultiCallable(six.with_metaclass(abc.ABCMeta)):
credentials: An optional CallCredentials for the RPC.
Returns:
- The response value for the RPC, and a Call for the RPC if with_call was
- set to True at invocation.
+ The response value for the RPC.
Raises:
RpcError: Indicating that the RPC terminated with non-OK status. The
@@ -587,9 +586,9 @@ class StreamUnaryMultiCallable(six.with_metaclass(abc.ABCMeta)):
Returns:
An object that is both a Call for the RPC and a Future. In the event of
- RPC completion, the return Future's result value will be the response
- message of the RPC. Should the event terminate with non-OK status, the
- returned Future's exception value will be an RpcError.
+ RPC completion, the return Call-Future's result value will be the
+ response message of the RPC. Should the event terminate with non-OK
+ status, the returned Call-Future's exception value will be an RpcError.
"""
raise NotImplementedError()
@@ -614,8 +613,8 @@ class StreamStreamMultiCallable(six.with_metaclass(abc.ABCMeta)):
Returns:
An object that is both a Call for the RPC and an iterator of response
- values. Drawing response values from the returned iterator may raise
- RpcError indicating termination of the RPC with non-OK status.
+ values. Drawing response values from the returned Call-iterator may
+ raise RpcError indicating termination of the RPC with non-OK status.
"""
raise NotImplementedError()
diff --git a/src/python/grpcio_tests/tests/http2/_negative_http2_client.py b/src/python/grpcio_tests/tests/http2/negative_http2_client.py
index c192d827c4..b8adf093a5 100644
--- a/src/python/grpcio_tests/tests/http2/_negative_http2_client.py
+++ b/src/python/grpcio_tests/tests/http2/negative_http2_client.py
@@ -82,20 +82,22 @@ def _goaway(stub):
def _rst_after_header(stub):
resp_future = stub.UnaryCall.future(_SIMPLE_REQUEST)
- _validate_status_code_and_details(resp_future, grpc.StatusCode.UNAVAILABLE,
- "")
+ _validate_status_code_and_details(resp_future, grpc.StatusCode.INTERNAL,
+ "Received RST_STREAM with error code 0")
def _rst_during_data(stub):
resp_future = stub.UnaryCall.future(_SIMPLE_REQUEST)
- _validate_status_code_and_details(resp_future, grpc.StatusCode.UNKNOWN, "")
+ _validate_status_code_and_details(resp_future, grpc.StatusCode.INTERNAL,
+ "Received RST_STREAM with error code 0")
def _rst_after_data(stub):
resp_future = stub.UnaryCall.future(_SIMPLE_REQUEST)
_validate_payload_type_and_length(
next(resp_future), messages_pb2.COMPRESSABLE, _RESPONSE_SIZE)
- _validate_status_code_and_details(resp_future, grpc.StatusCode.UNKNOWN, "")
+ _validate_status_code_and_details(resp_future, grpc.StatusCode.INTERNAL,
+ "Received RST_STREAM with error code 0")
def _ping(stub):
@@ -159,6 +161,7 @@ def _args():
def _stub(server_host, server_port):
target = '{}:{}'.format(server_host, server_port)
channel = grpc.insecure_channel(target)
+ grpc.channel_ready_future(channel).result()
return test_pb2.TestServiceStub(channel)