mirror of
https://github.com/cwinfo/matterbridge.git
synced 2025-07-07 18:14:03 +00:00
Add TLSConfig to nctalk (#1195)
Signed-off-by: Gary Kim <gary@garykim.dev>
This commit is contained in:
98
vendor/github.com/monaco-io/request/build.go
generated
vendored
Normal file
98
vendor/github.com/monaco-io/request/build.go
generated
vendored
Normal file
@ -0,0 +1,98 @@
|
||||
package request
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"net/http"
|
||||
"net/http/cookiejar"
|
||||
"net/url"
|
||||
"time"
|
||||
)
|
||||
|
||||
// TODO: func unit test coverage
|
||||
func (c *Client) buildRequest() (err error) {
|
||||
if err = c.applyRequest(); err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
c.transport = &http.Transport{}
|
||||
|
||||
c.applyHTTPHeader()
|
||||
c.applyBasicAuth()
|
||||
c.applyClient()
|
||||
c.applyTimeout()
|
||||
c.applyCookies()
|
||||
c.applyTLSConfig()
|
||||
err = c.applyProxy()
|
||||
|
||||
c.client.Transport = c.transport
|
||||
return
|
||||
}
|
||||
|
||||
func (c *Client) applyRequest() (err error) {
|
||||
// encode requestURL.httpURL like https://google.com?hello=world&package=request
|
||||
c.requestURL = requestURL{
|
||||
urlString: c.URL,
|
||||
parameters: c.Params,
|
||||
}
|
||||
if err = c.requestURL.EncodeURL(); err != nil {
|
||||
return
|
||||
}
|
||||
c.req, err = http.NewRequest(c.Method, c.requestURL.string(), bytes.NewReader(c.Body))
|
||||
return
|
||||
}
|
||||
|
||||
func (c *Client) applyHTTPHeader() {
|
||||
if c.Method == POST {
|
||||
if c.ContentType == emptyString {
|
||||
c.ContentType = ApplicationJSON
|
||||
}
|
||||
c.req.Header.Set(contentType, string(c.ContentType))
|
||||
}
|
||||
for k, v := range c.Header {
|
||||
c.req.Header.Add(k, v)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Client) applyBasicAuth() {
|
||||
if c.BasicAuth.Username != emptyString && c.BasicAuth.Password != emptyString {
|
||||
c.req.SetBasicAuth(c.BasicAuth.Username, c.BasicAuth.Password)
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Client) applyClient() {
|
||||
c.client = &http.Client{}
|
||||
}
|
||||
|
||||
func (c *Client) applyTimeout() {
|
||||
if c.Timeout > 0 {
|
||||
c.client.Timeout = c.Timeout * time.Second
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Client) applyCookies() {
|
||||
if c.Cookies != nil {
|
||||
jar, _ := cookiejar.New(nil)
|
||||
jar.SetCookies(&url.URL{Scheme: c.requestURL.scheme(), Host: c.requestURL.host()}, c.Cookies)
|
||||
c.client.Jar = jar
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: test case
|
||||
func (c *Client) applyProxy() (err error) {
|
||||
if c.ProxyURL != emptyString {
|
||||
var proxy *url.URL
|
||||
if proxy, err = url.Parse(c.ProxyURL); err != nil {
|
||||
return
|
||||
} else if proxy != nil {
|
||||
c.transport.Proxy = http.ProxyURL(proxy)
|
||||
}
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
func (c *Client) applyTLSConfig() {
|
||||
// &tls.Config{InsecureSkipVerify: true}
|
||||
if c.TLSConfig != nil {
|
||||
c.transport.TLSClientConfig = c.TLSConfig
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user