CSMRF + DetachedInv forwarding

master
HimbeerserverDE 2021-08-30 18:58:05 +02:00
parent bba3dde930
commit d5220acf7c
No known key found for this signature in database
GPG Key ID: 1A651504791E6A8B
2 changed files with 37 additions and 5 deletions

View File

@ -552,7 +552,6 @@ func prependRaw(prep string, s *string, isTexture bool) {
}
}
fmt.Println("before", *s)
*s = ""
for i, sub := range subs {
*s += sub
@ -560,7 +559,6 @@ func prependRaw(prep string, s *string, isTexture bool) {
*s += seps[i]
}
}
fmt.Println("afters", *s)
}
}

View File

@ -26,7 +26,8 @@ type serverConn struct {
salt, srpA, a, srpK []byte
}
inv mt.Inv
inv mt.Inv
detachedInvs []string
aos map[mt.AOID]struct{}
}
@ -200,8 +201,8 @@ func handleSrv(sc *serverConn) {
inv.Deserialize(strings.NewReader(cmd.Inv))
for k, l := range inv {
for i, s := range l.Stacks {
inv[k].InvList.Stacks[i].Name = sc.name + "_" + s.Name
for i := range l.Stacks {
prepend(sc.name, &inv[k].InvList.Stacks[i].Name)
}
}
@ -292,6 +293,39 @@ func handleSrv(sc *serverConn) {
}
sc.client().SendCmd(resp)
case *mt.ToCltCSMRestrictionFlags:
cmd.Flags &= ^mt.NoCSMs
sc.client().SendCmd(cmd)
case *mt.ToCltDetachedInv:
var inv mt.Inv
inv.Deserialize(strings.NewReader(cmd.Inv))
for k, l := range inv {
for i := range l.Stacks {
prepend(sc.name, &inv[k].InvList.Stacks[i].Name)
}
}
b := &strings.Builder{}
inv.Serialize(b)
if cmd.Keep {
sc.detachedInvs = append(sc.detachedInvs, cmd.Name)
} else {
for i, name := range sc.detachedInvs {
if name == cmd.Name {
sc.detachedInvs = append(sc.detachedInvs[:i], sc.detachedInvs[i+1:]...)
break
}
}
}
sc.client().SendCmd(&mt.ToCltDetachedInv{
Name: cmd.Name,
Keep: cmd.Keep,
Len: cmd.Len,
Inv: b.String(),
})
}
}
}