commit - 1738cb32b92b94d71cf623fa3e84afaef401a211
commit + 2469f6646d48415c8f7f947815762863adbf3133
blob - 1e25afd5c580e5a4af28ac994ad0df2b418c244e
blob + 0b3cec10190214ec99aa7a32c1992548fdb94c62
--- mail.go
+++ mail.go
if err != nil {
return nil, fmt.Errorf("parse To address list: %w", err)
}
- wto, err = fingerAll(to)
+ actors, err := fingerAll(to)
if err != nil {
return nil, fmt.Errorf("webfinger To addresses: %w", err)
}
+ wto = make([]string, len(actors))
+ for i, a := range actors {
+ wto[i] = a.ID
+ }
}
if msg.Header.Get("CC") != "" {
cc, err := msg.Header.AddressList("CC")
if err != nil {
return nil, fmt.Errorf("parse CC address list: %w", err)
}
- wcc, err = fingerAll(cc)
+ actors, err := fingerAll(cc)
if err != nil {
return nil, fmt.Errorf("webfinger CC addresses: %w", err)
}
+ wcc = make([]string, len(actors))
+ for i, a := range actors {
+ wcc[i] = a.ID
+ }
}
buf := &bytes.Buffer{}
blob - 71d39efe3ee7b43011253ae027a0520cd17bc503
blob + d51eb9237bb67808d536aa8b3ed3dff989ec208e
--- webfinger.go
+++ webfinger.go
return nil, ErrNotExist
}
-func fingerAll(alist []*mail.Address) ([]string, error) {
- actors := make([]string, len(alist))
+func fingerAll(alist []*mail.Address) ([]Actor, error) {
+ actors := make([]Actor, len(alist))
for i, addr := range alist {
if strings.Contains(addr.Address, "+followers") {
addr.Address = strings.Replace(addr.Address, "+followers", "", 1)
if err != nil {
return actors, fmt.Errorf("finger %s: %w", addr.Address, err)
}
- actors[i] = a.Followers
+ actors[i] = *a
continue
}
actor, err := Finger(addr.Address)
if err != nil {
return actors, fmt.Errorf("finger %s: %w", addr.Address, err)
}
- actors[i] = actor.ID
+ actors[i] = *actor
}
return actors, nil
}