diff options
author | Craig Tiller <ctiller@google.com> | 2015-06-05 07:09:56 -0700 |
---|---|---|
committer | Craig Tiller <ctiller@google.com> | 2015-06-05 07:09:56 -0700 |
commit | 2c42ef3eb3cca8261d7ea466b8254441f8414b02 (patch) | |
tree | ddf126ce730e7644786cd956e6705c56243ec300 /src/core | |
parent | 8674cb10eb1c8f02de5ad36aaa6bd4d7638de384 (diff) | |
parent | b15d37a3c8382d156bae89466d2cef32d668253e (diff) |
Merge github.com:grpc/grpc into we-dont-need-no-backup
Diffstat (limited to 'src/core')
42 files changed, 74 insertions, 44 deletions
diff --git a/src/core/channel/channel_args.c b/src/core/channel/channel_args.c index 509ae0df89..1b0e33b123 100644 --- a/src/core/channel/channel_args.c +++ b/src/core/channel/channel_args.c @@ -36,6 +36,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> +#include <grpc/support/string_util.h> #include <string.h> diff --git a/src/core/debug/trace.c b/src/core/debug/trace.c index 32c35e7fb3..b53dfe804b 100644 --- a/src/core/debug/trace.c +++ b/src/core/debug/trace.c @@ -35,6 +35,7 @@ #include <string.h> +#include <grpc/grpc.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include "src/core/support/env.h" @@ -80,27 +81,10 @@ static void parse(const char *s) { char **strings = NULL; size_t nstrings = 0; size_t i; - tracer *t; split(s, &strings, &nstrings); for (i = 0; i < nstrings; i++) { - const char *s = strings[i]; - if (0 == strcmp(s, "all")) { - for (t = tracers; t; t = t->next) { - *t->flag = 1; - } - } else { - int found = 0; - for (t = tracers; t; t = t->next) { - if (0 == strcmp(s, t->name)) { - *t->flag = 1; - found = 1; - } - } - if (!found) { - gpr_log(GPR_ERROR, "Unknown trace var: '%s'", s); - } - } + grpc_tracer_set_enabled(strings[i], 1); } for (i = 0; i < nstrings; i++) { @@ -115,9 +99,34 @@ void grpc_tracer_init(const char *env_var) { parse(e); gpr_free(e); } +} + +void grpc_tracer_shutdown(void) { while (tracers) { tracer *t = tracers; tracers = t->next; gpr_free(t); } } + +int grpc_tracer_set_enabled(const char *name, int enabled) { + tracer *t; + if (0 == strcmp(name, "all")) { + for (t = tracers; t; t = t->next) { + *t->flag = 1; + } + } else { + int found = 0; + for (t = tracers; t; t = t->next) { + if (0 == strcmp(name, t->name)) { + *t->flag = enabled; + found = 1; + } + } + if (!found) { + gpr_log(GPR_ERROR, "Unknown trace var: '%s'", name); + return 0; /* early return */ + } + } + return 1; +} diff --git a/src/core/debug/trace.h b/src/core/debug/trace.h index c02f14b7f2..fc8615bc69 100644 --- a/src/core/debug/trace.h +++ b/src/core/debug/trace.h @@ -38,5 +38,6 @@ void grpc_register_tracer(const char *name, int *flag); void grpc_tracer_init(const char *env_var_name); +void grpc_tracer_shutdown(void); #endif /* GRPC_INTERNAL_CORE_DEBUG_TRACE_H */ diff --git a/src/core/httpcli/format_request.c b/src/core/httpcli/format_request.c index af25219084..e875423e87 100644 --- a/src/core/httpcli/format_request.c +++ b/src/core/httpcli/format_request.c @@ -40,6 +40,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/slice.h> +#include <grpc/support/string_util.h> #include <grpc/support/useful.h> static void fill_common_header(const grpc_httpcli_request *request, gpr_strvec *buf) { diff --git a/src/core/httpcli/httpcli.c b/src/core/httpcli/httpcli.c index d39bcfe55d..1a1bebe9bb 100644 --- a/src/core/httpcli/httpcli.c +++ b/src/core/httpcli/httpcli.c @@ -46,6 +46,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> typedef struct { gpr_slice request_text; diff --git a/src/core/httpcli/httpcli_security_connector.c b/src/core/httpcli/httpcli_security_connector.c index 6eed5eaf12..ce0d3d5a70 100644 --- a/src/core/httpcli/httpcli_security_connector.c +++ b/src/core/httpcli/httpcli_security_connector.c @@ -39,6 +39,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/tsi/ssl_transport_security.h" typedef struct { diff --git a/src/core/iomgr/endpoint_pair_posix.c b/src/core/iomgr/endpoint_pair_posix.c index 9b3b63f1e7..fa2d2555d6 100644 --- a/src/core/iomgr/endpoint_pair_posix.c +++ b/src/core/iomgr/endpoint_pair_posix.c @@ -47,6 +47,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> static void create_sockets(int sv[2]) { int flags; diff --git a/src/core/iomgr/iomgr.c b/src/core/iomgr/iomgr.c index d2c092b450..c47528aa94 100644 --- a/src/core/iomgr/iomgr.c +++ b/src/core/iomgr/iomgr.c @@ -40,8 +40,9 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> -#include <grpc/support/thd.h> +#include <grpc/support/string_util.h> #include <grpc/support/sync.h> +#include <grpc/support/thd.h> static gpr_mu g_mu; static gpr_cv g_rcv; diff --git a/src/core/iomgr/resolve_address_posix.c b/src/core/iomgr/resolve_address_posix.c index fcf48fe0d7..20d8c58eb4 100644 --- a/src/core/iomgr/resolve_address_posix.c +++ b/src/core/iomgr/resolve_address_posix.c @@ -47,6 +47,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/host_port.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> diff --git a/src/core/iomgr/resolve_address_windows.c b/src/core/iomgr/resolve_address_windows.c index 7d0d2f9e7a..fb5fd0d4f6 100644 --- a/src/core/iomgr/resolve_address_windows.c +++ b/src/core/iomgr/resolve_address_windows.c @@ -46,6 +46,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/host_port.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <grpc/support/thd.h> #include <grpc/support/time.h> @@ -134,9 +135,9 @@ static void do_request(void *rp) { grpc_resolve_cb cb = r->cb; gpr_free(r->name); gpr_free(r->default_port); + grpc_iomgr_unregister_object(&r->iomgr_object); gpr_free(r); cb(arg, resolved); - grpc_iomgr_unregister_object(&r->iomgr_object); } void grpc_resolved_addresses_destroy(grpc_resolved_addresses *addrs) { diff --git a/src/core/iomgr/sockaddr_utils.c b/src/core/iomgr/sockaddr_utils.c index 3d202a5cc8..e91b94f8c8 100644 --- a/src/core/iomgr/sockaddr_utils.c +++ b/src/core/iomgr/sockaddr_utils.c @@ -40,6 +40,7 @@ #include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/port_platform.h> +#include <grpc/support/string_util.h> static const gpr_uint8 kV4MappedPrefix[] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff}; diff --git a/src/core/iomgr/socket_windows.c b/src/core/iomgr/socket_windows.c index e4ba0a2b66..fbf3fdc949 100644 --- a/src/core/iomgr/socket_windows.c +++ b/src/core/iomgr/socket_windows.c @@ -85,13 +85,13 @@ int grpc_winsocket_shutdown(grpc_winsocket *socket) { both memory and sockets. */ void grpc_winsocket_orphan(grpc_winsocket *winsocket) { SOCKET socket = winsocket->socket; + grpc_iomgr_unregister_object(&winsocket->iomgr_object); if (winsocket->read_info.outstanding || winsocket->write_info.outstanding) { grpc_iocp_socket_orphan(winsocket); } else { grpc_winsocket_destroy(winsocket); } closesocket(socket); - grpc_iomgr_unregister_object(&winsocket->iomgr_object); } void grpc_winsocket_destroy(grpc_winsocket *winsocket) { diff --git a/src/core/iomgr/tcp_client_posix.c b/src/core/iomgr/tcp_client_posix.c index df6203b70c..bbf7711588 100644 --- a/src/core/iomgr/tcp_client_posix.c +++ b/src/core/iomgr/tcp_client_posix.c @@ -51,6 +51,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <grpc/support/time.h> typedef struct { diff --git a/src/core/iomgr/tcp_server_posix.c b/src/core/iomgr/tcp_server_posix.c index 713abc6db3..2ac35f863a 100644 --- a/src/core/iomgr/tcp_server_posix.c +++ b/src/core/iomgr/tcp_server_posix.c @@ -63,6 +63,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/time.h> diff --git a/src/core/iomgr/tcp_server_windows.c b/src/core/iomgr/tcp_server_windows.c index 9ef369dfd8..d70968de88 100644 --- a/src/core/iomgr/tcp_server_windows.c +++ b/src/core/iomgr/tcp_server_windows.c @@ -41,6 +41,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> #include <grpc/support/log_win32.h> +#include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/time.h> diff --git a/src/core/iomgr/tcp_windows.c b/src/core/iomgr/tcp_windows.c index 3341f558a3..12dac03080 100644 --- a/src/core/iomgr/tcp_windows.c +++ b/src/core/iomgr/tcp_windows.c @@ -41,6 +41,7 @@ #include <grpc/support/log.h> #include <grpc/support/log_win32.h> #include <grpc/support/slice_buffer.h> +#include <grpc/support/string_util.h> #include <grpc/support/useful.h> #include "src/core/iomgr/alarm.h" diff --git a/src/core/security/client_auth_filter.c b/src/core/security/client_auth_filter.c index 5ef635a262..d11706ece0 100644 --- a/src/core/security/client_auth_filter.c +++ b/src/core/security/client_auth_filter.c @@ -37,6 +37,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/support/string.h" #include "src/core/channel/channel_stack.h" diff --git a/src/core/security/credentials.c b/src/core/security/credentials.c index 7fc3f003fd..cf663faf2d 100644 --- a/src/core/security/credentials.c +++ b/src/core/security/credentials.c @@ -46,6 +46,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/time.h> diff --git a/src/core/security/credentials_posix.c b/src/core/security/credentials_posix.c index 79622cb024..20f67a7f14 100644 --- a/src/core/security/credentials_posix.c +++ b/src/core/security/credentials_posix.c @@ -39,6 +39,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/support/env.h" #include "src/core/support/string.h" diff --git a/src/core/security/credentials_win32.c b/src/core/security/credentials_win32.c index ddb310468b..92dfd9bdfe 100644 --- a/src/core/security/credentials_win32.c +++ b/src/core/security/credentials_win32.c @@ -39,6 +39,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/support/env.h" #include "src/core/support/string.h" diff --git a/src/core/security/json_token.c b/src/core/security/json_token.c index eadae33609..6116f1d767 100644 --- a/src/core/security/json_token.c +++ b/src/core/security/json_token.c @@ -37,6 +37,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/security/base64.h" #include "src/core/support/string.h" diff --git a/src/core/security/security_connector.c b/src/core/security/security_connector.c index 11505f8cb0..4098636a2e 100644 --- a/src/core/security/security_connector.c +++ b/src/core/security/security_connector.c @@ -47,6 +47,7 @@ #include <grpc/support/host_port.h> #include <grpc/support/log.h> #include <grpc/support/slice_buffer.h> +#include <grpc/support/string_util.h> #include "src/core/tsi/fake_transport_security.h" #include "src/core/tsi/ssl_transport_security.h" diff --git a/src/core/security/security_context.c b/src/core/security/security_context.c index 14c194c8f6..9aba1e7f91 100644 --- a/src/core/security/security_context.c +++ b/src/core/security/security_context.c @@ -40,6 +40,7 @@ #include <grpc/grpc_security.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> /* --- grpc_call --- */ diff --git a/src/core/security/server_auth_filter.c b/src/core/security/server_auth_filter.c index 1823f75808..b19160b8ed 100644 --- a/src/core/security/server_auth_filter.c +++ b/src/core/security/server_auth_filter.c @@ -78,7 +78,6 @@ static void init_call_elem(grpc_call_element *elem, calld->unused = 0; GPR_ASSERT(initial_op && initial_op->context != NULL && - chand->security_connector->auth_context != NULL && initial_op->context[GRPC_CONTEXT_SECURITY].value == NULL); /* Create a security context for the call and reference the auth context from diff --git a/src/core/support/cmdline.c b/src/core/support/cmdline.c index 530952c437..4baad85040 100644 --- a/src/core/support/cmdline.c +++ b/src/core/support/cmdline.c @@ -40,6 +40,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> typedef enum { ARGTYPE_INT, ARGTYPE_BOOL, ARGTYPE_STRING } argtype; diff --git a/src/core/support/env_linux.c b/src/core/support/env_linux.c index bdadfb6ca4..2e03365e33 100644 --- a/src/core/support/env_linux.c +++ b/src/core/support/env_linux.c @@ -45,6 +45,7 @@ #include <stdlib.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/support/string.h" diff --git a/src/core/support/env_posix.c b/src/core/support/env_posix.c index 45f89b6737..1dd2af56bc 100644 --- a/src/core/support/env_posix.c +++ b/src/core/support/env_posix.c @@ -42,6 +42,7 @@ #include <grpc/support/log.h> #include "src/core/support/string.h" +#include <grpc/support/string_util.h> char *gpr_getenv(const char *name) { char *result = getenv(name); diff --git a/src/core/support/env_win32.c b/src/core/support/env_win32.c index 9b4cd698ad..6b1ff102b0 100644 --- a/src/core/support/env_win32.c +++ b/src/core/support/env_win32.c @@ -42,6 +42,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> char *gpr_getenv(const char *name) { size_t size; diff --git a/src/core/support/file.c b/src/core/support/file.c index 3a4ac6f2f0..8ce7a67fb1 100644 --- a/src/core/support/file.c +++ b/src/core/support/file.c @@ -38,6 +38,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/support/string.h" diff --git a/src/core/support/file_posix.c b/src/core/support/file_posix.c index 11a459ad36..c11c07148a 100644 --- a/src/core/support/file_posix.c +++ b/src/core/support/file_posix.c @@ -44,6 +44,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/support/string.h" diff --git a/src/core/support/file_win32.c b/src/core/support/file_win32.c index f59d3af397..355744f79a 100644 --- a/src/core/support/file_win32.c +++ b/src/core/support/file_win32.c @@ -42,6 +42,7 @@ #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include "src/core/support/file.h" #include "src/core/support/string_win32.h" diff --git a/src/core/support/host_port.c b/src/core/support/host_port.c index fa49f1a33a..53669f063b 100644 --- a/src/core/support/host_port.c +++ b/src/core/support/host_port.c @@ -38,6 +38,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> int gpr_join_host_port(char **out, const char *host, int port) { if (host[0] != '[' && strchr(host, ':') != NULL) { diff --git a/src/core/support/string.h b/src/core/support/string.h index faf3342708..31e9fcb5e9 100644 --- a/src/core/support/string.h +++ b/src/core/support/string.h @@ -44,10 +44,6 @@ extern "C" { /* String utility functions */ -/* Returns a copy of src that can be passed to gpr_free(). - If allocation fails or if src is NULL, returns NULL. */ -char *gpr_strdup(const char *src); - /* flag to include plaintext after a hexdump */ #define GPR_HEXDUMP_PLAINTEXT 0x00000001 @@ -71,16 +67,6 @@ int gpr_ltoa(long value, char *output); /* Reverse a run of bytes */ void gpr_reverse_bytes(char *str, int len); -/* printf to a newly-allocated string. The set of supported formats may vary - between platforms. - - On success, returns the number of bytes printed (excluding the final '\0'), - and *strp points to a string which must later be destroyed with gpr_free(). - - On error, returns -1 and sets *strp to NULL. If the format string is bad, - the result is undefined. */ -int gpr_asprintf(char **strp, const char *format, ...); - /* Join a set of strings, returning the resulting string. Total combined length (excluding null terminator) is returned in total_length if it is non-null. */ diff --git a/src/core/surface/byte_buffer_reader.c b/src/core/surface/byte_buffer_reader.c index fd5289bac3..41ad700274 100644 --- a/src/core/surface/byte_buffer_reader.c +++ b/src/core/surface/byte_buffer_reader.c @@ -39,15 +39,18 @@ #include <grpc/support/slice_buffer.h> #include <grpc/byte_buffer.h> -grpc_byte_buffer_reader *grpc_byte_buffer_reader_create( - grpc_byte_buffer *buffer) { - grpc_byte_buffer_reader *reader = malloc(sizeof(grpc_byte_buffer_reader)); +void grpc_byte_buffer_reader_init(grpc_byte_buffer_reader *reader, + grpc_byte_buffer *buffer) { reader->buffer = buffer; switch (buffer->type) { case GRPC_BB_SLICE_BUFFER: reader->current.index = 0; } - return reader; +} + +void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader) { + /* no-op: the user is responsible for memory deallocation. + * Other cleanup operations would go here if needed. */ } int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader, @@ -68,7 +71,3 @@ int grpc_byte_buffer_reader_next(grpc_byte_buffer_reader *reader, } return 0; } - -void grpc_byte_buffer_reader_destroy(grpc_byte_buffer_reader *reader) { - free(reader); -} diff --git a/src/core/surface/call.c b/src/core/surface/call.c index 2d651be6a5..84a77c45c4 100644 --- a/src/core/surface/call.c +++ b/src/core/surface/call.c @@ -42,6 +42,7 @@ #include "src/core/surface/completion_queue.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <assert.h> #include <stdio.h> diff --git a/src/core/surface/call_log_batch.c b/src/core/surface/call_log_batch.c index 9905401bee..55663298c9 100644 --- a/src/core/surface/call_log_batch.c +++ b/src/core/surface/call_log_batch.c @@ -35,6 +35,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> +#include <grpc/support/string_util.h> int grpc_trace_batch = 0; diff --git a/src/core/surface/channel_create.c b/src/core/surface/channel_create.c index d137ce12ac..d069a04a9a 100644 --- a/src/core/surface/channel_create.c +++ b/src/core/surface/channel_create.c @@ -53,6 +53,7 @@ #include "src/core/transport/chttp2_transport.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/useful.h> diff --git a/src/core/surface/event_string.c b/src/core/surface/event_string.c index 448bb1162b..33cd4a43aa 100644 --- a/src/core/surface/event_string.c +++ b/src/core/surface/event_string.c @@ -37,6 +37,7 @@ #include "src/core/support/string.h" #include <grpc/byte_buffer.h> +#include <grpc/support/string_util.h> static void addhdr(gpr_strvec *buf, grpc_event *ev) { char *tmp; diff --git a/src/core/surface/init.c b/src/core/surface/init.c index ac6871c6f2..ca61a38a35 100644 --- a/src/core/surface/init.c +++ b/src/core/surface/init.c @@ -78,6 +78,7 @@ void grpc_shutdown(void) { grpc_iomgr_shutdown(); census_shutdown(); grpc_timers_global_destroy(); + grpc_tracer_shutdown(); } gpr_mu_unlock(&g_init_mu); } diff --git a/src/core/surface/secure_channel_create.c b/src/core/surface/secure_channel_create.c index 4854ec9ded..fae3e4e90a 100644 --- a/src/core/surface/secure_channel_create.c +++ b/src/core/surface/secure_channel_create.c @@ -56,6 +56,7 @@ #include <grpc/grpc_security.h> #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <grpc/support/sync.h> #include <grpc/support/useful.h> #include "src/core/tsi/transport_security_interface.h" diff --git a/src/core/surface/server.c b/src/core/surface/server.c index 68b8d839a0..525fe2e103 100644 --- a/src/core/surface/server.c +++ b/src/core/surface/server.c @@ -48,6 +48,7 @@ #include "src/core/transport/metadata.h" #include <grpc/support/alloc.h> #include <grpc/support/log.h> +#include <grpc/support/string_util.h> #include <grpc/support/useful.h> typedef enum { PENDING_START, ALL_CALLS, CALL_LIST_COUNT } call_list; diff --git a/src/core/transport/transport_op_string.c b/src/core/transport/transport_op_string.c index 7bbe8276c3..5c4edb006a 100644 --- a/src/core/transport/transport_op_string.c +++ b/src/core/transport/transport_op_string.c @@ -39,6 +39,7 @@ #include "src/core/support/string.h" #include <grpc/support/alloc.h> +#include <grpc/support/string_util.h> #include <grpc/support/useful.h> /* These routines are here to facilitate debugging - they produce string |