diff --git a/hkexpasswd/hkexpasswd-vis.gv b/hkexpasswd/hkexpasswd-vis.gv index b587200..e223680 100755 --- a/hkexpasswd/hkexpasswd-vis.gv +++ b/hkexpasswd/hkexpasswd-vis.gv @@ -14,41 +14,41 @@ digraph gocallvis { edge [minlen="2"] subgraph "cluster_focus" { - bgcolor="#e6ecfa"; + fontsize="18"; +bgcolor="#e6ecfa"; label="main"; labelloc="t"; labeljust="c"; -fontsize="18"; "blitter.com/go/hkexsh/hkexpasswd.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] subgraph "cluster_blitter.com/go/hkexsh" { - fillcolor="lightyellow"; + penwidth="0.8"; fontname="bold"; rank="sink"; URL="/?f=blitter.com/go/hkexsh"; -tooltip="package: blitter.com/go/hkexsh"; -style="filled"; fontsize="16"; +style="filled"; +fillcolor="lightyellow"; label="[hkexsh]"; -penwidth="0.8"; +tooltip="package: blitter.com/go/hkexsh"; "blitter.com/go/hkexsh.ReadPassword" [ fillcolor="moccasin" label="ReadPassword" penwidth="1.5" ] } subgraph "cluster_github.com/jameskeane/bcrypt" { - tooltip="package: github.com/jameskeane/bcrypt"; + penwidth="0.8"; +fontsize="16"; +fillcolor="lightyellow"; +tooltip="package: github.com/jameskeane/bcrypt"; style="filled"; fontname="bold"; rank="sink"; label="[bcrypt]"; -penwidth="0.8"; -fontsize="16"; -fillcolor="lightyellow"; URL="/?f=github.com/jameskeane/bcrypt"; - "github.com/jameskeane/bcrypt.Salt" [ label="Salt" penwidth="1.5" fillcolor="moccasin" ] + "github.com/jameskeane/bcrypt.Salt" [ fillcolor="moccasin" label="Salt" penwidth="1.5" ] "github.com/jameskeane/bcrypt.Hash" [ fillcolor="moccasin" label="Hash" penwidth="1.5" ] "github.com/jameskeane/bcrypt.Match" [ fillcolor="moccasin" label="Match" penwidth="1.5" ] diff --git a/hkexsh/hkexsh-vis.gv b/hkexsh/hkexsh-vis.gv index ecba7b4..a3d3176 100755 --- a/hkexsh/hkexsh-vis.gv +++ b/hkexsh/hkexsh-vis.gv @@ -14,176 +14,176 @@ digraph gocallvis { edge [minlen="2"] subgraph "cluster_focus" { - label="main"; + bgcolor="#e6ecfa"; +label="main"; labelloc="t"; labeljust="c"; fontsize="18"; -bgcolor="#e6ecfa"; "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.rejectUserMsg" [ penwidth="0.5" fillcolor="lightblue" label="rejectUserMsg" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$1" [ style="dotted,filled" fillcolor="lightblue" label="shellRemoteToStdin" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode" [ label="doShellMode" penwidth="0.5" 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" [ 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$1" [ fillcolor="lightblue" label="deferRestore" 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.main$1" [ fillcolor="lightblue" label="deferRestore" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexsh.sendSessionParams" [ label="sendSessionParams" penwidth="0.5" fillcolor="lightblue" ] + "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.main$2" [ fillcolor="lightblue" label="deferCloseChaff" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$1" [ fillcolor="lightblue" label="shellRemoteToStdin" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode" [ penwidth="0.5" fillcolor="lightblue" label="doShellMode" ] - "blitter.com/go/hkexsh/hkexsh.handleTermResizes$1" [ fillcolor="lightblue" label="handleTermResizes$1" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexsh.GetSize" [ penwidth="1.5" fillcolor="lightblue" label="GetSize" ] - "blitter.com/go/hkexsh/hkexsh.handleTermResizes" [ label="handleTermResizes" penwidth="0.5" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$2" [ fillcolor="lightblue" label="shellStdinToRemote" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$2$1" [ fillcolor="lightblue" label="doShellMode$2$1" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexsh.doCopyMode" [ penwidth="0.5" fillcolor="lightblue" label="doCopyMode" ] + "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" [ penwidth="0.5" fillcolor="lightblue" label="usageCp" ] + "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"; -fontname="bold"; -label="[hkexsh]"; -style="filled"; + tooltip="package: blitter.com/go/hkexsh"; +penwidth="0.8"; fillcolor="lightyellow"; rank="sink"; -penwidth="0.8"; +label="[hkexsh]"; +URL="/?f=blitter.com/go/hkexsh"; fontsize="16"; +style="filled"; +fontname="bold"; + "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.Restore" [ fillcolor="moccasin" label="Restore" penwidth="1.5" ] - "blitter.com/go/hkexsh.ReadPassword" [ fillcolor="moccasin" label="ReadPassword" penwidth="1.5" ] + "blitter.com/go/hkexsh.ReadPassword" [ penwidth="1.5" fillcolor="moccasin" label="ReadPassword" ] "blitter.com/go/hkexsh.NewSession" [ fillcolor="moccasin" label="NewSession" penwidth="1.5" ] subgraph "cluster_*blitter.com/go/hkexsh.Session" { - fillcolor="wheat2"; -label="(*Session)"; -tooltip="type: *blitter.com/go/hkexsh.Session"; + tooltip="type: *blitter.com/go/hkexsh.Session"; penwidth="0.5"; fontsize="15"; fontcolor="#222222"; labelloc="b"; style="rounded,filled"; +fillcolor="wheat2"; +label="(*Session)"; "(*blitter.com/go/hkexsh.Session).SetStatus" [ fillcolor="moccasin" label="SetStatus" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh.Session" { - tooltip="type: blitter.com/go/hkexsh.Session"; + 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"; -label="(Session)"; - "(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" [ penwidth="1.5" fillcolor="moccasin" label="ConnHost" ] - "(blitter.com/go/hkexsh.Session).TermType" [ label="TermType" penwidth="1.5" fillcolor="moccasin" ] - "(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).Status" [ fillcolor="moccasin" label="Status" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).Op" [ label="Op" penwidth="1.5" fillcolor="moccasin" ] + "(blitter.com/go/hkexsh.Session).Who" [ label="Who" penwidth="1.5" fillcolor="moccasin" ] + "(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" [ penwidth="1.5" fillcolor="moccasin" label="Cmd" ] + "(blitter.com/go/hkexsh.Session).AuthCookie" [ fillcolor="moccasin" label="AuthCookie" penwidth="1.5" ] } } subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { - fontname="bold"; + penwidth="0.8"; +fontsize="16"; +style="filled"; +fillcolor="lightyellow"; +fontname="bold"; rank="sink"; label="[hkexnet]"; URL="/?f=blitter.com/go/hkexsh/hkexnet"; -penwidth="0.8"; -fontsize="16"; tooltip="package: blitter.com/go/hkexsh/hkexnet"; -style="filled"; -fillcolor="lightyellow"; "blitter.com/go/hkexsh/hkexnet.Init" [ fillcolor="moccasin" label="Init" penwidth="1.5" ] - "blitter.com/go/hkexsh/hkexnet.Dial" [ penwidth="1.5" fillcolor="moccasin" label="Dial" ] + "blitter.com/go/hkexsh/hkexnet.Dial" [ fillcolor="moccasin" label="Dial" penwidth="1.5" ] subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.Conn" { - label="(*Conn)"; -tooltip="type: *blitter.com/go/hkexsh/hkexnet.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" [ label="WritePacket" penwidth="1.5" fillcolor="moccasin" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ fillcolor="moccasin" label="WritePacket" penwidth="1.5" ] "(*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).DisableChaff" [ label="DisableChaff" penwidth="1.5" fillcolor="moccasin" ] "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ label="ShutdownChaff" penwidth="1.5" fillcolor="moccasin" ] "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ fillcolor="moccasin" label="SetStatus" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh/hkexnet.Conn" { - style="rounded,filled"; + fontcolor="#222222"; +labelloc="b"; +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" [ fillcolor="moccasin" label="Write" penwidth="1.5" ] - "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ penwidth="1.5" fillcolor="moccasin" label="Read" ] "(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus" [ fillcolor="moccasin" label="GetStatus" penwidth="1.5" ] + "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ fillcolor="moccasin" label="Write" penwidth="1.5" ] + "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ fillcolor="moccasin" label="Read" penwidth="1.5" ] } } subgraph "cluster_blitter.com/go/hkexsh/logger" { - rank="sink"; + style="filled"; +fillcolor="lightyellow"; +URL="/?f=blitter.com/go/hkexsh/logger"; penwidth="0.8"; fontsize="16"; fontname="bold"; +rank="sink"; label="[logger]"; -URL="/?f=blitter.com/go/hkexsh/logger"; tooltip="package: blitter.com/go/hkexsh/logger"; -style="filled"; -fillcolor="lightyellow"; - "blitter.com/go/hkexsh/logger.LogDebug" [ fillcolor="moccasin" label="LogDebug" penwidth="1.5" ] - "blitter.com/go/hkexsh/logger.New" [ penwidth="1.5" fillcolor="moccasin" label="New" ] + "blitter.com/go/hkexsh/logger.LogDebug" [ label="LogDebug" penwidth="1.5" fillcolor="moccasin" ] + "blitter.com/go/hkexsh/logger.New" [ label="New" penwidth="1.5" fillcolor="moccasin" ] } subgraph "cluster_blitter.com/go/hkexsh/spinsult" { - label="[spinsult]"; -URL="/?f=blitter.com/go/hkexsh/spinsult"; -rank="sink"; + rank="sink"; +penwidth="0.8"; fontsize="16"; style="filled"; -fillcolor="lightyellow"; fontname="bold"; +fillcolor="lightyellow"; +label="[spinsult]"; +URL="/?f=blitter.com/go/hkexsh/spinsult"; tooltip="package: blitter.com/go/hkexsh/spinsult"; -penwidth="0.8"; "blitter.com/go/hkexsh/spinsult.GetSentence" [ fillcolor="moccasin" label="GetSentence" penwidth="1.5" ] } subgraph "cluster_github.com/mattn/go-isatty" { - tooltip="package: github.com/mattn/go-isatty"; + fillcolor="lightyellow"; fontname="bold"; -rank="sink"; -label="[isatty]"; -URL="/?f=github.com/mattn/go-isatty"; +tooltip="package: github.com/mattn/go-isatty"; penwidth="0.8"; fontsize="16"; style="filled"; -fillcolor="lightyellow"; +rank="sink"; +label="[isatty]"; +URL="/?f=github.com/mattn/go-isatty"; "github.com/mattn/go-isatty.IsTerminal" [ fillcolor="moccasin" label="IsTerminal" penwidth="1.5" ] @@ -194,15 +194,26 @@ fillcolor="lightyellow"; "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.rejectUserMsg" -> "blitter.com/go/hkexsh/spinsult.GetSentence" [ color="saddlebrown" ] + "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" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$1" -> "(*blitter.com/go/hkexsh.Session).SetStatus" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$1" -> "(blitter.com/go/hkexsh.Session).Status" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode" -> "blitter.com/go/hkexsh/hkexsh.doShellMode$1" [ arrowhead="normalnoneodot" ] + "blitter.com/go/hkexsh/hkexsh.handleTermResizes$1" -> "blitter.com/go/hkexsh/hkexsh.GetSize" [ ] + "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$1" -> "blitter.com/go/hkexsh.Restore" [ 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" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexnet.Dial" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).Close" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "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" ] @@ -216,26 +227,15 @@ fillcolor="lightyellow"; "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" ] + "blitter.com/go/hkexsh/hkexsh.rejectUserMsg" -> "blitter.com/go/hkexsh/spinsult.GetSentence" [ color="saddlebrown" ] "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).ShutdownChaff" [ 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$2" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.main$2" [ arrowhead="normalnoneodot" ] "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" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$1" -> "(*blitter.com/go/hkexsh.Session).SetStatus" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode$1" -> "(blitter.com/go/hkexsh.Session).Status" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexsh.doShellMode" -> "blitter.com/go/hkexsh/hkexsh.doShellMode$1" [ arrowhead="normalnoneodot" ] - "blitter.com/go/hkexsh/hkexsh.handleTermResizes$1" -> "blitter.com/go/hkexsh/hkexsh.GetSize" [ ] - "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" ] diff --git a/hkexsh/hkexsh-vis.gv.png b/hkexsh/hkexsh-vis.gv.png index 7dedd8e..686c830 100644 Binary files a/hkexsh/hkexsh-vis.gv.png and b/hkexsh/hkexsh-vis.gv.png differ diff --git a/hkexsh/hkexsh-vis.gv.svg b/hkexsh/hkexsh-vis.gv.svg index f7c6f99..a306224 100644 --- a/hkexsh/hkexsh-vis.gv.svg +++ b/hkexsh/hkexsh-vis.gv.svg @@ -4,716 +4,716 @@ - - + + gocallvis - + blitter.com/go/hkexsh/hkexsh cluster_focus - -main + +main cluster_blitter.com/go/hkexsh - -[hkexsh] + +[hkexsh] cluster_*blitter.com/go/hkexsh.Session - -(*Session) + +(*Session) cluster_blitter.com/go/hkexsh.Session - -(Session) + +(Session) cluster_blitter.com/go/hkexsh/hkexnet - -[hkexnet] + +[hkexnet] cluster_*blitter.com/go/hkexsh/hkexnet.Conn - -(*Conn) + +(*Conn) cluster_blitter.com/go/hkexsh/hkexnet.Conn - -(Conn) + +(Conn) cluster_blitter.com/go/hkexsh/logger - -[logger] + +[logger] cluster_blitter.com/go/hkexsh/spinsult - -[spinsult] + +[spinsult] cluster_github.com/mattn/go-isatty - -[isatty] + +[isatty] blitter.com/go/hkexsh/hkexsh.reqTunnel - -reqTunnel + +reqTunnel (*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - -WritePacket + +WritePacket blitter.com/go/hkexsh/hkexsh.reqTunnel->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - - + + blitter.com/go/hkexsh/logger.LogDebug - -LogDebug + +LogDebug blitter.com/go/hkexsh/hkexsh.reqTunnel->blitter.com/go/hkexsh/logger.LogDebug - - + + blitter.com/go/hkexsh/hkexsh.launchTuns - -launchTuns + +launchTuns blitter.com/go/hkexsh/hkexsh.launchTuns->blitter.com/go/hkexsh/hkexsh.reqTunnel - - + + - + -blitter.com/go/hkexsh/hkexsh.rejectUserMsg - -rejectUserMsg - - - -blitter.com/go/hkexsh/spinsult.GetSentence - -GetSentence - - - -blitter.com/go/hkexsh/hkexsh.rejectUserMsg->blitter.com/go/hkexsh/spinsult.GetSentence - - - - - -blitter.com/go/hkexsh/hkexsh.main - -main - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.launchTuns - - - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.rejectUserMsg - - - - - -blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs - -parseNonSwitchArgs - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs - - - - - -blitter.com/go/hkexsh/hkexsh.main$1 - -main$1 - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.main$1 - - - - - - - -blitter.com/go/hkexsh/hkexsh.sendSessionParams - -sendSessionParams - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.sendSessionParams - - - - - -blitter.com/go/hkexsh/hkexsh.main$2 - -main$2 - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.main$2 - - - - - - - -blitter.com/go/hkexsh/hkexsh.doShellMode - -doShellMode - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.doShellMode - - - - - -blitter.com/go/hkexsh/hkexsh.doCopyMode - -doCopyMode - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.doCopyMode - - - - - -blitter.com/go/hkexsh/hkexsh.usageShell - -usageShell - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.usageShell - - - - - -blitter.com/go/hkexsh/hkexsh.usageCp - -usageCp - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.usageCp - - - - - -blitter.com/go/hkexsh.MakeRaw - -MakeRaw - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh.MakeRaw - - +blitter.com/go/hkexsh/hkexsh.doShellMode$1 + +doShellMode$1 - + blitter.com/go/hkexsh.Restore - -Restore + +Restore - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh.Restore - - - - - -blitter.com/go/hkexsh.ReadPassword - -ReadPassword - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh.ReadPassword - - - - - -blitter.com/go/hkexsh.NewSession - -NewSession - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh.NewSession - - + + +blitter.com/go/hkexsh/hkexsh.doShellMode$1->blitter.com/go/hkexsh.Restore + + (*blitter.com/go/hkexsh.Session).SetStatus - -SetStatus + +SetStatus - - -blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh.Session).SetStatus - - + + +blitter.com/go/hkexsh/hkexsh.doShellMode$1->(*blitter.com/go/hkexsh.Session).SetStatus + + - + (blitter.com/go/hkexsh.Session).Status - -Status + +Status + + + +blitter.com/go/hkexsh/hkexsh.doShellMode$1->(blitter.com/go/hkexsh.Session).Status + + + + + +(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus + +GetStatus + + + +blitter.com/go/hkexsh/hkexsh.doShellMode$1->(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus + + + + + +blitter.com/go/hkexsh/hkexsh.doShellMode + +doShellMode + + + +blitter.com/go/hkexsh/hkexsh.doShellMode->blitter.com/go/hkexsh/hkexsh.doShellMode$1 + + + + + + + +blitter.com/go/hkexsh/hkexsh.handleTermResizes + +handleTermResizes + + + +blitter.com/go/hkexsh/hkexsh.doShellMode->blitter.com/go/hkexsh/hkexsh.handleTermResizes + + + + + +blitter.com/go/hkexsh/hkexsh.doShellMode$2 + +doShellMode$2 + + + +blitter.com/go/hkexsh/hkexsh.doShellMode->blitter.com/go/hkexsh/hkexsh.doShellMode$2 + + + + + + + +blitter.com/go/hkexsh/hkexsh.handleTermResizes$1 + +handleTermResizes$1 + + + +blitter.com/go/hkexsh/hkexsh.GetSize + +GetSize + + + +blitter.com/go/hkexsh/hkexsh.handleTermResizes$1->blitter.com/go/hkexsh/hkexsh.GetSize + + + + + +blitter.com/go/hkexsh/hkexsh.handleTermResizes$1->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket + + + + + +blitter.com/go/hkexsh/hkexsh.handleTermResizes->blitter.com/go/hkexsh/hkexsh.handleTermResizes$1 + + + + + + + +blitter.com/go/hkexsh/hkexsh.doShellMode$2$1 + +doShellMode$2$1 + + + +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 + + + + + +blitter.com/go/hkexsh/hkexsh.main$1 + +main$1 + + + +blitter.com/go/hkexsh/hkexsh.main$1->blitter.com/go/hkexsh.Restore + + + + + +blitter.com/go/hkexsh/hkexsh.main + +main + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.launchTuns + + + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.doShellMode + + + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.main$1 + + + + + + + +blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs + +parseNonSwitchArgs + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs + + + + + +blitter.com/go/hkexsh/hkexsh.sendSessionParams + +sendSessionParams + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.sendSessionParams + + + + + +blitter.com/go/hkexsh/hkexsh.rejectUserMsg + +rejectUserMsg + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.rejectUserMsg + + + + + +blitter.com/go/hkexsh/hkexsh.main$2 + +main$2 + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.main$2 + + + + + + + +blitter.com/go/hkexsh/hkexsh.doCopyMode + +doCopyMode + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.doCopyMode + + + + + +blitter.com/go/hkexsh/hkexsh.usageShell + +usageShell + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.usageShell + + + + + +blitter.com/go/hkexsh/hkexsh.usageCp + +usageCp + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.usageCp + + + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh.Restore + + + + + +blitter.com/go/hkexsh.MakeRaw + +MakeRaw + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh.MakeRaw + + + + + +blitter.com/go/hkexsh.ReadPassword + +ReadPassword + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh.ReadPassword + + + + + +blitter.com/go/hkexsh.NewSession + +NewSession + + + +blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh.NewSession + + + + + +blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh.Session).SetStatus + + blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh.Session).Status - - + + blitter.com/go/hkexsh/hkexnet.Init - -Init + +Init - + blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexnet.Init - - + + blitter.com/go/hkexsh/hkexnet.Dial - -Dial + +Dial - + blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexnet.Dial - - + + (*blitter.com/go/hkexsh/hkexnet.Conn).Close - -Close + +Close - + blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).Close - - - - + + + + (*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff - -SetupChaff + +SetupChaff - + blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff - - + + (*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - -EnableChaff + +EnableChaff - + blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - - + + (*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - -DisableChaff + +DisableChaff - + blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - - - - + + + + (*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - -ShutdownChaff + +ShutdownChaff - + blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - - - - + + + + - + (blitter.com/go/hkexsh/hkexnet.Conn).Read - -Read + +Read - + blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh/hkexnet.Conn).Read - - + + blitter.com/go/hkexsh/logger.New - -New + +New - + blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/logger.New - - + + github.com/mattn/go-isatty.IsTerminal - -IsTerminal + +IsTerminal - + blitter.com/go/hkexsh/hkexsh.main->github.com/mattn/go-isatty.IsTerminal - - - - - -blitter.com/go/hkexsh/hkexsh.main$1->blitter.com/go/hkexsh.Restore - - + + - + (blitter.com/go/hkexsh.Session).Op - -Op + +Op - + blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).Op - - + + - + (blitter.com/go/hkexsh.Session).Who - -Who + +Who - + blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).Who - - + + - + (blitter.com/go/hkexsh.Session).ConnHost - -ConnHost + +ConnHost - + blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).ConnHost - - + + - + (blitter.com/go/hkexsh.Session).TermType - -TermType + +TermType - + blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).TermType - - + + - + (blitter.com/go/hkexsh.Session).Cmd - -Cmd + +Cmd - + blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).Cmd - - + + - + (blitter.com/go/hkexsh.Session).AuthCookie - -AuthCookie + +AuthCookie - + blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).AuthCookie - - + + - + (blitter.com/go/hkexsh/hkexnet.Conn).Write - -Write + +Write - + blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh/hkexnet.Conn).Write - - + + + + + +blitter.com/go/hkexsh/spinsult.GetSentence + +GetSentence + + + +blitter.com/go/hkexsh/hkexsh.rejectUserMsg->blitter.com/go/hkexsh/spinsult.GetSentence + + - -blitter.com/go/hkexsh/hkexsh.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - - - - - -blitter.com/go/hkexsh/hkexsh.doShellMode$1 - -doShellMode$1 - - - -blitter.com/go/hkexsh/hkexsh.doShellMode$1->blitter.com/go/hkexsh.Restore - - - - - -blitter.com/go/hkexsh/hkexsh.doShellMode$1->(*blitter.com/go/hkexsh.Session).SetStatus - - - - - -blitter.com/go/hkexsh/hkexsh.doShellMode$1->(blitter.com/go/hkexsh.Session).Status - - - - - -(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus - -GetStatus - - - -blitter.com/go/hkexsh/hkexsh.doShellMode$1->(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus - - - - - -blitter.com/go/hkexsh/hkexsh.doShellMode->blitter.com/go/hkexsh/hkexsh.doShellMode$1 - - - - - - - -blitter.com/go/hkexsh/hkexsh.handleTermResizes - -handleTermResizes - - - -blitter.com/go/hkexsh/hkexsh.doShellMode->blitter.com/go/hkexsh/hkexsh.handleTermResizes - - - - - -blitter.com/go/hkexsh/hkexsh.doShellMode$2 - -doShellMode$2 - - - -blitter.com/go/hkexsh/hkexsh.doShellMode->blitter.com/go/hkexsh/hkexsh.doShellMode$2 - - - - - - - -blitter.com/go/hkexsh/hkexsh.handleTermResizes$1 - -handleTermResizes$1 - - - -blitter.com/go/hkexsh/hkexsh.GetSize - -GetSize - - - -blitter.com/go/hkexsh/hkexsh.handleTermResizes$1->blitter.com/go/hkexsh/hkexsh.GetSize - - - - - -blitter.com/go/hkexsh/hkexsh.handleTermResizes$1->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - - - - - -blitter.com/go/hkexsh/hkexsh.handleTermResizes->blitter.com/go/hkexsh/hkexsh.handleTermResizes$1 - - - - - - - -blitter.com/go/hkexsh/hkexsh.doShellMode$2$1 - -doShellMode$2$1 - - -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 - - +blitter.com/go/hkexsh/hkexsh.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket + + blitter.com/go/hkexsh/hkexsh.doCopyMode->(blitter.com/go/hkexsh.Session).Cmd - - + + blitter.com/go/hkexsh/hkexsh.doCopyMode->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - - + + (*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus - -SetStatus + +SetStatus blitter.com/go/hkexsh/hkexsh.doCopyMode->(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus - - - - - -blitter.com/go/hkexsh/hkexsh.doCopyMode->(blitter.com/go/hkexsh/hkexnet.Conn).Read - - + + blitter.com/go/hkexsh/hkexsh.doCopyMode->(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus - - + + + + + +blitter.com/go/hkexsh/hkexsh.doCopyMode->(blitter.com/go/hkexsh/hkexnet.Conn).Read + + diff --git a/hkexsh/hkexsh.go b/hkexsh/hkexsh.go index 82a97cc..8c2220b 100755 --- a/hkexsh/hkexsh.go +++ b/hkexsh/hkexsh.go @@ -236,8 +236,8 @@ func doShellMode(isInteractive bool, conn *hkexnet.Conn, oldState *hkexsh.State, wg.Add(1) // #gv:s/label=\"doShellMode\$1\"/label=\"shellRemoteToStdin\"/ - // .gv:doShellMode:1:shellRemoteToStdin - go func() { + // TODO:.gv:doShellMode:1:shellRemoteToStdin + shellRemoteToStdout := func() { defer wg.Done() // By deferring a call to wg.Done(), // each goroutine guarantees that it marks @@ -264,7 +264,8 @@ func doShellMode(isInteractive bool, conn *hkexnet.Conn, oldState *hkexsh.State, log.Println("[* Got EOF *]") _ = hkexsh.Restore(int(os.Stdin.Fd()), oldState) // #nosec } - }() + } + go shellRemoteToStdout() // Only look for data from stdin to send to remote end // for interactive sessions. @@ -275,8 +276,8 @@ func doShellMode(isInteractive bool, conn *hkexnet.Conn, oldState *hkexsh.State, // Write local stdin to remote end wg.Add(1) // #gv:s/label=\"doShellMode\$2\"/label=\"shellStdinToRemote\"/ - // .gv:doShellMode:2:shellStdinToRemote - go func() { + // TODO:.gv:doShellMode:2:shellStdinToRemote + shellStdinToRemote := func() { defer wg.Done() //!defer wg.Done() // Copy() expects EOF so this will @@ -294,7 +295,8 @@ func doShellMode(isInteractive bool, conn *hkexnet.Conn, oldState *hkexsh.State, log.Println("[Hanging up]") os.Exit(0) } - }() + } + go shellStdinToRemote() } // Wait until both stdin and stdout goroutines finish before returning @@ -633,7 +635,7 @@ func main() { panic(err) } // #gv:s/label=\"main\$1\"/label=\"deferRestore\"/ - // .gv:main:1:deferRestore + // TODO:.gv:main:1:deferRestore defer func() { _ = hkexsh.Restore(int(os.Stdin.Fd()), oldState) }() // Best effort. } else { log.Println("NOT A TTY") @@ -676,7 +678,7 @@ func main() { conn.SetupChaff(chaffFreqMin, chaffFreqMax, chaffBytesMax) // enable client->server chaffing if chaffEnabled { // #gv:s/label=\"main\$2\"/label=\"deferCloseChaff\"/ - // .gv:main:2:deferCloseChaff + // TODO:.gv:main:2:deferCloseChaff conn.EnableChaff() // goroutine, returns immediately defer conn.DisableChaff() defer conn.ShutdownChaff() @@ -684,13 +686,14 @@ func main() { // Keepalive for any tunnels that may exist // #gv:s/label=\"main\$1\"/label=\"tunKeepAlive\"/ - // .gv:main:1:tunKeepAlive - go func() { + // TODO:.gv:main:1:tunKeepAlive + keepAliveWorker := func() { for { time.Sleep(time.Duration(2) * time.Second) conn.WritePacket([]byte{0, 0}, hkexnet.CSOTunKeepAlive) } - }() + } + go keepAliveWorker() if shellMode { launchTuns(&conn, remoteHost, tunSpecStr) diff --git a/hkexshd/hkexshd-vis.gv b/hkexshd/hkexshd-vis.gv index dbad6cc..8f776d9 100755 --- a/hkexshd/hkexshd-vis.gv +++ b/hkexshd/hkexshd-vis.gv @@ -14,115 +14,60 @@ digraph gocallvis { edge [minlen="2"] subgraph "cluster_focus" { - fontsize="18"; -bgcolor="#e6ecfa"; + bgcolor="#e6ecfa"; label="main"; labelloc="t"; labeljust="c"; +fontsize="18"; - "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" [ label="runServerToClientCopyAs" penwidth="0.5" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexshd.main$2$1" [ fillcolor="lightblue" label="main$2$1" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexshd.main$1" [ fillcolor="lightblue" label="main$1" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.main$2" [ fillcolor="lightblue" label="main$2" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.GenAuthToken" [ penwidth="1.5" fillcolor="lightblue" label="GenAuthToken" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" [ fillcolor="lightblue" label="runServerToClientCopyAs" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexshd.main$1" [ label="main$1" style="dotted,filled" fillcolor="lightblue" ] "blitter.com/go/hkexsh/hkexshd.runShellAs" [ fillcolor="lightblue" label="runShellAs" penwidth="0.5" ] "blitter.com/go/hkexsh/hkexshd.runShellAs$1" [ fillcolor="lightblue" label="runShellAs$1" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs$2" [ label="runShellAs$2" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$2" [ fillcolor="lightblue" label="runShellAs$2" style="dotted,filled" ] "blitter.com/go/hkexsh/hkexshd.runShellAs$3" [ fillcolor="lightblue" label="runShellAs$3" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs$4" [ fillcolor="lightblue" label="runShellAs$4" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$4" [ style="dotted,filled" fillcolor="lightblue" label="runShellAs$4" ] + "blitter.com/go/hkexsh/hkexshd.main" [ label="main" penwidth="0.5" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.main$2" [ fillcolor="lightblue" label="main$2" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexshd.GenAuthToken" [ penwidth="1.5" fillcolor="lightblue" label="GenAuthToken" ] + "blitter.com/go/hkexsh/hkexshd.main$2$1" [ fillcolor="lightblue" label="main$2$1" style="dotted,filled" ] "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" [ fillcolor="lightblue" label="runClientToServerCopyAs" penwidth="0.5" ] subgraph "cluster_blitter.com/go/goutmp" { fontsize="16"; -style="filled"; -fontname="bold"; -URL="/?f=blitter.com/go/goutmp"; -penwidth="0.8"; fillcolor="lightyellow"; rank="sink"; -label="[goutmp]"; +URL="/?f=blitter.com/go/goutmp"; tooltip="package: blitter.com/go/goutmp"; +penwidth="0.8"; +style="filled"; +fontname="bold"; +label="[goutmp]"; - "blitter.com/go/goutmp.Unput_utmp" [ fillcolor="moccasin" label="Unput_utmp" penwidth="1.5" ] "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.Put_utmp" [ fillcolor="moccasin" label="Put_utmp" penwidth="1.5" ] + "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" ] } subgraph "cluster_blitter.com/go/hkexsh" { - fontsize="16"; -fontname="bold"; -rank="sink"; -URL="/?f=blitter.com/go/hkexsh"; -tooltip="package: blitter.com/go/hkexsh"; -penwidth="0.8"; -style="filled"; -fillcolor="lightyellow"; -label="[hkexsh]"; - - "blitter.com/go/hkexsh.AuthUserByToken" [ fillcolor="moccasin" label="AuthUserByToken" penwidth="1.5" ] - "blitter.com/go/hkexsh.AuthUserByPasswd" [ penwidth="1.5" fillcolor="moccasin" label="AuthUserByPasswd" ] - - subgraph "cluster_*blitter.com/go/hkexsh.Session" { - 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).SetOp" [ fillcolor="moccasin" label="SetOp" penwidth="1.5" ] - "(*blitter.com/go/hkexsh.Session).SetWho" [ fillcolor="moccasin" label="SetWho" penwidth="1.5" ] - "(*blitter.com/go/hkexsh.Session).SetConnHost" [ penwidth="1.5" fillcolor="moccasin" label="SetConnHost" ] - "(*blitter.com/go/hkexsh.Session).SetTermType" [ fillcolor="moccasin" label="SetTermType" penwidth="1.5" ] - "(*blitter.com/go/hkexsh.Session).SetCmd" [ label="SetCmd" penwidth="1.5" fillcolor="moccasin" ] - "(*blitter.com/go/hkexsh.Session).SetAuthCookie" [ fillcolor="moccasin" label="SetAuthCookie" penwidth="1.5" ] - "(*blitter.com/go/hkexsh.Session).ClearAuthCookie" [ fillcolor="moccasin" label="ClearAuthCookie" penwidth="1.5" ] - - } - - subgraph "cluster_blitter.com/go/hkexsh.Session" { - 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" [ 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).Cmd" [ fillcolor="moccasin" label="Cmd" penwidth="1.5" ] - "(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" ] - - } - - } - - subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { rank="sink"; -URL="/?f=blitter.com/go/hkexsh/hkexnet"; -tooltip="package: blitter.com/go/hkexsh/hkexnet"; +label="[hkexsh]"; +tooltip="package: blitter.com/go/hkexsh"; +fontname="bold"; fontsize="16"; style="filled"; -fontname="bold"; -penwidth="0.8"; fillcolor="lightyellow"; -label="[hkexnet]"; +URL="/?f=blitter.com/go/hkexsh"; +penwidth="0.8"; - "blitter.com/go/hkexsh/hkexnet.Init" [ fillcolor="moccasin" label="Init" penwidth="1.5" ] - "blitter.com/go/hkexsh/hkexnet.Listen" [ fillcolor="moccasin" label="Listen" penwidth="1.5" ] + "blitter.com/go/hkexsh.AuthUserByToken" [ fillcolor="moccasin" label="AuthUserByToken" penwidth="1.5" ] + "blitter.com/go/hkexsh.AuthUserByPasswd" [ fillcolor="moccasin" label="AuthUserByPasswd" penwidth="1.5" ] - subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.Conn" { - label="(*Conn)"; -tooltip="type: *blitter.com/go/hkexsh/hkexnet.Conn"; + subgraph "cluster_*blitter.com/go/hkexsh.Session" { + label="(*Session)"; +tooltip="type: *blitter.com/go/hkexsh.Session"; penwidth="0.5"; fontsize="15"; fontcolor="#222222"; @@ -130,13 +75,68 @@ labelloc="b"; style="rounded,filled"; fillcolor="wheat2"; - "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ fillcolor="moccasin" label="EnableChaff" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).SetOp" [ fillcolor="moccasin" label="SetOp" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).SetWho" [ fillcolor="moccasin" label="SetWho" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).SetConnHost" [ penwidth="1.5" fillcolor="moccasin" label="SetConnHost" ] + "(*blitter.com/go/hkexsh.Session).SetTermType" [ label="SetTermType" penwidth="1.5" fillcolor="moccasin" ] + "(*blitter.com/go/hkexsh.Session).SetCmd" [ fillcolor="moccasin" label="SetCmd" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).SetAuthCookie" [ penwidth="1.5" fillcolor="moccasin" label="SetAuthCookie" ] + "(*blitter.com/go/hkexsh.Session).ClearAuthCookie" [ fillcolor="moccasin" label="ClearAuthCookie" penwidth="1.5" ] + + } + + subgraph "cluster_blitter.com/go/hkexsh.Session" { + tooltip="type: blitter.com/go/hkexsh.Session"; +penwidth="0.5"; +fontsize="15"; +fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; +label="(Session)"; + + "(blitter.com/go/hkexsh.Session).Op" [ fillcolor="moccasin" label="Op" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).Who" [ label="Who" penwidth="1.5" fillcolor="moccasin" ] + "(blitter.com/go/hkexsh.Session).ConnHost" [ fillcolor="moccasin" label="ConnHost" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).Cmd" [ fillcolor="moccasin" label="Cmd" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).AuthCookie" [ penwidth="1.5" fillcolor="moccasin" label="AuthCookie" ] + "(blitter.com/go/hkexsh.Session).TermType" [ penwidth="1.5" fillcolor="moccasin" label="TermType" ] + + } + + } + + subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { + URL="/?f=blitter.com/go/hkexsh/hkexnet"; +fontsize="16"; +style="filled"; +fillcolor="lightyellow"; +rank="sink"; +label="[hkexnet]"; +penwidth="0.8"; +fontname="bold"; +tooltip="package: blitter.com/go/hkexsh/hkexnet"; + + "blitter.com/go/hkexsh/hkexnet.Init" [ penwidth="1.5" fillcolor="moccasin" label="Init" ] + "blitter.com/go/hkexsh/hkexnet.Listen" [ fillcolor="moccasin" label="Listen" penwidth="1.5" ] + + subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.Conn" { + 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).EnableChaff" [ label="EnableChaff" penwidth="1.5" fillcolor="moccasin" ] "(*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).SetStatus" [ fillcolor="moccasin" label="SetStatus" 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" [ label="SetStatus" penwidth="1.5" fillcolor="moccasin" ] "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ penwidth="1.5" fillcolor="moccasin" label="WritePacket" ] } @@ -151,19 +151,19 @@ style="rounded,filled"; fillcolor="wheat2"; label="(*HKExListener)"; - "(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept" [ fillcolor="moccasin" label="Accept" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept" [ label="Accept" penwidth="1.5" fillcolor="moccasin" ] } subgraph "cluster_blitter.com/go/hkexsh/hkexnet.Conn" { - fontsize="15"; -fontcolor="#222222"; + fontcolor="#222222"; labelloc="b"; style="rounded,filled"; fillcolor="wheat2"; label="(Conn)"; tooltip="type: blitter.com/go/hkexsh/hkexnet.Conn"; penwidth="0.5"; +fontsize="15"; "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ fillcolor="moccasin" label="Write" penwidth="1.5" ] @@ -179,57 +179,66 @@ fontcolor="#222222"; labelloc="b"; style="rounded,filled"; - "(blitter.com/go/hkexsh/hkexnet.HKExListener).Close" [ fillcolor="moccasin" label="Close" penwidth="1.5" ] + "(blitter.com/go/hkexsh/hkexnet.HKExListener).Close" [ label="Close" penwidth="1.5" fillcolor="moccasin" ] } } subgraph "cluster_blitter.com/go/hkexsh/logger" { - URL="/?f=blitter.com/go/hkexsh/logger"; -tooltip="package: blitter.com/go/hkexsh/logger"; + tooltip="package: blitter.com/go/hkexsh/logger"; penwidth="0.8"; fontsize="16"; +fontname="bold"; +label="[logger]"; +URL="/?f=blitter.com/go/hkexsh/logger"; style="filled"; fillcolor="lightyellow"; rank="sink"; -label="[logger]"; -fontname="bold"; + "blitter.com/go/hkexsh/logger.LogNotice" [ fillcolor="moccasin" label="LogNotice" penwidth="1.5" ] "blitter.com/go/hkexsh/logger.New" [ fillcolor="moccasin" label="New" penwidth="1.5" ] - "blitter.com/go/hkexsh/logger.LogNotice" [ label="LogNotice" penwidth="1.5" fillcolor="moccasin" ] "blitter.com/go/hkexsh/logger.LogErr" [ fillcolor="moccasin" label="LogErr" penwidth="1.5" ] } subgraph "cluster_github.com/kr/pty" { - style="filled"; -penwidth="0.8"; -fontsize="16"; -rank="sink"; + rank="sink"; label="[pty]"; -URL="/?f=github.com/kr/pty"; tooltip="package: github.com/kr/pty"; +penwidth="0.8"; fillcolor="lightyellow"; fontname="bold"; +fontsize="16"; +style="filled"; +URL="/?f=github.com/kr/pty"; - "github.com/kr/pty.Start" [ label="Start" penwidth="1.5" fillcolor="moccasin" ] - "github.com/kr/pty.Setsize" [ fillcolor="moccasin" label="Setsize" penwidth="1.5" ] + "github.com/kr/pty.Start" [ fillcolor="moccasin" label="Start" penwidth="1.5" ] + "github.com/kr/pty.Setsize" [ penwidth="1.5" fillcolor="moccasin" label="Setsize" ] } } "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$1" -> "blitter.com/go/goutmp.Unput_utmp" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ color="saddlebrown" arrowhead="normalnoneodiamond" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$1" -> "blitter.com/go/hkexsh/logger.LogNotice" [ 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" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "blitter.com/go/hkexsh/hkexshd.runShellAs$4" [ arrowhead="normalnoneodot" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ 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" ] "blitter.com/go/hkexsh/hkexshd.main" -> "blitter.com/go/hkexsh/hkexshd.main$1" [ arrowhead="normalnoneodot" ] "blitter.com/go/hkexsh/hkexshd.main" -> "blitter.com/go/hkexsh/hkexnet.Listen" [ color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexshd.main" -> "(blitter.com/go/hkexsh/hkexnet.HKExListener).Close" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main" -> "(blitter.com/go/hkexsh/hkexnet.HKExListener).Close" [ color="saddlebrown" arrowhead="normalnoneodiamond" ] "blitter.com/go/hkexsh/hkexshd.main" -> "(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).Close" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] @@ -253,20 +262,11 @@ fontname="bold"; "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/goutmp.GetHost" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/hkexshd.GenAuthToken" [ ] "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" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "blitter.com/go/hkexsh/hkexshd.runShellAs$4" [ arrowhead="normalnoneodot" ] - "blitter.com/go/hkexsh/hkexshd.runShellAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/hkexshd.runShellAs" [ ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/logger.LogErr" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/goutmp.Put_utmp" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2$1" -> "blitter.com/go/goutmp.Unput_utmp" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/hkexshd.main$2$1" [ arrowhead="normalnoneodiamond" ] "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/goutmp.Put_lastlog_entry" [ color="saddlebrown" ] "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ color="saddlebrown" ] diff --git a/hkexshd/hkexshd-vis.gv.png b/hkexshd/hkexshd-vis.gv.png index a5d2d34..61af369 100644 Binary files a/hkexshd/hkexshd-vis.gv.png and b/hkexshd/hkexshd-vis.gv.png differ diff --git a/hkexshd/hkexshd-vis.gv.svg b/hkexshd/hkexshd-vis.gv.svg index 0ce273f..60bed58 100644 --- a/hkexshd/hkexshd-vis.gv.svg +++ b/hkexshd/hkexshd-vis.gv.svg @@ -4,764 +4,764 @@ - - + + gocallvis - + blitter.com/go/hkexsh/hkexshd cluster_focus - -main + +main cluster_blitter.com/go/goutmp - -[goutmp] + +[goutmp] cluster_blitter.com/go/hkexsh - -[hkexsh] + +[hkexsh] cluster_*blitter.com/go/hkexsh.Session - -(*Session) + +(*Session) cluster_blitter.com/go/hkexsh.Session - -(Session) + +(Session) cluster_blitter.com/go/hkexsh/hkexnet - -[hkexnet] + +[hkexnet] cluster_*blitter.com/go/hkexsh/hkexnet.Conn - -(*Conn) + +(*Conn) cluster_*blitter.com/go/hkexsh/hkexnet.HKExListener - -(*HKExListener) + +(*HKExListener) cluster_blitter.com/go/hkexsh/hkexnet.Conn - -(Conn) + +(Conn) cluster_blitter.com/go/hkexsh/hkexnet.HKExListener - -(HKExListener) + +(HKExListener) cluster_blitter.com/go/hkexsh/logger - -[logger] + +[logger] cluster_github.com/kr/pty - -[pty] + +[pty] blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs - -runServerToClientCopyAs + +runServerToClientCopyAs (*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - -EnableChaff + +EnableChaff blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - - + + (*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - -DisableChaff + +DisableChaff blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - - - - + + + + (*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - -ShutdownChaff + +ShutdownChaff blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - - - - - - - -blitter.com/go/hkexsh/hkexshd.main$2$1 - -main$2$1 - - - -blitter.com/go/goutmp.Unput_utmp - -Unput_utmp - - - -blitter.com/go/hkexsh/hkexshd.main$2$1->blitter.com/go/goutmp.Unput_utmp - - - - - -blitter.com/go/hkexsh/hkexshd.main - -main + + + + - + blitter.com/go/hkexsh/hkexshd.main$1 - -main$1 - - - -blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/hkexshd.main$1 - - - - - - - -blitter.com/go/hkexsh/hkexshd.main$2 - -main$2 - - - -blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/hkexshd.main$2 - - - - - - - -blitter.com/go/hkexsh/hkexnet.Init - -Init - - - -blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/hkexnet.Init - - - - - -blitter.com/go/hkexsh/hkexnet.Listen - -Listen - - - -blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/hkexnet.Listen - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff - -SetupChaff - - - -blitter.com/go/hkexsh/hkexshd.main->(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff - - - - - -(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept - -Accept - - - -blitter.com/go/hkexsh/hkexshd.main->(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept - - - - - -(blitter.com/go/hkexsh/hkexnet.HKExListener).Close - -Close - - - -blitter.com/go/hkexsh/hkexshd.main->(blitter.com/go/hkexsh/hkexnet.HKExListener).Close - - - - - - - -blitter.com/go/hkexsh/logger.New - -New - - - -blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/logger.New - - + +main$1 - + blitter.com/go/hkexsh/logger.LogNotice - -LogNotice + +LogNotice - + blitter.com/go/hkexsh/hkexshd.main$1->blitter.com/go/hkexsh/logger.LogNotice - - - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs - - - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.main$2$1 - - - - - - - -blitter.com/go/hkexsh/hkexshd.GenAuthToken - -GenAuthToken - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.GenAuthToken - - + + - + blitter.com/go/hkexsh/hkexshd.runShellAs - -runShellAs - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.runShellAs - - - - - -blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs - -runClientToServerCopyAs - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs - - - - - -blitter.com/go/goutmp.GetHost - -GetHost - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/goutmp.GetHost - - - - - -blitter.com/go/goutmp.Put_utmp - -Put_utmp - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/goutmp.Put_utmp - - - - - -blitter.com/go/goutmp.Put_lastlog_entry - -Put_lastlog_entry - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/goutmp.Put_lastlog_entry - - - - - -blitter.com/go/hkexsh.AuthUserByToken - -AuthUserByToken - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh.AuthUserByToken - - - - - -blitter.com/go/hkexsh.AuthUserByPasswd - -AuthUserByPasswd - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh.AuthUserByPasswd - - - - - -(*blitter.com/go/hkexsh.Session).SetOp - -SetOp - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetOp - - - - - -(*blitter.com/go/hkexsh.Session).SetWho - -SetWho - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetWho - - - - - -(*blitter.com/go/hkexsh.Session).SetConnHost - -SetConnHost - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetConnHost - - - - - -(*blitter.com/go/hkexsh.Session).SetTermType - -SetTermType - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetTermType - - - - - -(*blitter.com/go/hkexsh.Session).SetCmd - -SetCmd - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetCmd - - - - - -(*blitter.com/go/hkexsh.Session).SetAuthCookie - -SetAuthCookie - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetAuthCookie - - - - - -(*blitter.com/go/hkexsh.Session).ClearAuthCookie - -ClearAuthCookie - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).ClearAuthCookie - - - - - -(blitter.com/go/hkexsh.Session).Op - -Op - - - -blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).Op - - - - - -(blitter.com/go/hkexsh.Session).Who - -Who - - - -blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).Who - - - - - -(blitter.com/go/hkexsh.Session).ConnHost - -ConnHost - - - -blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).ConnHost - - - - - -(blitter.com/go/hkexsh.Session).Cmd - -Cmd - - - -blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).Cmd - - - - - -(blitter.com/go/hkexsh.Session).AuthCookie - -AuthCookie - - - -blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).AuthCookie - - - - - -(blitter.com/go/hkexsh.Session).TermType - -TermType - - - -blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).TermType - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).Close - -Close - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).Close - - - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).RemoteAddr - -RemoteAddr - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).RemoteAddr - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus - -SetStatus - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - -WritePacket - - - -blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - - - - - -(blitter.com/go/hkexsh/hkexnet.Conn).Write - -Write - - - -blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh/hkexnet.Conn).Write - - - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/logger.LogNotice - - - - - -blitter.com/go/hkexsh/logger.LogErr - -LogErr - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/logger.LogErr - - + +runShellAs - + blitter.com/go/hkexsh/hkexshd.runShellAs$1 - -runShellAs$1 + +runShellAs$1 - + blitter.com/go/hkexsh/hkexshd.runShellAs->blitter.com/go/hkexsh/hkexshd.runShellAs$1 - - - - + + + + - + blitter.com/go/hkexsh/hkexshd.runShellAs$2 - -runShellAs$2 + +runShellAs$2 - + blitter.com/go/hkexsh/hkexshd.runShellAs->blitter.com/go/hkexsh/hkexshd.runShellAs$2 - - - - + + + + - + blitter.com/go/hkexsh/hkexshd.runShellAs$3 - -runShellAs$3 + +runShellAs$3 - + blitter.com/go/hkexsh/hkexshd.runShellAs->blitter.com/go/hkexsh/hkexshd.runShellAs$3 - - - - + + + + - + blitter.com/go/hkexsh/hkexshd.runShellAs$4 - -runShellAs$4 + +runShellAs$4 - + blitter.com/go/hkexsh/hkexshd.runShellAs->blitter.com/go/hkexsh/hkexshd.runShellAs$4 - - - - + + + + - + blitter.com/go/hkexsh/hkexshd.runShellAs->(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - - + + - + blitter.com/go/hkexsh/hkexshd.runShellAs->(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - - - - + + + + - + blitter.com/go/hkexsh/hkexshd.runShellAs->(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - - - - + + + + + + + +(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus + +SetStatus - + blitter.com/go/hkexsh/hkexshd.runShellAs->(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus - - + + github.com/kr/pty.Start - -Start + +Start - + blitter.com/go/hkexsh/hkexshd.runShellAs->github.com/kr/pty.Start - - + + github.com/kr/pty.Setsize - -Setsize + +Setsize - + blitter.com/go/hkexsh/hkexshd.runShellAs$2->github.com/kr/pty.Setsize - - + + + + + +blitter.com/go/hkexsh/hkexshd.main + +main + + + +blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/hkexshd.main$1 + + + + + + + +blitter.com/go/hkexsh/hkexshd.main$2 + +main$2 + + + +blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/hkexshd.main$2 + + + + + + + +blitter.com/go/hkexsh/hkexnet.Init + +Init + + + +blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/hkexnet.Init + + + + + +blitter.com/go/hkexsh/hkexnet.Listen + +Listen + + + +blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/hkexnet.Listen + + + + + +(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff + +SetupChaff + + + +blitter.com/go/hkexsh/hkexshd.main->(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff + + + + + +(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept + +Accept + + + +blitter.com/go/hkexsh/hkexshd.main->(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept + + + + + +(blitter.com/go/hkexsh/hkexnet.HKExListener).Close + +Close + + + +blitter.com/go/hkexsh/hkexshd.main->(blitter.com/go/hkexsh/hkexnet.HKExListener).Close + + + + + + + +blitter.com/go/hkexsh/logger.New + +New + + + +blitter.com/go/hkexsh/hkexshd.main->blitter.com/go/hkexsh/logger.New + + + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs + + + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.runShellAs + + + + + +blitter.com/go/hkexsh/hkexshd.GenAuthToken + +GenAuthToken + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.GenAuthToken + + + + + +blitter.com/go/hkexsh/hkexshd.main$2$1 + +main$2$1 + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.main$2$1 + + + + + + + +blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs + +runClientToServerCopyAs + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs + + + + + +blitter.com/go/goutmp.GetHost + +GetHost + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/goutmp.GetHost + + + + + +blitter.com/go/goutmp.Put_utmp + +Put_utmp + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/goutmp.Put_utmp + + + + + +blitter.com/go/goutmp.Put_lastlog_entry + +Put_lastlog_entry + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/goutmp.Put_lastlog_entry + + + + + +blitter.com/go/hkexsh.AuthUserByToken + +AuthUserByToken + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh.AuthUserByToken + + + + + +blitter.com/go/hkexsh.AuthUserByPasswd + +AuthUserByPasswd + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh.AuthUserByPasswd + + + + + +(*blitter.com/go/hkexsh.Session).SetOp + +SetOp + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetOp + + + + + +(*blitter.com/go/hkexsh.Session).SetWho + +SetWho + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetWho + + + + + +(*blitter.com/go/hkexsh.Session).SetConnHost + +SetConnHost + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetConnHost + + + + + +(*blitter.com/go/hkexsh.Session).SetTermType + +SetTermType + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetTermType + + + + + +(*blitter.com/go/hkexsh.Session).SetCmd + +SetCmd + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetCmd + + + + + +(*blitter.com/go/hkexsh.Session).SetAuthCookie + +SetAuthCookie + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).SetAuthCookie + + + + + +(*blitter.com/go/hkexsh.Session).ClearAuthCookie + +ClearAuthCookie + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh.Session).ClearAuthCookie + + + + + +(blitter.com/go/hkexsh.Session).Op + +Op + + + +blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).Op + + + + + +(blitter.com/go/hkexsh.Session).Who + +Who + + + +blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).Who + + + + + +(blitter.com/go/hkexsh.Session).ConnHost + +ConnHost + + + +blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).ConnHost + + + + + +(blitter.com/go/hkexsh.Session).Cmd + +Cmd + + + +blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).Cmd + + + + + +(blitter.com/go/hkexsh.Session).AuthCookie + +AuthCookie + + + +blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).AuthCookie + + + + + +(blitter.com/go/hkexsh.Session).TermType + +TermType + + + +blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh.Session).TermType + + + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus + + + + + +(*blitter.com/go/hkexsh/hkexnet.Conn).Close + +Close + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).Close + + + + + + + +(*blitter.com/go/hkexsh/hkexnet.Conn).RemoteAddr + +RemoteAddr + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).RemoteAddr + + + + + +(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket + +WritePacket + + + +blitter.com/go/hkexsh/hkexshd.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket + + + + + +(blitter.com/go/hkexsh/hkexnet.Conn).Write + +Write + + + +blitter.com/go/hkexsh/hkexshd.main$2->(blitter.com/go/hkexsh/hkexnet.Conn).Write + + + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/logger.LogNotice + + + + + +blitter.com/go/hkexsh/logger.LogErr + +LogErr + + + +blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/logger.LogErr + + + + + +blitter.com/go/goutmp.Unput_utmp + +Unput_utmp + + + +blitter.com/go/hkexsh/hkexshd.main$2$1->blitter.com/go/goutmp.Unput_utmp + + blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - - + + blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - - - - + + + + blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - - - - + + + +