From f01c73d84fbbf110017c14284bfe111c82f27766 Mon Sep 17 00:00:00 2001 From: Mehdi Mulani Date: Thu, 21 Sep 2017 12:57:29 -0700 Subject: [PATCH] Silence annoying logs in iOS 11 Summary: Apple changed what messages get logged when a web socket connection fails. Lets hide them to make life better for engineers. Reviewed By: javache Differential Revision: D5879306 fbshipit-source-id: cde06405b4af251159269218bf922916a79ac840 --- .../WebSocket/RCTReconnectingWebSocket.m | 25 ++++++++++++++++++- 1 file changed, 24 insertions(+), 1 deletion(-) diff --git a/Libraries/WebSocket/RCTReconnectingWebSocket.m b/Libraries/WebSocket/RCTReconnectingWebSocket.m index 53aa4368d..f6ab409ca 100644 --- a/Libraries/WebSocket/RCTReconnectingWebSocket.m +++ b/Libraries/WebSocket/RCTReconnectingWebSocket.m @@ -13,6 +13,10 @@ #import #import +#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 /* __IPHONE_11_0 */ +#import +#endif /* __IPHONE_11_0 */ + #import "RCTSRWebSocket.h" #if RCT_DEV // Only supported in dev mode @@ -27,11 +31,25 @@ static void my_nwlog_legacy_v(int level, char *format, va_list args) { vsnprintf(buffer, buffer_size, format, copy); va_end(copy); - if (strstr(buffer, "nw_connection_get_connected_socket_block_invoke") == NULL) { + if (strstr(buffer, "nw_connection_get_connected_socket_block_invoke") == NULL && + strstr(buffer, "Connection has no connected handler") == NULL) { orig_nwlog_legacy_v(level, format, args); } } +#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 /* __IPHONE_11_0 */ + +static void (*orig_os_log_error_impl)(void *dso, os_log_t log, os_log_type_t type, const char *format, uint8_t *buf, uint32_t size); + +static void my_os_log_error_impl(void *dso, os_log_t log, os_log_type_t type, const char *format, uint8_t *buf, uint32_t size) +{ + if (strstr(format, "TCP Conn %p Failed : error %ld:%d") == NULL) { + orig_os_log_error_impl(dso, log, type, format, buf, size); + } +} + +#endif /* __IPHONE_11_0 */ + @interface RCTReconnectingWebSocket () @end @@ -49,6 +67,11 @@ static void my_nwlog_legacy_v(int level, char *format, va_list args) { rebind_symbols((struct rebinding[1]){ {"nwlog_legacy_v", my_nwlog_legacy_v, (void *)&orig_nwlog_legacy_v} }, 1); +#if defined(__IPHONE_OS_VERSION_MAX_ALLOWED) && __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000 /* __IPHONE_11_0 */ + rebind_symbols((struct rebinding[1]){ + {"_os_log_error_impl", my_os_log_error_impl, (void *)&orig_os_log_error_impl} + }, 1); +#endif /* __IPHONE_11_0 */ }); }