summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/Philipp15b/go-steam/netutil
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/Philipp15b/go-steam/netutil')
-rw-r--r--vendor/github.com/Philipp15b/go-steam/netutil/addr.go43
-rw-r--r--vendor/github.com/Philipp15b/go-steam/netutil/http.go17
-rw-r--r--vendor/github.com/Philipp15b/go-steam/netutil/url.go13
3 files changed, 73 insertions, 0 deletions
diff --git a/vendor/github.com/Philipp15b/go-steam/netutil/addr.go b/vendor/github.com/Philipp15b/go-steam/netutil/addr.go
new file mode 100644
index 00000000..72b959e6
--- /dev/null
+++ b/vendor/github.com/Philipp15b/go-steam/netutil/addr.go
@@ -0,0 +1,43 @@
+package netutil
+
+import (
+ "net"
+ "strconv"
+ "strings"
+)
+
+// An addr that is neither restricted to TCP nor UDP, but has an IP and a port.
+type PortAddr struct {
+ IP net.IP
+ Port uint16
+}
+
+// Parses an IP address with a port, for example "209.197.29.196:27017".
+// If the given string is not valid, this function returns nil.
+func ParsePortAddr(addr string) *PortAddr {
+ parts := strings.Split(addr, ":")
+ if len(parts) != 2 {
+ return nil
+ }
+ ip := net.ParseIP(parts[0])
+ if ip == nil {
+ return nil
+ }
+ port, err := strconv.ParseUint(parts[1], 10, 16)
+ if err != nil {
+ return nil
+ }
+ return &PortAddr{ip, uint16(port)}
+}
+
+func (p *PortAddr) ToTCPAddr() *net.TCPAddr {
+ return &net.TCPAddr{p.IP, int(p.Port), ""}
+}
+
+func (p *PortAddr) ToUDPAddr() *net.UDPAddr {
+ return &net.UDPAddr{p.IP, int(p.Port), ""}
+}
+
+func (p *PortAddr) String() string {
+ return p.IP.String() + ":" + strconv.FormatUint(uint64(p.Port), 10)
+}
diff --git a/vendor/github.com/Philipp15b/go-steam/netutil/http.go b/vendor/github.com/Philipp15b/go-steam/netutil/http.go
new file mode 100644
index 00000000..fdaa055a
--- /dev/null
+++ b/vendor/github.com/Philipp15b/go-steam/netutil/http.go
@@ -0,0 +1,17 @@
+package netutil
+
+import (
+ "net/http"
+ "net/url"
+ "strings"
+)
+
+// Version of http.Client.PostForm that returns a new request instead of executing it directly.
+func NewPostForm(url string, data url.Values) *http.Request {
+ req, err := http.NewRequest("POST", url, strings.NewReader(data.Encode()))
+ if err != nil {
+ panic(err)
+ }
+ req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
+ return req
+}
diff --git a/vendor/github.com/Philipp15b/go-steam/netutil/url.go b/vendor/github.com/Philipp15b/go-steam/netutil/url.go
new file mode 100644
index 00000000..4598ec3e
--- /dev/null
+++ b/vendor/github.com/Philipp15b/go-steam/netutil/url.go
@@ -0,0 +1,13 @@
+package netutil
+
+import (
+ "net/url"
+)
+
+func ToUrlValues(m map[string]string) url.Values {
+ r := make(url.Values)
+ for k, v := range m {
+ r.Add(k, v)
+ }
+ return r
+}