File 2431-ssh-ssh_notes.md-supervision-tree-diagram-update.patch of Package erlang

From b9486ed3745d877369d92a98328c3c4cb21dc89f Mon Sep 17 00:00:00 2001
From: Jakub Witczak <kuba@erlang.org>
Date: Mon, 2 Sep 2024 12:50:57 +0200
Subject: [PATCH] ssh: ssh_notes.md supervision tree diagram update

---
 lib/ssh/internal_doc/ssh_notes.md | 95 +++++++++++++++++++++++++++----
 1 file changed, 83 insertions(+), 12 deletions(-)

diff --git a/lib/ssh/internal_doc/ssh_notes.md b/lib/ssh/internal_doc/ssh_notes.md
index cf3c04f2e6..2d3b8c25eb 100644
--- a/lib/ssh/internal_doc/ssh_notes.md
+++ b/lib/ssh/internal_doc/ssh_notes.md
@@ -1,36 +1,107 @@
+# SSH supervision tree (prototype)
 ```mermaid
 ---
-title: SSH supervision tree
+title: SSH supervision tree (prototype)
 ---
 flowchart RL
-    d_sup --> sup[["ssh_sup\n[o4o]"]]
+    d_sup --> sup[["ssh_sup\n(ssh_app.erl)\n[o4o]"]]
     c_sup --> sup
 
     subgraph client
-    system_sup --> c_sup[["sshc_sup\n[o4o]"]]
+    connection_sup --> c_sup[["sshc_sup\n(ssh_app.erl)\n[o4o]\nauto_shutdown=never"]]
+    subgraph connection_c
+    connection_handler["ssh_connection_handler\nSIGNIFICANT"] --> connection_sup[["ssh_connection_sup\n[o4a]\nauto_shutdown=any_significant"]]
+    channel_sup[["ssh_channel_sup\n[o4o]"]] --> connection_sup
+    sftp["ssh_sftp"] --> channel_sup
+    tcpip_forward_acceptor_sup[["ssh_tcpip_forward_acceptor_sup\n[o4o]"]] --> connection_sup
+    ssh_tcpip_forward_acceptor["ssh_tcpip_forward_acceptor"] --> tcpip_forward_acceptor_sup  
+    end
+    end
+
+    subgraph server
+    system_sup_s --> d_sup[["sshd_sup\n(ssh_app.erl)\n[o4o]"]]
+    acceptor_sup --> system_sup_s[["ssh_system_sup\n[o4o]\nauto_shutdown=all_significant"]]
+    acceptor["ssh_acceptor"] --> acceptor_sup[["ssh_acceptor_sup\n[o4o]\nSIGNIFICANT"]]
+
+    connection_sup_s --> system_sup_s
+
+    subgraph connection_s
+    connection_handler_s["ssh_connection_handler\nSIGNIFICANT"] --> connection_sup_s[["ssh_connection_sup\n[o4a]\nauto_shutdown=any_significant\nSIGNIFICANT"]]
+    channel_sup_s[["ssh_channel_sup\n[o4o]"]] --> connection_sup_s
+    tcpip_forward_acceptor_sup_s[["ssh_tcpip_forward_acceptor_sup\n[o4o]"]] --> connection_sup_s
+    ssh_tcpip_forward_acceptor_s["ssh_tcpip_forward_acceptor"] --> tcpip_forward_acceptor_sup_s
+    sftd1["ssh_sftpd"] --> channel_sup_s
+    end
+    end
+```
+
+# SSH supervision tree (OTP >= 24)
+```mermaid
+---
+title: SSH supervision tree (OTP >= 24)
+---
+flowchart RL
+    d_sup --> sup[["ssh_sup\n(ssh_app.erl)\n[o4o]"]]
+    c_sup --> sup
 
+    subgraph client
+    system_sup --> c_sup[["sshc_sup\n(ssh_app.erl)\n[o4o]\nauto_shutdown=never"]]
     subgraph connection_c
-    subsystem_sup --> system_sup[["ssh_system_sup\n[o4o]"]]
-    connection_handler["ssh_connection_handler"] --> subsystem_sup[["ssh_subsystem_sup\n[o4a]"]]
-    channel_sup[["ssh_channel_sup\no4o"]] --> subsystem_sup
+    subsystem_sup --> system_sup[["ssh_system_sup\n[o4o]\nauto_shutdown=all_significant"]]
+    connection_handler["ssh_connection_handler\nSIGNIFICANT"] --> subsystem_sup[["ssh_subsystem_sup\n[o4a]\nauto_shutdown=any_significant\nSIGNIFICANT"]]
+    channel_sup[["ssh_channel_sup\n[o4o]"]] --> subsystem_sup
+    sftp["ssh_sftp"] --> channel_sup
+    ssh_tcpip_forward_client --> channel_sup
     tcpip_forward_acceptor_sup[["ssh_tcpip_forward_acceptor_sup\n[o4o]"]] --> subsystem_sup
+    ssh_tcpip_forward_acceptor["ssh_tcpip_forward_acceptor"] --> tcpip_forward_acceptor_sup
     end
-
     end
 
     subgraph server
-    system_sup_s --> d_sup[["sshd_sup\n[o4o]"]]
-    acceptor_sup --> system_sup_s[["ssh_system_sup\n[o4o]"]]
-    acceptor["ssh_acceptor"] --> acceptor_sup[["ssh_acceptor_sup\n[o4o]"]]
+    system_sup_s --> d_sup[["sshd_sup\n(ssh_app.erl)\n[o4o]"]]
+    acceptor_sup --> system_sup_s[["ssh_system_sup\n[o4o]\nauto_shutdown=all_significant"]]
+    acceptor["ssh_acceptor"] --> acceptor_sup[["ssh_acceptor_sup\n[o4o]\nSIGNIFICANT"]]
 
     subsystem_sup_s --> system_sup_s
 
     subgraph connection_s
-    connection_handler_s["ssh_connection_handler"] --> subsystem_sup_s[["ssh_subsystem_sup\n[o4a]"]]
+    connection_handler_s["ssh_connection_handler\nSIGNIFICANT"] --> subsystem_sup_s[["ssh_subsystem_sup\n[o4a]\nauto_shutdown=any_significant\nSIGNIFICANT"]]
     channel_sup_s[["ssh_channel_sup\n[o4o]"]] --> subsystem_sup_s
     tcpip_forward_acceptor_sup_s[["ssh_tcpip_forward_acceptor_sup\n[o4o]"]] --> subsystem_sup_s
+    ssh_tcpip_forward_acceptor_s["ssh_tcpip_forward_acceptor"] --> tcpip_forward_acceptor_sup_s
     sftd1["ssh_sftpd"] --> channel_sup_s
-    sftd2["ssh_sftpd"] --> channel_sup_s
+    ssh_tcpip_forward_srv --> channel_sup_s
+    custom_cli --> channel_sup_s
+    custom_subsystem --> channel_sup_s
     end
     end
 ```
