mirror of
https://gitee.com/johng/gf
synced 2026-06-30 19:17:30 +08:00
188 lines
4.9 KiB
Go
188 lines
4.9 KiB
Go
// Copyright 2018 gf Author(https://gitee.com/johng/gf). All Rights Reserved.
|
||
//
|
||
// This Source Code Form is subject to the terms of the MIT License.
|
||
// If a copy of the MIT was not distributed with this file,
|
||
// You can obtain one at https://gitee.com/johng/gf.
|
||
// 参数管理.
|
||
|
||
package ghttp
|
||
|
||
import (
|
||
"strings"
|
||
"time"
|
||
"log"
|
||
"errors"
|
||
"strconv"
|
||
"net/http"
|
||
"crypto/tls"
|
||
"path/filepath"
|
||
)
|
||
|
||
// http server setting设置
|
||
// 注意使用该方法进行http server配置时,需要配置所有的配置项,否则没有配置的属性将会默认变量为空
|
||
func (s *Server)SetConfig(c ServerConfig) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
if c.Handler == nil {
|
||
c.Handler = http.HandlerFunc(s.defaultHttpHandle)
|
||
}
|
||
s.config = c
|
||
// 需要处理server root最后的目录分隔符号
|
||
if s.config.ServerRoot != "" {
|
||
s.SetServerRoot(s.config.ServerRoot)
|
||
}
|
||
// 必需设置默认值的属性
|
||
if len(s.config.IndexFiles) < 1 {
|
||
s.SetIndexFiles(defaultServerConfig.IndexFiles)
|
||
}
|
||
if s.config.ServerAgent == "" {
|
||
s.SetServerAgent(defaultServerConfig.ServerAgent)
|
||
}
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - Addr
|
||
func (s *Server)SetAddr(addr string) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.Addr = addr
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - Port
|
||
func (s *Server)SetPort(port int) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.Addr = ":" + strconv.Itoa(port)
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - TLSConfig
|
||
func (s *Server)SetTLSConfig(tls *tls.Config) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.TLSConfig = tls
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - ReadTimeout
|
||
func (s *Server)SetReadTimeout(t time.Duration) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.ReadTimeout = t
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - WriteTimeout
|
||
func (s *Server)SetWriteTimeout(t time.Duration) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.WriteTimeout = t
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - IdleTimeout
|
||
func (s *Server)SetIdleTimeout(t time.Duration) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.IdleTimeout = t
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - MaxHeaderBytes
|
||
func (s *Server)SetMaxHeaderBytes(b int) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.MaxHeaderBytes = b
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - ErrorLog
|
||
func (s *Server)SetErrorLog(logger *log.Logger) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.ErrorLog = logger
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - IndexFiles
|
||
func (s *Server)SetIndexFiles(index []string) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.IndexFiles = index
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - IndexFolder
|
||
func (s *Server)SetIndexFolder(index bool) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.IndexFolder = index
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - ServerAgent
|
||
func (s *Server)SetServerAgent(agent string) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.ServerAgent = agent
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - ServerRoot
|
||
func (s *Server)SetServerRoot(root string) error {
|
||
if s.status == 1 {
|
||
return errors.New("server config cannot be changed while running")
|
||
}
|
||
s.config.ServerRoot = strings.TrimRight(root, string(filepath.Separator))
|
||
return nil
|
||
}
|
||
|
||
// 设置http server参数 - CookieMaxAge
|
||
func (s *Server)SetCookieMaxAge(maxage int) {
|
||
s.cookieMaxAge.Set(maxage)
|
||
}
|
||
|
||
// 设置http server参数 - SessionMaxAge
|
||
func (s *Server)SetSessionMaxAge(maxage int) {
|
||
s.sessionMaxAge.Set(maxage)
|
||
}
|
||
|
||
// 设置http server参数 - SessionIdName
|
||
func (s *Server)SetSessionIdName(name string) {
|
||
s.sessionIdName.Set(name)
|
||
}
|
||
|
||
|
||
// 获取
|
||
func (s *Server) GetName() string {
|
||
return s.name
|
||
}
|
||
|
||
// 获取http server参数 - CookieMaxAge
|
||
func (s *Server)GetCookieMaxAge() int {
|
||
return s.cookieMaxAge.Val()
|
||
}
|
||
|
||
// 获取http server参数 - SessionMaxAge
|
||
func (s *Server)GetSessionMaxAge() int {
|
||
return s.sessionMaxAge.Val()
|
||
}
|
||
|
||
// 获取http server参数 - SessionIdName
|
||
func (s *Server)GetSessionIdName() string {
|
||
return s.sessionIdName.Val()
|
||
}
|