mirror of
https://github.com/e1732a364fed/v2ray_simple.git
synced 2025-12-24 13:27:56 +08:00
修订文档
This commit is contained in:
@@ -12,7 +12,7 @@
|
||||
|
||||
所有issue和 PR 尽量用中文
|
||||
|
||||
本项目不考虑应用 i18n. 这是本项目的强制约定。
|
||||
本项目不考虑应用 i18n. 这是本项目的强制约定。本项目不是大项目,只追求极简能用。太大就太复杂。
|
||||
|
||||
# 所发的PR是有优先级的
|
||||
|
||||
@@ -31,10 +31,13 @@
|
||||
关于版本号的定义,我们参考但不完全遵循golang的定义:
|
||||
https://go.dev/doc/modules/version-numbers
|
||||
|
||||
我们没有0.0.0版本,初始版本就从1.x.x开始
|
||||
本作没有0.0.0版本,初始版本就是1.0.0
|
||||
|
||||
Major.Minor.Patch-beta.x
|
||||
|
||||
我们beta版本提供各种bug修复,以及功能调整与新增
|
||||
Patch版本一般会比上一个Patch版本相比具有新增的功能
|
||||
Minor版本具有显著的功能增加
|
||||
Minor版本具有显著的功能增加以及稳定性、性能的提升
|
||||
Major版本具有显著的架构调整
|
||||
|
||||
对于一些人的PR,我会做出一些指导,有时并给予临时性修复。我的临时修改只是一种指导性含义,作为PR的原作者,你需要自己维护自己代码的质量,要理解我的临时修改不能当作最终修改,要自己想出最完善的修改。
|
||||
@@ -43,9 +46,9 @@ Major版本具有显著的架构调整
|
||||
|
||||
# github action
|
||||
|
||||
每push一次,进行一次test
|
||||
每push一次,自动进行一次test
|
||||
|
||||
每发布一个release,进行一次 build_release
|
||||
每发布一个release,自动进行一次 build_release
|
||||
|
||||
build_release 会编译适当数量的 目标平台 可执行文件。
|
||||
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2022 hahafool
|
||||
Copyright (c) 2022 e1732a364fed
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
||||
@@ -13,6 +13,45 @@ import (
|
||||
"go.uber.org/zap"
|
||||
)
|
||||
|
||||
// implements advLayer.SuperMuxServer
|
||||
type Server struct {
|
||||
Creator
|
||||
|
||||
addr string
|
||||
tlsConf tls.Config
|
||||
args arguments
|
||||
|
||||
listener io.Closer
|
||||
}
|
||||
|
||||
// quic 没path配置;return ""
|
||||
func (s *Server) GetPath() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (s *Server) Stop() {
|
||||
if s.listener != nil {
|
||||
s.listener = nil
|
||||
|
||||
s.listener.Close()
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) StartListen(newSubConnFunc func(net.Conn)) (baseConn io.Closer) {
|
||||
|
||||
baseConn = ListenInitialLayers(s.addr, s.tlsConf, s.args, newSubConnFunc)
|
||||
if baseConn != nil {
|
||||
s.listener = baseConn
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 阻塞,不支持回落。
|
||||
func (s *Server) StartHandle(underlay net.Conn, newSubConnFunc func(net.Conn), _ func(httpLayer.FallbackMeta)) {
|
||||
dealNewConn(underlay.(quic.Connection), newSubConnFunc)
|
||||
}
|
||||
|
||||
// non-blocking
|
||||
func ListenInitialLayers(addr string, tlsConf tls.Config, arg arguments, newSubConnFunc func(net.Conn)) (returnCloser io.Closer) {
|
||||
|
||||
@@ -155,41 +194,3 @@ func dealNewConn(conn quic.Connection, newSubConnFunc func(net.Conn)) {
|
||||
go newSubConnFunc(&StreamConn{stream, conn.LocalAddr(), conn.RemoteAddr(), nil, false})
|
||||
}
|
||||
}
|
||||
|
||||
// implements advLayer.SuperMuxServer
|
||||
type Server struct {
|
||||
Creator
|
||||
|
||||
addr string
|
||||
tlsConf tls.Config
|
||||
args arguments
|
||||
|
||||
listener io.Closer
|
||||
}
|
||||
|
||||
func (s *Server) GetPath() string {
|
||||
return ""
|
||||
}
|
||||
|
||||
func (s *Server) Stop() {
|
||||
if s.listener != nil {
|
||||
s.listener = nil
|
||||
|
||||
s.listener.Close()
|
||||
}
|
||||
}
|
||||
|
||||
func (s *Server) StartListen(newSubConnFunc func(net.Conn)) (baseConn io.Closer) {
|
||||
|
||||
baseConn = ListenInitialLayers(s.addr, s.tlsConf, s.args, newSubConnFunc)
|
||||
if baseConn != nil {
|
||||
s.listener = baseConn
|
||||
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
// 阻塞,不支持回落。
|
||||
func (s *Server) StartHandle(underlay net.Conn, newSubConnFunc func(net.Conn), _ func(httpLayer.FallbackMeta)) {
|
||||
dealNewConn(underlay.(quic.Connection), newSubConnFunc)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user