mirror of
https://gogs.blitter.com/RLabs/xs
synced 2024-08-14 10:26:42 +00:00
Added rekeying (-r secs) client/server
This commit is contained in:
parent
c569a5a3c9
commit
032baf63d6
6 changed files with 80 additions and 30 deletions
23
xsd/xsd.go
23
xsd/xsd.go
|
@ -529,11 +529,13 @@ func main() { //nolint:funlen,gocyclo
|
|||
var chaffBytesMax uint
|
||||
var dbg bool
|
||||
var laddr string
|
||||
var rekeySecs uint
|
||||
|
||||
var useSystemPasswd bool
|
||||
|
||||
flag.BoolVar(&vopt, "v", false, "show version")
|
||||
flag.StringVar(&laddr, "l", ":2000", "interface[:port] to listen")
|
||||
flag.UintVar(&rekeySecs, "r", 300, "rekey interval in `secs`")
|
||||
flag.StringVar(&laddr, "l", ":2000", "interface[:port] to listen") //nolint:gomnd,lll
|
||||
flag.StringVar(&kcpMode, "K", "unused", `set to one of ["KCP_NONE","KCP_AES", "KCP_BLOWFISH", "KCP_CAST5", "KCP_SM4", "KCP_SALSA20", "KCP_SIMPLEXOR", "KCP_TEA", "KCP_3DES", "KCP_TWOFISH", "KCP_XTEA"] to use KCP (github.com/xtaci/kcp-go) reliable UDP instead of TCP`) //nolint:lll
|
||||
flag.BoolVar(&useSysLogin, "L", false, "use system login")
|
||||
flag.BoolVar(&chaffEnabled, "e", true, "enable chaff pkts")
|
||||
|
@ -646,22 +648,22 @@ func main() { //nolint:funlen,gocyclo
|
|||
go func() {
|
||||
for {
|
||||
sig := <-exitCh
|
||||
switch sig.String() {
|
||||
case "terminated":
|
||||
logger.LogNotice(fmt.Sprintf("[Got signal: %s]", sig)) //nolint:errcheck
|
||||
switch sig {
|
||||
case syscall.SIGTERM: //"terminated":
|
||||
logger.LogNotice(fmt.Sprintf("[Got signal: %s]", sig.String())) //nolint:errcheck
|
||||
signal.Reset()
|
||||
syscall.Kill(0, syscall.SIGTERM) //nolint:errcheck
|
||||
case "interrupt":
|
||||
logger.LogNotice(fmt.Sprintf("[Got signal: %s]", sig)) //nolint:errcheck
|
||||
case syscall.SIGINT: //"interrupt":
|
||||
logger.LogNotice(fmt.Sprintf("[Got signal: %s]", sig.String())) //nolint:errcheck
|
||||
signal.Reset()
|
||||
syscall.Kill(0, syscall.SIGINT) //nolint:errcheck
|
||||
case "hangup":
|
||||
logger.LogNotice(fmt.Sprintf("[Got signal: %s - nop]", sig)) //nolint:errcheck
|
||||
case syscall.SIGHUP: //"hangup":
|
||||
logger.LogNotice(fmt.Sprintf("[Got signal: %s - nop]", sig.String())) //nolint:errcheck
|
||||
if cpuprofile != "" || memprofile != "" {
|
||||
dumpProf()
|
||||
}
|
||||
default:
|
||||
logger.LogNotice(fmt.Sprintf("[Got signal: %s - ignored]", sig)) //nolint:errcheck
|
||||
logger.LogNotice(fmt.Sprintf("[Got signal: %s - ignored]", sig.String())) //nolint:errcheck
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
@ -700,6 +702,8 @@ func main() { //nolint:funlen,gocyclo
|
|||
} else {
|
||||
log.Println("Accepted client")
|
||||
|
||||
conn.RekeyHelper(rekeySecs)
|
||||
|
||||
// Set up chaffing to client
|
||||
// Will only start when runShellAs() is called
|
||||
// after stdin/stdout are hooked up
|
||||
|
@ -709,6 +713,7 @@ func main() { //nolint:funlen,gocyclo
|
|||
// The loop then returns to accepting, so that
|
||||
// multiple connections may be served concurrently.
|
||||
go func(hc *xsnet.Conn) (e error) {
|
||||
defer hc.ShutdownRekey()
|
||||
defer hc.Close()
|
||||
|
||||
// Start login timeout here and disconnect if user/pass phase stalls
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue