diff options
Diffstat (limited to 'src/gnunet/message/msg_hello.go')
-rw-r--r-- | src/gnunet/message/msg_hello.go | 18 |
1 files changed, 6 insertions, 12 deletions
diff --git a/src/gnunet/message/msg_hello.go b/src/gnunet/message/msg_hello.go index fdd9696..4cc8712 100644 --- a/src/gnunet/message/msg_hello.go +++ b/src/gnunet/message/msg_hello.go | |||
@@ -22,6 +22,7 @@ import ( | |||
22 | "bytes" | 22 | "bytes" |
23 | "encoding/binary" | 23 | "encoding/binary" |
24 | "fmt" | 24 | "fmt" |
25 | "gnunet/enums" | ||
25 | "gnunet/util" | 26 | "gnunet/util" |
26 | "io" | 27 | "io" |
27 | "time" | 28 | "time" |
@@ -43,8 +44,8 @@ type HelloAddress struct { | |||
43 | func NewHelloAddress(a *util.Address) *HelloAddress { | 44 | func NewHelloAddress(a *util.Address) *HelloAddress { |
44 | // use default expiration time, but adjust it if address expires earlier | 45 | // use default expiration time, but adjust it if address expires earlier |
45 | exp := util.NewAbsoluteTime(time.Now().Add(HelloAddressExpiration)) | 46 | exp := util.NewAbsoluteTime(time.Now().Add(HelloAddressExpiration)) |
46 | if exp.Compare(a.Expires) > 0 { | 47 | if exp.Compare(a.Expire) > 0 { |
47 | exp = a.Expires | 48 | exp = a.Expire |
48 | } | 49 | } |
49 | // convert address | 50 | // convert address |
50 | addr := &HelloAddress{ | 51 | addr := &HelloAddress{ |
@@ -101,7 +102,7 @@ func ParseHelloAddr(rdr io.Reader) (a *HelloAddress, err error) { | |||
101 | // Wrap a HelloAddress into a uitl.Address | 102 | // Wrap a HelloAddress into a uitl.Address |
102 | func (a *HelloAddress) Wrap() (addr *util.Address) { | 103 | func (a *HelloAddress) Wrap() (addr *util.Address) { |
103 | addr = util.NewAddress(a.transport, string(a.address)) | 104 | addr = util.NewAddress(a.transport, string(a.address)) |
104 | addr.Expires = a.expires | 105 | addr.Expire = a.expires |
105 | return | 106 | return |
106 | } | 107 | } |
107 | 108 | ||
@@ -140,8 +141,7 @@ func (a *HelloAddress) Bytes() []byte { | |||
140 | 141 | ||
141 | // HelloMsg is a message send by peers to announce their presence | 142 | // HelloMsg is a message send by peers to announce their presence |
142 | type HelloMsg struct { | 143 | type HelloMsg struct { |
143 | MsgSize uint16 `order:"big"` // total size of message | 144 | MsgHeader |
144 | MsgType uint16 `order:"big"` // HELLO (17) | ||
145 | FriendsOnly uint32 `order:"big"` // Do not gossip this HELLO message | 145 | FriendsOnly uint32 `order:"big"` // Do not gossip this HELLO message |
146 | Peer *util.PeerID `` // peer identifier for addresses | 146 | Peer *util.PeerID `` // peer identifier for addresses |
147 | AddrList []byte `size:"*"` // List of end-point addresses (HelloAddress) | 147 | AddrList []byte `size:"*"` // List of end-point addresses (HelloAddress) |
@@ -155,8 +155,7 @@ func NewHelloMsg(peer *util.PeerID) *HelloMsg { | |||
155 | } | 155 | } |
156 | // return empty HelloMessage | 156 | // return empty HelloMessage |
157 | return &HelloMsg{ | 157 | return &HelloMsg{ |
158 | MsgSize: 40, // size without 'AddrList' | 158 | MsgHeader: MsgHeader{40, enums.MSG_HELLO}, |
159 | MsgType: HELLO, // HELLO (17) | ||
160 | FriendsOnly: 0, // not used here | 159 | FriendsOnly: 0, // not used here |
161 | Peer: peer, // associated peer | 160 | Peer: peer, // associated peer |
162 | AddrList: make([]byte, 0), // list of addresses | 161 | AddrList: make([]byte, 0), // list of addresses |
@@ -194,8 +193,3 @@ func (m *HelloMsg) SetAddresses(list []*HelloAddress) { | |||
194 | } | 193 | } |
195 | m.AddrList = wrt.Bytes() | 194 | m.AddrList = wrt.Bytes() |
196 | } | 195 | } |
197 | |||
198 | // Header returns the message header in a separate instance. | ||
199 | func (m *HelloMsg) Header() *Header { | ||
200 | return &Header{m.MsgSize, m.MsgType} | ||
201 | } | ||