mirror of
https://github.com/tobychui/zoraxy.git
synced 2025-10-23 19:14:09 +02:00
Fixed nil pointer exception in new setups
This commit is contained in:
@@ -27,7 +27,12 @@ import (
|
||||
|
||||
// Check if a user define header exists in this endpoint, ignore case
|
||||
func (ep *ProxyEndpoint) UserDefinedHeaderExists(key string) bool {
|
||||
for _, header := range ep.HeaderRewriteRules.UserDefinedHeaders {
|
||||
endpointProxyRewriteRules := GetDefaultHeaderRewriteRules()
|
||||
if ep.HeaderRewriteRules != nil {
|
||||
endpointProxyRewriteRules = ep.HeaderRewriteRules
|
||||
}
|
||||
|
||||
for _, header := range endpointProxyRewriteRules.UserDefinedHeaders {
|
||||
if strings.EqualFold(header.Key, key) {
|
||||
return true
|
||||
}
|
||||
@@ -38,6 +43,9 @@ func (ep *ProxyEndpoint) UserDefinedHeaderExists(key string) bool {
|
||||
// Remvoe a user defined header from the list
|
||||
func (ep *ProxyEndpoint) RemoveUserDefinedHeader(key string) error {
|
||||
newHeaderList := []*rewrite.UserDefinedHeader{}
|
||||
if ep.HeaderRewriteRules == nil {
|
||||
ep.HeaderRewriteRules = GetDefaultHeaderRewriteRules()
|
||||
}
|
||||
for _, header := range ep.HeaderRewriteRules.UserDefinedHeaders {
|
||||
if !strings.EqualFold(header.Key, key) {
|
||||
newHeaderList = append(newHeaderList, header)
|
||||
@@ -55,6 +63,9 @@ func (ep *ProxyEndpoint) AddUserDefinedHeader(newHeaderRule *rewrite.UserDefined
|
||||
ep.RemoveUserDefinedHeader(newHeaderRule.Key)
|
||||
}
|
||||
|
||||
if ep.HeaderRewriteRules == nil {
|
||||
ep.HeaderRewriteRules = GetDefaultHeaderRewriteRules()
|
||||
}
|
||||
newHeaderRule.Key = cases.Title(language.Und, cases.NoLower).String(newHeaderRule.Key)
|
||||
ep.HeaderRewriteRules.UserDefinedHeaders = append(ep.HeaderRewriteRules.UserDefinedHeaders, newHeaderRule)
|
||||
return nil
|
||||
@@ -106,7 +117,7 @@ func (ep *ProxyEndpoint) RemoveVirtualDirectoryRuleByMatchingPath(matchingPath s
|
||||
return errors.New("target virtual directory routing rule not found")
|
||||
}
|
||||
|
||||
// Delete a vdir rule by its matching path
|
||||
// Add a vdir rule by its matching path
|
||||
func (ep *ProxyEndpoint) AddVirtualDirectoryRule(vdir *VirtualDirectoryEndpoint) (*ProxyEndpoint, error) {
|
||||
//Check for matching path duplicate
|
||||
if ep.GetVirtualDirectoryRuleByMatchingPath(vdir.MatchingPath) != nil {
|
||||
|
Reference in New Issue
Block a user