Skip to content

Commit da4c929

Browse files
committed
更新
1 parent 122fb7e commit da4c929

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

deflate/permessage_deflate_conf.go

+22
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ package deflate
1616
import (
1717
"net/http"
1818
"strconv"
19+
"strings"
1920
)
2021

2122
// https://datatracker.ietf.org/doc/html/rfc7692#section-7.1
@@ -114,3 +115,24 @@ func parsePermessageDeflate(header http.Header) (pmd PermessageDeflateConf, err
114115
func GetConnPermessageDeflate(header http.Header) (pd PermessageDeflateConf, err error) {
115116
return parsePermessageDeflate(header)
116117
}
118+
119+
func GenSecWebSocketExtensions(pd PermessageDeflateConf) string {
120+
ext := make([]string, 1, 5)
121+
ext[0] = "permessage-deflate"
122+
if !pd.ClientContextTakeover {
123+
ext = append(ext, "client_no_context_takeover")
124+
}
125+
126+
if !pd.ServerContextTakeover {
127+
ext = append(ext, "server_no_context_takeover")
128+
}
129+
130+
if pd.ClientMaxWindowBits != 0 {
131+
ext = append(ext, "client_max_window_bits="+strconv.Itoa(int(pd.ClientMaxWindowBits)))
132+
}
133+
134+
if pd.ServerMaxWindowBits != 0 {
135+
ext = append(ext, "server_max_window_bits="+strconv.Itoa(int(pd.ServerMaxWindowBits)))
136+
}
137+
return strings.Join(ext, "; ")
138+
}

0 commit comments

Comments
 (0)