From d74ae83c6ff56de8cf325548352590fb7c73b229 Mon Sep 17 00:00:00 2001 From: Martin/Geno Date: Fri, 8 Mar 2019 05:57:00 +0100 Subject: [PATCH] move wifictld structs from data to capture --- capture/collector.go | 11 +++++------ {data => capture}/handler.go | 2 +- {data => capture}/socket_msg.go | 7 ++++--- {data => capture}/socket_msg_test.go | 2 +- {data => capture}/wifi_client.go | 17 +++++------------ cmd/controller.go | 5 ++--- cmd/dump.go | 5 ++--- controller/handler.go | 12 ++++++------ controller/main.go | 6 +++--- database/client.go | 7 ++++--- database/{config_test.go => main_test.go} | 0 web/webserver.go | 4 ++-- 12 files changed, 35 insertions(+), 43 deletions(-) rename {data => capture}/handler.go (84%) rename {data => capture}/socket_msg.go (96%) rename {data => capture}/socket_msg_test.go (99%) rename {data => capture}/wifi_client.go (62%) rename database/{config_test.go => main_test.go} (100%) diff --git a/capture/collector.go b/capture/collector.go index d6e4d04..9303be0 100644 --- a/capture/collector.go +++ b/capture/collector.go @@ -3,20 +3,19 @@ package capture import ( "net" - "dev.sum7.eu/genofire/wifictld-analyzer/data" "github.com/bdlm/log" ) //Collector for capture type Collector struct { connections map[string]*net.UDPConn - handler data.Handler + handler Handler queue chan *Packet stop chan interface{} } // NewCollector creates a Collector struct -func NewCollector(handler data.Handler, ifaces []*IFaceConfig) *Collector { +func NewCollector(handler Handler, ifaces []*IFaceConfig) *Collector { coll := &Collector{ handler: handler, @@ -96,7 +95,7 @@ type Packet struct { func (coll *Collector) parser() { for obj := range coll.queue { - msg, err := data.NewSocketMSG(obj.Raw) + msg, err := NewSocketMSG(obj.Raw) if err != nil { log.Warnf("unable to unmarshal request from %s: %s", obj.Address.String(), err) continue @@ -114,7 +113,7 @@ func (coll *Collector) parser() { } // SendTo a specifical address -func (coll *Collector) SendTo(addr *net.UDPAddr, msg *data.SocketMSG) { +func (coll *Collector) SendTo(addr *net.UDPAddr, msg *SocketMSG) { log.Debugf("send[%s]: %s", addr, msg.String()) data, err := msg.Marshal() if err != nil { @@ -132,7 +131,7 @@ func (coll *Collector) SendTo(addr *net.UDPAddr, msg *data.SocketMSG) { } // Send to every connection to default address -func (coll *Collector) Send(msg *data.SocketMSG) { +func (coll *Collector) Send(msg *SocketMSG) { log.Debugf("send: %s", msg.String()) data, err := msg.Marshal() if err != nil { diff --git a/data/handler.go b/capture/handler.go similarity index 84% rename from data/handler.go rename to capture/handler.go index bc0d878..3d2d0c8 100644 --- a/data/handler.go +++ b/capture/handler.go @@ -1,4 +1,4 @@ -package data +package capture import "net" diff --git a/data/socket_msg.go b/capture/socket_msg.go similarity index 96% rename from data/socket_msg.go rename to capture/socket_msg.go index ad43e30..eeb2a58 100644 --- a/data/socket_msg.go +++ b/capture/socket_msg.go @@ -1,4 +1,4 @@ -package data +package capture import ( "encoding/binary" @@ -6,6 +6,8 @@ import ( "time" "github.com/bdlm/log" + + "dev.sum7.eu/genofire/wifictld-analyzer/data" ) var DEBUG = false @@ -22,7 +24,6 @@ const ( func (a SocketMSGType) Is(b SocketMSGType) bool { if DEBUG { - log.Debugf("SocketType: %x & %x = %x -> %t", a, b, (a & b), (a&b) > 0) } return (a & b) > 0 @@ -99,7 +100,7 @@ func (msg *SocketMSG) Unmarshal(obj []byte) error { if msg.Types.Is(SocketMSGTypeClient) { msg.Client = &WifiClient{ - Addr: HardwareAddr{HardwareAddr: obj[pos:(pos + 6)]}, + Addr: data.HardwareAddr{HardwareAddr: obj[pos:(pos + 6)]}, Time: time.Unix(int64(binary.BigEndian.Uint32(obj[(pos+6):(pos+10)])), 0), TryProbe: binary.BigEndian.Uint16(obj[(pos + 10):(pos + 12)]), TryAuth: binary.BigEndian.Uint16(obj[(pos + 12):(pos + 14)]), diff --git a/data/socket_msg_test.go b/capture/socket_msg_test.go similarity index 99% rename from data/socket_msg_test.go rename to capture/socket_msg_test.go index 9cf4682..fc6b757 100644 --- a/data/socket_msg_test.go +++ b/capture/socket_msg_test.go @@ -1,4 +1,4 @@ -package data +package capture import ( "encoding/hex" diff --git a/data/wifi_client.go b/capture/wifi_client.go similarity index 62% rename from data/wifi_client.go rename to capture/wifi_client.go index cc90d2c..ff045f6 100644 --- a/data/wifi_client.go +++ b/capture/wifi_client.go @@ -1,21 +1,14 @@ -package data +package capture -import "time" +import ( + "time" -const ( - // default multicast group used by announced - MulticastAddressDefault = "ff02::31f1" - - // default udp port used by announced - Port = 1000 - - // maximum receivable size - MaxDataGramSize = 256 + "dev.sum7.eu/genofire/wifictld-analyzer/data" ) // WifiClient datatype of wifictld type WifiClient struct { - Addr HardwareAddr `json:"addr"` + Addr data.HardwareAddr `json:"addr"` Time time.Time `json:"time"` TryProbe uint16 `json:"try_probe"` TryAuth uint16 `json:"try_auth"` diff --git a/cmd/controller.go b/cmd/controller.go index acfbbb6..87d1145 100644 --- a/cmd/controller.go +++ b/cmd/controller.go @@ -13,7 +13,6 @@ import ( "dev.sum7.eu/genofire/wifictld-analyzer/capture" "dev.sum7.eu/genofire/wifictld-analyzer/config" "dev.sum7.eu/genofire/wifictld-analyzer/controller" - "dev.sum7.eu/genofire/wifictld-analyzer/data" "dev.sum7.eu/genofire/wifictld-analyzer/database" "dev.sum7.eu/genofire/wifictld-analyzer/web" ) @@ -34,7 +33,7 @@ var controllerCmd = &cobra.Command{ ctr := controller.NewController(db) defer ctr.Close() - var handlers []data.Handler + var handlers []capture.Handler if configObj.Webserver.Enable { log.Infof("starting webserver on %s", configObj.Webserver.Bind) @@ -44,7 +43,7 @@ var controllerCmd = &cobra.Command{ defer srv.Close() } - coll := capture.NewCollector(func(addr *net.UDPAddr, msg *data.SocketMSG) (*data.SocketMSG, error) { + coll := capture.NewCollector(func(addr *net.UDPAddr, msg *capture.SocketMSG) (*capture.SocketMSG, error) { for _, a := range handlers { a(addr, msg) } diff --git a/cmd/dump.go b/cmd/dump.go index 5b4ce49..20381c5 100644 --- a/cmd/dump.go +++ b/cmd/dump.go @@ -11,7 +11,6 @@ import ( "github.com/spf13/cobra" "dev.sum7.eu/genofire/wifictld-analyzer/capture" - "dev.sum7.eu/genofire/wifictld-analyzer/data" ) var ( @@ -40,9 +39,9 @@ var dumpCmd = &cobra.Command{ ifacesConfigs = append(ifacesConfigs, ifaceConfig) } - data.DEBUG = debug + capture.DEBUG = debug - coll := capture.NewCollector(func(addr *net.UDPAddr, msg *data.SocketMSG) (*data.SocketMSG, error) { + coll := capture.NewCollector(func(addr *net.UDPAddr, msg *capture.SocketMSG) (*capture.SocketMSG, error) { log.Infof("recv[%s]: %s", addr, msg.String()) return nil, nil }, ifacesConfigs) diff --git a/controller/handler.go b/controller/handler.go index 10c8b30..781b4ba 100644 --- a/controller/handler.go +++ b/controller/handler.go @@ -5,20 +5,20 @@ import ( // "github.com/bdlm/log" - "dev.sum7.eu/genofire/wifictld-analyzer/data" + "dev.sum7.eu/genofire/wifictld-analyzer/capture" ) -func (c *Controller) Handler(addr *net.UDPAddr, msg *data.SocketMSG) (*data.SocketMSG, error) { +func (c *Controller) Handler(addr *net.UDPAddr, msg *capture.SocketMSG) (*capture.SocketMSG, error) { ignore := false - if msg.Types.Is(data.SocketMSGTypeClient) && msg.Client != nil { + if msg.Types.Is(capture.SocketMSGTypeClient) && msg.Client != nil { ignore = c.db.LearnClient(addr.IP, msg.Client) } - if !msg.Types.Is(data.SocketMSGTypeRequest) { + if !msg.Types.Is(capture.SocketMSGTypeRequest) { return nil, nil } - msg = &data.SocketMSG{ - Types: (data.SocketMSGTypeResponse | data.SocketMSGTypeClient), + msg = &capture.SocketMSG{ + Types: (capture.SocketMSGTypeResponse | capture.SocketMSGTypeClient), Client: c.db.GetClient(msg.Client.Addr), } diff --git a/controller/main.go b/controller/main.go index 02b20a9..dba5826 100644 --- a/controller/main.go +++ b/controller/main.go @@ -6,13 +6,13 @@ import ( "github.com/bdlm/log" - "dev.sum7.eu/genofire/wifictld-analyzer/data" + "dev.sum7.eu/genofire/wifictld-analyzer/capture" "dev.sum7.eu/genofire/wifictld-analyzer/database" ) type Controller struct { - SendTo func(addr *net.UDPAddr, msg *data.SocketMSG) - Send func(msg *data.SocketMSG) + SendTo func(addr *net.UDPAddr, msg *capture.SocketMSG) + Send func(msg *capture.SocketMSG) db *database.DB ticker *time.Ticker } diff --git a/database/client.go b/database/client.go index 1680ce3..1c8857f 100644 --- a/database/client.go +++ b/database/client.go @@ -7,6 +7,7 @@ import ( // "github.com/bdlm/log" "github.com/FreifunkBremen/yanic/lib/jsontime" + "dev.sum7.eu/genofire/wifictld-analyzer/capture" "dev.sum7.eu/genofire/wifictld-analyzer/data" ) @@ -24,7 +25,7 @@ type Client struct { Lastseen jsontime.Time `json:"lastseen"` } -func (db *DB) LearnClient(apIP net.IP, clientWifictl *data.WifiClient) bool { +func (db *DB) LearnClient(apIP net.IP, clientWifictl *capture.WifiClient) bool { ret := false // learn ap @@ -70,9 +71,9 @@ func (db *DB) LearnClient(apIP net.IP, clientWifictl *data.WifiClient) bool { return ret } -func (db *DB) GetClient(addr data.HardwareAddr) *data.WifiClient { +func (db *DB) GetClient(addr data.HardwareAddr) *capture.WifiClient { client, ok := db.Clients[addr.String()] - wClient := &data.WifiClient{ + wClient := &capture.WifiClient{ Addr: addr, Time: time.Now(), } diff --git a/database/config_test.go b/database/main_test.go similarity index 100% rename from database/config_test.go rename to database/main_test.go diff --git a/web/webserver.go b/web/webserver.go index 7c03738..fef33d7 100644 --- a/web/webserver.go +++ b/web/webserver.go @@ -9,7 +9,7 @@ import ( "dev.sum7.eu/genofire/golang-lib/websocket" - "dev.sum7.eu/genofire/wifictld-analyzer/data" + "dev.sum7.eu/genofire/wifictld-analyzer/capture" ) type Server struct { @@ -31,7 +31,7 @@ func New(config *Config) *Server { } } -func (srv *Server) Handler(addr *net.UDPAddr, msg *data.SocketMSG) (*data.SocketMSG, error) { +func (srv *Server) Handler(addr *net.UDPAddr, msg *capture.SocketMSG) (*capture.SocketMSG, error) { srv.ws.SendAll(&websocket.Message{ Subject: "wifictld_pkg", Body: map[string]interface{}{