+# SSH supervision tree (OTP-23) ??
+# SSH supervision tree (OTP-22)
+```mermaid
+---
+title: SSH supervision tree (OTP-22)
+---
+flowchart RL
+    d_sup --> sup[["ssh_sup\n(ssh_app.erl)\n[o4o]"]]
+    c_sup --> sup
+
+    subgraph client
+    connection_handler["ssh_connection_handler\nSIGNIFICANT?"] --> c_sup
+    end
+
+    subgraph server
+    system_sup_s --> d_sup[["sshd_sup\n(ssh_app.erl)\n[o4o]"]]
+    acceptor_sup --> system_sup_s[["ssh_system_sup\n[o4o]\nauto_shutdown=all_significant"]]
+    acceptor["ssh_acceptor"] --> acceptor_sup[["ssh_acceptor_sup\n[o4o]\nSIGNIFICANT"]]
+
+    subsystem_sup_s --> system_sup_s
+
+    subgraph connection_s
+    connection_handler_s["ssh_connection_handler\nSIGNIFICANT"] --> subsystem_sup_s[["ssh_subsystem_sup\n[o4a]\nauto_shutdown=any_significant\nSIGNIFICANT"]]
+    channel_sup_s[["ssh_channel_sup\n[o4o]"]] --> subsystem_sup_s
+    tcpip_forward_acceptor_sup_s[["ssh_tcpip_forward_acceptor_sup\n[o4o]"]] --> subsystem_sup_s
+    sftd1["ssh_sftpd"] --> channel_sup_s
+    end
+end
+```
-- 
2.43.0

openSUSE Build Service is sponsored by