diff --git a/fixup-gv.sh b/fixup-gv.sh new file mode 100755 index 0000000..4709c2f --- /dev/null +++ b/fixup-gv.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +inFile="${1/.go/}" +visFile="${inFile}-vis.gv" + +#grep -o "\.[a-zA-Z_]*\$[0-9]*" "$inFile"-vis.gv | sort | uniq +grep -o "#gv:.*" "$inFile.go" | cut -f2 -d: | \ +while read -r expr; do sed -i ${expr} "${visFile}"; done + diff --git a/hkexpasswd/hkexpasswd-vis.gv b/hkexpasswd/hkexpasswd-vis.gv index 2e36bce..625bc0d 100755 --- a/hkexpasswd/hkexpasswd-vis.gv +++ b/hkexpasswd/hkexpasswd-vis.gv @@ -14,43 +14,43 @@ digraph gocallvis { edge [minlen="2"] subgraph "cluster_focus" { - bgcolor="#e6ecfa"; -label="main"; -labelloc="t"; + labelloc="t"; labeljust="c"; fontsize="18"; +bgcolor="#e6ecfa"; +label="main"; - "blitter.com/go/hkexsh/hkexpasswd.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexpasswd.main" [ label="main" penwidth="0.5" fillcolor="lightblue" ] subgraph "cluster_blitter.com/go/hkexsh" { - style="filled"; + fontsize="16"; fillcolor="lightyellow"; -label="[hkexsh]"; -penwidth="0.8"; -fontsize="16"; fontname="bold"; -rank="sink"; -URL="/?f=blitter.com/go/hkexsh"; tooltip="package: blitter.com/go/hkexsh"; +penwidth="0.8"; +style="filled"; +rank="sink"; +label="[hkexsh]"; +URL="/?f=blitter.com/go/hkexsh"; "blitter.com/go/hkexsh.ReadPassword" [ fillcolor="moccasin" label="ReadPassword" penwidth="1.5" ] } subgraph "cluster_github.com/jameskeane/bcrypt" { - fontname="bold"; + fillcolor="lightyellow"; +fontname="bold"; rank="sink"; +tooltip="package: github.com/jameskeane/bcrypt"; +fontsize="16"; +style="filled"; label="[bcrypt]"; URL="/?f=github.com/jameskeane/bcrypt"; penwidth="0.8"; -fontsize="16"; -style="filled"; -fillcolor="lightyellow"; -tooltip="package: github.com/jameskeane/bcrypt"; "github.com/jameskeane/bcrypt.Salt" [ fillcolor="moccasin" label="Salt" penwidth="1.5" ] "github.com/jameskeane/bcrypt.Hash" [ penwidth="1.5" fillcolor="moccasin" label="Hash" ] - "github.com/jameskeane/bcrypt.Match" [ penwidth="1.5" fillcolor="moccasin" label="Match" ] + "github.com/jameskeane/bcrypt.Match" [ fillcolor="moccasin" label="Match" penwidth="1.5" ] } diff --git a/hkexsh/Makefile b/hkexsh/Makefile index b4d319d..14c3c30 100644 --- a/hkexsh/Makefile +++ b/hkexsh/Makefile @@ -10,6 +10,5 @@ clean: $(RM) $(EXE) $(EXE).exe vis: - go-callvis -skipbrowser -svg -png -output hkexsh-vis -ignore $(EXTPKGS) -group pkg,type . - - + go-callvis -skipbrowser -output hkexsh-vis -ignore $(EXTPKGS) -group pkg,type . + ../fixup-gv.sh hkexsh.go && cat hkexsh-vis.gv | dot -Tpng -ohkexsh-vis.gv.png diff --git a/hkexsh/hkexsh-vis.gv b/hkexsh/hkexsh-vis.gv index 6dbe216..0d24c14 100755 --- a/hkexsh/hkexsh-vis.gv +++ b/hkexsh/hkexsh-vis.gv @@ -20,13 +20,13 @@ labelloc="t"; labeljust="c"; fontsize="18"; - "blitter.com/go/hkexsh/hkexsh.rejectUserMsg" [ penwidth="0.5" fillcolor="lightblue" label="rejectUserMsg" ] - "blitter.com/go/hkexsh/hkexsh.reqTunnel" [ label="reqTunnel" penwidth="0.5" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexsh.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs" [ label="parseNonSwitchArgs" penwidth="0.5" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexsh.main$1" [ style="dotted,filled" fillcolor="lightblue" label="deferRestore" ] + "blitter.com/go/hkexsh/hkexsh.main" [ label="main" penwidth="0.5" fillcolor="lightblue" ] + "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" [ fillcolor="lightblue" label="sendSessionParams" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexsh.rejectUserMsg" [ penwidth="0.5" fillcolor="lightblue" label="rejectUserMsg" ] "blitter.com/go/hkexsh/hkexsh.main$2" [ label="deferCloseChaff" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.reqTunnel" [ penwidth="0.5" fillcolor="lightblue" label="reqTunnel" ] "blitter.com/go/hkexsh/hkexsh.launchTuns" [ fillcolor="lightblue" label="launchTuns" penwidth="0.5" ] "blitter.com/go/hkexsh/hkexsh.doShellMode$1" [ fillcolor="lightblue" label="shellRemoteToStdin" style="dotted,filled" ] "blitter.com/go/hkexsh/hkexsh.doShellMode" [ fillcolor="lightblue" label="doShellMode" penwidth="0.5" ] @@ -35,107 +35,107 @@ fontsize="18"; "blitter.com/go/hkexsh/hkexsh.handleTermResizes" [ fillcolor="lightblue" label="handleTermResizes" penwidth="0.5" ] "blitter.com/go/hkexsh/hkexsh.doShellMode$2" [ label="shellStdinToRemote" style="dotted,filled" fillcolor="lightblue" ] "blitter.com/go/hkexsh/hkexsh.doShellMode$2$1" [ fillcolor="lightblue" label="doShellMode$2$1" style="dotted,filled" ] - "blitter.com/go/hkexsh/hkexsh.doCopyMode" [ label="doCopyMode" penwidth="0.5" fillcolor="lightblue" ] - "blitter.com/go/hkexsh/hkexsh.usageShell" [ label="usageShell" penwidth="0.5" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" [ penwidth="0.5" fillcolor="lightblue" label="doCopyMode" ] + "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" { - style="filled"; + fontsize="16"; +style="filled"; fillcolor="lightyellow"; fontname="bold"; penwidth="0.8"; -fontsize="16"; -URL="/?f=blitter.com/go/hkexsh"; -tooltip="package: blitter.com/go/hkexsh"; rank="sink"; label="[hkexsh]"; +URL="/?f=blitter.com/go/hkexsh"; +tooltip="package: blitter.com/go/hkexsh"; "blitter.com/go/hkexsh.MakeRaw" [ fillcolor="moccasin" label="MakeRaw" penwidth="1.5" ] - "blitter.com/go/hkexsh.Restore" [ penwidth="1.5" fillcolor="moccasin" label="Restore" ] + "blitter.com/go/hkexsh.Restore" [ label="Restore" penwidth="1.5" fillcolor="moccasin" ] "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" { - penwidth="0.5"; + 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)"; -tooltip="type: *blitter.com/go/hkexsh.Session"; "(*blitter.com/go/hkexsh.Session).SetStatus" [ fillcolor="moccasin" label="SetStatus" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh.Session" { - fontsize="15"; + tooltip="type: blitter.com/go/hkexsh.Session"; +penwidth="0.5"; +fontsize="15"; fontcolor="#222222"; labelloc="b"; style="rounded,filled"; fillcolor="wheat2"; label="(Session)"; -tooltip="type: blitter.com/go/hkexsh.Session"; -penwidth="0.5"; "(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" [ penwidth="1.5" fillcolor="moccasin" label="TermType" ] + "(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" [ fillcolor="moccasin" label="AuthCookie" penwidth="1.5" ] - "(blitter.com/go/hkexsh.Session).Status" [ penwidth="1.5" fillcolor="moccasin" label="Status" ] + "(blitter.com/go/hkexsh.Session).Status" [ fillcolor="moccasin" label="Status" penwidth="1.5" ] } } subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { - fontname="bold"; -URL="/?f=blitter.com/go/hkexsh/hkexnet"; -fillcolor="lightyellow"; -fontsize="16"; -style="filled"; -rank="sink"; -label="[hkexnet]"; + URL="/?f=blitter.com/go/hkexsh/hkexnet"; tooltip="package: blitter.com/go/hkexsh/hkexnet"; penwidth="0.8"; +fontsize="16"; +fontname="bold"; +label="[hkexnet]"; +style="filled"; +fillcolor="lightyellow"; +rank="sink"; - "blitter.com/go/hkexsh/hkexnet.Init" [ penwidth="1.5" fillcolor="moccasin" label="Init" ] + "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" { - fontsize="15"; -fontcolor="#222222"; -labelloc="b"; + 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).WritePacket" [ label="WritePacket" 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).Close" [ penwidth="1.5" fillcolor="moccasin" label="Close" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ penwidth="1.5" fillcolor="moccasin" label="SetupChaff" ] "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ fillcolor="moccasin" label="EnableChaff" 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).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).WritePacket" [ fillcolor="moccasin" label="WritePacket" 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" { - penwidth="0.5"; -fontsize="15"; -fontcolor="#222222"; -labelloc="b"; -style="rounded,filled"; + 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).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,56 +144,53 @@ tooltip="type: blitter.com/go/hkexsh/hkexnet.Conn"; } subgraph "cluster_blitter.com/go/hkexsh/logger" { - fontsize="16"; + URL="/?f=blitter.com/go/hkexsh/logger"; +fontsize="16"; style="filled"; +fillcolor="lightyellow"; fontname="bold"; -tooltip="package: blitter.com/go/hkexsh/logger"; penwidth="0.8"; rank="sink"; label="[logger]"; -URL="/?f=blitter.com/go/hkexsh/logger"; -fillcolor="lightyellow"; +tooltip="package: blitter.com/go/hkexsh/logger"; - "blitter.com/go/hkexsh/logger.LogDebug" [ fillcolor="moccasin" label="LogDebug" penwidth="1.5" ] "blitter.com/go/hkexsh/logger.New" [ fillcolor="moccasin" label="New" penwidth="1.5" ] + "blitter.com/go/hkexsh/logger.LogDebug" [ fillcolor="moccasin" label="LogDebug" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh/spinsult" { - label="[spinsult]"; + fillcolor="lightyellow"; +rank="sink"; +fontsize="16"; +style="filled"; +label="[spinsult]"; +URL="/?f=blitter.com/go/hkexsh/spinsult"; tooltip="package: blitter.com/go/hkexsh/spinsult"; penwidth="0.8"; -fontsize="16"; fontname="bold"; -URL="/?f=blitter.com/go/hkexsh/spinsult"; -style="filled"; -fillcolor="lightyellow"; -rank="sink"; "blitter.com/go/hkexsh/spinsult.GetSentence" [ fillcolor="moccasin" label="GetSentence" penwidth="1.5" ] } subgraph "cluster_github.com/mattn/go-isatty" { - URL="/?f=github.com/mattn/go-isatty"; -tooltip="package: github.com/mattn/go-isatty"; -fontsize="16"; + 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"; - "github.com/mattn/go-isatty.IsTerminal" [ label="IsTerminal" penwidth="1.5" fillcolor="moccasin" ] + "github.com/mattn/go-isatty.IsTerminal" [ fillcolor="moccasin" label="IsTerminal" penwidth="1.5" ] } } - "blitter.com/go/hkexsh/hkexsh.rejectUserMsg" -> "blitter.com/go/hkexsh/spinsult.GetSentence" [ color="saddlebrown" ] - "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.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" ] @@ -211,10 +208,11 @@ fillcolor="lightyellow"; "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.sendSessionParams" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ color="saddlebrown" style="dashed" ] "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" ] @@ -222,6 +220,8 @@ fillcolor="lightyellow"; "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.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" ] diff --git a/hkexsh/hkexsh-vis.gv.png b/hkexsh/hkexsh-vis.gv.png index 0a39d15..762405b 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 deleted file mode 100644 index a064d0f..0000000 --- a/hkexsh/hkexsh-vis.gv.svg +++ /dev/null @@ -1,719 +0,0 @@ - - - - - - -gocallvis - -blitter.com/go/hkexsh/hkexsh - -cluster_focus - -main - - -cluster_blitter.com/go/hkexsh - - -[hkexsh] - - - - -cluster_*blitter.com/go/hkexsh.Session - - -(*Session) - - - - -cluster_blitter.com/go/hkexsh.Session - - -(Session) - - - - -cluster_blitter.com/go/hkexsh/hkexnet - - -[hkexnet] - - - - -cluster_*blitter.com/go/hkexsh/hkexnet.Conn - - -(*Conn) - - - - -cluster_blitter.com/go/hkexsh/hkexnet.Conn - - -(Conn) - - - - -cluster_blitter.com/go/hkexsh/logger - - -[logger] - - - - -cluster_blitter.com/go/hkexsh/spinsult - - -[spinsult] - - - - -cluster_github.com/mattn/go-isatty - - -[isatty] - - - - - -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.reqTunnel - -reqTunnel - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - -WritePacket - - - -blitter.com/go/hkexsh/hkexsh.reqTunnel->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - - - - - -blitter.com/go/hkexsh/logger.LogDebug - -LogDebug - - - -blitter.com/go/hkexsh/hkexsh.reqTunnel->blitter.com/go/hkexsh/logger.LogDebug - - - - - -blitter.com/go/hkexsh/hkexsh.main - -main - - - -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.launchTuns - -launchTuns - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexsh.launchTuns - - - - - -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.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.Session).SetStatus - -SetStatus - - - -blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh.Session).SetStatus - - - - - -(blitter.com/go/hkexsh.Session).Status - -Status - - - -blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh.Session).Status - - - - - -blitter.com/go/hkexsh/hkexnet.Init - -Init - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexnet.Init - - - - - -blitter.com/go/hkexsh/hkexnet.Dial - -Dial - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/hkexnet.Dial - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).Close - -Close - - - -blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).Close - - - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff - -SetupChaff - - - -blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - -EnableChaff - - - -blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - -DisableChaff - - - -blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - - - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - -ShutdownChaff - - - -blitter.com/go/hkexsh/hkexsh.main->(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - - - - - - - -(blitter.com/go/hkexsh/hkexnet.Conn).Read - -Read - - - -blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh/hkexnet.Conn).Read - - - - - -blitter.com/go/hkexsh/logger.New - -New - - - -blitter.com/go/hkexsh/hkexsh.main->blitter.com/go/hkexsh/logger.New - - - - - -github.com/mattn/go-isatty.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 - - - -blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).Op - - - - - -(blitter.com/go/hkexsh.Session).Who - -Who - - - -blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).Who - - - - - -(blitter.com/go/hkexsh.Session).ConnHost - -ConnHost - - - -blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).ConnHost - - - - - -(blitter.com/go/hkexsh.Session).TermType - -TermType - - - -blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).TermType - - - - - -(blitter.com/go/hkexsh.Session).Cmd - -Cmd - - - -blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).Cmd - - - - - -(blitter.com/go/hkexsh.Session).AuthCookie - -AuthCookie - - - -blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh.Session).AuthCookie - - - - - -(blitter.com/go/hkexsh/hkexnet.Conn).Write - -Write - - - -blitter.com/go/hkexsh/hkexsh.sendSessionParams->(blitter.com/go/hkexsh/hkexnet.Conn).Write - - - - - -blitter.com/go/hkexsh/hkexsh.main$2->(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket - - - - - -blitter.com/go/hkexsh/hkexsh.launchTuns->blitter.com/go/hkexsh/hkexsh.reqTunnel - - - - - -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.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 - - - -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 - - - - - diff --git a/hkexshd/Makefile b/hkexshd/Makefile index 7e41914..78ba392 100644 --- a/hkexshd/Makefile +++ b/hkexshd/Makefile @@ -10,5 +10,6 @@ clean: $(RM) $(EXE) $(EXE).exe vis: - go-callvis -skipbrowser -png -svg -output hkexshd-vis -ignore $(EXTPKGS) -group pkg,type . + go-callvis -skipbrowser -output hkexshd-vis -ignore $(EXTPKGS) -group pkg,type . + ../fixup-gv.sh hkexshd.go && cat hkexshd-vis.gv | dot -Tpng -ohkexshd-vis.gv.png diff --git a/hkexshd/hkexshd-vis.gv b/hkexshd/hkexshd-vis.gv index 7c686ab..8d52fed 100755 --- a/hkexshd/hkexshd-vis.gv +++ b/hkexshd/hkexshd-vis.gv @@ -20,85 +20,86 @@ labelloc="t"; labeljust="c"; fontsize="18"; - "blitter.com/go/hkexsh/hkexshd.main$1" [ label="main$1" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.main$1" [ fillcolor="lightblue" label="main$1" style="dotted,filled" ] "blitter.com/go/hkexsh/hkexshd.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] - "blitter.com/go/hkexsh/hkexshd.main$2" [ style="dotted,filled" fillcolor="lightblue" label="main$2" ] - "blitter.com/go/hkexsh/hkexshd.GenAuthToken" [ label="GenAuthToken" penwidth="1.5" 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" [ style="dotted,filled" fillcolor="lightblue" label="runShellAs$1" ] - "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" [ label="runShellAs$4" 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.runClientToServerCopyAs" [ fillcolor="lightblue" label="runClientToServerCopyAs" 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$4" [ fillcolor="lightblue" label="deferChaffShutdown" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexshd.runShellAs$5" [ fillcolor="lightblue" label="runShellAs$5" 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.runClientToServerCopyAs" [ penwidth="0.5" fillcolor="lightblue" label="runClientToServerCopyAs" ] "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" [ fillcolor="lightblue" label="runServerToClientCopyAs" penwidth="0.5" ] subgraph "cluster_blitter.com/go/goutmp" { - penwidth="0.8"; + style="filled"; fillcolor="lightyellow"; +label="[goutmp]"; URL="/?f=blitter.com/go/goutmp"; +tooltip="package: blitter.com/go/goutmp"; +penwidth="0.8"; fontsize="16"; -style="filled"; fontname="bold"; rank="sink"; -label="[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" [ 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_utmp" [ penwidth="1.5" fillcolor="moccasin" label="Put_utmp" ] + "blitter.com/go/goutmp.Unput_utmp" [ label="Unput_utmp" penwidth="1.5" fillcolor="moccasin" ] "blitter.com/go/goutmp.Put_lastlog_entry" [ fillcolor="moccasin" label="Put_lastlog_entry" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh" { style="filled"; -fontname="bold"; -label="[hkexsh]"; -fontsize="16"; fillcolor="lightyellow"; -rank="sink"; -URL="/?f=blitter.com/go/hkexsh"; +label="[hkexsh]"; tooltip="package: blitter.com/go/hkexsh"; penwidth="0.8"; +fontsize="16"; +URL="/?f=blitter.com/go/hkexsh"; +fontname="bold"; +rank="sink"; "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.Session" { - fontsize="15"; -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).SetOp" [ fillcolor="moccasin" label="SetOp" penwidth="1.5" ] + "(*blitter.com/go/hkexsh.Session).SetOp" [ label="SetOp" penwidth="1.5" fillcolor="moccasin" ] "(*blitter.com/go/hkexsh.Session).SetWho" [ fillcolor="moccasin" label="SetWho" penwidth="1.5" ] "(*blitter.com/go/hkexsh.Session).SetConnHost" [ fillcolor="moccasin" label="SetConnHost" penwidth="1.5" ] "(*blitter.com/go/hkexsh.Session).SetTermType" [ fillcolor="moccasin" label="SetTermType" penwidth="1.5" ] "(*blitter.com/go/hkexsh.Session).SetCmd" [ penwidth="1.5" fillcolor="moccasin" label="SetCmd" ] "(*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" ] + "(*blitter.com/go/hkexsh.Session).ClearAuthCookie" [ label="ClearAuthCookie" penwidth="1.5" fillcolor="moccasin" ] } subgraph "cluster_blitter.com/go/hkexsh.Session" { - fontcolor="#222222"; -labelloc="b"; -style="rounded,filled"; -fillcolor="wheat2"; -label="(Session)"; + 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).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" [ label="ConnHost" penwidth="1.5" fillcolor="moccasin" ] - "(blitter.com/go/hkexsh.Session).Cmd" [ label="Cmd" 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" [ fillcolor="moccasin" label="AuthCookie" penwidth="1.5" ] "(blitter.com/go/hkexsh.Session).TermType" [ fillcolor="moccasin" label="TermType" penwidth="1.5" ] @@ -107,34 +108,34 @@ fontsize="15"; } subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { - fillcolor="lightyellow"; + tooltip="package: blitter.com/go/hkexsh/hkexnet"; fontname="bold"; -tooltip="package: blitter.com/go/hkexsh/hkexnet"; +rank="sink"; +label="[hkexnet]"; +fillcolor="lightyellow"; URL="/?f=blitter.com/go/hkexsh/hkexnet"; penwidth="0.8"; fontsize="16"; style="filled"; -rank="sink"; -label="[hkexnet]"; - "blitter.com/go/hkexsh/hkexnet.Init" [ fillcolor="moccasin" label="Init" penwidth="1.5" ] + "blitter.com/go/hkexsh/hkexnet.Init" [ label="Init" penwidth="1.5" fillcolor="moccasin" ] "blitter.com/go/hkexsh/hkexnet.Listen" [ fillcolor="moccasin" label="Listen" penwidth="1.5" ] subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.Conn" { - fillcolor="wheat2"; + style="rounded,filled"; +fillcolor="wheat2"; label="(*Conn)"; tooltip="type: *blitter.com/go/hkexsh/hkexnet.Conn"; penwidth="0.5"; fontsize="15"; fontcolor="#222222"; labelloc="b"; -style="rounded,filled"; - "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ label="SetupChaff" penwidth="1.5" fillcolor="moccasin" ] + "(*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).RemoteAddr" [ label="RemoteAddr" penwidth="1.5" fillcolor="moccasin" ] "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ fillcolor="moccasin" label="EnableChaff" penwidth="1.5" ] - "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ penwidth="1.5" fillcolor="moccasin" label="DisableChaff" ] + "(*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).WritePacket" [ fillcolor="moccasin" label="WritePacket" penwidth="1.5" ] @@ -142,42 +143,42 @@ style="rounded,filled"; } subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.HKExListener" { - fontcolor="#222222"; -labelloc="b"; -style="rounded,filled"; -fillcolor="wheat2"; -label="(*HKExListener)"; + label="(*HKExListener)"; tooltip="type: *blitter.com/go/hkexsh/hkexnet.HKExListener"; penwidth="0.5"; fontsize="15"; +fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; - "(*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" { - fontcolor="#222222"; -labelloc="b"; -style="rounded,filled"; -fillcolor="wheat2"; + fillcolor="wheat2"; label="(Conn)"; tooltip="type: blitter.com/go/hkexsh/hkexnet.Conn"; penwidth="0.5"; fontsize="15"; +fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; - "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ penwidth="1.5" fillcolor="moccasin" label="Write" ] + "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ fillcolor="moccasin" label="Write" penwidth="1.5" ] } subgraph "cluster_blitter.com/go/hkexsh/hkexnet.HKExListener" { - fillcolor="wheat2"; + style="rounded,filled"; +fillcolor="wheat2"; label="(HKExListener)"; tooltip="type: blitter.com/go/hkexsh/hkexnet.HKExListener"; penwidth="0.5"; fontsize="15"; fontcolor="#222222"; labelloc="b"; -style="rounded,filled"; "(blitter.com/go/hkexsh/hkexnet.HKExListener).Close" [ fillcolor="moccasin" label="Close" penwidth="1.5" ] @@ -186,15 +187,15 @@ style="rounded,filled"; } subgraph "cluster_blitter.com/go/hkexsh/logger" { - fillcolor="lightyellow"; -label="[logger]"; -penwidth="0.8"; + penwidth="0.8"; +fontsize="16"; style="filled"; rank="sink"; +label="[logger]"; URL="/?f=blitter.com/go/hkexsh/logger"; -tooltip="package: blitter.com/go/hkexsh/logger"; -fontsize="16"; +fillcolor="lightyellow"; fontname="bold"; +tooltip="package: blitter.com/go/hkexsh/logger"; "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" ] @@ -204,14 +205,14 @@ fontname="bold"; subgraph "cluster_github.com/kr/pty" { fillcolor="lightyellow"; -fontname="bold"; rank="sink"; -label="[pty]"; -URL="/?f=github.com/kr/pty"; +tooltip="package: github.com/kr/pty"; penwidth="0.8"; fontsize="16"; style="filled"; -tooltip="package: github.com/kr/pty"; +fontname="bold"; +label="[pty]"; +URL="/?f=github.com/kr/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" ] @@ -255,9 +256,10 @@ tooltip="package: github.com/kr/pty"; "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" [ color="saddlebrown" arrowhead="normalnoneodiamond" ] - "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$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" ] "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" ] diff --git a/hkexshd/hkexshd-vis.gv.png b/hkexshd/hkexshd-vis.gv.png index 9996caa..02d1833 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 deleted file mode 100644 index 381a2cc..0000000 --- a/hkexshd/hkexshd-vis.gv.svg +++ /dev/null @@ -1,767 +0,0 @@ - - - - - - -gocallvis - -blitter.com/go/hkexsh/hkexshd - -cluster_focus - -main - - -cluster_blitter.com/go/goutmp - - -[goutmp] - - - - -cluster_blitter.com/go/hkexsh - - -[hkexsh] - - - - -cluster_*blitter.com/go/hkexsh.Session - - -(*Session) - - - - -cluster_blitter.com/go/hkexsh.Session - - -(Session) - - - - -cluster_blitter.com/go/hkexsh/hkexnet - - -[hkexnet] - - - - -cluster_*blitter.com/go/hkexsh/hkexnet.Conn - - -(*Conn) - - - - -cluster_*blitter.com/go/hkexsh/hkexnet.HKExListener - - -(*HKExListener) - - - - -cluster_blitter.com/go/hkexsh/hkexnet.Conn - - -(Conn) - - - - -cluster_blitter.com/go/hkexsh/hkexnet.HKExListener - - -(HKExListener) - - - - -cluster_blitter.com/go/hkexsh/logger - - -[logger] - - - - -cluster_github.com/kr/pty - - -[pty] - - - - - -blitter.com/go/hkexsh/hkexshd.main$1 - -main$1 - - - -blitter.com/go/hkexsh/logger.LogNotice - -LogNotice - - - -blitter.com/go/hkexsh/hkexshd.main$1->blitter.com/go/hkexsh/logger.LogNotice - - - - - -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.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.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/hkexsh/hkexshd.runServerToClientCopyAs - -runServerToClientCopyAs - - - -blitter.com/go/hkexsh/hkexshd.main$2->blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs - - - - - -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 - - - - - -blitter.com/go/hkexsh/hkexshd.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 - - - -blitter.com/go/hkexsh/hkexshd.runShellAs->blitter.com/go/hkexsh/hkexshd.runShellAs$2 - - - - - - - -blitter.com/go/hkexsh/hkexshd.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 - - - -blitter.com/go/hkexsh/hkexshd.runShellAs->blitter.com/go/hkexsh/hkexshd.runShellAs$4 - - - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - -EnableChaff - - - -blitter.com/go/hkexsh/hkexshd.runShellAs->(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - -DisableChaff - - - -blitter.com/go/hkexsh/hkexshd.runShellAs->(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - - - - - - - -(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - -ShutdownChaff - - - -blitter.com/go/hkexsh/hkexshd.runShellAs->(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - - - - - - - -blitter.com/go/hkexsh/hkexshd.runShellAs->(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus - - - - - -github.com/kr/pty.Start - -Start - - - -blitter.com/go/hkexsh/hkexshd.runShellAs->github.com/kr/pty.Start - - - - - -github.com/kr/pty.Setsize - -Setsize - - - -blitter.com/go/hkexsh/hkexshd.runShellAs$2->github.com/kr/pty.Setsize - - - - - -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 - - - - - - - -blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff - - - - - -blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff - - - - - - - -blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs->(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff - - - - - - - diff --git a/hkexshd/hkexshd.go b/hkexshd/hkexshd.go index 77748d3..a2be3be 100755 --- a/hkexshd/hkexshd.go +++ b/hkexshd/hkexshd.go @@ -267,14 +267,15 @@ func runShellAs(who, ttype string, cmd string, interactive bool, conn *hkexnet.C return err, hkexnet.CSEPtyExecFail } // Make sure to close the pty at the end. + // #gv:s/label=\"runShellAs\$1\"/label=\"deferPtmxClose\"/ defer func() { _ = ptmx.Close() }() // Best effort. log.Printf("[%s]\n", cmd) if err != nil { log.Printf("Command finished with error: %v", err) } else { - // Watch for term resizes + // #gv:s/label=\"runShellAs\$2\"/label=\"termResizeWatcher\"/ go func() { for sz := range conn.WinCh { log.Printf("[Setting term size to: %v %v]\n", sz.Rows, sz.Cols) @@ -284,6 +285,7 @@ func runShellAs(who, ttype string, cmd string, interactive bool, conn *hkexnet.C }() // Copy stdin to the pty.. (bgnd goroutine) + // #gv:s/label=\"runShellAs\$3\"/label=\"stdinToPtyWorker\"/ go func() { _, e := io.Copy(ptmx, conn) if e != nil { @@ -296,8 +298,12 @@ func runShellAs(who, ttype string, cmd string, interactive bool, conn *hkexnet.C if chaffing { conn.EnableChaff() } - defer conn.DisableChaff() - defer conn.ShutdownChaff() + // #gv:s/label=\"runShellAs\$4\"/label=\"deferChaffShutdown\"/ + defer func() { + conn.DisableChaff() + conn.ShutdownChaff() + }() + // ..and the pty to stdout. // This may take some time exceeding that of the @@ -306,6 +312,7 @@ func runShellAs(who, ttype string, cmd string, interactive bool, conn *hkexnet.C // to ensure all stdout data gets to the client before // connection is closed. wg.Add(1) + // #gv:s/label=\"runShellAs\$2\"/label=\"ptyToStdoutWorker\"/ go func() { defer wg.Done() _, e := io.Copy(conn, ptmx)