aboutsummaryrefslogtreecommitdiff
path: root/src/gnunet/message/msg_hello.go
diff options
context:
space:
mode:
Diffstat (limited to 'src/gnunet/message/msg_hello.go')
-rw-r--r--src/gnunet/message/msg_hello.go18
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 {
43func NewHelloAddress(a *util.Address) *HelloAddress { 44func 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
102func (a *HelloAddress) Wrap() (addr *util.Address) { 103func (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
142type HelloMsg struct { 143type 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.
199func (m *HelloMsg) Header() *Header {
200 return &Header{m.MsgSize, m.MsgType}
201}