summaryrefslogtreecommitdiffhomepage
path: root/tunnel/tools/libwg-go/service.go
diff options
context:
space:
mode:
authorMikael Magnusson <mikma@users.sourceforge.net>2023-05-24 22:48:37 +0200
committerMikael Magnusson <mikma@users.sourceforge.net>2023-10-26 22:28:29 +0200
commitc6f1fddf2e52ce2d4e50c5e6d1931765ada1fe7e (patch)
treeef8aacf6826e099b247c0d0dede77c3bd68dfed5 /tunnel/tools/libwg-go/service.go
parentfcdbd17d5101d9661d2ce581dc502c1bdabc4cd6 (diff)
tunnel: implement gRPC based wgSetConfig
Diffstat (limited to 'tunnel/tools/libwg-go/service.go')
-rw-r--r--tunnel/tools/libwg-go/service.go27
1 files changed, 27 insertions, 0 deletions
diff --git a/tunnel/tools/libwg-go/service.go b/tunnel/tools/libwg-go/service.go
index 30fe650b..f5460486 100644
--- a/tunnel/tools/libwg-go/service.go
+++ b/tunnel/tools/libwg-go/service.go
@@ -226,6 +226,33 @@ func (e *LibwgServiceImpl) Reverse(stream gen.Libwg_ReverseServer) error {
return nil
}
+func (e *LibwgServiceImpl) IpcSet(ctx context.Context, req *gen.IpcSetRequest) (*gen.IpcSetResponse, error) {
+ tunnel, ok := GetTunnel(req.GetTunnel().GetHandle())
+ if !ok {
+ r := &gen.IpcSetResponse{
+ Error: &gen.Error{
+ Message: fmt.Sprintf("Invalid tunnel"),
+ },
+ }
+ return r, nil
+ }
+
+ err := tunnel.device.IpcSet(req.GetConfig())
+ if err != nil {
+ r := &gen.IpcSetResponse{
+ Error: &gen.Error{
+ Message: fmt.Sprintf("IpcSet failed: %v", err),
+ },
+ }
+ return r, nil
+ }
+
+ r := &gen.IpcSetResponse{
+ }
+
+ return r, nil
+}
+
func (e *LibwgServiceImpl) Dhcp(ctx context.Context, req *gen.DhcpRequest) (*gen.DhcpResponse, error) {
var relayAddr netip.Addr
var sourceAddr netip.Addr