url = "http" + url
- if e := dealUri(&url, chosenBack.getDealerReqUri()); e != nil {
- logger.Warn(`W:`, fmt.Sprintf(logFormat, r.RemoteAddr, chosenBack.route.config.Addr, routePath, chosenBack.Name, "BLOCK", e, time.Since(opT)))
- return ErrDealReqUri
- }
+ url = dealUri(url, chosenBack.getDealerReqUri())
req, e := http.NewRequestWithContext(ctx, r.Method, url, r.Body)
if e != nil {
return md5k, nil
}
-func dealUri(s *string, app []dealer.UriDealer) (e error) {
+func dealUri(s string, app []dealer.UriDealer) (t string) {
+ t = s
for _, v := range app {
switch v.Action {
case `replace`:
- *s = regexp.MustCompile(v.MatchExp).ReplaceAllString(*s, v.Value)
+ t = regexp.MustCompile(v.MatchExp).ReplaceAllString(t, v.Value)
default:
}
}
url = "ws" + url
+ url = dealUri(url, chosenBack.getDealerReqUri())
+
reqHeader := make(http.Header)
if e := copyHeader(r.Header, reqHeader, chosenBack.getDealerReqHeader()); e != nil {
return ErrDealReqHeader
}
- if e := dealUri(&url, chosenBack.getDealerReqUri()); e != nil {
- logger.Warn(`W:`, fmt.Sprintf(errFormat, r.RemoteAddr, chosenBack.route.config.Addr, routePath, chosenBack.Name, e, time.Since(opT)))
- return ErrDealReqUri
- }
-
conn, resp, e = DialContext(ctx, url, reqHeader, chosenBack)
if e != nil && !errors.Is(e, context.Canceled) {
logger.Warn(`W:`, fmt.Sprintf(errFormat, r.RemoteAddr, chosenBack.route.config.Addr, routePath, chosenBack.Name, e, time.Since(opT)))