tls fix and migration patch
This commit is contained in:
@@ -60,22 +60,10 @@ func moveJsonToDb(db *gorm.DB) error {
|
||||
} else {
|
||||
tls_server, _ := json.MarshalIndent(tlsObj, "", " ")
|
||||
if len(tls_server) > 5 {
|
||||
tlsObject := tlsObj.(map[string]interface{})
|
||||
tlsClientObj := map[string]interface{}{}
|
||||
if enabled, ok := tlsObject["enabled"]; ok {
|
||||
tlsClientObj["enabled"] = enabled
|
||||
}
|
||||
if alpn, ok := tlsObject["alpn"]; ok {
|
||||
tlsClientObj["alpn"] = alpn
|
||||
}
|
||||
if sni, ok := tlsObject["server_name"]; ok {
|
||||
tlsClientObj["server_name"] = sni
|
||||
}
|
||||
tls_client, _ := json.MarshalIndent(tlsClientObj, "", " ")
|
||||
newTls := &model.Tls{
|
||||
Name: tag,
|
||||
Server: tls_server,
|
||||
Client: tls_client,
|
||||
Client: json.RawMessage("{}"),
|
||||
}
|
||||
err = db.Create(newTls).Error
|
||||
if err != nil {
|
||||
@@ -243,7 +231,34 @@ func migrateTls(db *gorm.DB) error {
|
||||
if !db.Migrator().HasColumn(&model.Tls{}, "inbounds") {
|
||||
return nil
|
||||
}
|
||||
return db.Migrator().DropColumn(&model.Tls{}, "inbounds")
|
||||
err := db.Migrator().DropColumn(&model.Tls{}, "inbounds")
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var tlsConfig []model.Tls
|
||||
err = db.Model(model.Tls{}).Scan(&tlsConfig).Error
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
for index, tls := range tlsConfig {
|
||||
var tlsClient map[string]interface{}
|
||||
err = json.Unmarshal(tls.Client, &tlsClient)
|
||||
if err != nil {
|
||||
continue
|
||||
}
|
||||
for key, _ := range tlsClient {
|
||||
switch key {
|
||||
case "insecure", "disable_sni", "utls", "ech", "reality":
|
||||
continue
|
||||
default:
|
||||
delete(tlsClient, key)
|
||||
}
|
||||
}
|
||||
tlsConfig[index].Client, _ = json.MarshalIndent(tlsClient, "", " ")
|
||||
}
|
||||
|
||||
return db.Save(&tlsConfig).Error
|
||||
}
|
||||
|
||||
func dropInboundData(db *gorm.DB) error {
|
||||
|
||||
@@ -43,17 +43,18 @@ func LinkGenerator(clientConfig json.RawMessage, i *model.Inbound, hostname stri
|
||||
for index, addr := range Addrs {
|
||||
addrRemark, _ := addr["remark"].(string)
|
||||
Addrs[index]["remark"] = i.Tag + addrRemark
|
||||
if addrTls, ok := addr["tls"].(map[string]interface{}); ok {
|
||||
if i.TlsId > 0 {
|
||||
newTls := map[string]interface{}{}
|
||||
if oldTls, hasOldTls := tls["tls"].(map[string]interface{}); hasOldTls {
|
||||
for k, v := range oldTls {
|
||||
for k, v := range tls {
|
||||
newTls[k] = v
|
||||
}
|
||||
}
|
||||
|
||||
// Override tls
|
||||
if addrTls, ok := addr["tls"].(map[string]interface{}); ok {
|
||||
for k, v := range addrTls {
|
||||
newTls[k] = v
|
||||
}
|
||||
}
|
||||
Addrs[index]["tls"] = newTls
|
||||
}
|
||||
}
|
||||
@@ -243,7 +244,9 @@ func hysteria2Link(
|
||||
if downmbps, ok := inbound["down_mbps"].(string); ok {
|
||||
params["down_mbps"] = downmbps
|
||||
}
|
||||
fmt.Printf("%+v\n", addr["tls"])
|
||||
if tls, ok := addr["tls"].(map[string]interface{}); ok {
|
||||
fmt.Printf("%+v\n", tls)
|
||||
if sni, ok := tls["server_name"].(string); ok {
|
||||
params["sni"] = sni
|
||||
}
|
||||
|
||||
@@ -334,11 +334,6 @@ export default {
|
||||
],
|
||||
fingerprints: [
|
||||
{ title: "Chrome", value: "chrome" },
|
||||
{ title: "Chrome PSK", value: "chrome_psk" },
|
||||
{ title: "Chrome PSK Shuffle", value: "chrome_psk_shuffle" },
|
||||
{ title: "Chrome Padding PSK Shuffle", value: "chrome_padding_psk_shuffle" },
|
||||
{ title: "Chrome Post-Quantum", value: "chrome_pq" },
|
||||
{ title: "Chrome Post-Quantum PSK", value: "chrome_pq_psk" },
|
||||
{ title: "Firefox", value: "firefox" },
|
||||
{ title: "Microsoft Edge", value: "edge" },
|
||||
{ title: "Apple Safari", value: "safari" },
|
||||
@@ -356,7 +351,7 @@ export default {
|
||||
if (this.$props.id > 0) {
|
||||
const newData = <tls>JSON.parse(this.$props.data)
|
||||
this.tls = newData
|
||||
if (this.tls.server == null) this.tls.server = {}
|
||||
if (this.tls.server == null) this.tls.server = { enabled: true }
|
||||
if (this.tls.client == null) this.tls.client = {}
|
||||
this.tlsType = newData.server?.reality == undefined ? 0 : 1
|
||||
this.usePath = newData.server?.key == undefined ? 0 : 1
|
||||
|
||||
Reference in New Issue
Block a user