aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-06-18 15:03:41 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-06-18 15:03:41 +0200
commit81168ca0e8dbd75a31e675e164a0aadc1b401caf (patch)
treef8d0d43ddb29d9544d4bad0528fdf63e3ebb6558
parent1937ee953a670d15e308042104754ebae36a6ee6 (diff)
peer
-rw-r--r--peer/peer.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/peer/peer.go b/peer/peer.go
new file mode 100644
index 0000000..3d7c936
--- /dev/null
+++ b/peer/peer.go
@@ -0,0 +1,35 @@
+package Peer
+
+import (
+ "bytes"
+ "net"
+)
+
+const (
+ Idle = iota
+ Connecting
+ Handshake
+ Connected
+ Failed
+)
+
+type Peer struct {
+ conn net.Conn
+ Addr net.TCPAddr
+ ID []byte
+ Valid bool
+ Choked bool // remote
+ Interested bool // remote
+ Choking bool // local
+ Intersting bool // local
+ Optimistic bool
+ buf *bytes.Buffer
+}
+
+func NewPeer(addr string) (Peer, error) {
+ a, err := net.ResolveTCPAddr(addr)
+ if err != nil {
+ return Peer{}, err
+ }
+ return Peer{Addr: a, Choked: true, Choking: true}
+}