...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package v3rpc
16
17 import (
18 pb "go.etcd.io/etcd/api/v3/etcdserverpb"
19 "go.etcd.io/etcd/server/v3/etcdserver"
20 )
21
22 type header struct {
23 clusterID int64
24 memberID int64
25 sg etcdserver.RaftStatusGetter
26 rev func() int64
27 }
28
29 func newHeader(s *etcdserver.EtcdServer) header {
30 return header{
31 clusterID: int64(s.Cluster().ID()),
32 memberID: int64(s.ID()),
33 sg: s,
34 rev: func() int64 { return s.KV().Rev() },
35 }
36 }
37
38
39 func (h *header) fill(rh *pb.ResponseHeader) {
40 if rh == nil {
41 panic("unexpected nil resp.Header")
42 }
43 rh.ClusterId = uint64(h.clusterID)
44 rh.MemberId = uint64(h.memberID)
45 rh.RaftTerm = h.sg.Term()
46 if rh.Revision == 0 {
47 rh.Revision = h.rev()
48 }
49 }
50
View as plain text