diff --git a/Makefile b/Makefile index 87907cf..6281f65 100644 --- a/Makefile +++ b/Makefile @@ -50,11 +50,13 @@ passwd: common $(MAKE) -C hkexpasswd vis: - @which go-code-visualizer >/dev/null 2>&1; \ + @which go-callvis >/dev/null 2>&1; \ stat=$$?; if [ $$stat -ne "0" ]; then \ - /bin/echo "go-code-visualizer not found. Run go get github.com/CodeHipster/go-code-visualizer to install."; \ + /bin/echo "go-callvis not found. Run go get github.com/Russtopia/go-callvis to install."; \ else \ - go-code-visualizer . && dot -Tpng dot-visual.gv -o viz_hkexsh_dot.png; \ + make -C hkexsh vis;\ + make -C hkexshd vis;\ + make -C hkexpasswd vis; \ fi install: diff --git a/hkexpasswd/Makefile b/hkexpasswd/Makefile index 32000d7..b944df9 100644 --- a/hkexpasswd/Makefile +++ b/hkexpasswd/Makefile @@ -1,5 +1,6 @@ -.PHONY: clean all +.PHONY: clean all vis +EXTPKGS = bytes,errors,flag,fmt,internal,io,log,net,os,path,runtime,time,strings,sync,syscall,binary,encoding EXE = $(notdir $(shell pwd)) all: @@ -8,3 +9,6 @@ all: clean: $(RM) $(EXE) $(EXE).exe +vis: + go-callvis -skipbrowser -svg -output hkexpasswd-vis -ignore $(EXTPKGS) -group pkg,type . + diff --git a/hkexpasswd/hkexpasswd-vis.gv b/hkexpasswd/hkexpasswd-vis.gv new file mode 100755 index 0000000..481f3ce --- /dev/null +++ b/hkexpasswd/hkexpasswd-vis.gv @@ -0,0 +1,63 @@ +digraph gocallvis { + label="blitter.com/go/hkexsh/hkexpasswd"; + labeljust="l"; + fontname="Arial"; + fontsize="14"; + rankdir="LR"; + bgcolor="lightgray"; + style="solid"; + penwidth="0.5"; + pad="0.0"; + nodesep="0.35"; + + node [shape="ellipse" style="filled" fillcolor="honeydew" fontname="Verdana" penwidth="1.0" margin="0.05,0.0"]; + edge [minlen="2"] + + subgraph "cluster_focus" { + bgcolor="#e6ecfa"; +label="main"; +labelloc="t"; +labeljust="c"; +fontsize="18"; + + "blitter.com/go/hkexsh/hkexpasswd.main" [ penwidth="0.5" fillcolor="lightblue" label="main" ] + + subgraph "cluster_blitter.com/go/hkexsh" { + fontname="bold"; +rank="sink"; +label="[hkexsh]"; +URL="/?f=blitter.com/go/hkexsh"; +style="filled"; +fontsize="16"; +fillcolor="lightyellow"; +tooltip="package: blitter.com/go/hkexsh"; +penwidth="0.8"; + + "blitter.com/go/hkexsh.ReadPassword" [ fillcolor="moccasin" label="ReadPassword" penwidth="1.5" ] + + } + + subgraph "cluster_github.com/jameskeane/bcrypt" { + label="[bcrypt]"; +fontsize="16"; +fillcolor="lightyellow"; +fontname="bold"; +rank="sink"; +penwidth="0.8"; +style="filled"; +URL="/?f=github.com/jameskeane/bcrypt"; +tooltip="package: github.com/jameskeane/bcrypt"; + + "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" ] + + } + + } + + "blitter.com/go/hkexsh/hkexpasswd.main" -> "blitter.com/go/hkexsh.ReadPassword" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexpasswd.main" -> "github.com/jameskeane/bcrypt.Salt" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexpasswd.main" -> "github.com/jameskeane/bcrypt.Hash" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexpasswd.main" -> "github.com/jameskeane/bcrypt.Match" [ color="saddlebrown" ] +} diff --git a/hkexpasswd/hkexpasswd-vis.gv.svg b/hkexpasswd/hkexpasswd-vis.gv.svg new file mode 100644 index 0000000..004a997 --- /dev/null +++ b/hkexpasswd/hkexpasswd-vis.gv.svg @@ -0,0 +1,89 @@ + + + + + + +gocallvis + +blitter.com/go/hkexsh/hkexpasswd + +cluster_focus + +main + + +cluster_blitter.com/go/hkexsh + + +[hkexsh] + + + + +cluster_github.com/jameskeane/bcrypt + + +[bcrypt] + + + + + +blitter.com/go/hkexsh/hkexpasswd.main + +main + + + +blitter.com/go/hkexsh.ReadPassword + +ReadPassword + + + +blitter.com/go/hkexsh/hkexpasswd.main->blitter.com/go/hkexsh.ReadPassword + + + + + +github.com/jameskeane/bcrypt.Salt + +Salt + + + +blitter.com/go/hkexsh/hkexpasswd.main->github.com/jameskeane/bcrypt.Salt + + + + + +github.com/jameskeane/bcrypt.Hash + +Hash + + + +blitter.com/go/hkexsh/hkexpasswd.main->github.com/jameskeane/bcrypt.Hash + + + + + +github.com/jameskeane/bcrypt.Match + +Match + + + +blitter.com/go/hkexsh/hkexpasswd.main->github.com/jameskeane/bcrypt.Match + + + + + diff --git a/hkexsh/Makefile b/hkexsh/Makefile index 32000d7..307afd6 100644 --- a/hkexsh/Makefile +++ b/hkexsh/Makefile @@ -1,5 +1,6 @@ -.PHONY: clean all +.PHONY: clean all vis +EXTPKGS = bytes,errors,flag,fmt,internal,io,log,net,os,path,runtime,time,strings,sync,syscall,binary,encoding EXE = $(notdir $(shell pwd)) all: @@ -8,3 +9,7 @@ all: clean: $(RM) $(EXE) $(EXE).exe +vis: + go-callvis -skipbrowser -svg -output hkexsh-vis -ignore $(EXTPKGS) -group pkg,type . + + diff --git a/hkexsh/hkexsh-vis.gv b/hkexsh/hkexsh-vis.gv new file mode 100755 index 0000000..68c517a --- /dev/null +++ b/hkexsh/hkexsh-vis.gv @@ -0,0 +1,247 @@ +digraph gocallvis { + label="blitter.com/go/hkexsh/hkexsh"; + labeljust="l"; + fontname="Arial"; + fontsize="14"; + rankdir="LR"; + bgcolor="lightgray"; + style="solid"; + penwidth="0.5"; + pad="0.0"; + nodesep="0.35"; + + node [shape="ellipse" style="filled" fillcolor="honeydew" fontname="Verdana" penwidth="1.0" margin="0.05,0.0"]; + edge [minlen="2"] + + subgraph "cluster_focus" { + bgcolor="#e6ecfa"; +label="main"; +labelloc="t"; +labeljust="c"; +fontsize="18"; + + "blitter.com/go/hkexsh/hkexsh.reqTunnel" [ fillcolor="lightblue" label="reqTunnel" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexsh.launchTuns" [ penwidth="0.5" fillcolor="lightblue" label="launchTuns" ] + "blitter.com/go/hkexsh/hkexsh.rejectUserMsg" [ fillcolor="lightblue" label="rejectUserMsg" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexsh.main" [ penwidth="0.5" fillcolor="lightblue" label="main" ] + "blitter.com/go/hkexsh/hkexsh.parseNonSwitchArgs" [ label="parseNonSwitchArgs" penwidth="0.5" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.main$1" [ label="main$1" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.main$2" [ fillcolor="lightblue" label="main$2" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$1" [ label="doShellMode$1" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode" [ fillcolor="lightblue" label="doShellMode" penwidth="0.5" ] + "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" [ label="doShellMode$2" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexsh.doShellMode$2$1" [ style="dotted,filled" fillcolor="lightblue" label="doShellMode$2$1" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" [ fillcolor="lightblue" label="doCopyMode" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexsh.UsageShell" [ fillcolor="lightblue" label="UsageShell" penwidth="1.5" ] + "blitter.com/go/hkexsh/hkexsh.UsageCp" [ label="UsageCp" penwidth="1.5" fillcolor="lightblue" ] + + subgraph "cluster_blitter.com/go/hkexsh" { + fontsize="16"; +rank="sink"; +label="[hkexsh]"; +URL="/?f=blitter.com/go/hkexsh"; +penwidth="0.8"; +style="filled"; +fillcolor="lightyellow"; +fontname="bold"; +tooltip="package: blitter.com/go/hkexsh"; + + "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.NewSession" [ fillcolor="moccasin" label="NewSession" penwidth="1.5" ] + + subgraph "cluster_*blitter.com/go/hkexsh.Session" { + 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).SetStatus" [ fillcolor="moccasin" label="SetStatus" penwidth="1.5" ] + + } + + subgraph "cluster_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).Op" [ fillcolor="moccasin" label="Op" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).Who" [ fillcolor="moccasin" label="Who" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).ConnHost" [ fillcolor="moccasin" label="ConnHost" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).TermType" [ fillcolor="moccasin" label="TermType" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).Cmd" [ fillcolor="moccasin" label="Cmd" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).AuthCookie" [ fillcolor="moccasin" label="AuthCookie" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).Status" [ fillcolor="moccasin" label="Status" penwidth="1.5" ] + + } + + } + + subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { + style="filled"; +fillcolor="lightyellow"; +fontname="bold"; +label="[hkexnet]"; +URL="/?f=blitter.com/go/hkexsh/hkexnet"; +tooltip="package: blitter.com/go/hkexsh/hkexnet"; +penwidth="0.8"; +fontsize="16"; +rank="sink"; + + "blitter.com/go/hkexsh/hkexnet.Init" [ label="Init" penwidth="1.5" fillcolor="moccasin" ] + "blitter.com/go/hkexsh/hkexnet.Dial" [ fillcolor="moccasin" label="Dial" penwidth="1.5" ] + + subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.Conn" { + labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; +label="(*Conn)"; +tooltip="type: *blitter.com/go/hkexsh/hkexnet.Conn"; +penwidth="0.5"; +fontsize="15"; +fontcolor="#222222"; + + "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ fillcolor="moccasin" label="WritePacket" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).Close" [ label="Close" penwidth="1.5" fillcolor="moccasin" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ label="SetupChaff" penwidth="1.5" fillcolor="moccasin" ] + "(*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" [ penwidth="1.5" fillcolor="moccasin" label="SetStatus" ] + + } + + subgraph "cluster_blitter.com/go/hkexsh/hkexnet.Conn" { + label="(Conn)"; +tooltip="type: blitter.com/go/hkexsh/hkexnet.Conn"; +penwidth="0.5"; +fontsize="15"; +fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; + + "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ label="Write" penwidth="1.5" fillcolor="moccasin" ] + "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ fillcolor="moccasin" label="Read" penwidth="1.5" ] + "(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus" [ penwidth="1.5" fillcolor="moccasin" label="GetStatus" ] + + } + + } + + subgraph "cluster_blitter.com/go/hkexsh/logger" { + fillcolor="lightyellow"; +rank="sink"; +label="[logger]"; +penwidth="0.8"; +style="filled"; +fontname="bold"; +URL="/?f=blitter.com/go/hkexsh/logger"; +tooltip="package: blitter.com/go/hkexsh/logger"; +fontsize="16"; + + "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" ] + + } + + subgraph "cluster_blitter.com/go/hkexsh/spinsult" { + fontsize="16"; +fontname="bold"; +rank="sink"; +URL="/?f=blitter.com/go/hkexsh/spinsult"; +tooltip="package: blitter.com/go/hkexsh/spinsult"; +penwidth="0.8"; +style="filled"; +fillcolor="lightyellow"; +label="[spinsult]"; + + "blitter.com/go/hkexsh/spinsult.GetSentence" [ penwidth="1.5" fillcolor="moccasin" label="GetSentence" ] + + } + + subgraph "cluster_github.com/mattn/go-isatty" { + label="[isatty]"; +URL="/?f=github.com/mattn/go-isatty"; +penwidth="0.8"; +fillcolor="lightyellow"; +fontname="bold"; +tooltip="package: github.com/mattn/go-isatty"; +fontsize="16"; +style="filled"; +rank="sink"; + + "github.com/mattn/go-isatty.IsTerminal" [ fillcolor="moccasin" label="IsTerminal" penwidth="1.5" ] + + } + + } + + "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.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" [ color="saddlebrown" arrowhead="normalnoneodiamond" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "github.com/mattn/go-isatty.IsTerminal" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh.MakeRaw" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main$1" -> "blitter.com/go/hkexsh.Restore" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.main$1" [ arrowhead="normalnoneodiamond" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh.ReadPassword" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh.NewSession" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh.Session).Op" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh.Session).Who" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh.Session).ConnHost" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh.Session).TermType" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh.Session).Cmd" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh.Session).AuthCookie" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ color="saddlebrown" ] + "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/hkexsh.rejectUserMsg" [ ] + "blitter.com/go/hkexsh/hkexsh.main" -> "(*blitter.com/go/hkexsh.Session).SetStatus" [ color="saddlebrown" ] + "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" [ 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" -> "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" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Read" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.doCopyMode" -> "(blitter.com/go/hkexsh/hkexnet.Conn).GetStatus" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.doCopyMode" [ ] + "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh.Restore" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.UsageShell" [ style="dashed" ] + "blitter.com/go/hkexsh/hkexsh.main" -> "blitter.com/go/hkexsh/hkexsh.UsageCp" [ style="dashed" ] +} diff --git a/hkexsh/hkexsh-vis.gv.svg b/hkexsh/hkexsh-vis.gv.svg new file mode 100644 index 0000000..e9124db --- /dev/null +++ b/hkexsh/hkexsh-vis.gv.svg @@ -0,0 +1,701 @@ + + + + + + +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.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.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.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.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).Op + +Op + + + +blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh.Session).Op + + + + + +(blitter.com/go/hkexsh.Session).Who + +Who + + + +blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh.Session).Who + + + + + +(blitter.com/go/hkexsh.Session).ConnHost + +ConnHost + + + +blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh.Session).ConnHost + + + + + +(blitter.com/go/hkexsh.Session).TermType + +TermType + + + +blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh.Session).TermType + + + + + +(blitter.com/go/hkexsh.Session).Cmd + +Cmd + + + +blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh.Session).Cmd + + + + + +(blitter.com/go/hkexsh.Session).AuthCookie + +AuthCookie + + + +blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh.Session).AuthCookie + + + + + +(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).Write + +Write + + + +blitter.com/go/hkexsh/hkexsh.main->(blitter.com/go/hkexsh/hkexnet.Conn).Write + + + + + +(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/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/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 32000d7..613282b 100644 --- a/hkexshd/Makefile +++ b/hkexshd/Makefile @@ -1,5 +1,6 @@ -.PHONY: clean all +.PHONY: clean all vis +EXTPKGS = binary,bytes,crypto,encoding,errors,flag,fmt,internal,io,log,net,os,path,runtime,time,strings,sync,syscall EXE = $(notdir $(shell pwd)) all: @@ -8,3 +9,6 @@ all: clean: $(RM) $(EXE) $(EXE).exe +vis: + go-callvis -skipbrowser -svg -output hkexshd-vis -ignore $(EXTPKGS) -group pkg,type . + diff --git a/hkexshd/hkexshd-vis.gv b/hkexshd/hkexshd-vis.gv new file mode 100755 index 0000000..1962b31 --- /dev/null +++ b/hkexshd/hkexshd-vis.gv @@ -0,0 +1,279 @@ +digraph gocallvis { + label="blitter.com/go/hkexsh/hkexshd"; + labeljust="l"; + fontname="Arial"; + fontsize="14"; + rankdir="LR"; + bgcolor="lightgray"; + style="solid"; + penwidth="0.5"; + pad="0.0"; + nodesep="0.35"; + + node [shape="ellipse" style="filled" fillcolor="honeydew" fontname="Verdana" penwidth="1.0" margin="0.05,0.0"]; + edge [minlen="2"] + + subgraph "cluster_focus" { + bgcolor="#e6ecfa"; +label="main"; +labelloc="t"; +labeljust="c"; +fontsize="18"; + + "blitter.com/go/hkexsh/hkexshd.main" [ fillcolor="lightblue" label="main" penwidth="0.5" ] + "blitter.com/go/hkexsh/hkexshd.main$1" [ label="main$1" style="dotted,filled" fillcolor="lightblue" ] + "blitter.com/go/hkexsh/hkexshd.main$2" [ fillcolor="lightblue" label="main$2" style="dotted,filled" ] + "blitter.com/go/hkexsh/hkexshd.GenAuthToken" [ label="GenAuthToken" penwidth="1.5" 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" [ 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.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.runServerToClientCopyAs" [ fillcolor="lightblue" label="runServerToClientCopyAs" penwidth="0.5" ] + + subgraph "cluster_blitter.com/go/goutmp" { + URL="/?f=blitter.com/go/goutmp"; +tooltip="package: blitter.com/go/goutmp"; +fillcolor="lightyellow"; +fontname="bold"; +rank="sink"; +label="[goutmp]"; +penwidth="0.8"; +fontsize="16"; +style="filled"; + + "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_lastlog_entry" [ fillcolor="moccasin" label="Put_lastlog_entry" penwidth="1.5" ] + + } + + subgraph "cluster_blitter.com/go/hkexsh" { + penwidth="0.8"; +fontsize="16"; +style="filled"; +fontname="bold"; +rank="sink"; +label="[hkexsh]"; +URL="/?f=blitter.com/go/hkexsh"; +fillcolor="lightyellow"; +tooltip="package: blitter.com/go/hkexsh"; + + "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" { + style="rounded,filled"; +fillcolor="wheat2"; +label="(*Session)"; +tooltip="type: *blitter.com/go/hkexsh.Session"; +penwidth="0.5"; +fontsize="15"; +fontcolor="#222222"; +labelloc="b"; + + "(*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" [ fillcolor="moccasin" label="SetCmd" penwidth="1.5" ] + "(*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" [ label="Cmd" penwidth="1.5" fillcolor="moccasin" ] + "(blitter.com/go/hkexsh.Session).AuthCookie" [ fillcolor="moccasin" label="AuthCookie" penwidth="1.5" ] + "(blitter.com/go/hkexsh.Session).TermType" [ penwidth="1.5" fillcolor="moccasin" label="TermType" ] + + } + + } + + subgraph "cluster_blitter.com/go/hkexsh/hkexnet" { + penwidth="0.8"; +fontsize="16"; +fontname="bold"; +rank="sink"; +tooltip="package: blitter.com/go/hkexsh/hkexnet"; +style="filled"; +fillcolor="lightyellow"; +label="[hkexnet]"; +URL="/?f=blitter.com/go/hkexsh/hkexnet"; + + "blitter.com/go/hkexsh/hkexnet.Init" [ fillcolor="moccasin" label="Init" penwidth="1.5" ] + "blitter.com/go/hkexsh/hkexnet.Listen" [ label="Listen" penwidth="1.5" fillcolor="moccasin" ] + + subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.Conn" { + style="rounded,filled"; +fillcolor="wheat2"; +label="(*Conn)"; +tooltip="type: *blitter.com/go/hkexsh/hkexnet.Conn"; +penwidth="0.5"; +fontsize="15"; +fontcolor="#222222"; +labelloc="b"; + + "(*blitter.com/go/hkexsh/hkexnet.Conn).SetupChaff" [ fillcolor="moccasin" label="SetupChaff" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).Close" [ label="Close" penwidth="1.5" fillcolor="moccasin" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).RemoteAddr" [ fillcolor="moccasin" label="RemoteAddr" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ penwidth="1.5" fillcolor="moccasin" label="EnableChaff" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ fillcolor="moccasin" label="DisableChaff" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ label="ShutdownChaff" penwidth="1.5" fillcolor="moccasin" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).SetStatus" [ fillcolor="moccasin" label="SetStatus" penwidth="1.5" ] + "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ label="WritePacket" penwidth="1.5" fillcolor="moccasin" ] + + } + + subgraph "cluster_*blitter.com/go/hkexsh/hkexnet.HKExListener" { + tooltip="type: *blitter.com/go/hkexsh/hkexnet.HKExListener"; +penwidth="0.5"; +fontsize="15"; +fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; +label="(*HKExListener)"; + + "(*blitter.com/go/hkexsh/hkexnet.HKExListener).Accept" [ fillcolor="moccasin" label="Accept" penwidth="1.5" ] + + } + + subgraph "cluster_blitter.com/go/hkexsh/hkexnet.Conn" { + 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).Write" [ fillcolor="moccasin" label="Write" penwidth="1.5" ] + + } + + subgraph "cluster_blitter.com/go/hkexsh/hkexnet.HKExListener" { + fontsize="15"; +fontcolor="#222222"; +labelloc="b"; +style="rounded,filled"; +fillcolor="wheat2"; +label="(HKExListener)"; +tooltip="type: blitter.com/go/hkexsh/hkexnet.HKExListener"; +penwidth="0.5"; + + "(blitter.com/go/hkexsh/hkexnet.HKExListener).Close" [ fillcolor="moccasin" label="Close" penwidth="1.5" ] + + } + + } + + subgraph "cluster_blitter.com/go/hkexsh/logger" { + label="[logger]"; +tooltip="package: blitter.com/go/hkexsh/logger"; +rank="sink"; +fontsize="16"; +style="filled"; +fillcolor="lightyellow"; +fontname="bold"; +URL="/?f=blitter.com/go/hkexsh/logger"; +penwidth="0.8"; + + "blitter.com/go/hkexsh/logger.New" [ penwidth="1.5" fillcolor="moccasin" label="New" ] + "blitter.com/go/hkexsh/logger.LogNotice" [ fillcolor="moccasin" label="LogNotice" penwidth="1.5" ] + "blitter.com/go/hkexsh/logger.LogErr" [ fillcolor="moccasin" label="LogErr" penwidth="1.5" ] + + } + + subgraph "cluster_github.com/kr/pty" { + tooltip="package: github.com/kr/pty"; +fontsize="16"; +fontname="bold"; +label="[pty]"; +URL="/?f=github.com/kr/pty"; +penwidth="0.8"; +style="filled"; +fillcolor="lightyellow"; +rank="sink"; + + "github.com/kr/pty.Start" [ penwidth="1.5" fillcolor="moccasin" label="Start" ] + "github.com/kr/pty.Setsize" [ fillcolor="moccasin" label="Setsize" penwidth="1.5" ] + + } + + } + + "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).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" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh.Session).SetOp" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh.Session).SetWho" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh.Session).SetConnHost" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh.Session).SetTermType" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh.Session).SetCmd" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh.Session).SetAuthCookie" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(blitter.com/go/hkexsh.Session).Op" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(blitter.com/go/hkexsh.Session).Who" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(blitter.com/go/hkexsh.Session).ConnHost" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(blitter.com/go/hkexsh.Session).Cmd" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(blitter.com/go/hkexsh.Session).AuthCookie" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh.AuthUserByToken" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh.Session).ClearAuthCookie" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh.AuthUserByPasswd" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(blitter.com/go/hkexsh/hkexnet.Conn).Write" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/logger.LogNotice" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).RemoteAddr" [ color="saddlebrown" ] + "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" ] + "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/hkexshd.runClientToServerCopyAs" [ ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).WritePacket" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).EnableChaff" [ color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).DisableChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" -> "(*blitter.com/go/hkexsh/hkexnet.Conn).ShutdownChaff" [ arrowhead="normalnoneodiamond" color="saddlebrown" ] + "blitter.com/go/hkexsh/hkexshd.main$2" -> "blitter.com/go/hkexsh/hkexshd.runServerToClientCopyAs" [ ] + "blitter.com/go/hkexsh/hkexshd.main" -> "blitter.com/go/hkexsh/hkexshd.main$2" [ arrowhead="normalnoneodot" ] +} diff --git a/hkexshd/hkexshd-vis.gv.svg b/hkexshd/hkexshd-vis.gv.svg new file mode 100644 index 0000000..9d89f90 --- /dev/null +++ b/hkexshd/hkexshd-vis.gv.svg @@ -0,0 +1,767 @@ + + + + + + +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 + +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 + + + + + +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.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 + + + + + + +