mirror of
https://github.com/therootcompany/telebit.git
synced 2025-07-05 11:56:35 +00:00
- debugging issues (not resolved) attempting to move the main executable into the base directory, this did not solve the issue, keeping it here. A main.go and the executable. listener_client — the WSS client - removed support for anything admin - injected the domains from the claim - domains are now included as initialDomains - registration performans as normal but includes adding the domains to a map of domains, and a collection of domains on the connection. - the system now supports look up fast in either direction, not sure if it will be needed. - reads a chan during registration before allowing traffic, making sure all is well. - registration returns a true on the channel if all is well. If it is not, false. Likely will add some text to pass back. Connection - added support for boolean channel - support for initial domains in a slice, these are brought back from the JWT as a interface and then are type asserted into the map - removed all the old timer sender dwell stuff as a POC for traffic counts. ConnectionTable - added support for domain announcement after the WSS is connection. Not sure if we will need these. They have not been implemented. - I assume all domains are registered with JWT unless I hear differently which would require a new WSS session - expanded NewTable constructor - populating domains into the domain map, and into the connection slice. - added support for removing domains when a connection is removed.
71 lines
1.9 KiB
Go
71 lines
1.9 KiB
Go
package rvpnmain
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
|
|
"git.daplie.com/Daplie/go-rvpn-server/rvpn/admin"
|
|
"git.daplie.com/Daplie/go-rvpn-server/rvpn/client"
|
|
"git.daplie.com/Daplie/go-rvpn-server/rvpn/connection"
|
|
"git.daplie.com/Daplie/go-rvpn-server/rvpn/external"
|
|
"git.daplie.com/Daplie/go-rvpn-server/rvpn/packer"
|
|
"git.daplie.com/Daplie/go-rvpn-server/rvpn/xlate"
|
|
)
|
|
|
|
var (
|
|
loginfo *log.Logger
|
|
logdebug *log.Logger
|
|
logFlags = log.Ldate | log.Lmicroseconds | log.Lshortfile
|
|
argServerBinding string
|
|
argServerAdminBinding string
|
|
argServerExternalBinding string
|
|
connectionTable *connection.Table
|
|
wssMapping *xlate.WssMapping
|
|
secretKey = "abc123"
|
|
)
|
|
|
|
func init() {
|
|
flag.StringVar(&argServerBinding, "server-port", "127.0.0.1:3502", "server Bind listener")
|
|
flag.StringVar(&argServerAdminBinding, "admin-server-port", "127.0.0.2:8000", "admin server Bind listener")
|
|
flag.StringVar(&argServerExternalBinding, "external-server-port", "127.0.0.1:8080", "external server Bind listener")
|
|
|
|
}
|
|
|
|
//Run -- main entry point
|
|
func Run() {
|
|
flag.Parse()
|
|
|
|
loginfo = log.New(os.Stdout, "INFO: packer: ", logFlags)
|
|
logdebug = log.New(os.Stdout, "DEBUG: packer:", logFlags)
|
|
|
|
loginfo.Println("startup")
|
|
|
|
p := packer.NewPacker()
|
|
fmt.Println(*p.Header)
|
|
|
|
p.Header.SetAddress("127.0.0.2")
|
|
fmt.Println(*p.Header)
|
|
|
|
p.Header.SetAddress("2001:db8::1")
|
|
fmt.Println(*p.Header)
|
|
|
|
fmt.Println(p.Header.Address())
|
|
|
|
loginfo.Println(p)
|
|
|
|
wssMapping = xlate.NewwssMapping()
|
|
go wssMapping.Run()
|
|
|
|
connectionTable = connection.NewTable()
|
|
go connectionTable.Run()
|
|
go client.LaunchClientListener(connectionTable, &secretKey, &argServerBinding)
|
|
go external.LaunchWebRequestExternalListener(&argServerExternalBinding)
|
|
|
|
err := admin.LaunchAdminListener(&argServerAdminBinding)
|
|
if err != nil {
|
|
loginfo.Println("LauchAdminListener failed: ", err)
|
|
}
|
|
}
|