/* ------------------------------------------------------------------------------------------------------------------------ ####### data ####### Copyright (c) 2021 mls-361 #################################################### MIT License ####### ------------------------------------------------------------------------------------------------------------------------ */ package data import ( "forge.chapril.org/mls-361/errors" "forge.chapril.org/mls-361/util" ) const _defaultServerPort = 65530 // TLS AFAIRE. type TLS struct { Host string Cert string Key string AuthType int CA string } // Server AFAIRE. type Server struct { Port int TLS *TLS } func (s *Server) validate() error { if s.Port == 0 { s.Port = _defaultServerPort } if s.TLS == nil { return nil } tls := s.TLS if cert, err := util.PathExists(tls.Cert); err != nil { return err } else if !cert { return errors.New("this file doesn't exist", "file", tls.Cert) ///////////////////////////////////////////////// } if key, err := util.PathExists(tls.Key); err != nil { return err } else if !key { return errors.New("this file doesn't exist", "file", tls.Key) ////////////////////////////////////////////////// } if tls.AuthType < 0 || tls.AuthType > 4 { return errors.New("the value of this parameter is not valid", "tls.authtype", tls.AuthType) //////////////////// } if tls.AuthType == 0 { return nil } if ca, err := util.PathExists(tls.CA); err != nil { return err } else if !ca { return errors.New("this file doesn't exist", "file", tls.CA) /////////////////////////////////////////////////// } return nil } /* ######################################################################################################## @(°_°)@ ####### */