diff --git a/hkexpasswd/hkexpasswd-vis.gv b/hkexpasswd/hkexpasswd-vis.gv index 477ba0b..2b7829d 100755 --- a/hkexpasswd/hkexpasswd-vis.gv +++ b/hkexpasswd/hkexpasswd-vis.gv @@ -14,39 +14,39 @@ digraph gocallvis { edge [minlen="2"] subgraph "cluster_focus" { - labelloc="t"; -labeljust="c"; + labeljust="c"; fontsize="18"; bgcolor="#e6ecfa"; label="main"; +labelloc="t"; "blitter.com/go/hkexsh/hkexpasswd.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] subgraph "cluster_blitter.com/go/hkexsh" { - penwidth="0.8"; + fontsize="16"; style="filled"; -fillcolor="lightyellow"; fontname="bold"; -rank="sink"; -tooltip="package: blitter.com/go/hkexsh"; -fontsize="16"; label="[hkexsh]"; +penwidth="0.8"; +fillcolor="lightyellow"; +rank="sink"; URL="/?f=blitter.com/go/hkexsh"; +tooltip="package: blitter.com/go/hkexsh"; "blitter.com/go/hkexsh.ReadPassword" [ penwidth="1.5" fillcolor="moccasin" label="ReadPassword" ] } subgraph "cluster_github.com/jameskeane/bcrypt" { - URL="/?f=github.com/jameskeane/bcrypt"; -tooltip="package: github.com/jameskeane/bcrypt"; + penwidth="0.8"; fontsize="16"; -style="filled"; fontname="bold"; -rank="sink"; -penwidth="0.8"; -fillcolor="lightyellow"; label="[bcrypt]"; +URL="/?f=github.com/jameskeane/bcrypt"; +tooltip="package: github.com/jameskeane/bcrypt"; +style="filled"; +fillcolor="lightyellow"; +rank="sink"; "github.com/jameskeane/bcrypt.Salt" [ fillcolor="moccasin" label="Salt" penwidth="1.5" ] "github.com/jameskeane/bcrypt.Hash" [ fillcolor="moccasin" label="Hash" penwidth="1.5" ] diff --git a/hkexsh/hkexsh-vis.gv b/hkexsh/hkexsh-vis.gv index c9c6450..209f99e 100755 --- a/hkexsh/hkexsh-vis.gv +++ b/hkexsh/hkexsh-vis.gv @@ -14,77 +14,77 @@ digraph gocallvis { edge [minlen="2"] subgraph "cluster_focus" { - bgcolor="#e6ecfa"; + labeljust="c"; +fontsize="18"; +bgcolor="#e6ecfa"; label="main"; labelloc="t"; -labeljust="c"; -fontsize="18"; - "blitter.com/go/hkexsh/hkexsh.reqTunnel" [ fillcolor="lightblue" label="reqTunnel" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexsh.launchTuns" [ fillcolor="lightblue" label="launchTuns" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" [ label="sendSessionParams" penwidth="0.5" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexsh.main$1" [ label="deferRestore" style="dotted,filled" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexsh.main$2" [ label="deferCloseChaff" style="dotted,filled" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexsh.doCopyMode" [ fillcolor="lightblue" label="doCopyMode" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexsh.main" [ label="main" penwidth="0.5" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$2" [ style="dotted,filled" fillcolor="lightblue" label="shellStdinToRemote" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$2$1" [ fillcolor="lightblue" label="doShellMode$2$1" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexsh.main$2" [ fillcolor="lightblue" label="deferCloseChaff" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexsh.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] "blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs" [ fillcolor="lightblue" label="parseNonSwitchArgs" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexsh.rejectUserMsg" [ penwidth="0.5" fillcolor="lightblue" label="rejectUserMsg" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$1" [ fillcolor="lightblue" label="shellRemoteToStdin" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexsh.main$1" [ style="dotted,filled" fillcolor="lightblue" label="deferRestore" ] + "blitter.com/go/hkexsh/hkexsh.sendSessionParams" [ fillcolor="lightblue" label="sendSessionParams" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexsh.rejectUserMsg" [ label="rejectUserMsg" penwidth="0.5" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.reqTunnel" [ fillcolor="lightblue" label="reqTunnel" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexsh.launchTuns" [ penwidth="0.5" fillcolor="lightblue" label="launchTuns" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$1" [ style="dotted,filled" fillcolor="lightblue" label="shellRemoteToStdin" ] "blitter.com/go/hkexsh/hkexsh.doShellMode" [ penwidth="0.5" fillcolor="lightblue" label="doShellMode" ] - "blitter.com/go/hkexsh/hkexsh.handleTermResizes$1" [ label="handleTermResizes$1" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.handleTermResizes$1" [ fillcolor="lightblue" label="handleTermResizes$1" style="dotted,filled" ] "blitter.com/go/hkexsh/hkexsh.GetSize" [ fillcolor="lightblue" label="GetSize" penwidth="1.5" ] "blitter.com/go/hkexsh/hkexsh.handleTermResizes" [ fillcolor="lightblue" label="handleTermResizes" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$2" [ fillcolor="lightblue" label="shellStdinToRemote" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$2$1" [ style="dotted,filled" fillcolor="lightblue" label="doShellMode$2$1" ] - "blitter.com/go/hkexsh/hkexsh.usageShell" [ label="usageShell" penwidth="0.5" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" [ fillcolor="lightblue" label="doCopyMode" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexsh.usageShell" [ fillcolor="lightblue" label="usageShell" penwidth="0.5" ] "blitter.com/go/hkexsh/hkexsh.usageCp" [ fillcolor="lightblue" label="usageCp" penwidth="0.5" ] subgraph "cluster_blitter.com/go/hkexsh" { URL="/?f=blitter.com/go/hkexsh"; -tooltip="package: blitter.com/go/hkexsh"; -fontsize="16"; +rank="sink"; +label="[hkexsh]"; style="filled"; fillcolor="lightyellow"; fontname="bold"; +tooltip="package: blitter.com/go/hkexsh"; penwidth="0.8"; -rank="sink"; -label="[hkexsh]"; +fontsize="16"; - "blitter.com/go/hkexsh.Restore" [ fillcolor="moccasin" label="Restore" penwidth="1.5" ] - "blitter.com/go/hkexsh.MakeRaw" [ label="MakeRaw" penwidth="1.5" fillcolor="moccasin" ] + "blitter.com/go/hkexsh.Restore" [ label="Restore" penwidth="1.5" fillcolor="moccasin" ] + "blitter.com/go/hkexsh.MakeRaw" [ fillcolor="moccasin" label="MakeRaw" penwidth="1.5" ] "blitter.com/go/hkexsh.ReadPassword" [ fillcolor="moccasin" label="ReadPassword" penwidth="1.5" ] "blitter.com/go/hkexsh.NewSession" [ fillcolor="moccasin" label="NewSession" penwidth="1.5" ] subgraph "cluster_*blitter.com/go/hkexsh.Session" { - fontcolor="#222222"; -labelloc="b"; + labelloc="b"; style="rounded,filled"; fillcolor="wheat2"; label="(*Session)"; tooltip="type: *blitter.com/go/hkexsh.Session"; penwidth="0.5"; fontsize="15"; +fontcolor="#222222"; "(*blitter.com/go/hkexsh.Session).SetStatus" [ fillcolor="moccasin" label="SetStatus" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh.Session" { - label="(Session)"; + labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; +label="(Session)"; tooltip="type: blitter.com/go/hkexsh.Session"; penwidth="0.5"; fontsize="15"; fontcolor="#222222"; -labelloc="b"; -style="rounded,filled"; -fillcolor="wheat2"; "(blitter.com/go/hkexsh.Session).Op" [ fillcolor="moccasin" label="Op" penwidth="1.5" ] "(blitter.com/go/hkexsh.Session).Who" [ fillcolor="moccasin" label="Who" penwidth="1.5" ] "(blitter.com/go/hkexsh.Session).ConnHost" [ fillcolor="moccasin" label="ConnHost" penwidth="1.5" ] "(blitter.com/go/hkexsh.Session).TermType" [ fillcolor="moccasin" label="TermType" penwidth="1.5" ] "(blitter.com/go/hkexsh.Session).Cmd" [ fillcolor="moccasin" label="Cmd" penwidth="1.5" ] - "(blitter.com/go/hkexsh.Session).AuthCookie" [ label="AuthCookie" penwidth="1.5" fillcolor="moccasin" ] + "(blitter.com/go/hkexsh.Session).AuthCookie" [ penwidth="1.5" fillcolor="moccasin" label="AuthCookie" ] "(blitter.com/go/hkexsh.Session).Status" [ fillcolor="moccasin" label="Status" penwidth="1.5" ] } @@ -92,51 +92,51 @@ fillcolor="wheat2"; } subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { - fontsize="16"; + penwidth="0.8"; +fontsize="16"; +rank="sink"; +tooltip="package: blitter.com/go/hkexsh/hkexnet"; style="filled"; fillcolor="lightyellow"; -rank="sink"; -label="[hkexnet]"; -tooltip="package: blitter.com/go/hkexsh/hkexnet"; -penwidth="0.8"; fontname="bold"; +label="[hkexnet]"; URL="/?f=blitter.com/go/hkexsh/hkexnet"; "blitter.com/go/hkexsh/hkexnet.Init" [ fillcolor="moccasin" label="Init" penwidth="1.5" ] "blitter.com/go/hkexsh/hkexnet.Dial" [ fillcolor="moccasin" label="Dial" penwidth="1.5" ] subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.Conn" { - tooltip="type: *blitter.com/go/hkexsh/hkexnet.Conn"; + label="(*Conn)"; +tooltip="type: *blitter.com/go/hkexsh/hkexnet.Conn"; penwidth="0.5"; fontsize="15"; fontcolor="#222222"; labelloc="b"; style="rounded,filled"; fillcolor="wheat2"; -label="(*Conn)"; "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ fillcolor="moccasin" label="WritePacket" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ label="SetStatus" penwidth="1.5" fillcolor="moccasin" ] "(*blitter.com/go/hkexsh/hkexnet.Conn).Close" [ fillcolor="moccasin" label="Close" penwidth="1.5" ] "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ fillcolor="moccasin" label="SetupChaff" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ fillcolor="moccasin" label="EnableChaff" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ fillcolor="moccasin" label="DisableChaff" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ penwidth="1.5" fillcolor="moccasin" label="ShutdownChaff" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ label="EnableChaff" penwidth="1.5" fillcolor="moccasin" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ label="DisableChaff" penwidth="1.5" fillcolor="moccasin" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ fillcolor="moccasin" label="ShutdownChaff" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ fillcolor="moccasin" label="SetStatus" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh/hkexnet.Conn" { - label="(Conn)"; -tooltip="type: blitter.com/go/hkexsh/hkexnet.Conn"; -penwidth="0.5"; -fontsize="15"; + fontsize="15"; fontcolor="#222222"; labelloc="b"; style="rounded,filled"; fillcolor="wheat2"; +label="(Conn)"; +tooltip="type: blitter.com/go/hkexsh/hkexnet.Conn"; +penwidth="0.5"; - "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ label="Write" penwidth="1.5" fillcolor="moccasin" ] - "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ penwidth="1.5" fillcolor="moccasin" label="Read" ] + "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ penwidth="1.5" fillcolor="moccasin" label="Write" ] + "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ fillcolor="moccasin" label="Read" penwidth="1.5" ] "(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus" [ fillcolor="moccasin" label="GetStatus" penwidth="1.5" ] } @@ -144,46 +144,46 @@ fillcolor="wheat2"; } subgraph "cluster_blitter.com/go/hkexsh/logger" { - penwidth="0.8"; + rank="sink"; +URL="/?f=blitter.com/go/hkexsh/logger"; +tooltip="package: blitter.com/go/hkexsh/logger"; +penwidth="0.8"; fontsize="16"; style="filled"; fillcolor="lightyellow"; fontname="bold"; label="[logger]"; -tooltip="package: blitter.com/go/hkexsh/logger"; -rank="sink"; -URL="/?f=blitter.com/go/hkexsh/logger"; - "blitter.com/go/hkexsh/logger.LogDebug" [ penwidth="1.5" fillcolor="moccasin" label="LogDebug" ] - "blitter.com/go/hkexsh/logger.New" [ fillcolor="moccasin" label="New" penwidth="1.5" ] + "blitter.com/go/hkexsh/logger.New" [ penwidth="1.5" fillcolor="moccasin" label="New" ] + "blitter.com/go/hkexsh/logger.LogDebug" [ fillcolor="moccasin" label="LogDebug" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh/spinsult" { - fontname="bold"; + fillcolor="lightyellow"; +fontname="bold"; label="[spinsult]"; -URL="/?f=blitter.com/go/hkexsh/spinsult"; -fontsize="16"; -fillcolor="lightyellow"; -rank="sink"; tooltip="package: blitter.com/go/hkexsh/spinsult"; penwidth="0.8"; +fontsize="16"; style="filled"; +rank="sink"; +URL="/?f=blitter.com/go/hkexsh/spinsult"; "blitter.com/go/hkexsh/spinsult.GetSentence" [ fillcolor="moccasin" label="GetSentence" penwidth="1.5" ] } subgraph "cluster_github.com/mattn/go-isatty" { - style="filled"; + penwidth="0.8"; +style="filled"; fillcolor="lightyellow"; -rank="sink"; -URL="/?f=github.com/mattn/go-isatty"; tooltip="package: github.com/mattn/go-isatty"; fontsize="16"; fontname="bold"; +rank="sink"; label="[isatty]"; -penwidth="0.8"; +URL="/?f=github.com/mattn/go-isatty"; "github.com/mattn/go-isatty.IsTerminal" [ fillcolor="moccasin" label="IsTerminal" penwidth="1.5" ] @@ -191,23 +191,9 @@ penwidth="0.8"; } - "blitter.com/go/hkexsh/hkexsh.reqTunnel" -> "blitter.com/go/hkexsh/logger.LogDebug" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.reqTunnel" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.launchTuns" -> "blitter.com/go/hkexsh/hkexsh.reqTunnel" [ ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).Op" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).Who" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).ConnHost" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).TermType" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).Cmd" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).AuthCookie" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ style="dashed" color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.main$1" -> "blitter.com/go/hkexsh.Restore" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$2" -> "blitter.com/go/hkexsh/hkexsh.doShellMode$2$1" [ ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$2" -> "blitter.com/go/hkexsh.Restore" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main$2" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(blitter.com/go/hkexsh.Session).Cmd" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs" [ ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/logger.New" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexnet.Init" [ color="saddlebrown" ] @@ -215,9 +201,17 @@ penwidth="0.8"; "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).Close" [ color="saddlebrown" arrowhead="normalnoneodiamond" ] "blitter.com/go/hkexsh/hkexsh.main" -> "github.com/mattn/go-isatty.IsTerminal" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh.MakeRaw" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main$1" -> "blitter.com/go/hkexsh.Restore" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.main$1" [ arrowhead="normalnoneodiamond" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh.ReadPassword" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh.NewSession" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).Op" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).Who" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).ConnHost" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).TermType" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).Cmd" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh.Session).AuthCookie" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.sendSessionParams" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ style="dashed" color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.sendSessionParams" [ ] "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh.Session).SetStatus" [ color="saddlebrown" ] @@ -225,9 +219,12 @@ penwidth="0.8"; "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.rejectUserMsg" [ ] "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ color="saddlebrown" arrowhead="normalnoneodiamond" ] "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.main$2" [ arrowhead="normalnoneodot" ] + "blitter.com/go/hkexsh/hkexsh.reqTunnel" -> "blitter.com/go/hkexsh/logger.LogDebug" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.reqTunnel" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.launchTuns" -> "blitter.com/go/hkexsh/hkexsh.reqTunnel" [ ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.launchTuns" [ ] "blitter.com/go/hkexsh/hkexsh.doShellMode$1" -> "blitter.com/go/hkexsh.Restore" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.doShellMode$1" -> "(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus" [ color="saddlebrown" ] @@ -238,11 +235,14 @@ penwidth="0.8"; "blitter.com/go/hkexsh/hkexsh.handleTermResizes$1" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.handleTermResizes" -> "blitter.com/go/hkexsh/hkexsh.handleTermResizes$1" [ arrowhead="normalnoneodot" ] "blitter.com/go/hkexsh/hkexsh.doShellMode" -> "blitter.com/go/hkexsh/hkexsh.handleTermResizes" [ ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$2" -> "blitter.com/go/hkexsh/hkexsh.doShellMode$2$1" [ ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$2" -> "blitter.com/go/hkexsh.Restore" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.doShellMode" -> "blitter.com/go/hkexsh/hkexsh.doShellMode$2" [ arrowhead="normalnoneodot" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.doShellMode" [ ] "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh.Session).Status" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(blitter.com/go/hkexsh.Session).Cmd" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.doCopyMode" [ ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh.Restore" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.usageShell" [ style="dashed" ] diff --git a/hkexsh/hkexsh-vis.gv.png b/hkexsh/hkexsh-vis.gv.png index 25f9181..dc036b9 100644 Binary files a/hkexsh/hkexsh-vis.gv.png and b/hkexsh/hkexsh-vis.gv.png differ diff --git a/hkexsh/hkexsh.go b/hkexsh/hkexsh.go index ec7ef30..62aae20 100755 --- a/hkexsh/hkexsh.go +++ b/hkexsh/hkexsh.go @@ -238,7 +238,7 @@ func doShellMode(isInteractive bool, conn *hkexnet.Conn, oldState *hkexsh.State, wg.Add(1) // #gv:s/label=\"doShellMode\$1\"/label=\"shellRemoteToStdin\"/ // TODO:.gv:doShellMode:1:shellRemoteToStdin - shellRemoteToStdout := func() { + shellRemoteToStdin := func() { defer wg.Done() // By deferring a call to wg.Done(), // each goroutine guarantees that it marks @@ -266,7 +266,7 @@ func doShellMode(isInteractive bool, conn *hkexnet.Conn, oldState *hkexsh.State, _ = hkexsh.Restore(int(os.Stdin.Fd()), oldState) // #nosec } } - go shellRemoteToStdout() + go shellRemoteToStdin() // Only look for data from stdin to send to remote end // for interactive sessions. diff --git a/hkexshd/hkexshd-vis.gv b/hkexshd/hkexshd-vis.gv index 7f6da14..bd5ad1f 100755 --- a/hkexshd/hkexshd-vis.gv +++ b/hkexshd/hkexshd-vis.gv @@ -14,57 +14,57 @@ digraph gocallvis { edge [minlen="2"] subgraph "cluster_focus" { - labelloc="t"; + bgcolor="#e6ecfa"; +label="main"; +labelloc="t"; labeljust="c"; fontsize="18"; -bgcolor="#e6ecfa"; -label="main"; - "blitter.com/go/hkexsh/hkexshd.runShellAs$4" [ fillcolor="lightblue" label="deferChaffShutdown" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" [ label="runServerToClientCopyAs" penwidth="0.5" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$2" [ fillcolor="lightblue" label="termResizeWatcher" style="dotted,filled" ] "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" [ fillcolor="lightblue" label="runClientToServerCopyAs" penwidth="0.5" ] "blitter.com/go/hkexsh/hkexshd.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] "blitter.com/go/hkexsh/hkexshd.main$1" [ label="main$1" style="dotted,filled" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexshd.main$2" [ label="main$2" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.main$2" [ fillcolor="lightblue" label="main$2" style="dotted,filled" ] "blitter.com/go/hkexsh/hkexshd.GenAuthToken" [ fillcolor="lightblue" label="GenAuthToken" penwidth="1.5" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" [ fillcolor="lightblue" label="runShellAs" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs$1" [ fillcolor="lightblue" label="deferPtmxClose" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs$2" [ fillcolor="lightblue" label="termResizeWatcher" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs$3" [ fillcolor="lightblue" label="stdinToPtyWorker" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$1" [ label="deferPtmxClose" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$3" [ label="stdinToPtyWorker" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$4" [ fillcolor="lightblue" label="deferChaffShutdown" style="dotted,filled" ] "blitter.com/go/hkexsh/hkexshd.runShellAs$5" [ fillcolor="lightblue" label="ptyToStdoutWorker" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.main$2$1" [ label="main$2$1" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.main$2$1" [ fillcolor="lightblue" label="main$2$1" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" [ fillcolor="lightblue" label="runServerToClientCopyAs" penwidth="0.5" ] subgraph "cluster_blitter.com/go/goutmp" { - penwidth="0.8"; -fontsize="16"; -fillcolor="lightyellow"; -tooltip="package: blitter.com/go/goutmp"; -style="filled"; + fontsize="16"; fontname="bold"; -rank="sink"; label="[goutmp]"; +penwidth="0.8"; +style="filled"; +fillcolor="lightyellow"; +rank="sink"; URL="/?f=blitter.com/go/goutmp"; +tooltip="package: blitter.com/go/goutmp"; "blitter.com/go/goutmp.GetHost" [ fillcolor="moccasin" label="GetHost" penwidth="1.5" ] - "blitter.com/go/goutmp.Put_utmp" [ penwidth="1.5" fillcolor="moccasin" label="Put_utmp" ] - "blitter.com/go/goutmp.Unput_utmp" [ fillcolor="moccasin" label="Unput_utmp" penwidth="1.5" ] - "blitter.com/go/goutmp.Put_lastlog_entry" [ fillcolor="moccasin" label="Put_lastlog_entry" penwidth="1.5" ] + "blitter.com/go/goutmp.Put_utmp" [ fillcolor="moccasin" label="Put_utmp" penwidth="1.5" ] + "blitter.com/go/goutmp.Unput_utmp" [ label="Unput_utmp" penwidth="1.5" fillcolor="moccasin" ] + "blitter.com/go/goutmp.Put_lastlog_entry" [ penwidth="1.5" fillcolor="moccasin" label="Put_lastlog_entry" ] } subgraph "cluster_blitter.com/go/hkexsh" { - style="filled"; + fontname="bold"; +rank="sink"; +URL="/?f=blitter.com/go/hkexsh"; +tooltip="package: blitter.com/go/hkexsh"; +penwidth="0.8"; fillcolor="lightyellow"; label="[hkexsh]"; -URL="/?f=blitter.com/go/hkexsh"; -penwidth="0.8"; fontsize="16"; -tooltip="package: blitter.com/go/hkexsh"; -fontname="bold"; -rank="sink"; +style="filled"; "blitter.com/go/hkexsh.AuthUserByToken" [ fillcolor="moccasin" label="AuthUserByToken" penwidth="1.5" ] - "blitter.com/go/hkexsh.AuthUserByPasswd" [ fillcolor="moccasin" label="AuthUserByPasswd" penwidth="1.5" ] + "blitter.com/go/hkexsh.AuthUserByPasswd" [ label="AuthUserByPasswd" penwidth="1.5" fillcolor="moccasin" ] subgraph "cluster_*blitter.com/go/hkexsh.Session" { label="(*Session)"; @@ -76,31 +76,31 @@ labelloc="b"; style="rounded,filled"; fillcolor="wheat2"; - "(*blitter.com/go/hkexsh.Session).SetOp" [ penwidth="1.5" fillcolor="moccasin" label="SetOp" ] - "(*blitter.com/go/hkexsh.Session).SetWho" [ penwidth="1.5" fillcolor="moccasin" label="SetWho" ] - "(*blitter.com/go/hkexsh.Session).SetConnHost" [ fillcolor="moccasin" label="SetConnHost" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).SetOp" [ fillcolor="moccasin" label="SetOp" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).SetWho" [ label="SetWho" penwidth="1.5" fillcolor="moccasin" ] + "(*blitter.com/go/hkexsh.Session).SetConnHost" [ label="SetConnHost" penwidth="1.5" fillcolor="moccasin" ] "(*blitter.com/go/hkexsh.Session).SetTermType" [ fillcolor="moccasin" label="SetTermType" penwidth="1.5" ] "(*blitter.com/go/hkexsh.Session).SetCmd" [ fillcolor="moccasin" label="SetCmd" penwidth="1.5" ] - "(*blitter.com/go/hkexsh.Session).SetAuthCookie" [ label="SetAuthCookie" penwidth="1.5" fillcolor="moccasin" ] - "(*blitter.com/go/hkexsh.Session).ClearAuthCookie" [ fillcolor="moccasin" label="ClearAuthCookie" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).SetAuthCookie" [ fillcolor="moccasin" label="SetAuthCookie" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).ClearAuthCookie" [ penwidth="1.5" fillcolor="moccasin" label="ClearAuthCookie" ] } subgraph "cluster_blitter.com/go/hkexsh.Session" { - fillcolor="wheat2"; + fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; label="(Session)"; tooltip="type: blitter.com/go/hkexsh.Session"; penwidth="0.5"; fontsize="15"; -fontcolor="#222222"; -labelloc="b"; -style="rounded,filled"; - "(blitter.com/go/hkexsh.Session).Op" [ label="Op" penwidth="1.5" fillcolor="moccasin" ] + "(blitter.com/go/hkexsh.Session).Op" [ penwidth="1.5" fillcolor="moccasin" label="Op" ] "(blitter.com/go/hkexsh.Session).Who" [ fillcolor="moccasin" label="Who" penwidth="1.5" ] "(blitter.com/go/hkexsh.Session).ConnHost" [ fillcolor="moccasin" label="ConnHost" penwidth="1.5" ] "(blitter.com/go/hkexsh.Session).Cmd" [ label="Cmd" penwidth="1.5" fillcolor="moccasin" ] - "(blitter.com/go/hkexsh.Session).AuthCookie" [ label="AuthCookie" penwidth="1.5" fillcolor="moccasin" ] + "(blitter.com/go/hkexsh.Session).AuthCookie" [ fillcolor="moccasin" label="AuthCookie" penwidth="1.5" ] "(blitter.com/go/hkexsh.Session).TermType" [ fillcolor="moccasin" label="TermType" penwidth="1.5" ] } @@ -108,77 +108,77 @@ style="rounded,filled"; } subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { - rank="sink"; -label="[hkexnet]"; -URL="/?f=blitter.com/go/hkexsh/hkexnet"; -tooltip="package: blitter.com/go/hkexsh/hkexnet"; -penwidth="0.8"; + penwidth="0.8"; fontsize="16"; style="filled"; fillcolor="lightyellow"; +label="[hkexnet]"; +URL="/?f=blitter.com/go/hkexsh/hkexnet"; fontname="bold"; +rank="sink"; +tooltip="package: blitter.com/go/hkexsh/hkexnet"; "blitter.com/go/hkexsh/hkexnet.Init" [ fillcolor="moccasin" label="Init" penwidth="1.5" ] - "blitter.com/go/hkexsh/hkexnet.Listen" [ label="Listen" penwidth="1.5" fillcolor="moccasin" ] + "blitter.com/go/hkexsh/hkexnet.Listen" [ penwidth="1.5" fillcolor="moccasin" label="Listen" ] subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.Conn" { - style="rounded,filled"; -fillcolor="wheat2"; -label="(*Conn)"; -tooltip="type: *blitter.com/go/hkexsh/hkexnet.Conn"; -penwidth="0.5"; -fontsize="15"; -fontcolor="#222222"; -labelloc="b"; - - "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ fillcolor="moccasin" label="DisableChaff" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ fillcolor="moccasin" label="ShutdownChaff" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ penwidth="1.5" fillcolor="moccasin" label="EnableChaff" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ fillcolor="moccasin" label="SetupChaff" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).Close" [ fillcolor="moccasin" label="Close" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).RemoteAddr" [ fillcolor="moccasin" label="RemoteAddr" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ fillcolor="moccasin" label="SetStatus" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ fillcolor="moccasin" label="WritePacket" penwidth="1.5" ] - - } - - subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.HKExListener" { - fontsize="15"; -fontcolor="#222222"; -labelloc="b"; -style="rounded,filled"; -fillcolor="wheat2"; -label="(*HKExListener)"; -tooltip="type: *blitter.com/go/hkexsh/hkexnet.HKExListener"; -penwidth="0.5"; - - "(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept" [ fillcolor="moccasin" label="Accept" penwidth="1.5" ] - - } - - subgraph "cluster_blitter.com/go/hkexsh/hkexnet.Conn" { - style="rounded,filled"; -fillcolor="wheat2"; -label="(Conn)"; -tooltip="type: blitter.com/go/hkexsh/hkexnet.Conn"; -penwidth="0.5"; -fontsize="15"; -fontcolor="#222222"; -labelloc="b"; - - "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ label="Write" penwidth="1.5" fillcolor="moccasin" ] - - } - - subgraph "cluster_blitter.com/go/hkexsh/hkexnet.HKExListener" { penwidth="0.5"; fontsize="15"; fontcolor="#222222"; labelloc="b"; style="rounded,filled"; fillcolor="wheat2"; +label="(*Conn)"; +tooltip="type: *blitter.com/go/hkexsh/hkexnet.Conn"; + + "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ penwidth="1.5" fillcolor="moccasin" label="EnableChaff" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ fillcolor="moccasin" label="DisableChaff" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ fillcolor="moccasin" label="ShutdownChaff" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ fillcolor="moccasin" label="SetupChaff" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).Close" [ fillcolor="moccasin" label="Close" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).RemoteAddr" [ fillcolor="moccasin" label="RemoteAddr" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ penwidth="1.5" fillcolor="moccasin" label="SetStatus" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ fillcolor="moccasin" label="WritePacket" penwidth="1.5" ] + + } + + subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.HKExListener" { + tooltip="type: *blitter.com/go/hkexsh/hkexnet.HKExListener"; +penwidth="0.5"; +fontsize="15"; +fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; +label="(*HKExListener)"; + + "(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept" [ fillcolor="moccasin" label="Accept" penwidth="1.5" ] + + } + + subgraph "cluster_blitter.com/go/hkexsh/hkexnet.Conn" { + labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; +label="(Conn)"; +tooltip="type: blitter.com/go/hkexsh/hkexnet.Conn"; +penwidth="0.5"; +fontsize="15"; +fontcolor="#222222"; + + "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ fillcolor="moccasin" label="Write" penwidth="1.5" ] + + } + + subgraph "cluster_blitter.com/go/hkexsh/hkexnet.HKExListener" { + fontsize="15"; +fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; label="(HKExListener)"; tooltip="type: blitter.com/go/hkexsh/hkexnet.HKExListener"; +penwidth="0.5"; "(blitter.com/go/hkexsh/hkexnet.HKExListener).Close" [ fillcolor="moccasin" label="Close" penwidth="1.5" ] @@ -187,48 +187,44 @@ tooltip="type: blitter.com/go/hkexsh/hkexnet.HKExListener"; } subgraph "cluster_blitter.com/go/hkexsh/logger" { - URL="/?f=blitter.com/go/hkexsh/logger"; + fontsize="16"; +rank="sink"; +URL="/?f=blitter.com/go/hkexsh/logger"; tooltip="package: blitter.com/go/hkexsh/logger"; penwidth="0.8"; style="filled"; -fontname="bold"; -rank="sink"; -label="[logger]"; -fontsize="16"; fillcolor="lightyellow"; +fontname="bold"; +label="[logger]"; - "blitter.com/go/hkexsh/logger.New" [ penwidth="1.5" fillcolor="moccasin" label="New" ] + "blitter.com/go/hkexsh/logger.New" [ fillcolor="moccasin" label="New" penwidth="1.5" ] "blitter.com/go/hkexsh/logger.LogNotice" [ penwidth="1.5" fillcolor="moccasin" label="LogNotice" ] - "blitter.com/go/hkexsh/logger.LogErr" [ fillcolor="moccasin" label="LogErr" penwidth="1.5" ] + "blitter.com/go/hkexsh/logger.LogErr" [ penwidth="1.5" fillcolor="moccasin" label="LogErr" ] } subgraph "cluster_github.com/kr/pty" { - fontname="bold"; -label="[pty]"; + style="filled"; +fontname="bold"; +rank="sink"; URL="/?f=github.com/kr/pty"; tooltip="package: github.com/kr/pty"; penwidth="0.8"; -style="filled"; -fillcolor="lightyellow"; -rank="sink"; fontsize="16"; +fillcolor="lightyellow"; +label="[pty]"; - "github.com/kr/pty.Start" [ fillcolor="moccasin" label="Start" penwidth="1.5" ] "github.com/kr/pty.Setsize" [ fillcolor="moccasin" label="Setsize" penwidth="1.5" ] + "github.com/kr/pty.Start" [ fillcolor="moccasin" label="Start" penwidth="1.5" ] } } - "blitter.com/go/hkexsh/hkexshd.runShellAs$4" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs$4" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$2" -> "github.com/kr/pty.Setsize" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ color="saddlebrown" arrowhead="normalnoneodiamond" ] + "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main" -> "blitter.com/go/hkexsh/logger.New" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main" -> "blitter.com/go/hkexsh/hkexnet.Init" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main$1" -> "blitter.com/go/hkexsh/logger.LogNotice" [ color="saddlebrown" ] @@ -260,10 +256,11 @@ fontsize="16"; "blitter.com/go/hkexsh/hkexshd.main$2" -> "(blitter.com/go/hkexsh.Session).TermType" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "github.com/kr/pty.Start" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "blitter.com/go/hkexsh/hkexshd.runShellAs$1" [ arrowhead="normalnoneodiamond" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs$2" -> "github.com/kr/pty.Setsize" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "blitter.com/go/hkexsh/hkexshd.runShellAs$2" [ arrowhead="normalnoneodot" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "blitter.com/go/hkexsh/hkexshd.runShellAs$3" [ arrowhead="normalnoneodot" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$4" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$4" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "blitter.com/go/hkexsh/hkexshd.runShellAs$4" [ arrowhead="normalnoneodiamond" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "blitter.com/go/hkexsh/hkexshd.runShellAs$5" [ arrowhead="normalnoneodot" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ color="saddlebrown" ] @@ -276,6 +273,9 @@ fontsize="16"; "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/goutmp.Put_lastlog_entry" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" [ ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ color="saddlebrown" arrowhead="normalnoneodiamond" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" [ ] "blitter.com/go/hkexsh/hkexshd.main" -> "blitter.com/go/hkexsh/hkexshd.main$2" [ arrowhead="normalnoneodot" ] } diff --git a/hkexshd/hkexshd-vis.gv.png b/hkexshd/hkexshd-vis.gv.png index de4c451..a1cb925 100644 Binary files a/hkexshd/hkexshd-vis.gv.png and b/hkexshd/hkexshd-vis.gv.png differ