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

Method writePairs

modules/caddyhttp/reverseproxy/fastcgi/writer.go:78–107  ·  modules/caddyhttp/reverseproxy/fastcgi/writer.go::streamWriter.writePairs
(pairs map[string]string)

Source from the content-addressed store, hash-verified

76}
77
78func (w *streamWriter) writePairs(pairs map[string]string) error {
79 b := make([]byte, 8)
80 nn := 0
81 // init headers
82 w.buf.Write(b)
83 for k, v := range pairs {
84 m := 8 + len(k) + len(v)
85 if m > maxWrite {
86 // param data size exceed 65535 bytes"
87 vl := maxWrite - 8 - len(k)
88 v = v[:vl]
89 }
90 n := encodeSize(b, uint32(len(k)))
91 n += encodeSize(b[n:], uint32(len(v)))
92 m = n + len(k) + len(v)
93 if (nn + m) > maxWrite {
94 if err := w.Flush(); err != nil {
95 return err
96 }
97 // reset headers
98 w.buf.Write(b)
99 nn = 0
100 }
101 nn += m
102 w.buf.Write(b[:n])
103 w.buf.WriteString(k)
104 w.buf.WriteString(v)
105 }
106 return w.FlushStream()
107}
108
109func encodeSize(b []byte, size uint32) int {
110 if size > 127 {

Callers 1

DoMethod · 0.95

Calls 4

FlushMethod · 0.95
FlushStreamMethod · 0.95
encodeSizeFunction · 0.85
WriteMethod · 0.45

Tested by

no test coverage detected