initial hook for crypto handshake (void, off by default)

pull/292/head
zelig 10 years ago committed by Felix Lange
parent 6b5f25802e
commit c8a8aa0d43
  1. 26
      p2p/peer.go

@ -70,6 +70,7 @@ type Peer struct {
// These fields maintain the running protocols. // These fields maintain the running protocols.
protocols []Protocol protocols []Protocol
runBaseProtocol bool // for testing runBaseProtocol bool // for testing
cryptoHandshake bool // for testing
runlock sync.RWMutex // protects running runlock sync.RWMutex // protects running
running map[string]*proto running map[string]*proto
@ -141,6 +142,20 @@ func (p *Peer) Identity() ClientIdentity {
return p.identity return p.identity
} }
func (self *Peer) Pubkey() (pubkey []byte) {
self.infolock.Lock()
defer self.infolock.Unlock()
switch {
case self.identity != nil:
pubkey = self.identity.Pubkey()
case self.dialAddr != nil:
pubkey = self.dialAddr.Pubkey
case self.listenAddr != nil:
pubkey = self.listenAddr.Pubkey
}
return
}
// Caps returns the capabilities (supported subprotocols) of the remote peer. // Caps returns the capabilities (supported subprotocols) of the remote peer.
func (p *Peer) Caps() []Cap { func (p *Peer) Caps() []Cap {
p.infolock.Lock() p.infolock.Lock()
@ -207,6 +222,12 @@ func (p *Peer) loop() (reason DiscReason, err error) {
defer close(p.closed) defer close(p.closed)
defer p.conn.Close() defer p.conn.Close()
if p.cryptoHandshake {
if err := p.handleCryptoHandshake(); err != nil {
return DiscProtocolError, err // no graceful disconnect
}
}
// read loop // read loop
readMsg := make(chan Msg) readMsg := make(chan Msg)
readErr := make(chan error) readErr := make(chan error)
@ -307,6 +328,11 @@ func (p *Peer) dispatch(msg Msg, protoDone chan struct{}) (wait bool, err error)
return wait, nil return wait, nil
} }
func (p *Peer) handleCryptoHandshake() (err error) {
return nil
}
func (p *Peer) startBaseProtocol() { func (p *Peer) startBaseProtocol() {
p.runlock.Lock() p.runlock.Lock()
defer p.runlock.Unlock() defer p.runlock.Unlock()

Loading…
Cancel
Save