migrating client to its own repository.
This commit is contained in:
@@ -82,7 +82,7 @@ var seedCmd = &cobra.Command{
|
||||
|
||||
case <-rpc.IsReady():
|
||||
|
||||
log.I.Ln("rpc server is ready!")
|
||||
log.I.Ln("rpc server is ready")
|
||||
}
|
||||
|
||||
//
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
package rpc
|
||||
package client
|
||||
|
||||
import (
|
||||
"context"
|
||||
"git-indra.lan/indra-labs/indra/pkg/rpc"
|
||||
"github.com/multiformats/go-multiaddr"
|
||||
"github.com/tutorialedge/go-grpc-tutorial/chat"
|
||||
"golang.zx2c4.com/wireguard/conn"
|
||||
@@ -16,27 +17,28 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
DefaultClientIPAddr = netip.MustParseAddr("192.168.4.29")
|
||||
DefaultClientIPAddr = netip.MustParseAddr("192.168.37.2")
|
||||
DefaultServerIPAddr = netip.MustParseAddr("192.168.37.1")
|
||||
)
|
||||
|
||||
type Peer struct {
|
||||
Endpoint multiaddr.Multiaddr
|
||||
PublicKey *RPCPublicKey
|
||||
PreSharedKey RPCPrivateKey
|
||||
PublicKey *rpc.RPCPublicKey
|
||||
PreSharedKey rpc.RPCPrivateKey
|
||||
KeepAliveInterval uint8
|
||||
}
|
||||
|
||||
type ClientConfig struct {
|
||||
Key RPCPrivateKey
|
||||
Key rpc.RPCPrivateKey
|
||||
Peer *Peer
|
||||
}
|
||||
|
||||
var (
|
||||
DefaultClientConfig = &ClientConfig{
|
||||
Key: DecodePrivateKey("Aj9CfbE1pXEVxPfjSaTwdY3B4kYHbwsTSyT3nrc34ATN"),
|
||||
Key: rpc.DecodePrivateKey("Aj9CfbE1pXEVxPfjSaTwdY3B4kYHbwsTSyT3nrc34ATN"),
|
||||
Peer: &Peer{
|
||||
Endpoint: multiaddr.StringCast("/ip4/127.0.0.1/udp/18222"),
|
||||
PublicKey: DecodePublicKey("G52UmsQpUmN2zFMkJaP9rwCvqQJzi1yHKA9RTrLJTk9f"),
|
||||
PublicKey: rpc.DecodePublicKey("G52UmsQpUmN2zFMkJaP9rwCvqQJzi1yHKA9RTrLJTk9f"),
|
||||
KeepAliveInterval: 5,
|
||||
},
|
||||
}
|
||||
@@ -62,7 +64,7 @@ func NewClient(config *ClientConfig) (*RPCClient, error) {
|
||||
|
||||
var tunnel tun.Device
|
||||
|
||||
if tunnel, r.network, err = netstack.CreateNetTUN([]netip.Addr{DefaultClientIPAddr}, []netip.Addr{}, 1420); check(err) {
|
||||
if tunnel, r.network, err = netstack.CreateNetTUN([]netip.Addr{DefaultClientIPAddr}, []netip.Addr{}, 1420); rpc.check(err) {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -73,7 +75,7 @@ func NewClient(config *ClientConfig) (*RPCClient, error) {
|
||||
deviceConf := "" +
|
||||
"public_key=" + config.Peer.PublicKey.HexString() + "\n" +
|
||||
"endpoint=0.0.0.0:18222" + "\n" +
|
||||
"allowed_ip=" + deviceRPCIP.String() + "/32\n" +
|
||||
"allowed_ip=" + DefaultServerIPAddr.String() + "/32\n" +
|
||||
"persistent_keepalive_interval=" + strconv.Itoa(int(config.Peer.KeepAliveInterval)) + "\n"
|
||||
|
||||
if err = r.device.IpcSet(deviceConf); check(err) {
|
||||
@@ -89,7 +91,7 @@ func NewClient(config *ClientConfig) (*RPCClient, error) {
|
||||
//)
|
||||
|
||||
conn, err = grpc.DialContext(context.Background(),
|
||||
deviceRPCIP.String()+":80",
|
||||
DefaultServerIPAddr.String()+":80",
|
||||
grpc.WithBlock(),
|
||||
grpc.WithTransportCredentials(insecure.NewCredentials()),
|
||||
grpc.WithContextDialer(func(ctx context.Context, address string) (net.Conn, error) {
|
||||
11
pkg/rpc/client/log.go
Normal file
11
pkg/rpc/client/log.go
Normal file
@@ -0,0 +1,11 @@
|
||||
package client
|
||||
|
||||
import (
|
||||
"git-indra.lan/indra-labs/indra"
|
||||
log2 "git-indra.lan/indra-labs/indra/pkg/proc/log"
|
||||
)
|
||||
|
||||
var (
|
||||
log = log2.GetLogger(indra.PathBase)
|
||||
check = log.E.Chk
|
||||
)
|
||||
@@ -4,18 +4,14 @@ import (
|
||||
"context"
|
||||
"github.com/spf13/viper"
|
||||
"google.golang.org/grpc"
|
||||
"os"
|
||||
)
|
||||
|
||||
func RunWith(ctx context.Context, r func(srv *grpc.Server)) {
|
||||
|
||||
log.I.Ln("initializing the rpc server")
|
||||
|
||||
var err error
|
||||
|
||||
if err = configureWithViper(); check(err) {
|
||||
os.Exit(1)
|
||||
}
|
||||
configureUnixSocket()
|
||||
configureTunnel()
|
||||
|
||||
r(server)
|
||||
|
||||
@@ -24,23 +20,14 @@ func RunWith(ctx context.Context, r func(srv *grpc.Server)) {
|
||||
go Start(ctx)
|
||||
}
|
||||
|
||||
func configureWithViper() (err error) {
|
||||
|
||||
log.I.Ln("configuring the rpc server")
|
||||
|
||||
configureUnixSocket()
|
||||
configureTunnel()
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func configureUnixSocket() {
|
||||
|
||||
if viper.GetString(unixPathFlag) == "" {
|
||||
return
|
||||
}
|
||||
|
||||
log.I.F("enabling rpc unix listener [/unix%s]", viper.GetString(unixPathFlag))
|
||||
log.I.Ln("enabling rpc unix listener:")
|
||||
log.I.F("- [/unix%s]", viper.GetString(unixPathFlag))
|
||||
|
||||
isUnixSockEnabled = true
|
||||
}
|
||||
@@ -48,9 +35,6 @@ func configureUnixSocket() {
|
||||
func configureTunnel() {
|
||||
|
||||
if !viper.GetBool(tunEnableFlag) {
|
||||
|
||||
log.I.Ln("disabling rpc tunnel")
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package rpc
|
||||
|
||||
import (
|
||||
"git-indra.lan/indra-labs/indra/pkg/rpc/client"
|
||||
"golang.zx2c4.com/wireguard/conn"
|
||||
"golang.zx2c4.com/wireguard/device"
|
||||
"golang.zx2c4.com/wireguard/tun"
|
||||
@@ -60,7 +61,7 @@ func startTunnel(srv *grpc.Server) (err error) {
|
||||
|
||||
deviceConf := "" +
|
||||
"public_key=" + peer_whitelist.HexString() + "\n" +
|
||||
"allowed_ip=" + DefaultClientIPAddr.String() + "/32\n"
|
||||
"allowed_ip=" + client.DefaultClientIPAddr.String() + "/32\n"
|
||||
|
||||
if err = dev.IpcSet(deviceConf); check(err) {
|
||||
startupErrors <- err
|
||||
|
||||
Reference in New Issue
Block a user