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

stillya / wg-relay / 17277209982

27 Aug 2025 07:52PM UTC coverage: 13.246% (+8.4%) from 4.874%
17277209982

Pull #3

github

stillya
added prom integration
Pull Request #3: Added metrics support

78 of 293 new or added lines in 11 files covered. (26.62%)

5 existing lines in 4 files now uncovered.

111 of 838 relevant lines covered (13.25%)

0.14 hits per line

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

0.0
/ebpf/wgreverseproxy_bpfel.go
1
// Code generated by bpf2go; DO NOT EDIT.
2
//go:build 386 || amd64 || arm || arm64 || loong64 || mips64le || mipsle || ppc64le || riscv64 || wasm
3

4
package ebpf
5

6
import (
7
        "bytes"
8
        _ "embed"
9
        "fmt"
10
        "io"
11
        "structs"
12

13
        "github.com/cilium/ebpf"
14
)
15

16
type WgReverseProxyMetricsKey struct {
17
        _      structs.HostLayout
18
        Dir    uint8
19
        Reason uint8
20
        Pad    uint16
21
}
22

23
type WgReverseProxyMetricsValue struct {
24
        _       structs.HostLayout
25
        Packets uint64
26
        Bytes   uint64
27
}
28

29
type WgReverseProxyObfuscationConfig struct {
30
        _              structs.HostLayout
31
        Enabled        uint32
32
        Method         uint32
33
        Key            [32]uint8
34
        KeyLen         uint32
35
        TargetServerIp uint32
36
}
37

38
// LoadWgReverseProxy returns the embedded CollectionSpec for WgReverseProxy.
39
func LoadWgReverseProxy() (*ebpf.CollectionSpec, error) {
×
40
        reader := bytes.NewReader(_WgReverseProxyBytes)
×
41
        spec, err := ebpf.LoadCollectionSpecFromReader(reader)
×
42
        if err != nil {
×
43
                return nil, fmt.Errorf("can't load WgReverseProxy: %w", err)
×
44
        }
×
45

46
        return spec, err
×
47
}
48

49
// LoadWgReverseProxyObjects loads WgReverseProxy and converts it into a struct.
50
//
51
// The following types are suitable as obj argument:
52
//
53
//        *WgReverseProxyObjects
54
//        *WgReverseProxyPrograms
55
//        *WgReverseProxyMaps
56
//
57
// See ebpf.CollectionSpec.LoadAndAssign documentation for details.
58
func LoadWgReverseProxyObjects(obj interface{}, opts *ebpf.CollectionOptions) error {
×
59
        spec, err := LoadWgReverseProxy()
×
60
        if err != nil {
×
61
                return err
×
62
        }
×
63

64
        return spec.LoadAndAssign(obj, opts)
×
65
}
66

67
// WgReverseProxySpecs contains maps and programs before they are loaded into the kernel.
68
//
69
// It can be passed ebpf.CollectionSpec.Assign.
70
type WgReverseProxySpecs struct {
71
        WgReverseProxyProgramSpecs
72
        WgReverseProxyMapSpecs
73
        WgReverseProxyVariableSpecs
74
}
75

76
// WgReverseProxyProgramSpecs contains programs before they are loaded into the kernel.
77
//
78
// It can be passed ebpf.CollectionSpec.Assign.
79
type WgReverseProxyProgramSpecs struct {
80
        WgReverseProxy *ebpf.ProgramSpec `ebpf:"wg_reverse_proxy"`
81
}
82

83
// WgReverseProxyMapSpecs contains maps before they are loaded into the kernel.
84
//
85
// It can be passed ebpf.CollectionSpec.Assign.
86
type WgReverseProxyMapSpecs struct {
87
        MetricsMap           *ebpf.MapSpec `ebpf:"metrics_map"`
88
        ObfuscationConfigMap *ebpf.MapSpec `ebpf:"obfuscation_config_map"`
89
        StatsMap             *ebpf.MapSpec `ebpf:"stats_map"`
90
}
91

92
// WgReverseProxyVariableSpecs contains global variables before they are loaded into the kernel.
93
//
94
// It can be passed ebpf.CollectionSpec.Assign.
95
type WgReverseProxyVariableSpecs struct {
96
}
97

98
// WgReverseProxyObjects contains all objects after they have been loaded into the kernel.
99
//
100
// It can be passed to LoadWgReverseProxyObjects or ebpf.CollectionSpec.LoadAndAssign.
101
type WgReverseProxyObjects struct {
102
        WgReverseProxyPrograms
103
        WgReverseProxyMaps
104
        WgReverseProxyVariables
105
}
106

107
func (o *WgReverseProxyObjects) Close() error {
×
108
        return _WgReverseProxyClose(
×
109
                &o.WgReverseProxyPrograms,
×
110
                &o.WgReverseProxyMaps,
×
111
        )
×
112
}
×
113

114
// WgReverseProxyMaps contains all maps after they have been loaded into the kernel.
115
//
116
// It can be passed to LoadWgReverseProxyObjects or ebpf.CollectionSpec.LoadAndAssign.
117
type WgReverseProxyMaps struct {
118
        MetricsMap           *ebpf.Map `ebpf:"metrics_map"`
119
        ObfuscationConfigMap *ebpf.Map `ebpf:"obfuscation_config_map"`
120
        StatsMap             *ebpf.Map `ebpf:"stats_map"`
121
}
122

123
func (m *WgReverseProxyMaps) Close() error {
×
124
        return _WgReverseProxyClose(
×
NEW
125
                m.MetricsMap,
×
126
                m.ObfuscationConfigMap,
×
127
                m.StatsMap,
×
128
        )
×
129
}
×
130

131
// WgReverseProxyVariables contains all global variables after they have been loaded into the kernel.
132
//
133
// It can be passed to LoadWgReverseProxyObjects or ebpf.CollectionSpec.LoadAndAssign.
134
type WgReverseProxyVariables struct {
135
}
136

137
// WgReverseProxyPrograms contains all programs after they have been loaded into the kernel.
138
//
139
// It can be passed to LoadWgReverseProxyObjects or ebpf.CollectionSpec.LoadAndAssign.
140
type WgReverseProxyPrograms struct {
141
        WgReverseProxy *ebpf.Program `ebpf:"wg_reverse_proxy"`
142
}
143

144
func (p *WgReverseProxyPrograms) Close() error {
×
145
        return _WgReverseProxyClose(
×
146
                p.WgReverseProxy,
×
147
        )
×
148
}
×
149

150
func _WgReverseProxyClose(closers ...io.Closer) error {
×
151
        for _, closer := range closers {
×
152
                if err := closer.Close(); err != nil {
×
153
                        return err
×
154
                }
×
155
        }
156
        return nil
×
157
}
158

159
// Do not access this directly.
160
//
161
//go:embed wgreverseproxy_bpfel.o
162
var _WgReverseProxyBytes []byte
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