File tree Expand file tree Collapse file tree 2 files changed +39
-1
lines changed Expand file tree Collapse file tree 2 files changed +39
-1
lines changed Original file line number Diff line number Diff line change
1
+ // Copyright 2019 The go-ethereum Authors
2
+ // This file is part of the go-ethereum library.
3
+ //
4
+ // The go-ethereum library is free software: you can redistribute it and/or modify
5
+ // it under the terms of the GNU Lesser General Public License as published by
6
+ // the Free Software Foundation, either version 3 of the License, or
7
+ // (at your option) any later version.
8
+ //
9
+ // The go-ethereum library is distributed in the hope that it will be useful,
10
+ // but WITHOUT ANY WARRANTY; without even the implied warranty of
11
+ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
+ // GNU Lesser General Public License for more details.
13
+ //
14
+ // You should have received a copy of the GNU Lesser General Public License
15
+ // along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>.
16
+
17
+ package les
18
+
19
+ import (
20
+ "github.com/ethereum/go-ethereum/rlp"
21
+ )
22
+
23
+ // lesEntry is the "les" ENR entry. This is set for LES servers only.
24
+ type lesEntry struct {
25
+ // Ignore additional fields (for forward compatibility).
26
+ Rest []rlp.RawValue `rlp:"tail"`
27
+ }
28
+
29
+ // ENRKey implements enr.Entry.
30
+ func (e lesEntry ) ENRKey () string {
31
+ return "les"
32
+ }
Original file line number Diff line number Diff line change @@ -30,6 +30,7 @@ import (
30
30
"github.com/ethereum/go-ethereum/p2p"
31
31
"github.com/ethereum/go-ethereum/p2p/discv5"
32
32
"github.com/ethereum/go-ethereum/p2p/enode"
33
+ "github.com/ethereum/go-ethereum/p2p/enr"
33
34
"github.com/ethereum/go-ethereum/params"
34
35
"github.com/ethereum/go-ethereum/rpc"
35
36
)
@@ -136,12 +137,17 @@ func (s *LesServer) APIs() []rpc.API {
136
137
}
137
138
138
139
func (s * LesServer ) Protocols () []p2p.Protocol {
139
- return s .makeProtocols (ServerProtocolVersions , s .handler .runPeer , func (id enode.ID ) interface {} {
140
+ ps := s .makeProtocols (ServerProtocolVersions , s .handler .runPeer , func (id enode.ID ) interface {} {
140
141
if p := s .peers .Peer (peerIdToString (id )); p != nil {
141
142
return p .Info ()
142
143
}
143
144
return nil
144
145
})
146
+ // Add "les" ENR entries.
147
+ for i := range ps {
148
+ ps [i ].Attributes = []enr.Entry {& lesEntry {}}
149
+ }
150
+ return ps
145
151
}
146
152
147
153
// Start starts the LES server
You can’t perform that action at this time.
0 commit comments