commit 2f236b7cd42eb89e5f4b0bb66c1500f644a41a24
parent 721e0e2e784176a94be5f2e39fdfc67484a15354
Author: Matsuda Kenji <info@mtkn.jp>
Date: Sat, 15 Jul 2023 14:55:00 +0900
add auth
Diffstat:
| M | server.go | | | 44 | ++++++++++++++++++++++++++++++-------------- |
1 file changed, 30 insertions(+), 14 deletions(-)
diff --git a/server.go b/server.go
@@ -86,19 +86,28 @@ func sAuth(s *Srv, r *Req) {
respond(r, fmt.Errorf("authentication not implemented"))
}
-func rAuth(r *Req, err error) {}
+func rAuth(r *Req, err error) {
+ if err != nil {
+ size := uint32(4 + 1 + 2 + 2 + len(err.Error()))
+ ofcall := RError(make([]byte, size))
+ ofcall.SetSize(size)
+ ofcall.SetType(Rerror)
+ ofcall.SetEName(err)
+ r.ofcall = ofcall
+ }
+}
func sAttach(s *Srv, r *Req) {
-
+ respond(r, nil)
}
+func rAttach(r *Req, err error) {}
+
func rError(r *Req, err error) {
size := uint32(4 + 1 + 2 + 2 + len(err.Error()))
ofcall := RError(make([]byte, size))
-
ofcall.SetSize(size)
ofcall.SetType(Rerror)
- ofcall.SetTag(r.ifcall.Tag())
ofcall.SetEName(err)
r.ofcall = ofcall
}
@@ -117,22 +126,29 @@ func Serve(s *Srv) {
sVersion(s, r)
case TAuth:
sAuth(s, r)
+ case TAttach:
+ sAttach(s, r)
}
}
}
func respond(r *Req, err error) {
- if err != nil {
- rError(r, err)
- } else {
- switch ofcall := r.ofcall.(type) {
- default:
- rError(r, fmt.Errorf("unknown message type: %s", ofcall.Type()))
- case RVersion:
- rVersion(r, err)
- case RAuth:
- rAuth(r, err)
+ switch r.ofcall.(type) {
+ default:
+ if r.ofcall == nil {
+ if err == nil {
+ panic("neither ofcall nor err is set.")
+ }
+ rError(r, err)
+ } else {
+ rError(r, fmt.Errorf("unknown message type: %s", r.ofcall.Type()))
}
+ case RVersion:
+ rVersion(r, err)
+ case RAuth:
+ rAuth(r, err)
+ case RAttach:
+ rAttach(r, err)
}
if chatty9P {