diff --git a/constant/metadata.go b/constant/metadata.go index 23cdcd86..eff9a343 100644 --- a/constant/metadata.go +++ b/constant/metadata.go @@ -40,6 +40,7 @@ const ( ANYTLS MIERU INNER + SUDOKU ) type AddrType byte @@ -114,6 +115,8 @@ func (t Type) String() string { return "Mieru" case INNER: return "Inner" + case SUDOKU: + return "Sudoku" default: return "Unknown" } @@ -156,6 +159,8 @@ func ParseType(t string) (*Type, error) { res = MIERU case "INNER": res = INNER + case "SUDOKU": + res = SUDOKU default: return nil, fmt.Errorf("unknown type: %s", t) } diff --git a/listener/parse.go b/listener/parse.go index 4e893bf1..35941141 100644 --- a/listener/parse.go +++ b/listener/parse.go @@ -134,6 +134,13 @@ func ParseListener(mapping map[string]any) (C.InboundListener, error) { return nil, err } listener, err = IN.NewMieru(mieruOption) + case "sudoku": + sudokuOption := &IN.SudokuOption{} + err = decoder.Decode(mapping, sudokuOption) + if err != nil { + return nil, err + } + listener, err = IN.NewSudoku(sudokuOption) default: return nil, fmt.Errorf("unsupport proxy type: %s", proxyType) }