mirror of
https://github.com/status-im/status-go.git
synced 2025-01-12 07:35:02 +00:00
40359f9c1b
* Adding wakunode module * Adding wakuv2 fleet files * Add waku fleets to update-fleet-config script * Adding config items for waku v2 * Conditionally start waku v2 node depending on config * Adapting common code to use go-waku * Setting log level to info * update dependencies * update fleet config to use WakuNodes instead of BootNodes * send and receive messages * use hash returned when publishing a message * add waku store protocol * trigger signal after receiving store messages * exclude linting rule SA1019 to check deprecated packages
37 lines
1.5 KiB
Go
37 lines
1.5 KiB
Go
// Copyright 2012 Google, Inc. All rights reserved.
|
|
//
|
|
// Use of this source code is governed by a BSD-style license
|
|
// that can be found in the LICENSE file in the root of the source
|
|
// tree.
|
|
|
|
package routing
|
|
|
|
import (
|
|
"net"
|
|
)
|
|
|
|
// Router implements simple IPv4/IPv6 routing based on the kernel's routing
|
|
// table. This routing library has very few features and may actually route
|
|
// incorrectly in some cases, but it should work the majority of the time.
|
|
type Router interface {
|
|
// Route returns where to route a packet based on the packet's source
|
|
// and destination IP address.
|
|
//
|
|
// Callers may pass in nil for src, in which case the src is treated as
|
|
// either 0.0.0.0 or ::, depending on whether dst is a v4 or v6 address.
|
|
//
|
|
// It returns the interface on which to send the packet, the gateway IP
|
|
// to send the packet to (if necessary), the preferred src IP to use (if
|
|
// available). If the preferred src address is not given in the routing
|
|
// table, the first IP address of the interface is provided.
|
|
//
|
|
// If an error is encountered, iface, geteway, and
|
|
// preferredSrc will be nil, and err will be set.
|
|
Route(dst net.IP) (iface *net.Interface, gateway, preferredSrc net.IP, err error)
|
|
|
|
// RouteWithSrc routes based on source information as well as destination
|
|
// information. Either or both of input/src can be nil. If both are, this
|
|
// should behave exactly like Route(dst)
|
|
RouteWithSrc(input net.HardwareAddr, src, dst net.IP) (iface *net.Interface, gateway, preferredSrc net.IP, err error)
|
|
}
|