mirror of
https://gitlab.torproject.org/tpo/anti-censorship/pluggable-transports/snowflake.git
synced 2025-10-13 11:11:30 -04:00
Add Version Output Support to Snowflake
From now on, there will be a file at common/version/version.go that includes current version number.
This commit is contained in:
parent
2c599f8827
commit
33248f3dec
8 changed files with 81 additions and 0 deletions
|
@ -3,6 +3,7 @@ package main
|
|||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
|
@ -19,6 +20,7 @@ import (
|
|||
sf "git.torproject.org/pluggable-transports/snowflake.git/v2/client/lib"
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/event"
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/safelog"
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/version"
|
||||
)
|
||||
|
||||
const (
|
||||
|
@ -157,6 +159,7 @@ func main() {
|
|||
unsafeLogging := flag.Bool("unsafe-logging", false, "prevent logs from being scrubbed")
|
||||
max := flag.Int("max", DefaultSnowflakeCapacity,
|
||||
"capacity for number of multiplexed WebRTC peers")
|
||||
versionFlag := flag.Bool("version", false, "display version info to stderr and quit")
|
||||
|
||||
// Deprecated
|
||||
oldLogToStateDir := flag.Bool("logToStateDir", false, "use -log-to-state-dir instead")
|
||||
|
@ -164,6 +167,11 @@ func main() {
|
|||
|
||||
flag.Parse()
|
||||
|
||||
if *versionFlag {
|
||||
fmt.Fprintf(os.Stderr, "snowflake-client %s", version.ConstructResult())
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
log.SetFlags(log.LstdFlags | log.LUTC)
|
||||
|
||||
// Don't write to stderr; versions of tor earlier than about 0.3.5.6 do
|
||||
|
|
|
@ -36,3 +36,11 @@ func NameToUTLSID(name string) (utls.ClientHelloID, error) {
|
|||
}
|
||||
return utls.ClientHelloID{}, errNameNotFound
|
||||
}
|
||||
|
||||
func ListAllNames() []string {
|
||||
var names []string
|
||||
for k, _ := range clientHelloIDMap {
|
||||
names = append(names, k)
|
||||
}
|
||||
return names
|
||||
}
|
||||
|
|
24
common/utls/client_hello_id_version.go
Normal file
24
common/utls/client_hello_id_version.go
Normal file
|
@ -0,0 +1,24 @@
|
|||
package utls
|
||||
|
||||
import (
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/version"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func generateVersionOutput() string {
|
||||
var versionOutputBuilder strings.Builder
|
||||
|
||||
versionOutputBuilder.WriteString(`Known utls-imitate values:
|
||||
(empty)
|
||||
`)
|
||||
|
||||
for _, name := range ListAllNames() {
|
||||
versionOutputBuilder.WriteString(name)
|
||||
versionOutputBuilder.WriteRune('\n')
|
||||
}
|
||||
return versionOutputBuilder.String()
|
||||
}
|
||||
|
||||
func init() {
|
||||
version.AddVersionDetail(generateVersionOutput())
|
||||
}
|
5
common/version/combined.go
Normal file
5
common/version/combined.go
Normal file
|
@ -0,0 +1,5 @@
|
|||
package version
|
||||
|
||||
func ConstructResult() string {
|
||||
return GetVersion() + "\n" + GetVersionDetail()
|
||||
}
|
13
common/version/detail.go
Normal file
13
common/version/detail.go
Normal file
|
@ -0,0 +1,13 @@
|
|||
package version
|
||||
|
||||
import "strings"
|
||||
|
||||
var detailBuilder strings.Builder
|
||||
|
||||
func AddVersionDetail(detail string) {
|
||||
detailBuilder.WriteString(detail)
|
||||
}
|
||||
|
||||
func GetVersionDetail() string {
|
||||
return detailBuilder.String()
|
||||
}
|
7
common/version/version.go
Normal file
7
common/version/version.go
Normal file
|
@ -0,0 +1,7 @@
|
|||
package version
|
||||
|
||||
func GetVersion() string {
|
||||
return version
|
||||
}
|
||||
|
||||
var version = "2.3.1"
|
|
@ -2,6 +2,7 @@ package main
|
|||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"io"
|
||||
"io/ioutil"
|
||||
"log"
|
||||
|
@ -12,6 +13,7 @@ import (
|
|||
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/event"
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/safelog"
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/version"
|
||||
sf "git.torproject.org/pluggable-transports/snowflake.git/v2/proxy/lib"
|
||||
)
|
||||
|
||||
|
@ -31,11 +33,17 @@ func main() {
|
|||
"the time interval to output summary, 0s disables summaries. Valid time units are \"s\", \"m\", \"h\". ")
|
||||
verboseLogging := flag.Bool("verbose", false, "increase log verbosity")
|
||||
ephemeralPortsRangeFlag := flag.String("ephemeral-ports-range", "", "ICE UDP ephemeral ports range (format:\"<min>:<max>\")")
|
||||
versionFlag := flag.Bool("version", false, "display version info to stderr and quit")
|
||||
|
||||
var ephemeralPortsRange []uint16 = []uint16{0, 0}
|
||||
|
||||
flag.Parse()
|
||||
|
||||
if *versionFlag {
|
||||
fmt.Fprintf(os.Stderr, "snowflake-proxy %s", version.ConstructResult())
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
eventLogger := event.NewSnowflakeEventDispatcher()
|
||||
|
||||
if *ephemeralPortsRangeFlag != "" {
|
||||
|
|
|
@ -19,6 +19,7 @@ import (
|
|||
"syscall"
|
||||
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/safelog"
|
||||
"git.torproject.org/pluggable-transports/snowflake.git/v2/common/version"
|
||||
"golang.org/x/crypto/acme/autocert"
|
||||
|
||||
pt "git.torproject.org/pluggable-transports/goptlib.git"
|
||||
|
@ -130,6 +131,7 @@ func main() {
|
|||
var disableTLS bool
|
||||
var logFilename string
|
||||
var unsafeLogging bool
|
||||
var versionFlag bool
|
||||
|
||||
flag.Usage = usage
|
||||
flag.StringVar(&acmeEmail, "acme-email", "", "optional contact email for Let's Encrypt notifications")
|
||||
|
@ -137,8 +139,14 @@ func main() {
|
|||
flag.BoolVar(&disableTLS, "disable-tls", false, "don't use HTTPS")
|
||||
flag.StringVar(&logFilename, "log", "", "log file to write to")
|
||||
flag.BoolVar(&unsafeLogging, "unsafe-logging", false, "prevent logs from being scrubbed")
|
||||
flag.BoolVar(&versionFlag, "unsafe-logging", false, "display version info to stderr and quit")
|
||||
flag.Parse()
|
||||
|
||||
if versionFlag {
|
||||
fmt.Fprintf(os.Stderr, "snowflake-server %s", version.ConstructResult())
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
log.SetFlags(log.LstdFlags | log.LUTC)
|
||||
|
||||
var logOutput io.Writer = os.Stderr
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue