MCPcopy Index your code
hub / github.com/bettercap/bettercap / createIPGraph

Method createIPGraph

modules/graph/create.go:9–42  ·  view source on GitHub ↗
(endpoint *network.Endpoint)

Source from the content-addressed store, hash-verified

7)
8
9func (mod *Module) createIPGraph(endpoint *network.Endpoint) (*Node, bool, error) {
10 node, err := mod.db.FindNode(Endpoint, endpoint.HwAddress)
11 isNew := node == nil
12 if err != nil {
13 return nil, false, err
14 } else if isNew {
15 if node, err = mod.db.CreateNode(Endpoint, endpoint.HwAddress, endpoint, ""); err != nil {
16 return nil, false, err
17 }
18 } else {
19 if err = mod.db.UpdateNode(node); err != nil {
20 return nil, false, err
21 }
22 }
23
24 // create relations if needed
25 if manages, err := mod.db.FindLastRecentEdgeOfType(mod.gw, node, Manages, edgeStaleTime); err != nil {
26 return nil, false, err
27 } else if manages == nil {
28 if manages, err = mod.db.CreateEdge(mod.gw, node, Manages); err != nil {
29 return nil, false, err
30 }
31 }
32
33 if connects_to, err := mod.db.FindLastRecentEdgeOfType(node, mod.gw, ConnectsTo, edgeStaleTime); err != nil {
34 return nil, false, err
35 } else if connects_to == nil {
36 if connects_to, err = mod.db.CreateEdge(node, mod.gw, ConnectsTo); err != nil {
37 return nil, false, err
38 }
39 }
40
41 return node, isNew, nil
42}
43
44func (mod *Module) createDot11ApGraph(ap *network.AccessPoint) (*Node, bool, error) {
45 node, err := mod.db.FindNode(AccessPoint, ap.HwAddress)

Callers 1

onEventMethod · 0.95

Calls 5

FindNodeMethod · 0.80
CreateNodeMethod · 0.80
UpdateNodeMethod · 0.80
CreateEdgeMethod · 0.80

Tested by

no test coverage detected