diff --git a/config/etc/default/restconf.yaml b/config/etc/default/restconf.yaml index 104b80b3..8265a428 100644 --- a/config/etc/default/restconf.yaml +++ b/config/etc/default/restconf.yaml @@ -73,6 +73,9 @@ mml: port2: 5002 sleep: 200 deadLine: 10 + sizeRow: 100 + sizeCol: 128 + bufferSize: 65535 user: admin password: admin mmlHome: ./mmlhome diff --git a/features/mml/mml.go b/features/mml/mml.go index 03195467..84137180 100644 --- a/features/mml/mml.go +++ b/features/mml/mml.go @@ -51,16 +51,24 @@ var ( CustomUriOmMmlInt = config.UriPrefix + "/omManagement/{apiVersion}/mml/{neType}/{neId}" ) -var TIME_DELAY_AFTER_WRITE time.Duration = 200 -var TIME_DEAD_LINE time.Duration = 10 +var ( + TIME_DELAY_AFTER_WRITE time.Duration = 200 + TIME_DEAD_LINE time.Duration = 10 + WIN_ROW_SIZE byte = 100 + WIN_COL_SIZE byte = 100 + BUFFER_SIZE int = 65535 +) -func init() { +func InitMML() { if config.GetYamlConfig().MML.Sleep != 0 { TIME_DELAY_AFTER_WRITE = time.Duration(config.GetYamlConfig().MML.Sleep) } if config.GetYamlConfig().MML.DeadLine != 0 { TIME_DEAD_LINE = time.Duration(config.GetYamlConfig().MML.DeadLine) } + WIN_ROW_SIZE = config.GetYamlConfig().MML.SizeRow + WIN_COL_SIZE = config.GetYamlConfig().MML.SizeCol + BUFFER_SIZE = config.GetYamlConfig().MML.BufferSize } func PostMML2ToNF(w http.ResponseWriter, r *http.Request) { @@ -78,8 +86,7 @@ func PostMML2ToNF(w http.ResponseWriter, r *http.Request) { return } - var buf [100 * 1024]byte - //buf := make([]byte, 0) + buf := make([]byte, BUFFER_SIZE) var n int var mmlResult []string port2 := 5002 @@ -90,6 +97,7 @@ func PostMML2ToNF(w http.ResponseWriter, r *http.Request) { if neInfo != nil { hostMML := fmt.Sprintf("%s:%d", neInfo.Ip, port2) conn, err := net.Dial("tcp", hostMML) + //conn, err := net.Dial("tcp", hostMML) if err != nil { errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err) log.Error(errMsg) @@ -110,6 +118,9 @@ func PostMML2ToNF(w http.ResponseWriter, r *http.Request) { // services.ResponseWithJson(w, http.StatusOK, response) // return // } + // 发送窗口大小设置命令 + conn.Write([]byte{255, 251, 31}) // 发送WILL WINDOW SIZE + conn.Write([]byte{255, 250, 31, 0, WIN_ROW_SIZE, 0, WIN_COL_SIZE, 255, 240}) // 发送SB WINDOW SIZE conn.SetDeadline(time.Now().Add(TIME_DEAD_LINE * time.Second)) loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password) diff --git a/restagent/config/config.go b/restagent/config/config.go index 529f594c..ed87de94 100644 --- a/restagent/config/config.go +++ b/restagent/config/config.go @@ -11,17 +11,6 @@ import ( "gopkg.in/yaml.v3" ) -type DbConfig struct { - Type string `yaml:"type"` - User string `yaml:"user"` - Password string `yaml:"password"` - Host string `yaml:"host"` - Port string `yaml:"port"` - Name string `yaml:"name"` - ConnParam string `yaml:"connParam,omitempty"` - Backup string `yaml:"backup"` -} - // Yaml struct of config type YamlConfig struct { Logger struct { @@ -110,16 +99,7 @@ type YamlConfig struct { } `yaml:"smsc"` } `yaml:"alarm"` - MML struct { - Port int `yaml:"port"` - Port2 int `yaml:"port2"` - Sleep int64 `yaml:"sleep"` - DeadLine int64 `yaml:"deadLine"` - User string `yaml:"user"` - Password string `ymal:"password"` - MmlHome string `yaml:"mmlHome"` - Upload string `yaml:"upload"` - } `yaml:"mml"` + MML MMLParam `yaml:"mml"` NE struct { Addr string `yaml:"addr"` @@ -171,6 +151,31 @@ type RestParam struct { KeyFile string `yaml:"keyFile"` } +type DbConfig struct { + Type string `yaml:"type"` + User string `yaml:"user"` + Password string `yaml:"password"` + Host string `yaml:"host"` + Port string `yaml:"port"` + Name string `yaml:"name"` + ConnParam string `yaml:"connParam,omitempty"` + Backup string `yaml:"backup"` +} + +type MMLParam struct { + Port int `yaml:"port"` + Port2 int `yaml:"port2"` + Sleep int64 `yaml:"sleep"` + DeadLine int64 `yaml:"deadLine"` + SizeRow byte `yaml:"sizeRow"` + SizeCol byte `yaml:"sizeCol"` + BufferSize int `yaml:"bufferSize"` + User string `yaml:"user"` + Password string `ymal:"password"` + MmlHome string `yaml:"mmlHome"` + Upload string `yaml:"upload"` +} + type TestDatas struct { UDM struct { CapUsed uint32 `yaml:"capUsed"` @@ -211,6 +216,11 @@ func NewYamlConfig() YamlConfig { Type: "mysql", ConnParam: "charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True", }, + MML: MMLParam{ + SizeRow: 100, + SizeCol: 128, + BufferSize: 65535, + }, } } diff --git a/restagent/etc/restconf.yaml b/restagent/etc/restconf.yaml index df25c186..05f3864b 100644 --- a/restagent/etc/restconf.yaml +++ b/restagent/etc/restconf.yaml @@ -73,6 +73,9 @@ mml: port2: 5002 sleep: 200 deadLine: 10 + sizeRow: 100 + sizeCol: 128 + bufferSize: 65535 user: admin password: admin mmlHome: ./mmlhome diff --git a/restagent/restagent.go b/restagent/restagent.go index 63571157..387ab8b0 100644 --- a/restagent/restagent.go +++ b/restagent/restagent.go @@ -13,6 +13,7 @@ import ( "be.ems/features/event" "be.ems/features/fm" "be.ems/features/lm" + "be.ems/features/mml" "be.ems/features/pm" "be.ems/lib/dborm" "be.ems/lib/global" @@ -227,6 +228,8 @@ func main() { os.Exit(4) } + mml.InitMML() + // 将 mux.Router 注册到 gin.Engine // 默认路由组