• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

lightningnetwork / lnd / 13707895824

06 Mar 2025 08:49PM UTC coverage: 56.554% (-1.7%) from 58.205%
13707895824

Pull #9458

github

web-flow
Merge d69f7f75d into 7d7e1872c
Pull Request #9458: multi+server.go: add initial permissions for some peers

276 of 549 new or added lines in 10 files covered. (50.27%)

22271 existing lines in 266 files now uncovered.

104853 of 185404 relevant lines covered (56.55%)

24158.62 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

41.67
/macaroons/auth.go
1
package macaroons
2

3
import (
4
        "context"
5
        "encoding/hex"
6

7
        macaroon "gopkg.in/macaroon.v2"
8
)
9

10
// MacaroonCredential wraps a macaroon to implement the
11
// credentials.PerRPCCredentials interface.
12
type MacaroonCredential struct {
13
        *macaroon.Macaroon
14
}
15

16
// RequireTransportSecurity implements the PerRPCCredentials interface.
UNCOV
17
func (m MacaroonCredential) RequireTransportSecurity() bool {
×
UNCOV
18
        return true
×
UNCOV
19
}
×
20

21
// GetRequestMetadata implements the PerRPCCredentials interface. This method
22
// is required in order to pass the wrapped macaroon into the gRPC context.
23
// With this, the macaroon will be available within the request handling scope
24
// of the ultimate gRPC server implementation.
25
func (m MacaroonCredential) GetRequestMetadata(ctx context.Context,
UNCOV
26
        uri ...string) (map[string]string, error) {
×
UNCOV
27

×
UNCOV
28
        macBytes, err := m.MarshalBinary()
×
UNCOV
29
        if err != nil {
×
30
                return nil, err
×
31
        }
×
32

UNCOV
33
        md := make(map[string]string)
×
UNCOV
34
        md["macaroon"] = hex.EncodeToString(macBytes)
×
UNCOV
35
        return md, nil
×
36
}
37

38
// NewMacaroonCredential returns a copy of the passed macaroon wrapped in a
39
// MacaroonCredential struct which implements PerRPCCredentials.
40
func NewMacaroonCredential(m *macaroon.Macaroon) (MacaroonCredential, error) {
1✔
41
        ms := MacaroonCredential{}
1✔
42

1✔
43
        // The macaroon library's Clone() method has a subtle bug that doesn't
1✔
44
        // correctly clone all caveats. We need to use our own, safe clone
1✔
45
        // function instead.
1✔
46
        var err error
1✔
47
        ms.Macaroon, err = SafeCopyMacaroon(m)
1✔
48
        if err != nil {
1✔
49
                return ms, err
×
50
        }
×
51

52
        return ms, nil
1✔
53
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc