Compare commits
2 Commits
90d78d310e
...
2bb558f878
Author | SHA1 | Date |
---|---|---|
Derrick Hammer | 2bb558f878 | |
Derrick Hammer | cd50bf0b39 |
26
net/peer.go
26
net/peer.go
|
@ -5,6 +5,7 @@ import (
|
|||
"go.uber.org/zap"
|
||||
"net"
|
||||
"net/url"
|
||||
"sync"
|
||||
)
|
||||
|
||||
var (
|
||||
|
@ -58,13 +59,18 @@ type BasePeer struct {
|
|||
socket interface{}
|
||||
id *encoding.NodeId
|
||||
handshaked bool
|
||||
lock sync.RWMutex
|
||||
}
|
||||
|
||||
func (b *BasePeer) IsConnected() bool {
|
||||
b.lock.RLock()
|
||||
defer b.lock.RUnlock()
|
||||
return b.isConnected
|
||||
}
|
||||
|
||||
func (b *BasePeer) SetConnected(isConnected bool) {
|
||||
b.lock.Lock()
|
||||
defer b.lock.Unlock()
|
||||
b.isConnected = isConnected
|
||||
}
|
||||
|
||||
|
@ -99,40 +105,60 @@ func (b *BasePeer) SetIP(ip net.Addr) {
|
|||
}
|
||||
|
||||
func (b *BasePeer) Challenge() []byte {
|
||||
b.lock.RLock()
|
||||
defer b.lock.RUnlock()
|
||||
return b.challenge
|
||||
}
|
||||
|
||||
func (b *BasePeer) SetChallenge(challenge []byte) {
|
||||
b.lock.Lock()
|
||||
defer b.lock.Unlock()
|
||||
b.challenge = challenge
|
||||
}
|
||||
|
||||
func (b *BasePeer) Socket() interface{} {
|
||||
b.lock.RLock()
|
||||
defer b.lock.RUnlock()
|
||||
return b.socket
|
||||
}
|
||||
|
||||
func (b *BasePeer) SetSocket(socket interface{}) {
|
||||
b.lock.Lock()
|
||||
defer b.lock.Unlock()
|
||||
b.socket = socket
|
||||
}
|
||||
|
||||
func (b *BasePeer) Id() *encoding.NodeId {
|
||||
b.lock.RLock()
|
||||
defer b.lock.RUnlock()
|
||||
return b.id
|
||||
}
|
||||
|
||||
func (b *BasePeer) SetId(id *encoding.NodeId) {
|
||||
b.lock.Lock()
|
||||
defer b.lock.Unlock()
|
||||
b.id = id
|
||||
}
|
||||
func (b *BasePeer) SetConnectionURIs(uris []*url.URL) {
|
||||
b.lock.Lock()
|
||||
defer b.lock.Unlock()
|
||||
b.connectionURIs = uris
|
||||
}
|
||||
func (b *BasePeer) ConnectionURIs() []*url.URL {
|
||||
b.lock.RLock()
|
||||
b.lock.RUnlock()
|
||||
return b.connectionURIs
|
||||
}
|
||||
|
||||
func (b *BasePeer) IsHandshakeDone() bool {
|
||||
b.lock.RLock()
|
||||
defer b.lock.RUnlock()
|
||||
return b.handshaked
|
||||
}
|
||||
|
||||
func (b *BasePeer) SetHandshakeDone(status bool) {
|
||||
b.lock.Lock()
|
||||
defer b.lock.Unlock()
|
||||
b.handshaked = status
|
||||
}
|
||||
|
||||
|
|
12
net/ws.go
12
net/ws.go
|
@ -119,6 +119,8 @@ func (p *WebSocketPeer) End() error {
|
|||
return nil
|
||||
}
|
||||
func (p *WebSocketPeer) EndForAbuse() error {
|
||||
p.BasePeer.lock.Lock()
|
||||
defer p.BasePeer.lock.Unlock()
|
||||
p.abuser = true
|
||||
err := p.socket.Close(websocket.StatusPolicyViolation, "")
|
||||
if err != nil {
|
||||
|
@ -128,10 +130,14 @@ func (p *WebSocketPeer) EndForAbuse() error {
|
|||
return nil
|
||||
}
|
||||
func (p *WebSocketPeer) SetId(id *encoding.NodeId) {
|
||||
p.BasePeer.lock.Lock()
|
||||
defer p.BasePeer.lock.Unlock()
|
||||
p.id = id
|
||||
}
|
||||
|
||||
func (p *WebSocketPeer) SetChallenge(challenge []byte) {
|
||||
p.BasePeer.lock.Lock()
|
||||
defer p.BasePeer.lock.Unlock()
|
||||
p.challenge = challenge
|
||||
}
|
||||
|
||||
|
@ -140,6 +146,8 @@ func (p *WebSocketPeer) GetChallenge() []byte {
|
|||
}
|
||||
|
||||
func (p *WebSocketPeer) GetIP() net.Addr {
|
||||
p.BasePeer.lock.Lock()
|
||||
defer p.BasePeer.lock.Unlock()
|
||||
if p.ip != nil {
|
||||
return p.ip
|
||||
}
|
||||
|
@ -155,6 +163,8 @@ func (p *WebSocketPeer) GetIP() net.Addr {
|
|||
}
|
||||
|
||||
func (p *WebSocketPeer) SetIP(ip net.Addr) {
|
||||
p.BasePeer.lock.Lock()
|
||||
defer p.BasePeer.lock.Unlock()
|
||||
p.ip = ip
|
||||
}
|
||||
|
||||
|
@ -163,5 +173,7 @@ func (b *WebSocketPeer) GetIPString() string {
|
|||
}
|
||||
|
||||
func (p *WebSocketPeer) Abuser() bool {
|
||||
p.BasePeer.lock.Lock()
|
||||
defer p.BasePeer.lock.Unlock()
|
||||
return p.abuser
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue