aboutsummaryrefslogtreecommitdiffstats
path: root/erts/emulator/beam/external.c
diff options
context:
space:
mode:
authorSverker Eriksson <[email protected]>2017-11-23 15:07:16 +0100
committerSverker Eriksson <[email protected]>2017-11-23 15:07:16 +0100
commit754afa1d10e32d2e50d0a8b5ddf316037ba9d6fc (patch)
treeaf71b76a330eab11ee9b4a208bbecf74f06532f2 /erts/emulator/beam/external.c
parentfa3906ff8494f0c6627191269c6062f309abe984 (diff)
parent8ed0d75c186d9da24bd6cfb85732487b17a3b054 (diff)
downloadotp-754afa1d10e32d2e50d0a8b5ddf316037ba9d6fc.tar.gz
otp-754afa1d10e32d2e50d0a8b5ddf316037ba9d6fc.tar.bz2
otp-754afa1d10e32d2e50d0a8b5ddf316037ba9d6fc.zip
Merge branch 'sverker/async-auto-connect/OTP-14370' AGAIN
Diffstat (limited to 'erts/emulator/beam/external.c')
-rw-r--r--erts/emulator/beam/external.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/erts/emulator/beam/external.c b/erts/emulator/beam/external.c
index f2e6399ad7..9cc5e71afa 100644
--- a/erts/emulator/beam/external.c
+++ b/erts/emulator/beam/external.c
@@ -383,6 +383,21 @@ Sint erts_encode_ext_dist_header_finalize(ErtsDistOutputBuf* ob,
*/
ASSERT(ep[0] == SMALL_TUPLE_EXT || ep[0] == LARGE_TUPLE_EXT);
+ if (~dflags & (DFLAG_DIST_MONITOR | DFLAG_DIST_MONITOR_NAME)
+ && ep[0] == SMALL_TUPLE_EXT
+ && ep[1] == 4
+ && ep[2] == SMALL_INTEGER_EXT
+ && (ep[3] == DOP_MONITOR_P ||
+ ep[3] == DOP_MONITOR_P_EXIT ||
+ ep[3] == DOP_DEMONITOR_P)) {
+ /*
+ * Receiver does not support process monitoring.
+ * Suppress monitor control msg (see erts_dsig_send_monitor)
+ * by converting it to an empty (tick) packet.
+ */
+ ob->ext_endp = ob->extp;
+ return reds;
+ }
if (~dflags & (DFLAG_BIT_BINARIES | DFLAG_EXPORT_PTR_TAG
| DFLAG_DIST_HDR_ATOM_CACHE)) {
reds = transcode_dist_obuf(ob, dep, dflags, reds);