MCPcopy
hub / github.com/caddyserver/caddy / do

Method do

modules/caddyhttp/rewrite/rewrite.go:553–629  ·  view source on GitHub ↗
(r *http.Request, repl *caddy.Replacer)

Source from the content-addressed store, hash-verified

551}
552
553func (q *queryOps) do(r *http.Request, repl *caddy.Replacer) {
554 query := r.URL.Query()
555 for _, renameParam := range q.Rename {
556 key := repl.ReplaceAll(renameParam.Key, "")
557 val := repl.ReplaceAll(renameParam.Val, "")
558 if key == "" || val == "" {
559 continue
560 }
561 if key == val {
562 continue
563 }
564 originalValues, ok := query[key]
565 if !ok {
566 continue
567 }
568 query[val] = originalValues
569 delete(query, key)
570 }
571
572 for _, setParam := range q.Set {
573 key := repl.ReplaceAll(setParam.Key, "")
574 if key == "" {
575 continue
576 }
577 val := repl.ReplaceAll(setParam.Val, "")
578 query[key] = []string{val}
579 }
580
581 for _, addParam := range q.Add {
582 key := repl.ReplaceAll(addParam.Key, "")
583 if key == "" {
584 continue
585 }
586 val := repl.ReplaceAll(addParam.Val, "")
587 query[key] = append(query[key], val)
588 }
589
590 for _, replaceParam := range q.Replace {
591 key := repl.ReplaceAll(replaceParam.Key, "")
592 search := repl.ReplaceKnown(replaceParam.Search, "")
593 replace := repl.ReplaceKnown(replaceParam.Replace, "")
594
595 // replace all query keys...
596 if key == "*" {
597 for fieldName, vals := range query {
598 for i := range vals {
599 if replaceParam.re != nil {
600 query[fieldName][i] = replaceParam.re.ReplaceAllString(query[fieldName][i], replace)
601 } else {
602 query[fieldName][i] = strings.ReplaceAll(query[fieldName][i], search, replace)
603 }
604 }
605 }
606 continue
607 }
608
609 for fieldName, vals := range query {
610 for i := range vals {

Callers 2

RewriteMethod · 0.45

Calls 2

ReplaceAllMethod · 0.80
ReplaceKnownMethod · 0.80

Tested by 1