Home / Function/ doAction() — fiber Function Reference

doAction() — fiber Function Reference

Architecture documentation for the doAction() function in proxy.go from the fiber codebase.

Function go FiberCore Adapters calls 1 called by 4

Entity Profile

Dependency Diagram

graph TD
  8fe027cc_2ba5_d594_f941_013559087e63["doAction()"]
  409bdb74_0bb5_be72_7b00_0c1c6089b005["proxy.go"]
  8fe027cc_2ba5_d594_f941_013559087e63 -->|defined in| 409bdb74_0bb5_be72_7b00_0c1c6089b005
  c2502153_4789_a74e_f3f8_bc71e346f366["Do()"]
  c2502153_4789_a74e_f3f8_bc71e346f366 -->|calls| 8fe027cc_2ba5_d594_f941_013559087e63
  e67f03d6_d525_7e2e_95cc_2faca6650f85["DoRedirects()"]
  e67f03d6_d525_7e2e_95cc_2faca6650f85 -->|calls| 8fe027cc_2ba5_d594_f941_013559087e63
  5011faee_a0f5_2df5_4e52_eef3cde22ef1["DoDeadline()"]
  5011faee_a0f5_2df5_4e52_eef3cde22ef1 -->|calls| 8fe027cc_2ba5_d594_f941_013559087e63
  9a4509ed_ab5b_9dd6_929a_46608962a2d8["DoTimeout()"]
  9a4509ed_ab5b_9dd6_929a_46608962a2d8 -->|calls| 8fe027cc_2ba5_d594_f941_013559087e63
  b34610ce_5ed0_3189_fb29_658fab24febf["getScheme()"]
  8fe027cc_2ba5_d594_f941_013559087e63 -->|calls| b34610ce_5ed0_3189_fb29_658fab24febf
  style 8fe027cc_2ba5_d594_f941_013559087e63 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/proxy/proxy.go lines 167–203

func doAction(
	c fiber.Ctx,
	addr string,
	action func(cli *fasthttp.Client, req *fasthttp.Request, resp *fasthttp.Response) error,
	clients ...*fasthttp.Client,
) error {
	var cli *fasthttp.Client

	// set local or global client
	if len(clients) != 0 {
		cli = clients[0]
	} else {
		lock.RLock()
		cli = client
		lock.RUnlock()
	}

	req := c.Request()
	res := c.Response()
	originalURL := utils.CopyString(c.OriginalURL())
	defer req.SetRequestURI(originalURL)

	copiedURL := utils.CopyString(addr)
	req.SetRequestURI(copiedURL)
	// NOTE: if req.isTLS is true, SetRequestURI keeps the scheme as https.
	// Reference: https://github.com/gofiber/fiber/issues/1762
	if scheme := getScheme(utils.UnsafeBytes(copiedURL)); len(scheme) > 0 {
		req.URI().SetSchemeBytes(scheme)
	}

	req.Header.Del(fiber.HeaderConnection)
	if err := action(cli, req, res); err != nil {
		return err
	}
	res.Header.Del(fiber.HeaderConnection)
	return nil
}

Domain

Subdomains

Calls

Frequently Asked Questions

What does doAction() do?
doAction() is a function in the fiber codebase, defined in middleware/proxy/proxy.go.
Where is doAction() defined?
doAction() is defined in middleware/proxy/proxy.go at line 167.
What does doAction() call?
doAction() calls 1 function(s): getScheme.
What calls doAction()?
doAction() is called by 4 function(s): Do, DoDeadline, DoRedirects, DoTimeout.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free