diff --git a/Godeps/Godeps.json b/Godeps/Godeps.json
index bd70008..9d11187 100644
--- a/Godeps/Godeps.json
+++ b/Godeps/Godeps.json
@@ -1,6 +1,7 @@
{
"ImportPath": "github.com/subgraph/fw-daemon",
- "GoVersion": "go1.5",
+ "GoVersion": "go1.6",
+ "GodepVersion": "v74",
"Packages": [
"./..."
],
@@ -10,6 +11,11 @@
"Comment": "v3-15-g230e4b2",
"Rev": "230e4b23db2fd81c53eaa0073f76659d4849ce51"
},
+ {
+ "ImportPath": "github.com/godbus/dbus/introspect",
+ "Comment": "v3-15-g230e4b2",
+ "Rev": "230e4b23db2fd81c53eaa0073f76659d4849ce51"
+ },
{
"ImportPath": "github.com/gotk3/gotk3/cairo",
"Comment": "GOTK3_0_2_0-430-ge68c426",
@@ -38,6 +44,14 @@
{
"ImportPath": "github.com/op/go-logging",
"Rev": "dfaf3dff9b631bc4236201d90d41ee0de9202889"
+ },
+ {
+ "ImportPath": "github.com/subgraph/go-procsnitch",
+ "Rev": "84754d9af0ff985a28b3e6be743c7d453fda7322"
+ },
+ {
+ "ImportPath": "golang.org/x/net/proxy",
+ "Rev": "2e9cee70ee697e0a2ef894b560dda50dec7dff58"
}
]
}
diff --git a/Godeps/_workspace/.gitignore b/Godeps/_workspace/.gitignore
deleted file mode 100644
index f037d68..0000000
--- a/Godeps/_workspace/.gitignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/pkg
-/bin
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/prop/prop.go b/Godeps/_workspace/src/github.com/godbus/dbus/prop/prop.go
deleted file mode 100644
index 317a9a3..0000000
--- a/Godeps/_workspace/src/github.com/godbus/dbus/prop/prop.go
+++ /dev/null
@@ -1,264 +0,0 @@
-// Package prop provides the Properties struct which can be used to implement
-// org.freedesktop.DBus.Properties.
-package prop
-
-import (
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/godbus/dbus"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/godbus/dbus/introspect"
- "sync"
-)
-
-// EmitType controls how org.freedesktop.DBus.Properties.PropertiesChanged is
-// emitted for a property. If it is EmitTrue, the signal is emitted. If it is
-// EmitInvalidates, the signal is also emitted, but the new value of the property
-// is not disclosed.
-type EmitType byte
-
-const (
- EmitFalse EmitType = iota
- EmitTrue
- EmitInvalidates
-)
-
-// ErrIfaceNotFound is the error returned to peers who try to access properties
-// on interfaces that aren't found.
-var ErrIfaceNotFound = dbus.NewError("org.freedesktop.DBus.Properties.Error.InterfaceNotFound", nil)
-
-// ErrPropNotFound is the error returned to peers trying to access properties
-// that aren't found.
-var ErrPropNotFound = dbus.NewError("org.freedesktop.DBus.Properties.Error.PropertyNotFound", nil)
-
-// ErrReadOnly is the error returned to peers trying to set a read-only
-// property.
-var ErrReadOnly = dbus.NewError("org.freedesktop.DBus.Properties.Error.ReadOnly", nil)
-
-// ErrInvalidArg is returned to peers if the type of the property that is being
-// changed and the argument don't match.
-var ErrInvalidArg = dbus.NewError("org.freedesktop.DBus.Properties.Error.InvalidArg", nil)
-
-// The introspection data for the org.freedesktop.DBus.Properties interface.
-var IntrospectData = introspect.Interface{
- Name: "org.freedesktop.DBus.Properties",
- Methods: []introspect.Method{
- {
- Name: "Get",
- Args: []introspect.Arg{
- {"interface", "s", "in"},
- {"property", "s", "in"},
- {"value", "v", "out"},
- },
- },
- {
- Name: "GetAll",
- Args: []introspect.Arg{
- {"interface", "s", "in"},
- {"props", "a{sv}", "out"},
- },
- },
- {
- Name: "Set",
- Args: []introspect.Arg{
- {"interface", "s", "in"},
- {"property", "s", "in"},
- {"value", "v", "in"},
- },
- },
- },
- Signals: []introspect.Signal{
- {
- Name: "PropertiesChanged",
- Args: []introspect.Arg{
- {"interface", "s", "out"},
- {"changed_properties", "a{sv}", "out"},
- {"invalidates_properties", "as", "out"},
- },
- },
- },
-}
-
-// The introspection data for the org.freedesktop.DBus.Properties interface, as
-// a string.
-const IntrospectDataString = `
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-`
-
-// Prop represents a single property. It is used for creating a Properties
-// value.
-type Prop struct {
- // Initial value. Must be a DBus-representable type.
- Value interface{}
-
- // If true, the value can be modified by calls to Set.
- Writable bool
-
- // Controls how org.freedesktop.DBus.Properties.PropertiesChanged is
- // emitted if this property changes.
- Emit EmitType
-
- // If not nil, anytime this property is changed by Set, this function is
- // called with an appropiate Change as its argument. If the returned error
- // is not nil, it is sent back to the caller of Set and the property is not
- // changed.
- Callback func(*Change) *dbus.Error
-}
-
-// Change represents a change of a property by a call to Set.
-type Change struct {
- Props *Properties
- Iface string
- Name string
- Value interface{}
-}
-
-// Properties is a set of values that can be made available to the message bus
-// using the org.freedesktop.DBus.Properties interface. It is safe for
-// concurrent use by multiple goroutines.
-type Properties struct {
- m map[string]map[string]*Prop
- mut sync.RWMutex
- conn *dbus.Conn
- path dbus.ObjectPath
-}
-
-// New returns a new Properties structure that manages the given properties.
-// The key for the first-level map of props is the name of the interface; the
-// second-level key is the name of the property. The returned structure will be
-// exported as org.freedesktop.DBus.Properties on path.
-func New(conn *dbus.Conn, path dbus.ObjectPath, props map[string]map[string]*Prop) *Properties {
- p := &Properties{m: props, conn: conn, path: path}
- conn.Export(p, path, "org.freedesktop.DBus.Properties")
- return p
-}
-
-// Get implements org.freedesktop.DBus.Properties.Get.
-func (p *Properties) Get(iface, property string) (dbus.Variant, *dbus.Error) {
- p.mut.RLock()
- defer p.mut.RUnlock()
- m, ok := p.m[iface]
- if !ok {
- return dbus.Variant{}, ErrIfaceNotFound
- }
- prop, ok := m[property]
- if !ok {
- return dbus.Variant{}, ErrPropNotFound
- }
- return dbus.MakeVariant(prop.Value), nil
-}
-
-// GetAll implements org.freedesktop.DBus.Properties.GetAll.
-func (p *Properties) GetAll(iface string) (map[string]dbus.Variant, *dbus.Error) {
- p.mut.RLock()
- defer p.mut.RUnlock()
- m, ok := p.m[iface]
- if !ok {
- return nil, ErrIfaceNotFound
- }
- rm := make(map[string]dbus.Variant, len(m))
- for k, v := range m {
- rm[k] = dbus.MakeVariant(v.Value)
- }
- return rm, nil
-}
-
-// GetMust returns the value of the given property and panics if either the
-// interface or the property name are invalid.
-func (p *Properties) GetMust(iface, property string) interface{} {
- p.mut.RLock()
- defer p.mut.RUnlock()
- return p.m[iface][property].Value
-}
-
-// Introspection returns the introspection data that represents the properties
-// of iface.
-func (p *Properties) Introspection(iface string) []introspect.Property {
- p.mut.RLock()
- defer p.mut.RUnlock()
- m := p.m[iface]
- s := make([]introspect.Property, 0, len(m))
- for k, v := range m {
- p := introspect.Property{Name: k, Type: dbus.SignatureOf(v.Value).String()}
- if v.Writable {
- p.Access = "readwrite"
- } else {
- p.Access = "read"
- }
- s = append(s, p)
- }
- return s
-}
-
-// set sets the given property and emits PropertyChanged if appropiate. p.mut
-// must already be locked.
-func (p *Properties) set(iface, property string, v interface{}) {
- prop := p.m[iface][property]
- prop.Value = v
- switch prop.Emit {
- case EmitFalse:
- // do nothing
- case EmitInvalidates:
- p.conn.Emit(p.path, "org.freedesktop.DBus.Properties.PropertiesChanged",
- iface, map[string]dbus.Variant{}, []string{property})
- case EmitTrue:
- p.conn.Emit(p.path, "org.freedesktop.DBus.Properties.PropertiesChanged",
- iface, map[string]dbus.Variant{property: dbus.MakeVariant(v)},
- []string{})
- default:
- panic("invalid value for EmitType")
- }
-}
-
-// Set implements org.freedesktop.Properties.Set.
-func (p *Properties) Set(iface, property string, newv dbus.Variant) *dbus.Error {
- p.mut.Lock()
- defer p.mut.Unlock()
- m, ok := p.m[iface]
- if !ok {
- return ErrIfaceNotFound
- }
- prop, ok := m[property]
- if !ok {
- return ErrPropNotFound
- }
- if !prop.Writable {
- return ErrReadOnly
- }
- if newv.Signature() != dbus.SignatureOf(prop.Value) {
- return ErrInvalidArg
- }
- if prop.Callback != nil {
- err := prop.Callback(&Change{p, iface, property, newv.Value()})
- if err != nil {
- return err
- }
- }
- p.set(iface, property, newv.Value())
- return nil
-}
-
-// SetMust sets the value of the given property and panics if the interface or
-// the property name are invalid.
-func (p *Properties) SetMust(iface, property string, v interface{}) {
- p.mut.Lock()
- p.set(iface, property, v)
- p.mut.Unlock()
-}
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/examples/example.go b/Godeps/_workspace/src/github.com/op/go-logging/examples/example.go
deleted file mode 100644
index b17c00a..0000000
--- a/Godeps/_workspace/src/github.com/op/go-logging/examples/example.go
+++ /dev/null
@@ -1,49 +0,0 @@
-package main
-
-import (
- "os"
-
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/op/go-logging"
-)
-
-var log = logging.MustGetLogger("example")
-
-// Example format string. Everything except the message has a custom color
-// which is dependent on the log level. Many fields have a custom output
-// formatting too, eg. the time returns the hour down to the milli second.
-var format = logging.MustStringFormatter(
- `%{color}%{time:15:04:05.000} %{shortfunc} ▶ %{level:.4s} %{id:03x}%{color:reset} %{message}`,
-)
-
-// Password is just an example type implementing the Redactor interface. Any
-// time this is logged, the Redacted() function will be called.
-type Password string
-
-func (p Password) Redacted() interface{} {
- return logging.Redact(string(p))
-}
-
-func main() {
- // For demo purposes, create two backend for os.Stderr.
- backend1 := logging.NewLogBackend(os.Stderr, "", 0)
- backend2 := logging.NewLogBackend(os.Stderr, "", 0)
-
- // For messages written to backend2 we want to add some additional
- // information to the output, including the used log level and the name of
- // the function.
- backend2Formatter := logging.NewBackendFormatter(backend2, format)
-
- // Only errors and more severe messages should be sent to backend1
- backend1Leveled := logging.AddModuleLevel(backend1)
- backend1Leveled.SetLevel(logging.ERROR, "")
-
- // Set the backends to be used.
- logging.SetBackend(backend1Leveled, backend2Formatter)
-
- log.Debugf("debug %s", Password("secret"))
- log.Info("info")
- log.Notice("notice")
- log.Warning("warning")
- log.Error("err")
- log.Critical("crit")
-}
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/examples/example.png b/Godeps/_workspace/src/github.com/op/go-logging/examples/example.png
deleted file mode 100644
index ff3392b..0000000
Binary files a/Godeps/_workspace/src/github.com/op/go-logging/examples/example.png and /dev/null differ
diff --git a/dbus.go b/dbus.go
index 9d024de..16b6abd 100644
--- a/dbus.go
+++ b/dbus.go
@@ -6,10 +6,9 @@ import (
"path"
"strings"
+ "github.com/godbus/dbus"
+ "github.com/godbus/dbus/introspect"
"github.com/op/go-logging"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/godbus/dbus"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/godbus/dbus/introspect"
- // "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/op/go-logging"
)
const introspectXml = `
diff --git a/fw-settings/builder.go b/fw-settings/builder.go
index a82d878..c66bca2 100644
--- a/fw-settings/builder.go
+++ b/fw-settings/builder.go
@@ -7,8 +7,8 @@ import (
"path/filepath"
"reflect"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk"
+ "github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gtk"
"github.com/subgraph/fw-daemon/fw-settings/definitions"
)
diff --git a/fw-settings/config.go b/fw-settings/config.go
index 6e82d22..6aa2542 100644
--- a/fw-settings/config.go
+++ b/fw-settings/config.go
@@ -1,8 +1,8 @@
package main
import (
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/op/go-logging"
+ "github.com/gotk3/gotk3/gtk"
+ "github.com/op/go-logging"
)
var levelToId = map[int32]string{
diff --git a/fw-settings/dbus.go b/fw-settings/dbus.go
index a4b9efe..5010ce7 100644
--- a/fw-settings/dbus.go
+++ b/fw-settings/dbus.go
@@ -1,7 +1,7 @@
package main
import (
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/godbus/dbus"
+ "github.com/godbus/dbus"
)
type dbusObject struct {
diff --git a/fw-settings/main.go b/fw-settings/main.go
index 72edc65..50017eb 100644
--- a/fw-settings/main.go
+++ b/fw-settings/main.go
@@ -4,8 +4,8 @@ import (
"os"
"fmt"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk"
+ "github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gtk"
)
func failDialog(parent *gtk.Window, format string, args ...interface{}) {
diff --git a/fw-settings/rule_edit.go b/fw-settings/rule_edit.go
index c312470..a491c2f 100644
--- a/fw-settings/rule_edit.go
+++ b/fw-settings/rule_edit.go
@@ -2,7 +2,7 @@ package main
import (
"fmt"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk"
+ "github.com/gotk3/gotk3/gtk"
"net"
"strconv"
"strings"
diff --git a/fw-settings/rules.go b/fw-settings/rules.go
index 78d32a0..341c648 100644
--- a/fw-settings/rules.go
+++ b/fw-settings/rules.go
@@ -2,7 +2,7 @@ package main
import (
"fmt"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk"
+ "github.com/gotk3/gotk3/gtk"
"strings"
)
diff --git a/main.go b/main.go
index d1948f8..4ce5107 100644
--- a/main.go
+++ b/main.go
@@ -15,7 +15,6 @@ import (
"github.com/subgraph/fw-daemon/nfqueue"
"github.com/subgraph/go-procsnitch"
- // "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/op/go-logging"
"github.com/op/go-logging"
)
diff --git a/prompt.go b/prompt.go
index f13573b..d0bafdd 100644
--- a/prompt.go
+++ b/prompt.go
@@ -2,7 +2,7 @@ package main
import (
"fmt"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/godbus/dbus"
+ "github.com/godbus/dbus"
"os/user"
"strconv"
"sync"
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/CONTRIBUTING.md b/vendor/github.com/godbus/dbus/CONTRIBUTING.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/CONTRIBUTING.md
rename to vendor/github.com/godbus/dbus/CONTRIBUTING.md
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/LICENSE b/vendor/github.com/godbus/dbus/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/LICENSE
rename to vendor/github.com/godbus/dbus/LICENSE
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/MAINTAINERS b/vendor/github.com/godbus/dbus/MAINTAINERS
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/MAINTAINERS
rename to vendor/github.com/godbus/dbus/MAINTAINERS
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/README.markdown b/vendor/github.com/godbus/dbus/README.markdown
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/README.markdown
rename to vendor/github.com/godbus/dbus/README.markdown
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/auth.go b/vendor/github.com/godbus/dbus/auth.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/auth.go
rename to vendor/github.com/godbus/dbus/auth.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/auth_external.go b/vendor/github.com/godbus/dbus/auth_external.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/auth_external.go
rename to vendor/github.com/godbus/dbus/auth_external.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/auth_sha1.go b/vendor/github.com/godbus/dbus/auth_sha1.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/auth_sha1.go
rename to vendor/github.com/godbus/dbus/auth_sha1.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/call.go b/vendor/github.com/godbus/dbus/call.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/call.go
rename to vendor/github.com/godbus/dbus/call.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/conn.go b/vendor/github.com/godbus/dbus/conn.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/conn.go
rename to vendor/github.com/godbus/dbus/conn.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/conn_darwin.go b/vendor/github.com/godbus/dbus/conn_darwin.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/conn_darwin.go
rename to vendor/github.com/godbus/dbus/conn_darwin.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/conn_other.go b/vendor/github.com/godbus/dbus/conn_other.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/conn_other.go
rename to vendor/github.com/godbus/dbus/conn_other.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/dbus.go b/vendor/github.com/godbus/dbus/dbus.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/dbus.go
rename to vendor/github.com/godbus/dbus/dbus.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/decoder.go b/vendor/github.com/godbus/dbus/decoder.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/decoder.go
rename to vendor/github.com/godbus/dbus/decoder.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/doc.go b/vendor/github.com/godbus/dbus/doc.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/doc.go
rename to vendor/github.com/godbus/dbus/doc.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/encoder.go b/vendor/github.com/godbus/dbus/encoder.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/encoder.go
rename to vendor/github.com/godbus/dbus/encoder.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/export.go b/vendor/github.com/godbus/dbus/export.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/export.go
rename to vendor/github.com/godbus/dbus/export.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/homedir.go b/vendor/github.com/godbus/dbus/homedir.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/homedir.go
rename to vendor/github.com/godbus/dbus/homedir.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/homedir_dynamic.go b/vendor/github.com/godbus/dbus/homedir_dynamic.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/homedir_dynamic.go
rename to vendor/github.com/godbus/dbus/homedir_dynamic.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/homedir_static.go b/vendor/github.com/godbus/dbus/homedir_static.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/homedir_static.go
rename to vendor/github.com/godbus/dbus/homedir_static.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/call.go b/vendor/github.com/godbus/dbus/introspect/call.go
similarity index 87%
rename from Godeps/_workspace/src/github.com/godbus/dbus/introspect/call.go
rename to vendor/github.com/godbus/dbus/introspect/call.go
index e646d88..790a23e 100644
--- a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/call.go
+++ b/vendor/github.com/godbus/dbus/introspect/call.go
@@ -2,7 +2,7 @@ package introspect
import (
"encoding/xml"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/godbus/dbus"
+ "github.com/godbus/dbus"
"strings"
)
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspect.go b/vendor/github.com/godbus/dbus/introspect/introspect.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspect.go
rename to vendor/github.com/godbus/dbus/introspect/introspect.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspectable.go b/vendor/github.com/godbus/dbus/introspect/introspectable.go
similarity index 96%
rename from Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspectable.go
rename to vendor/github.com/godbus/dbus/introspect/introspectable.go
index 09a0dc5..2f16690 100644
--- a/Godeps/_workspace/src/github.com/godbus/dbus/introspect/introspectable.go
+++ b/vendor/github.com/godbus/dbus/introspect/introspectable.go
@@ -2,7 +2,7 @@ package introspect
import (
"encoding/xml"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/godbus/dbus"
+ "github.com/godbus/dbus"
"reflect"
"strings"
)
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/message.go b/vendor/github.com/godbus/dbus/message.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/message.go
rename to vendor/github.com/godbus/dbus/message.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/object.go b/vendor/github.com/godbus/dbus/object.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/object.go
rename to vendor/github.com/godbus/dbus/object.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/sig.go b/vendor/github.com/godbus/dbus/sig.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/sig.go
rename to vendor/github.com/godbus/dbus/sig.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/transport_darwin.go b/vendor/github.com/godbus/dbus/transport_darwin.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/transport_darwin.go
rename to vendor/github.com/godbus/dbus/transport_darwin.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/transport_generic.go b/vendor/github.com/godbus/dbus/transport_generic.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/transport_generic.go
rename to vendor/github.com/godbus/dbus/transport_generic.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/transport_unix.go b/vendor/github.com/godbus/dbus/transport_unix.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/transport_unix.go
rename to vendor/github.com/godbus/dbus/transport_unix.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/transport_unixcred_dragonfly.go b/vendor/github.com/godbus/dbus/transport_unixcred_dragonfly.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/transport_unixcred_dragonfly.go
rename to vendor/github.com/godbus/dbus/transport_unixcred_dragonfly.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/transport_unixcred_linux.go b/vendor/github.com/godbus/dbus/transport_unixcred_linux.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/transport_unixcred_linux.go
rename to vendor/github.com/godbus/dbus/transport_unixcred_linux.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/variant.go b/vendor/github.com/godbus/dbus/variant.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/variant.go
rename to vendor/github.com/godbus/dbus/variant.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/variant_lexer.go b/vendor/github.com/godbus/dbus/variant_lexer.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/variant_lexer.go
rename to vendor/github.com/godbus/dbus/variant_lexer.go
diff --git a/Godeps/_workspace/src/github.com/godbus/dbus/variant_parser.go b/vendor/github.com/godbus/dbus/variant_parser.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/godbus/dbus/variant_parser.go
rename to vendor/github.com/godbus/dbus/variant_parser.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/LICENSE b/vendor/github.com/gotk3/gotk3/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/LICENSE
rename to vendor/github.com/gotk3/gotk3/LICENSE
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/antialias.go b/vendor/github.com/gotk3/gotk3/cairo/antialias.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/antialias.go
rename to vendor/github.com/gotk3/gotk3/cairo/antialias.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/cairo.go b/vendor/github.com/gotk3/gotk3/cairo/cairo.go
similarity index 96%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/cairo.go
rename to vendor/github.com/gotk3/gotk3/cairo/cairo.go
index dd6b0ba..f5df44f 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/cairo.go
+++ b/vendor/github.com/gotk3/gotk3/cairo/cairo.go
@@ -26,7 +26,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/canvas.go b/vendor/github.com/gotk3/gotk3/cairo/canvas.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/canvas.go
rename to vendor/github.com/gotk3/gotk3/cairo/canvas.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/errors.go b/vendor/github.com/gotk3/gotk3/cairo/errors.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/errors.go
rename to vendor/github.com/gotk3/gotk3/cairo/errors.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/fillrule.go b/vendor/github.com/gotk3/gotk3/cairo/fillrule.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/fillrule.go
rename to vendor/github.com/gotk3/gotk3/cairo/fillrule.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/linecap.go b/vendor/github.com/gotk3/gotk3/cairo/linecap.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/linecap.go
rename to vendor/github.com/gotk3/gotk3/cairo/linecap.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/linejoin.go b/vendor/github.com/gotk3/gotk3/cairo/linejoin.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/linejoin.go
rename to vendor/github.com/gotk3/gotk3/cairo/linejoin.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/mimetype.go b/vendor/github.com/gotk3/gotk3/cairo/mimetype.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/mimetype.go
rename to vendor/github.com/gotk3/gotk3/cairo/mimetype.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/operator.go b/vendor/github.com/gotk3/gotk3/cairo/operator.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/operator.go
rename to vendor/github.com/gotk3/gotk3/cairo/operator.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/status.go b/vendor/github.com/gotk3/gotk3/cairo/status.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/status.go
rename to vendor/github.com/gotk3/gotk3/cairo/status.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/surface.go b/vendor/github.com/gotk3/gotk3/cairo/surface.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/surface.go
rename to vendor/github.com/gotk3/gotk3/cairo/surface.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/surfacetype.go b/vendor/github.com/gotk3/gotk3/cairo/surfacetype.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/surfacetype.go
rename to vendor/github.com/gotk3/gotk3/cairo/surfacetype.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/text.go b/vendor/github.com/gotk3/gotk3/cairo/text.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/text.go
rename to vendor/github.com/gotk3/gotk3/cairo/text.go
index a14f6ef..45fe298 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/text.go
+++ b/vendor/github.com/gotk3/gotk3/cairo/text.go
@@ -124,4 +124,3 @@ func (v *Context) TextExtents(utf8 string) TextExtents {
// TODO: cairo_text_cluster_allocate
// TODO: cairo_text_cluster_free
-
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/translations.go b/vendor/github.com/gotk3/gotk3/cairo/translations.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/translations.go
rename to vendor/github.com/gotk3/gotk3/cairo/translations.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/util.go b/vendor/github.com/gotk3/gotk3/cairo/util.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/cairo/util.go
rename to vendor/github.com/gotk3/gotk3/cairo/util.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk.go b/vendor/github.com/gotk3/gotk3/gdk/gdk.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk.go
rename to vendor/github.com/gotk3/gotk3/gdk/gdk.go
index d38ef78..51b7f57 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk.go
+++ b/vendor/github.com/gotk3/gotk3/gdk/gdk.go
@@ -28,7 +28,7 @@ import (
"strconv"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk.go.h b/vendor/github.com/gotk3/gotk3/gdk/gdk.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk.go.h
rename to vendor/github.com/gotk3/gotk3/gdk/gdk.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk_3_6-8.go b/vendor/github.com/gotk3/gotk3/gdk/gdk_3_6-8.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk_3_6-8.go
rename to vendor/github.com/gotk3/gotk3/gdk/gdk_3_6-8.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk_deprecated_since_3_16.go b/vendor/github.com/gotk3/gotk3/gdk/gdk_deprecated_since_3_16.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/gdk_deprecated_since_3_16.go
rename to vendor/github.com/gotk3/gotk3/gdk/gdk_deprecated_since_3_16.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/screen.go b/vendor/github.com/gotk3/gotk3/gdk/screen.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/screen.go
rename to vendor/github.com/gotk3/gotk3/gdk/screen.go
index b639631..6164731 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/screen.go
+++ b/vendor/github.com/gotk3/gotk3/gdk/screen.go
@@ -8,7 +8,7 @@ import (
"runtime"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
/*
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/screen_no_x11.go b/vendor/github.com/gotk3/gotk3/gdk/screen_no_x11.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/screen_no_x11.go
rename to vendor/github.com/gotk3/gotk3/gdk/screen_no_x11.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/screen_x11.go b/vendor/github.com/gotk3/gotk3/gdk/screen_x11.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/screen_x11.go
rename to vendor/github.com/gotk3/gotk3/gdk/screen_x11.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/window_no_x11.go b/vendor/github.com/gotk3/gotk3/gdk/window_no_x11.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/window_no_x11.go
rename to vendor/github.com/gotk3/gotk3/gdk/window_no_x11.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/window_x11.go b/vendor/github.com/gotk3/gotk3/gdk/window_x11.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gdk/window_x11.go
rename to vendor/github.com/gotk3/gotk3/gdk/window_x11.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/application.go b/vendor/github.com/gotk3/gotk3/glib/application.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/application.go
rename to vendor/github.com/gotk3/gotk3/glib/application.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/connect.go b/vendor/github.com/gotk3/gotk3/glib/connect.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/connect.go
rename to vendor/github.com/gotk3/gotk3/glib/connect.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/glib.go b/vendor/github.com/gotk3/gotk3/glib/glib.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/glib.go
rename to vendor/github.com/gotk3/gotk3/glib/glib.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/glib.go.h b/vendor/github.com/gotk3/gotk3/glib/glib.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/glib.go.h
rename to vendor/github.com/gotk3/gotk3/glib/glib.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/glib_extension.go b/vendor/github.com/gotk3/gotk3/glib/glib_extension.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/glib_extension.go
rename to vendor/github.com/gotk3/gotk3/glib/glib_extension.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariant.go b/vendor/github.com/gotk3/gotk3/glib/gvariant.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariant.go
rename to vendor/github.com/gotk3/gotk3/glib/gvariant.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariant.go.h b/vendor/github.com/gotk3/gotk3/glib/gvariant.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariant.go.h
rename to vendor/github.com/gotk3/gotk3/glib/gvariant.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariantbuilder.go b/vendor/github.com/gotk3/gotk3/glib/gvariantbuilder.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariantbuilder.go
rename to vendor/github.com/gotk3/gotk3/glib/gvariantbuilder.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariantclass.go b/vendor/github.com/gotk3/gotk3/glib/gvariantclass.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariantclass.go
rename to vendor/github.com/gotk3/gotk3/glib/gvariantclass.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariantdict.go b/vendor/github.com/gotk3/gotk3/glib/gvariantdict.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariantdict.go
rename to vendor/github.com/gotk3/gotk3/glib/gvariantdict.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariantiter.go b/vendor/github.com/gotk3/gotk3/glib/gvariantiter.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/gvariantiter.go
rename to vendor/github.com/gotk3/gotk3/glib/gvariantiter.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/list.go b/vendor/github.com/gotk3/gotk3/glib/list.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/list.go
rename to vendor/github.com/gotk3/gotk3/glib/list.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/menu.go b/vendor/github.com/gotk3/gotk3/glib/menu.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/menu.go
rename to vendor/github.com/gotk3/gotk3/glib/menu.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/notifications.go b/vendor/github.com/gotk3/gotk3/glib/notifications.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/notifications.go
rename to vendor/github.com/gotk3/gotk3/glib/notifications.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/glib/slist.go b/vendor/github.com/gotk3/gotk3/glib/slist.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/glib/slist.go
rename to vendor/github.com/gotk3/gotk3/glib/slist.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/aboutdialog.go b/vendor/github.com/gotk3/gotk3/gtk/aboutdialog.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/aboutdialog.go
rename to vendor/github.com/gotk3/gotk3/gtk/aboutdialog.go
index 7c491e6..a648fed 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/aboutdialog.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/aboutdialog.go
@@ -6,8 +6,8 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/accel.go b/vendor/github.com/gotk3/gotk3/gtk/accel.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/accel.go
rename to vendor/github.com/gotk3/gotk3/gtk/accel.go
index a600ca1..cbd138d 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/accel.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/accel.go
@@ -9,8 +9,8 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
// AccelFlags is a representation of GTK's GtkAccelFlags
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go b/vendor/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go
similarity index 97%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go
rename to vendor/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go
index 929ecc9..4d1a2f2 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go
@@ -32,7 +32,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go.h b/vendor/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go.h
rename to vendor/github.com/gotk3/gotk3/gtk/actionbar_since_3_12.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/app_chooser.go b/vendor/github.com/gotk3/gotk3/gtk/app_chooser.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/app_chooser.go
rename to vendor/github.com/gotk3/gotk3/gtk/app_chooser.go
index 63b0b0a..3793886 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/app_chooser.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/app_chooser.go
@@ -6,7 +6,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application.go b/vendor/github.com/gotk3/gotk3/gtk/application.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application.go
rename to vendor/github.com/gotk3/gotk3/gtk/application.go
index c144f34..dbdeefe 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/application.go
@@ -10,7 +10,7 @@ import (
"runtime"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
// ApplicationInhibitFlags is a representation of GTK's GtkApplicationInhibitFlags.
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application_since_3_12.go b/vendor/github.com/gotk3/gotk3/gtk/application_since_3_12.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application_since_3_12.go
rename to vendor/github.com/gotk3/gotk3/gtk/application_since_3_12.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application_since_3_14.go b/vendor/github.com/gotk3/gotk3/gtk/application_since_3_14.go
similarity index 93%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application_since_3_14.go
rename to vendor/github.com/gotk3/gotk3/gtk/application_since_3_14.go
index 7fee467..b783911 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application_since_3_14.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/application_since_3_14.go
@@ -10,7 +10,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
// PrefersAppMenu is a wrapper around gtk_application_prefers_app_menu().
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application_window.go b/vendor/github.com/gotk3/gotk3/gtk/application_window.go
similarity index 95%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application_window.go
rename to vendor/github.com/gotk3/gotk3/gtk/application_window.go
index 32b1d1e..da8bca8 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/application_window.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/application_window.go
@@ -9,7 +9,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
/*
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/color_chooser.go b/vendor/github.com/gotk3/gotk3/gtk/color_chooser.go
similarity index 96%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/color_chooser.go
rename to vendor/github.com/gotk3/gotk3/gtk/color_chooser.go
index 6419903..e649e60 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/color_chooser.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/color_chooser.go
@@ -6,8 +6,8 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/combo_box.go b/vendor/github.com/gotk3/gotk3/gtk/combo_box.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/combo_box.go
rename to vendor/github.com/gotk3/gotk3/gtk/combo_box.go
index 0dc7097..3438b45 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/combo_box.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/combo_box.go
@@ -7,7 +7,7 @@ import (
"errors"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk.go b/vendor/github.com/gotk3/gotk3/gtk/gtk.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk.go
rename to vendor/github.com/gotk3/gotk3/gtk/gtk.go
index 5b57160..e36e00b 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/gtk.go
@@ -56,9 +56,9 @@ import (
"sync"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/cairo"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk.go.h b/vendor/github.com/gotk3/gotk3/gtk/gtk.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk.go.h
rename to vendor/github.com/gotk3/gotk3/gtk/gtk.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_10.go b/vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_10.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_10.go
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_10.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_12.go b/vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_12.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_12.go
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_12.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go b/vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go
index dd9f7ee..9d4a4ae 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go
@@ -10,7 +10,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go.h b/vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go.h
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_14.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_16.go b/vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_16.go
similarity index 90%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_16.go
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_16.go
index e0dd8de..6f4e994 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_16.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/gtk_deprecated_since_3_16.go
@@ -10,7 +10,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/gdk"
)
// OverrideColor is a wrapper around gtk_widget_override_color().
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_export.go b/vendor/github.com/gotk3/gotk3/gtk/gtk_export.go
similarity index 91%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_export.go
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_export.go
index 59e595f..cf3e3c4 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_export.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/gtk_export.go
@@ -6,7 +6,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
//export goBuilderConnect
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go b/vendor/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go
index 7dbb6e8..99ded8b 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go
@@ -14,8 +14,8 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go.h b/vendor/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go.h
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_since_3_10.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_since_3_8.go b/vendor/github.com/gotk3/gotk3/gtk/gtk_since_3_8.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/gtk_since_3_8.go
rename to vendor/github.com/gotk3/gotk3/gtk/gtk_since_3_8.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/info_bar.go b/vendor/github.com/gotk3/gotk3/gtk/info_bar.go
similarity index 96%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/info_bar.go
rename to vendor/github.com/gotk3/gotk3/gtk/info_bar.go
index b33c1e8..f6aa336 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/info_bar.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/info_bar.go
@@ -6,7 +6,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/label.go b/vendor/github.com/gotk3/gotk3/gtk/label.go
similarity index 97%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/label.go
rename to vendor/github.com/gotk3/gotk3/gtk/label.go
index 0a649c6..39ffb29 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/label.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/label.go
@@ -9,9 +9,9 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/pango"
+ "github.com/gotk3/gotk3/pango"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
/*
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/level_bar.go b/vendor/github.com/gotk3/gotk3/gtk/level_bar.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/level_bar.go
rename to vendor/github.com/gotk3/gotk3/gtk/level_bar.go
index b0d4af4..74ddcf0 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/level_bar.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/level_bar.go
@@ -6,7 +6,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/level_bar_since_3_8.go b/vendor/github.com/gotk3/gotk3/gtk/level_bar_since_3_8.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/level_bar_since_3_8.go
rename to vendor/github.com/gotk3/gotk3/gtk/level_bar_since_3_8.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/menu_shell.go b/vendor/github.com/gotk3/gotk3/gtk/menu_shell.go
similarity index 97%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/menu_shell.go
rename to vendor/github.com/gotk3/gotk3/gtk/menu_shell.go
index d9759fe..295fa34 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/menu_shell.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/menu_shell.go
@@ -9,7 +9,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
/*
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/popover_since_3_12.go b/vendor/github.com/gotk3/gotk3/gtk/popover_since_3_12.go
similarity index 96%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/popover_since_3_12.go
rename to vendor/github.com/gotk3/gotk3/gtk/popover_since_3_12.go
index cd307e5..4252ad0 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/popover_since_3_12.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/popover_since_3_12.go
@@ -31,7 +31,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/popover_since_3_12.go.h b/vendor/github.com/gotk3/gotk3/gtk/popover_since_3_12.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/popover_since_3_12.go.h
rename to vendor/github.com/gotk3/gotk3/gtk/popover_since_3_12.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/popover_since_3_18.go b/vendor/github.com/gotk3/gotk3/gtk/popover_since_3_18.go
similarity index 89%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/popover_since_3_18.go
rename to vendor/github.com/gotk3/gotk3/gtk/popover_since_3_18.go
index ca1b5dd..71b64da 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/popover_since_3_18.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/popover_since_3_18.go
@@ -10,7 +10,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
//void
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/settings.go b/vendor/github.com/gotk3/gotk3/gtk/settings.go
similarity index 92%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/settings.go
rename to vendor/github.com/gotk3/gotk3/gtk/settings.go
index 1deea98..15841b7 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/settings.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/settings.go
@@ -6,7 +6,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/settings.go.h b/vendor/github.com/gotk3/gotk3/gtk/settings.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/settings.go.h
rename to vendor/github.com/gotk3/gotk3/gtk/settings.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/stack_since_3_12.go b/vendor/github.com/gotk3/gotk3/gtk/stack_since_3_12.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/stack_since_3_12.go
rename to vendor/github.com/gotk3/gotk3/gtk/stack_since_3_12.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/stackswitcher_since_3_10.go b/vendor/github.com/gotk3/gotk3/gtk/stackswitcher_since_3_10.go
similarity index 95%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/stackswitcher_since_3_10.go
rename to vendor/github.com/gotk3/gotk3/gtk/stackswitcher_since_3_10.go
index d8845c4..773b45a 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/stackswitcher_since_3_10.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/stackswitcher_since_3_10.go
@@ -14,7 +14,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/style.go b/vendor/github.com/gotk3/gotk3/gtk/style.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/style.go
rename to vendor/github.com/gotk3/gotk3/gtk/style.go
index 538fe90..47fb2da 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/style.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/style.go
@@ -9,8 +9,8 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
type StyleProviderPriority int
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/tree_view.go b/vendor/github.com/gotk3/gotk3/gtk/tree_view.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/tree_view.go
rename to vendor/github.com/gotk3/gotk3/gtk/tree_view.go
index cdfa985..17ba324 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/tree_view.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/tree_view.go
@@ -10,8 +10,8 @@ import (
"runtime"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
/*
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/tree_view_column.go b/vendor/github.com/gotk3/gotk3/gtk/tree_view_column.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/tree_view_column.go
rename to vendor/github.com/gotk3/gotk3/gtk/tree_view_column.go
index 7e6fde7..24182e8 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/tree_view_column.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/tree_view_column.go
@@ -9,7 +9,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
/*
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/version.go b/vendor/github.com/gotk3/gotk3/gtk/version.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/version.go
rename to vendor/github.com/gotk3/gotk3/gtk/version.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/widget.go b/vendor/github.com/gotk3/gotk3/gtk/widget.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/widget.go
rename to vendor/github.com/gotk3/gotk3/gtk/widget.go
index 2cfd2ce..a0108a3 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/widget.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/widget.go
@@ -10,8 +10,8 @@ import (
"errors"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
/*
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/widget_since_3_12.go b/vendor/github.com/gotk3/gotk3/gtk/widget_since_3_12.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/widget_since_3_12.go
rename to vendor/github.com/gotk3/gotk3/gtk/widget_since_3_12.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/widget_since_3_8.go b/vendor/github.com/gotk3/gotk3/gtk/widget_since_3_8.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/widget_since_3_8.go
rename to vendor/github.com/gotk3/gotk3/gtk/widget_since_3_8.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/window.go b/vendor/github.com/gotk3/gotk3/gtk/window.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/window.go
rename to vendor/github.com/gotk3/gotk3/gtk/window.go
index 6b8d0ca..497796d 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/window.go
+++ b/vendor/github.com/gotk3/gotk3/gtk/window.go
@@ -10,8 +10,8 @@ import (
"errors"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/gdk"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/gdk"
+ "github.com/gotk3/gotk3/glib"
)
/*
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/window_since_3_10.go b/vendor/github.com/gotk3/gotk3/gtk/window_since_3_10.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/gtk/window_since_3_10.go
rename to vendor/github.com/gotk3/gotk3/gtk/window_since_3_10.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-attributes.go b/vendor/github.com/gotk3/gotk3/pango/pango-attributes.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-attributes.go
rename to vendor/github.com/gotk3/gotk3/pango/pango-attributes.go
index 3964f42..fa06356 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-attributes.go
+++ b/vendor/github.com/gotk3/gotk3/pango/pango-attributes.go
@@ -25,7 +25,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-attributes.go.h b/vendor/github.com/gotk3/gotk3/pango/pango-attributes.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-attributes.go.h
rename to vendor/github.com/gotk3/gotk3/pango/pango-attributes.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-context.go b/vendor/github.com/gotk3/gotk3/pango/pango-context.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-context.go
rename to vendor/github.com/gotk3/gotk3/pango/pango-context.go
index 66462fe..51c6db6 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-context.go
+++ b/vendor/github.com/gotk3/gotk3/pango/pango-context.go
@@ -25,7 +25,7 @@ import "C"
import (
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-font.go b/vendor/github.com/gotk3/gotk3/pango/pango-font.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-font.go
rename to vendor/github.com/gotk3/gotk3/pango/pango-font.go
index d0f5820..4e4f599 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-font.go
+++ b/vendor/github.com/gotk3/gotk3/pango/pango-font.go
@@ -27,7 +27,7 @@ import (
// "github.com/andre-hub/gotk3/cairo"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-glyph-item.go b/vendor/github.com/gotk3/gotk3/pango/pango-glyph-item.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-glyph-item.go
rename to vendor/github.com/gotk3/gotk3/pango/pango-glyph-item.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-glyph.go b/vendor/github.com/gotk3/gotk3/pango/pango-glyph.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-glyph.go
rename to vendor/github.com/gotk3/gotk3/pango/pango-glyph.go
index d41e6da..5d33de5 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-glyph.go
+++ b/vendor/github.com/gotk3/gotk3/pango/pango-glyph.go
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
-
+
package pango
// #cgo pkg-config: pango
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-gravity.go b/vendor/github.com/gotk3/gotk3/pango/pango-gravity.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-gravity.go
rename to vendor/github.com/gotk3/gotk3/pango/pango-gravity.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-layout.go b/vendor/github.com/gotk3/gotk3/pango/pango-layout.go
similarity index 99%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-layout.go
rename to vendor/github.com/gotk3/gotk3/pango/pango-layout.go
index 19bdae6..66f993e 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-layout.go
+++ b/vendor/github.com/gotk3/gotk3/pango/pango-layout.go
@@ -23,7 +23,7 @@ package pango
// #include "pango.go.h"
import "C"
import (
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/glib"
+ "github.com/gotk3/gotk3/glib"
"unsafe"
)
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-layout.go.h b/vendor/github.com/gotk3/gotk3/pango/pango-layout.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-layout.go.h
rename to vendor/github.com/gotk3/gotk3/pango/pango-layout.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-types.go b/vendor/github.com/gotk3/gotk3/pango/pango-types.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango-types.go
rename to vendor/github.com/gotk3/gotk3/pango/pango-types.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango.go b/vendor/github.com/gotk3/gotk3/pango/pango.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango.go
rename to vendor/github.com/gotk3/gotk3/pango/pango.go
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango.go.h b/vendor/github.com/gotk3/gotk3/pango/pango.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pango.go.h
rename to vendor/github.com/gotk3/gotk3/pango/pango.go.h
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pangocairo.go b/vendor/github.com/gotk3/gotk3/pango/pangocairo.go
similarity index 98%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pangocairo.go
rename to vendor/github.com/gotk3/gotk3/pango/pangocairo.go
index e843668..3de012a 100644
--- a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pangocairo.go
+++ b/vendor/github.com/gotk3/gotk3/pango/pangocairo.go
@@ -28,7 +28,7 @@ import (
// "github.com/gotk3/gotk3/glib"
"unsafe"
- "github.com/subgraph/fw-daemon/Godeps/_workspace/src/github.com/gotk3/gotk3/cairo"
+ "github.com/gotk3/gotk3/cairo"
)
func init() {
diff --git a/Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pangocairo.go.h b/vendor/github.com/gotk3/gotk3/pango/pangocairo.go.h
similarity index 100%
rename from Godeps/_workspace/src/github.com/gotk3/gotk3/pango/pangocairo.go.h
rename to vendor/github.com/gotk3/gotk3/pango/pangocairo.go.h
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/.travis.yml b/vendor/github.com/op/go-logging/.travis.yml
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/.travis.yml
rename to vendor/github.com/op/go-logging/.travis.yml
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/CONTRIBUTORS b/vendor/github.com/op/go-logging/CONTRIBUTORS
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/CONTRIBUTORS
rename to vendor/github.com/op/go-logging/CONTRIBUTORS
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/LICENSE b/vendor/github.com/op/go-logging/LICENSE
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/LICENSE
rename to vendor/github.com/op/go-logging/LICENSE
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/README.md b/vendor/github.com/op/go-logging/README.md
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/README.md
rename to vendor/github.com/op/go-logging/README.md
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/backend.go b/vendor/github.com/op/go-logging/backend.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/backend.go
rename to vendor/github.com/op/go-logging/backend.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/format.go b/vendor/github.com/op/go-logging/format.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/format.go
rename to vendor/github.com/op/go-logging/format.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/level.go b/vendor/github.com/op/go-logging/level.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/level.go
rename to vendor/github.com/op/go-logging/level.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/log_nix.go b/vendor/github.com/op/go-logging/log_nix.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/log_nix.go
rename to vendor/github.com/op/go-logging/log_nix.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/log_windows.go b/vendor/github.com/op/go-logging/log_windows.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/log_windows.go
rename to vendor/github.com/op/go-logging/log_windows.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/logger.go b/vendor/github.com/op/go-logging/logger.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/logger.go
rename to vendor/github.com/op/go-logging/logger.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/memory.go b/vendor/github.com/op/go-logging/memory.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/memory.go
rename to vendor/github.com/op/go-logging/memory.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/multi.go b/vendor/github.com/op/go-logging/multi.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/multi.go
rename to vendor/github.com/op/go-logging/multi.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/syslog.go b/vendor/github.com/op/go-logging/syslog.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/syslog.go
rename to vendor/github.com/op/go-logging/syslog.go
diff --git a/Godeps/_workspace/src/github.com/op/go-logging/syslog_fallback.go b/vendor/github.com/op/go-logging/syslog_fallback.go
similarity index 100%
rename from Godeps/_workspace/src/github.com/op/go-logging/syslog_fallback.go
rename to vendor/github.com/op/go-logging/syslog_fallback.go
diff --git a/vendor/github.com/subgraph/go-procsnitch/LICENSE b/vendor/github.com/subgraph/go-procsnitch/LICENSE
new file mode 100644
index 0000000..6df9810
--- /dev/null
+++ b/vendor/github.com/subgraph/go-procsnitch/LICENSE
@@ -0,0 +1 @@
+
diff --git a/vendor/github.com/subgraph/go-procsnitch/README.md b/vendor/github.com/subgraph/go-procsnitch/README.md
new file mode 100644
index 0000000..38e4e70
--- /dev/null
+++ b/vendor/github.com/subgraph/go-procsnitch/README.md
@@ -0,0 +1,8 @@
+# procsnitch
+
+procsnitch is a library of utility functions for performing higher-level
+operations on data in the Linux /proc filesystem.
+
+## Use cases
+
+It currently allows finding information about an executable given a source port, and destination address and port.
diff --git a/vendor/github.com/subgraph/go-procsnitch/proc.go b/vendor/github.com/subgraph/go-procsnitch/proc.go
new file mode 100644
index 0000000..a2c7445
--- /dev/null
+++ b/vendor/github.com/subgraph/go-procsnitch/proc.go
@@ -0,0 +1,260 @@
+package procsnitch
+
+import (
+ "encoding/hex"
+ "errors"
+ "fmt"
+ "github.com/op/go-logging"
+ "io/ioutil"
+ "net"
+ "strconv"
+ "strings"
+)
+
+var log = logging.MustGetLogger("go-procsockets")
+
+// SetLogger allows setting a custom go-logging instance
+func SetLogger(logger *logging.Logger) {
+ log = logger
+}
+
+var pcache = &pidCache{}
+
+// ProcInfo represents an api that can be used to query process information about
+// the far side of a network connection
+// Note: this can aid in the construction of unit tests.
+type ProcInfo interface {
+ LookupTCPSocketProcess(srcPort uint16, dstAddr net.IP, dstPort uint16) *Info
+ LookupUNIXSocketProcess(socketFile string) *Info
+ LookupUDPSocketProcess(srcPort uint16) *Info
+}
+
+// SystemProcInfo represents our real system ProcInfo api.
+type SystemProcInfo struct {
+}
+
+// LookupTCPSocketProcess returns the process information for a given TCP connection.
+func (r SystemProcInfo) LookupTCPSocketProcess(srcPort uint16, dstAddr net.IP, dstPort uint16) *Info {
+ return LookupTCPSocketProcess(srcPort, dstAddr, dstPort)
+}
+
+// LookupUNIXSocketProcess returns the process information for a given UNIX socket connection.
+func (r SystemProcInfo) LookupUNIXSocketProcess(socketFile string) *Info {
+ return LookupUNIXSocketProcess(socketFile)
+}
+
+// LookupUDPSocketProcess returns the process information for a given UDP socket connection.
+func (r SystemProcInfo) LookupUDPSocketProcess(srcPort uint16) *Info {
+ return LookupUDPSocketProcess(srcPort)
+}
+
+// FindProcessForConnection returns the process information for a given connection.
+// So far only TCP and UNIX domain socket connections are supported.
+func FindProcessForConnection(conn net.Conn, procInfo ProcInfo) *Info {
+ var info *Info
+ if conn.LocalAddr().Network() == "tcp" {
+ fields := strings.Split(conn.RemoteAddr().String(), ":")
+ dstPortStr := fields[1]
+ fields = strings.Split(conn.LocalAddr().String(), ":")
+ dstIP := net.ParseIP(fields[0])
+ srcP, _ := strconv.ParseUint(dstPortStr, 10, 16)
+ dstP, _ := strconv.ParseUint(fields[1], 10, 16)
+ info = procInfo.LookupTCPSocketProcess(uint16(srcP), dstIP, uint16(dstP))
+ } else if conn.LocalAddr().Network() == "unix" {
+ info = procInfo.LookupUNIXSocketProcess(conn.LocalAddr().String())
+ }
+ return info
+}
+
+// LookupUDPSocketProcess searches for a UDP socket with a source port
+func LookupUDPSocketProcess(srcPort uint16) *Info {
+ ss := findUDPSocket(srcPort)
+ if ss == nil {
+ return nil
+ }
+ return pcache.lookup(ss.inode)
+}
+
+// LookupTCPSocketProcess searches for a TCP socket with a given source port, destination IP, and destination port
+func LookupTCPSocketProcess(srcPort uint16, dstAddr net.IP, dstPort uint16) *Info {
+ ss := findTCPSocket(srcPort, dstAddr, dstPort)
+ if ss == nil {
+ return nil
+ }
+ return pcache.lookup(ss.inode)
+}
+
+// LookupUNIXSocketProcess searches for a UNIX domain socket with a given filename
+func LookupUNIXSocketProcess(socketFile string) *Info {
+ ss := findUNIXSocket(socketFile)
+ if ss == nil {
+ return nil
+ }
+ return pcache.lookup(ss.inode)
+}
+
+type connectionInfo struct {
+ pinfo *Info
+ local *socketAddr
+ remote *socketAddr
+}
+
+func (ci *connectionInfo) String() string {
+ return fmt.Sprintf("%v %s %s", ci.pinfo, ci.local, ci.remote)
+}
+
+func (sa *socketAddr) parse(s string) error {
+ ipPort := strings.Split(s, ":")
+ if len(ipPort) != 2 {
+ return fmt.Errorf("badly formatted socket address field: %s", s)
+ }
+ ip, err := ParseIP(ipPort[0])
+ if err != nil {
+ return fmt.Errorf("error parsing ip field [%s]: %v", ipPort[0], err)
+ }
+ port, err := ParsePort(ipPort[1])
+ if err != nil {
+ return fmt.Errorf("error parsing port field [%s]: %v", ipPort[1], err)
+ }
+ sa.ip = ip
+ sa.port = port
+ return nil
+}
+
+// ParseIP parses a string ip to a net.IP
+func ParseIP(ip string) (net.IP, error) {
+ var result net.IP
+ dst, err := hex.DecodeString(ip)
+ if err != nil {
+ return result, fmt.Errorf("Error parsing IP: %s", err)
+ }
+ // Reverse byte order -- /proc/net/tcp etc. is little-endian
+ // TODO: Does this vary by architecture?
+ for i, j := 0, len(dst)-1; i < j; i, j = i+1, j-1 {
+ dst[i], dst[j] = dst[j], dst[i]
+ }
+ result = net.IP(dst)
+ return result, nil
+}
+
+// ParsePort parses a base16 port represented as a string to a uint16
+func ParsePort(port string) (uint16, error) {
+ p64, err := strconv.ParseInt(port, 16, 32)
+ if err != nil {
+ return 0, fmt.Errorf("Error parsing port: %s", err)
+ }
+ return uint16(p64), nil
+}
+
+func getConnections() ([]*connectionInfo, error) {
+ conns, err := readConntrack()
+ if err != nil {
+ return nil, err
+ }
+ resolveProcinfo(conns)
+ return conns, nil
+}
+
+func resolveProcinfo(conns []*connectionInfo) {
+ var sockets []*socketStatus
+ for _, line := range getSocketLines("tcp") {
+ if len(strings.TrimSpace(line)) == 0 {
+ continue
+ }
+ ss := new(socketStatus)
+ if err := ss.parseLine(line); err != nil {
+ log.Warning("Unable to parse line [%s]: %v", line, err)
+ } /* else {
+ /*
+ pid := findPidForInode(ss.inode)
+ if pid > 0 {
+ ss.pid = pid
+ fmt.Println("Socket", ss)
+ sockets = append(sockets, ss)
+ }
+
+ }*/
+ }
+ for _, ci := range conns {
+ ss := findContrackSocket(ci, sockets)
+ if ss == nil {
+ continue
+ }
+ pinfo := pcache.lookup(ss.inode)
+ if pinfo != nil {
+ ci.pinfo = pinfo
+ }
+ }
+}
+
+func findContrackSocket(ci *connectionInfo, sockets []*socketStatus) *socketStatus {
+ for _, ss := range sockets {
+ if ss.local.port == ci.local.port && ss.remote.ip.Equal(ci.remote.ip) && ss.remote.port == ci.remote.port {
+ return ss
+ }
+ }
+ return nil
+}
+
+func readConntrack() ([]*connectionInfo, error) {
+ path := fmt.Sprintf("/proc/net/ip_conntrack")
+ data, err := ioutil.ReadFile(path)
+ if err != nil {
+ return nil, err
+ }
+ var result []*connectionInfo
+ lines := strings.Split(string(data), "\n")
+ for _, line := range lines {
+ ci, err := parseConntrackLine(line)
+ if err != nil {
+ return nil, err
+ }
+ if ci != nil {
+ result = append(result, ci)
+ }
+ }
+ return result, nil
+}
+
+func parseConntrackLine(line string) (*connectionInfo, error) {
+ parts := strings.Fields(line)
+ if len(parts) < 8 || parts[0] != "tcp" || parts[3] != "ESTABLISHED" {
+ return nil, nil
+ }
+
+ local, err := conntrackAddr(parts[4], parts[6])
+ if err != nil {
+ return nil, err
+ }
+ remote, err := conntrackAddr(parts[5], parts[7])
+ if err != nil {
+ return nil, err
+ }
+ return &connectionInfo{
+ local: local,
+ remote: remote,
+ }, nil
+}
+
+func conntrackAddr(ipStr, portStr string) (*socketAddr, error) {
+ ip := net.ParseIP(stripLabel(ipStr))
+ if ip == nil {
+ return nil, errors.New("Could not parse IP: " + ipStr)
+ }
+ i64, err := strconv.Atoi(stripLabel(portStr))
+ if err != nil {
+ return nil, err
+ }
+ return &socketAddr{
+ ip: ip,
+ port: uint16(i64),
+ }, nil
+}
+
+func stripLabel(s string) string {
+ idx := strings.Index(s, "=")
+ if idx == -1 {
+ return s
+ }
+ return s[idx+1:]
+}
diff --git a/vendor/github.com/subgraph/go-procsnitch/proc_pid.go b/vendor/github.com/subgraph/go-procsnitch/proc_pid.go
new file mode 100644
index 0000000..845d82b
--- /dev/null
+++ b/vendor/github.com/subgraph/go-procsnitch/proc_pid.go
@@ -0,0 +1,162 @@
+package procsnitch
+
+import (
+ "fmt"
+ "io/ioutil"
+ "os"
+ "path"
+ "strconv"
+ "strings"
+ "sync"
+ "syscall"
+)
+
+// Info is a struct containing the result of a socket proc query
+type Info struct {
+ UID int
+ Pid int
+ ParentPid int
+ loaded bool
+ ExePath string
+ CmdLine string
+}
+
+type pidCache struct {
+ cacheMap map[uint64]*Info
+ lock sync.Mutex
+}
+
+func (pc *pidCache) lookup(inode uint64) *Info {
+ pc.lock.Lock()
+ defer pc.lock.Unlock()
+ pi, ok := pc.cacheMap[inode]
+ if ok && pi.loadProcessInfo() {
+ return pi
+ }
+ pc.cacheMap = loadCache()
+ pi, ok = pc.cacheMap[inode]
+ if ok && pi.loadProcessInfo() {
+ return pi
+ }
+ return nil
+}
+
+func loadCache() map[uint64]*Info {
+ cmap := make(map[uint64]*Info)
+ for _, n := range readdir("/proc") {
+ pid := toPid(n)
+ if pid != 0 {
+ pinfo := &Info{Pid: pid}
+ for _, inode := range inodesFromPid(pid) {
+ cmap[inode] = pinfo
+ }
+ }
+ }
+ return cmap
+}
+
+func toPid(name string) int {
+ pid, err := strconv.ParseUint(name, 10, 32)
+ if err != nil {
+ return 0
+ }
+ fdpath := fmt.Sprintf("/proc/%d/fd", pid)
+ fi, err := os.Stat(fdpath)
+ if err != nil {
+ return 0
+ }
+ if !fi.IsDir() {
+ return 0
+ }
+ return (int)(pid)
+}
+
+func inodesFromPid(pid int) []uint64 {
+ var inodes []uint64
+ fdpath := fmt.Sprintf("/proc/%d/fd", pid)
+ for _, n := range readdir(fdpath) {
+ if link, err := os.Readlink(path.Join(fdpath, n)); err != nil {
+ if !os.IsNotExist(err) {
+ log.Warning("Error reading link %s: %v", n, err)
+ }
+ } else {
+ if inode := extractSocket(link); inode > 0 {
+ inodes = append(inodes, inode)
+ }
+ }
+ }
+ return inodes
+}
+
+func extractSocket(name string) uint64 {
+ if !strings.HasPrefix(name, "socket:[") || !strings.HasSuffix(name, "]") {
+ return 0
+ }
+ val := name[8 : len(name)-1]
+ inode, err := strconv.ParseUint(val, 10, 64)
+ if err != nil {
+ log.Warning("Error parsing inode value from %s: %v", name, err)
+ return 0
+ }
+ return inode
+}
+
+func readdir(dir string) []string {
+ d, err := os.Open(dir)
+ if err != nil {
+ log.Warning("Error opening directory %s: %v", dir, err)
+ return nil
+ }
+ defer d.Close()
+ names, err := d.Readdirnames(0)
+ if err != nil {
+ log.Warning("Error reading directory names from %s: %v", dir, err)
+ return nil
+ }
+ return names
+}
+
+func (pi *Info) loadProcessInfo() bool {
+ if pi.loaded {
+ return true
+ }
+
+ exePath, err := os.Readlink(fmt.Sprintf("/proc/%d/exe", pi.Pid))
+ if err != nil {
+ log.Warning("Error reading exe link for pid %d: %v", pi.Pid, err)
+ return false
+ }
+ bs, err := ioutil.ReadFile(fmt.Sprintf("/proc/%d/cmdline", pi.Pid))
+ if err != nil {
+ log.Warning("Error reading cmdline for pid %d: %v", pi.Pid, err)
+ return false
+ }
+ for i, b := range bs {
+ if b == 0 {
+ bs[i] = byte(' ')
+ }
+ }
+
+ bs, err = ioutil.ReadFile(fmt.Sprintf("/proc/%d/stat", pi.Pid))
+ if err != nil {
+ log.Warning("Error reading cmdline for pid %d: %v", pi.Pid, err)
+ return false
+ }
+ fs := strings.Fields(string(bs))
+ if len(fs) < 50 {
+ log.Warning("Unable to parse stat for pid %d: ", pi.Pid)
+ return false
+ }
+
+ finfo, err := os.Stat(fmt.Sprintf("/proc/%d", pi.Pid))
+ if err != nil {
+ log.Warning("Could not stat /proc/%d: %v", pi.Pid, err)
+ return false
+ }
+ sys := finfo.Sys().(*syscall.Stat_t)
+ pi.UID = int(sys.Uid)
+ pi.ExePath = exePath
+ pi.CmdLine = string(bs)
+ pi.loaded = true
+ return true
+}
diff --git a/vendor/github.com/subgraph/go-procsnitch/socket.go b/vendor/github.com/subgraph/go-procsnitch/socket.go
new file mode 100644
index 0000000..aef64aa
--- /dev/null
+++ b/vendor/github.com/subgraph/go-procsnitch/socket.go
@@ -0,0 +1,214 @@
+package procsnitch
+
+import (
+ "errors"
+ "fmt"
+ "io/ioutil"
+ "net"
+ "strconv"
+ "strings"
+)
+
+type socketAddr struct {
+ ip net.IP
+ port uint16
+}
+
+func (sa socketAddr) String() string {
+ return fmt.Sprintf("%v:%d", sa.ip, sa.port)
+}
+
+type socketStatus struct {
+ local socketAddr
+ remote socketAddr
+ //status ConnectionStatus
+ uid int
+ inode uint64
+ remoteInode uint64
+ line string
+ path string
+}
+
+type ConnectionStatus int
+
+const (
+ ESTABLISHED ConnectionStatus = iota
+ SYN_SENT
+ SYN_RECV
+ FIN_WAIT1
+ FIN_WAIT2
+ TIME_WAIT
+ CLOSE
+ CLOSE_WAIT
+ LAST_ACK
+ LISTEN
+ CLOSING
+)
+
+func (c ConnectionStatus) String() string {
+ switch c {
+ case ESTABLISHED:
+ return "ESTABLISHED"
+ case SYN_SENT:
+ return "SYN_SENT"
+ case SYN_RECV:
+ return "SYN_RECV"
+ case FIN_WAIT1:
+ return "FIN_WAIT1"
+ case FIN_WAIT2:
+ return "FIN_WAIT2"
+ case TIME_WAIT:
+ return "TIME_WAIT"
+ case CLOSE:
+ return "CLOSE"
+ case CLOSE_WAIT:
+ return "CLOSE_WAIT"
+ case LAST_ACK:
+ return "LAST_ACK"
+ case LISTEN:
+ return "LISTEN"
+ case CLOSING:
+ return "CLOSING"
+ default:
+ return "Invalid Connection Status"
+ }
+}
+
+func (ss *socketStatus) String() string {
+ return fmt.Sprintf("%s -> %s uid=%d inode=%d", ss.local, ss.remote, ss.uid, ss.inode)
+}
+
+func findUDPSocket(srcPort uint16) *socketStatus {
+ return findSocket("udp", func(ss socketStatus) bool {
+ return ss.local.port == srcPort
+ })
+}
+
+func findTCPSocket(srcPort uint16, dstAddr net.IP, dstPort uint16) *socketStatus {
+ return findSocket("tcp", func(ss socketStatus) bool {
+ return ss.remote.port == dstPort && ss.remote.ip.Equal(dstAddr) && ss.local.port == srcPort
+ })
+}
+
+func findUNIXSocket(socketFile string) *socketStatus {
+ proto := "unix"
+
+ // /proc/net/unix
+ // Num RefCount Protocol Flags Type St Inode Path
+ // 0000000000000000: 00000003 00000000 00000000 0001 03 10893 P13838
+ // local_inode -> remote_inode
+ // 13838 -> 10893
+ var candidateInodes []uint64
+ inodeMap := make(map[uint64]uint64)
+ for _, line := range getSocketLines(proto) {
+ if len(line) == 0 {
+ continue
+ }
+ ss := socketStatus{}
+ if err := ss.parseUnixProcLine(line); err != nil {
+ log.Warning("Unable to parse line from /proc/net/%s [%s]: %v", proto, line, err)
+ continue
+ }
+ if ss.remoteInode != 0 {
+ inodeMap[ss.remoteInode] = ss.inode
+ }
+ if ss.path == socketFile {
+ candidateInodes = append(candidateInodes, ss.inode)
+ }
+ }
+ for i := 0; i < len(candidateInodes); i++ {
+ remoteInode, ok := inodeMap[candidateInodes[i]]
+ if ok {
+ ss := socketStatus{}
+ ss.inode = remoteInode
+ return &ss
+ }
+ }
+ return nil
+}
+
+func findSocket(proto string, matcher func(socketStatus) bool) *socketStatus {
+ var ss socketStatus
+ for _, line := range getSocketLines(proto) {
+ if len(line) == 0 {
+ continue
+ }
+ if err := ss.parseLine(line); err != nil {
+ log.Warning("Unable to parse line from /proc/net/%s [%s]: %v", proto, line, err)
+ continue
+ }
+ if matcher(ss) {
+ ss.line = line
+ return &ss
+ }
+ }
+ return nil
+}
+
+func (ss *socketStatus) parseLine(line string) error {
+ fs := strings.Fields(line)
+ if len(fs) < 10 {
+ return errors.New("insufficient fields")
+ }
+ if err := ss.local.parse(fs[1]); err != nil {
+ return err
+ }
+ /*
+ st64, err := strconv.ParseInt(fmt.Sprintf("0x%s", fs[3]), 0, 32)
+ if err != nil {
+ return fmt.Errorf("Error parsing ConnectionStatus: %s", err)
+ }
+ ss.status = ConnectionStatus(st64)
+ */
+ if err := ss.remote.parse(fs[2]); err != nil {
+ return err
+ }
+ uid, err := strconv.ParseUint(fs[7], 10, 32)
+ if err != nil {
+ return err
+ }
+ ss.uid = int(uid)
+ inode, err := strconv.ParseUint(fs[9], 10, 64)
+ if err != nil {
+ return err
+ }
+ ss.inode = inode
+ return nil
+}
+
+// parseUnixProcLine parses lines in /proc/net/unix
+func (ss *socketStatus) parseUnixProcLine(line string) error {
+ var err error
+ fs := strings.Fields(line)
+ if len(fs) < 7 || len(fs) > 8 {
+ return errors.New("number of fields don't match parser")
+ }
+ ss.inode, err = strconv.ParseUint(fs[6], 10, 64)
+ if err != nil {
+ return err
+ }
+ if len(fs) == 8 {
+ ss.path = fs[7]
+ if strings.HasPrefix(ss.path, "P") {
+ ss.remoteInode, err = strconv.ParseUint(ss.path[1:], 10, 64)
+ if err != nil {
+ return err
+ }
+ }
+ }
+ return nil
+}
+
+func getSocketLines(proto string) []string {
+ path := fmt.Sprintf("/proc/net/%s", proto)
+ data, err := ioutil.ReadFile(path)
+ if err != nil {
+ log.Warning("Error reading %s: %v", path, err)
+ return nil
+ }
+ lines := strings.Split(string(data), "\n")
+ if len(lines) > 0 {
+ lines = lines[1:]
+ }
+ return lines
+}
diff --git a/vendor/golang.org/x/net/LICENSE b/vendor/golang.org/x/net/LICENSE
new file mode 100644
index 0000000..6a66aea
--- /dev/null
+++ b/vendor/golang.org/x/net/LICENSE
@@ -0,0 +1,27 @@
+Copyright (c) 2009 The Go Authors. All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/vendor/golang.org/x/net/PATENTS b/vendor/golang.org/x/net/PATENTS
new file mode 100644
index 0000000..7330990
--- /dev/null
+++ b/vendor/golang.org/x/net/PATENTS
@@ -0,0 +1,22 @@
+Additional IP Rights Grant (Patents)
+
+"This implementation" means the copyrightable works distributed by
+Google as part of the Go project.
+
+Google hereby grants to You a perpetual, worldwide, non-exclusive,
+no-charge, royalty-free, irrevocable (except as stated in this section)
+patent license to make, have made, use, offer to sell, sell, import,
+transfer and otherwise run, modify and propagate the contents of this
+implementation of Go, where such license applies only to those patent
+claims, both currently owned or controlled by Google and acquired in
+the future, licensable by Google that are necessarily infringed by this
+implementation of Go. This grant does not include claims that would be
+infringed only as a consequence of further modification of this
+implementation. If you or your agent or exclusive licensee institute or
+order or agree to the institution of patent litigation against any
+entity (including a cross-claim or counterclaim in a lawsuit) alleging
+that this implementation of Go or any code incorporated within this
+implementation of Go constitutes direct or contributory patent
+infringement, or inducement of patent infringement, then any patent
+rights granted to you under this License for this implementation of Go
+shall terminate as of the date such litigation is filed.
diff --git a/vendor/golang.org/x/net/proxy/direct.go b/vendor/golang.org/x/net/proxy/direct.go
new file mode 100644
index 0000000..4c5ad88
--- /dev/null
+++ b/vendor/golang.org/x/net/proxy/direct.go
@@ -0,0 +1,18 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package proxy
+
+import (
+ "net"
+)
+
+type direct struct{}
+
+// Direct is a direct proxy: one that makes network connections directly.
+var Direct = direct{}
+
+func (direct) Dial(network, addr string) (net.Conn, error) {
+ return net.Dial(network, addr)
+}
diff --git a/vendor/golang.org/x/net/proxy/per_host.go b/vendor/golang.org/x/net/proxy/per_host.go
new file mode 100644
index 0000000..f540b19
--- /dev/null
+++ b/vendor/golang.org/x/net/proxy/per_host.go
@@ -0,0 +1,140 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package proxy
+
+import (
+ "net"
+ "strings"
+)
+
+// A PerHost directs connections to a default Dialer unless the hostname
+// requested matches one of a number of exceptions.
+type PerHost struct {
+ def, bypass Dialer
+
+ bypassNetworks []*net.IPNet
+ bypassIPs []net.IP
+ bypassZones []string
+ bypassHosts []string
+}
+
+// NewPerHost returns a PerHost Dialer that directs connections to either
+// defaultDialer or bypass, depending on whether the connection matches one of
+// the configured rules.
+func NewPerHost(defaultDialer, bypass Dialer) *PerHost {
+ return &PerHost{
+ def: defaultDialer,
+ bypass: bypass,
+ }
+}
+
+// Dial connects to the address addr on the given network through either
+// defaultDialer or bypass.
+func (p *PerHost) Dial(network, addr string) (c net.Conn, err error) {
+ host, _, err := net.SplitHostPort(addr)
+ if err != nil {
+ return nil, err
+ }
+
+ return p.dialerForRequest(host).Dial(network, addr)
+}
+
+func (p *PerHost) dialerForRequest(host string) Dialer {
+ if ip := net.ParseIP(host); ip != nil {
+ for _, net := range p.bypassNetworks {
+ if net.Contains(ip) {
+ return p.bypass
+ }
+ }
+ for _, bypassIP := range p.bypassIPs {
+ if bypassIP.Equal(ip) {
+ return p.bypass
+ }
+ }
+ return p.def
+ }
+
+ for _, zone := range p.bypassZones {
+ if strings.HasSuffix(host, zone) {
+ return p.bypass
+ }
+ if host == zone[1:] {
+ // For a zone "example.com", we match "example.com"
+ // too.
+ return p.bypass
+ }
+ }
+ for _, bypassHost := range p.bypassHosts {
+ if bypassHost == host {
+ return p.bypass
+ }
+ }
+ return p.def
+}
+
+// AddFromString parses a string that contains comma-separated values
+// specifying hosts that should use the bypass proxy. Each value is either an
+// IP address, a CIDR range, a zone (*.example.com) or a hostname
+// (localhost). A best effort is made to parse the string and errors are
+// ignored.
+func (p *PerHost) AddFromString(s string) {
+ hosts := strings.Split(s, ",")
+ for _, host := range hosts {
+ host = strings.TrimSpace(host)
+ if len(host) == 0 {
+ continue
+ }
+ if strings.Contains(host, "/") {
+ // We assume that it's a CIDR address like 127.0.0.0/8
+ if _, net, err := net.ParseCIDR(host); err == nil {
+ p.AddNetwork(net)
+ }
+ continue
+ }
+ if ip := net.ParseIP(host); ip != nil {
+ p.AddIP(ip)
+ continue
+ }
+ if strings.HasPrefix(host, "*.") {
+ p.AddZone(host[1:])
+ continue
+ }
+ p.AddHost(host)
+ }
+}
+
+// AddIP specifies an IP address that will use the bypass proxy. Note that
+// this will only take effect if a literal IP address is dialed. A connection
+// to a named host will never match an IP.
+func (p *PerHost) AddIP(ip net.IP) {
+ p.bypassIPs = append(p.bypassIPs, ip)
+}
+
+// AddNetwork specifies an IP range that will use the bypass proxy. Note that
+// this will only take effect if a literal IP address is dialed. A connection
+// to a named host will never match.
+func (p *PerHost) AddNetwork(net *net.IPNet) {
+ p.bypassNetworks = append(p.bypassNetworks, net)
+}
+
+// AddZone specifies a DNS suffix that will use the bypass proxy. A zone of
+// "example.com" matches "example.com" and all of its subdomains.
+func (p *PerHost) AddZone(zone string) {
+ if strings.HasSuffix(zone, ".") {
+ zone = zone[:len(zone)-1]
+ }
+ if !strings.HasPrefix(zone, ".") {
+ zone = "." + zone
+ }
+ p.bypassZones = append(p.bypassZones, zone)
+}
+
+// AddHost specifies a hostname that will use the bypass proxy.
+func (p *PerHost) AddHost(host string) {
+ if strings.HasSuffix(host, ".") {
+ host = host[:len(host)-1]
+ }
+ p.bypassHosts = append(p.bypassHosts, host)
+}
diff --git a/vendor/golang.org/x/net/proxy/proxy.go b/vendor/golang.org/x/net/proxy/proxy.go
new file mode 100644
index 0000000..8ccb0c5
--- /dev/null
+++ b/vendor/golang.org/x/net/proxy/proxy.go
@@ -0,0 +1,94 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+// Package proxy provides support for a variety of protocols to proxy network
+// data.
+package proxy
+
+import (
+ "errors"
+ "net"
+ "net/url"
+ "os"
+)
+
+// A Dialer is a means to establish a connection.
+type Dialer interface {
+ // Dial connects to the given address via the proxy.
+ Dial(network, addr string) (c net.Conn, err error)
+}
+
+// Auth contains authentication parameters that specific Dialers may require.
+type Auth struct {
+ User, Password string
+}
+
+// FromEnvironment returns the dialer specified by the proxy related variables in
+// the environment.
+func FromEnvironment() Dialer {
+ allProxy := os.Getenv("all_proxy")
+ if len(allProxy) == 0 {
+ return Direct
+ }
+
+ proxyURL, err := url.Parse(allProxy)
+ if err != nil {
+ return Direct
+ }
+ proxy, err := FromURL(proxyURL, Direct)
+ if err != nil {
+ return Direct
+ }
+
+ noProxy := os.Getenv("no_proxy")
+ if len(noProxy) == 0 {
+ return proxy
+ }
+
+ perHost := NewPerHost(proxy, Direct)
+ perHost.AddFromString(noProxy)
+ return perHost
+}
+
+// proxySchemes is a map from URL schemes to a function that creates a Dialer
+// from a URL with such a scheme.
+var proxySchemes map[string]func(*url.URL, Dialer) (Dialer, error)
+
+// RegisterDialerType takes a URL scheme and a function to generate Dialers from
+// a URL with that scheme and a forwarding Dialer. Registered schemes are used
+// by FromURL.
+func RegisterDialerType(scheme string, f func(*url.URL, Dialer) (Dialer, error)) {
+ if proxySchemes == nil {
+ proxySchemes = make(map[string]func(*url.URL, Dialer) (Dialer, error))
+ }
+ proxySchemes[scheme] = f
+}
+
+// FromURL returns a Dialer given a URL specification and an underlying
+// Dialer for it to make network requests.
+func FromURL(u *url.URL, forward Dialer) (Dialer, error) {
+ var auth *Auth
+ if u.User != nil {
+ auth = new(Auth)
+ auth.User = u.User.Username()
+ if p, ok := u.User.Password(); ok {
+ auth.Password = p
+ }
+ }
+
+ switch u.Scheme {
+ case "socks5":
+ return SOCKS5("tcp", u.Host, auth, forward)
+ }
+
+ // If the scheme doesn't match any of the built-in schemes, see if it
+ // was registered by another package.
+ if proxySchemes != nil {
+ if f, ok := proxySchemes[u.Scheme]; ok {
+ return f(u, forward)
+ }
+ }
+
+ return nil, errors.New("proxy: unknown scheme: " + u.Scheme)
+}
diff --git a/vendor/golang.org/x/net/proxy/socks5.go b/vendor/golang.org/x/net/proxy/socks5.go
new file mode 100644
index 0000000..9b96282
--- /dev/null
+++ b/vendor/golang.org/x/net/proxy/socks5.go
@@ -0,0 +1,210 @@
+// Copyright 2011 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package proxy
+
+import (
+ "errors"
+ "io"
+ "net"
+ "strconv"
+)
+
+// SOCKS5 returns a Dialer that makes SOCKSv5 connections to the given address
+// with an optional username and password. See RFC 1928.
+func SOCKS5(network, addr string, auth *Auth, forward Dialer) (Dialer, error) {
+ s := &socks5{
+ network: network,
+ addr: addr,
+ forward: forward,
+ }
+ if auth != nil {
+ s.user = auth.User
+ s.password = auth.Password
+ }
+
+ return s, nil
+}
+
+type socks5 struct {
+ user, password string
+ network, addr string
+ forward Dialer
+}
+
+const socks5Version = 5
+
+const (
+ socks5AuthNone = 0
+ socks5AuthPassword = 2
+)
+
+const socks5Connect = 1
+
+const (
+ socks5IP4 = 1
+ socks5Domain = 3
+ socks5IP6 = 4
+)
+
+var socks5Errors = []string{
+ "",
+ "general failure",
+ "connection forbidden",
+ "network unreachable",
+ "host unreachable",
+ "connection refused",
+ "TTL expired",
+ "command not supported",
+ "address type not supported",
+}
+
+// Dial connects to the address addr on the network net via the SOCKS5 proxy.
+func (s *socks5) Dial(network, addr string) (net.Conn, error) {
+ switch network {
+ case "tcp", "tcp6", "tcp4":
+ default:
+ return nil, errors.New("proxy: no support for SOCKS5 proxy connections of type " + network)
+ }
+
+ conn, err := s.forward.Dial(s.network, s.addr)
+ if err != nil {
+ return nil, err
+ }
+ closeConn := &conn
+ defer func() {
+ if closeConn != nil {
+ (*closeConn).Close()
+ }
+ }()
+
+ host, portStr, err := net.SplitHostPort(addr)
+ if err != nil {
+ return nil, err
+ }
+
+ port, err := strconv.Atoi(portStr)
+ if err != nil {
+ return nil, errors.New("proxy: failed to parse port number: " + portStr)
+ }
+ if port < 1 || port > 0xffff {
+ return nil, errors.New("proxy: port number out of range: " + portStr)
+ }
+
+ // the size here is just an estimate
+ buf := make([]byte, 0, 6+len(host))
+
+ buf = append(buf, socks5Version)
+ if len(s.user) > 0 && len(s.user) < 256 && len(s.password) < 256 {
+ buf = append(buf, 2 /* num auth methods */, socks5AuthNone, socks5AuthPassword)
+ } else {
+ buf = append(buf, 1 /* num auth methods */, socks5AuthNone)
+ }
+
+ if _, err := conn.Write(buf); err != nil {
+ return nil, errors.New("proxy: failed to write greeting to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+
+ if _, err := io.ReadFull(conn, buf[:2]); err != nil {
+ return nil, errors.New("proxy: failed to read greeting from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+ if buf[0] != 5 {
+ return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " has unexpected version " + strconv.Itoa(int(buf[0])))
+ }
+ if buf[1] == 0xff {
+ return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " requires authentication")
+ }
+
+ if buf[1] == socks5AuthPassword {
+ buf = buf[:0]
+ buf = append(buf, 1 /* password protocol version */)
+ buf = append(buf, uint8(len(s.user)))
+ buf = append(buf, s.user...)
+ buf = append(buf, uint8(len(s.password)))
+ buf = append(buf, s.password...)
+
+ if _, err := conn.Write(buf); err != nil {
+ return nil, errors.New("proxy: failed to write authentication request to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+
+ if _, err := io.ReadFull(conn, buf[:2]); err != nil {
+ return nil, errors.New("proxy: failed to read authentication reply from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+
+ if buf[1] != 0 {
+ return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " rejected username/password")
+ }
+ }
+
+ buf = buf[:0]
+ buf = append(buf, socks5Version, socks5Connect, 0 /* reserved */)
+
+ if ip := net.ParseIP(host); ip != nil {
+ if ip4 := ip.To4(); ip4 != nil {
+ buf = append(buf, socks5IP4)
+ ip = ip4
+ } else {
+ buf = append(buf, socks5IP6)
+ }
+ buf = append(buf, ip...)
+ } else {
+ if len(host) > 255 {
+ return nil, errors.New("proxy: destination hostname too long: " + host)
+ }
+ buf = append(buf, socks5Domain)
+ buf = append(buf, byte(len(host)))
+ buf = append(buf, host...)
+ }
+ buf = append(buf, byte(port>>8), byte(port))
+
+ if _, err := conn.Write(buf); err != nil {
+ return nil, errors.New("proxy: failed to write connect request to SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+
+ if _, err := io.ReadFull(conn, buf[:4]); err != nil {
+ return nil, errors.New("proxy: failed to read connect reply from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+
+ failure := "unknown error"
+ if int(buf[1]) < len(socks5Errors) {
+ failure = socks5Errors[buf[1]]
+ }
+
+ if len(failure) > 0 {
+ return nil, errors.New("proxy: SOCKS5 proxy at " + s.addr + " failed to connect: " + failure)
+ }
+
+ bytesToDiscard := 0
+ switch buf[3] {
+ case socks5IP4:
+ bytesToDiscard = net.IPv4len
+ case socks5IP6:
+ bytesToDiscard = net.IPv6len
+ case socks5Domain:
+ _, err := io.ReadFull(conn, buf[:1])
+ if err != nil {
+ return nil, errors.New("proxy: failed to read domain length from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+ bytesToDiscard = int(buf[0])
+ default:
+ return nil, errors.New("proxy: got unknown address type " + strconv.Itoa(int(buf[3])) + " from SOCKS5 proxy at " + s.addr)
+ }
+
+ if cap(buf) < bytesToDiscard {
+ buf = make([]byte, bytesToDiscard)
+ } else {
+ buf = buf[:bytesToDiscard]
+ }
+ if _, err := io.ReadFull(conn, buf); err != nil {
+ return nil, errors.New("proxy: failed to read address from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+
+ // Also need to discard the port number
+ if _, err := io.ReadFull(conn, buf[:2]); err != nil {
+ return nil, errors.New("proxy: failed to read port from SOCKS5 proxy at " + s.addr + ": " + err.Error())
+ }
+
+ closeConn = nil
+ return conn, nil
+}