]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - frontend/conn.go
frontend: add Loop.HostInfoMsg()
[safcm/safcm.git] / frontend / conn.go
index 10f7c7b5a2dd680ab158ea705e5250b2934dcce7..02dfe8bf904111b1edca797cc61270dab64b5bc6 100644 (file)
@@ -18,6 +18,8 @@
 package frontend
 
 import (
+       "fmt"
+
        "ruderich.org/simon/safcm"
        "ruderich.org/simon/safcm/rpc"
 )
@@ -45,3 +47,20 @@ func (l *Loop) SendRecv(host Host, conn *rpc.Conn, msg safcm.Msg) (
                return x, nil
        }
 }
+
+// HostInfoMsg sends a MsgInfoReq for host via conn and returns the resulting
+// MsgInfoResp.
+func (l *Loop) HostInfoMsg(host Host, conn *rpc.Conn, req safcm.MsgInfoReq) (
+       safcm.MsgInfoResp, error) {
+
+       var empty safcm.MsgInfoResp
+       x, err := l.SendRecv(host, conn, req)
+       if err != nil {
+               return empty, err
+       }
+       resp, ok := x.(safcm.MsgInfoResp)
+       if !ok {
+               return empty, fmt.Errorf("unexpected response %v", x)
+       }
+       return resp, nil
+}