diff --git a/internal/config/default.go b/internal/config/default.go index c159452..c899872 100644 --- a/internal/config/default.go +++ b/internal/config/default.go @@ -10,10 +10,13 @@ var defaultConfig = ConfFromFile{ UserType: "cmcc", }, Meta: srun.LoginMeta{ - N: "200", - Type: "1", - Acid: "5", - Enc: "srun_bx1", + N: "200", + Type: "1", + Acid: "5", + Enc: "srun_bx1", + OS: "Windows 10", + Name: "windows", + DoubleStack: false, }, Settings: SettingsConf{ Basic: BasicConf{ diff --git a/pkg/srun/models.go b/pkg/srun/models.go index cf3f83e..7f5ebe2 100644 --- a/pkg/srun/models.go +++ b/pkg/srun/models.go @@ -9,10 +9,13 @@ type LoginForm struct { } type LoginMeta struct { - N string `json:"n" yaml:"n"` - Type string `json:"type" yaml:"type"` - Acid string `json:"acid" yaml:"acid"` - Enc string `json:"enc" yaml:"enc"` + N string `json:"n" yaml:"n"` + Type string `json:"type" yaml:"type"` + Acid string `json:"acid" yaml:"acid"` + Enc string `json:"enc" yaml:"enc"` + OS string `json:"os" yaml:"os"` + Name string `json:"name" yaml:"name"` + DoubleStack bool `json:"double_stack" json:"double_stack"` } type LoginInfo struct { diff --git a/pkg/srun/srun.go b/pkg/srun/srun.go index 7d075a8..5000a9f 100644 --- a/pkg/srun/srun.go +++ b/pkg/srun/srun.go @@ -93,16 +93,25 @@ func (c Srun) DoLogin(clientIP string) error { tokenStr + EncryptedInfo, ) - res, err = c.api.Login( - c.LoginInfo.Form.Username, - EncryptedMd5, - c.LoginInfo.Meta.Acid, - clientIP, - EncryptedInfo, - EncryptedChkstr, - c.LoginInfo.Meta.N, - c.LoginInfo.Meta.Type, - ) + var doubleStack string + if c.LoginInfo.Meta.DoubleStack { + doubleStack = "1" + } else { + doubleStack = "0" + } + res, err = c.api.Login(&LoginRequest{ + Username: c.LoginInfo.Form.Username, + Password: EncryptedMd5, + AcID: c.LoginInfo.Meta.Acid, + IP: clientIP, + Info: EncryptedInfo, + ChkSum: EncryptedChkstr, + N: c.LoginInfo.Meta.N, + Type: c.LoginInfo.Meta.Type, + OS: c.LoginInfo.Meta.OS, + Name: c.LoginInfo.Meta.Name, + DoubleStack: doubleStack, + }) if err != nil { return err }