Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
p2p
go-p2p-swarm
Commits
0ff1abb2
Commit
0ff1abb2
authored
Nov 02, 2016
by
Jeromy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move protocol methods down into peerstream
parent
368ca206
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
23 additions
and
41 deletions
+23
-41
package.json
package.json
+6
-6
swarm.go
swarm.go
+4
-9
swarm_conn.go
swarm_conn.go
+5
-1
swarm_stream.go
swarm_stream.go
+8
-25
No files found.
package.json
View file @
0ff1abb2
...
...
@@ -9,9 +9,9 @@
"gxDependencies"
:
[
{
"author"
:
"whyrusleeping"
,
"hash"
:
"Qm
dXimY9QHaasZmw6hWojWnCJvfgxETjZQfg9g6ZrA9wMX
"
,
"hash"
:
"Qm
Z3qHMAtW9WEHexN3HsjSoduUBbrBPXMEoeddQtqdJUJ6
"
,
"name"
:
"go-libp2p-net"
,
"version"
:
"1.
2.1
"
"version"
:
"1.
3.0
"
},
{
"author"
:
"whyrusleeping"
,
...
...
@@ -69,15 +69,15 @@
},
{
"author"
:
"whyrusleeping"
,
"hash"
:
"Qm
RmFKJgjjQhrT1uDyhpS87kE5M9YbMT8RBWam5uk8o4u
H"
,
"hash"
:
"Qm
NbLFRGG1uHVfQM2fRFrhc7dgjThXkYUAp5qChFqxYNS
H"
,
"name"
:
"go-peerstream"
,
"version"
:
"1.
1
.0"
"version"
:
"1.
3
.0"
},
{
"author"
:
"whyrusleeping"
,
"hash"
:
"Qm
WpTXhTkpoCDEm9twJd5Rc9jFwy61emzxneeJzrVMfjGF
"
,
"hash"
:
"Qm
ezvofp8DAh8GnU395s2cvim7uACGp6DdiKVftAesEovw
"
,
"name"
:
"go-libp2p-metrics"
,
"version"
:
"1.
2
.0"
"version"
:
"1.
3
.0"
},
{
"author"
:
"whyrusleeping"
,
...
...
swarm.go
View file @
0ff1abb2
...
...
@@ -256,7 +256,7 @@ func (s *Swarm) SetConnHandler(handler ConnHandler) {
// See peerstream.
func
(
s
*
Swarm
)
SetStreamHandler
(
handler
inet
.
StreamHandler
)
{
s
.
swarm
.
SetStreamHandler
(
func
(
s
*
ps
.
Stream
)
{
handler
(
wrap
Stream
(
s
))
handler
(
(
*
Stream
)
(
s
))
})
}
...
...
@@ -273,12 +273,7 @@ func (s *Swarm) NewStreamWithPeer(ctx context.Context, p peer.ID) (*Stream, erro
// TODO: think about passing a context down to NewStreamWithGroup
st
,
err
:=
s
.
swarm
.
NewStreamWithGroup
(
p
)
return
wrapStream
(
st
),
err
}
// StreamsWithPeer returns all the live Streams to p
func
(
s
*
Swarm
)
StreamsWithPeer
(
p
peer
.
ID
)
[]
*
Stream
{
return
wrapStreams
(
ps
.
StreamsWithGroup
(
p
,
s
.
swarm
.
Streams
()))
return
(
*
Stream
)(
st
),
err
}
// ConnectionsToPeer returns all the live connections to p
...
...
@@ -387,9 +382,9 @@ func (n *ps2netNotifee) Disconnected(c *ps.Conn) {
}
func
(
n
*
ps2netNotifee
)
OpenedStream
(
s
*
ps
.
Stream
)
{
n
.
not
.
OpenedStream
(
n
.
net
,
&
Stream
{
stream
:
s
}
)
n
.
not
.
OpenedStream
(
n
.
net
,
(
*
Stream
)(
s
)
)
}
func
(
n
*
ps2netNotifee
)
ClosedStream
(
s
*
ps
.
Stream
)
{
n
.
not
.
ClosedStream
(
n
.
net
,
&
Stream
{
stream
:
s
}
)
n
.
not
.
ClosedStream
(
n
.
net
,
(
*
Stream
)(
s
)
)
}
swarm_conn.go
View file @
0ff1abb2
...
...
@@ -77,7 +77,7 @@ func (c *Conn) RemotePublicKey() ic.PubKey {
// NewSwarmStream returns a new Stream from this connection
func
(
c
*
Conn
)
NewSwarmStream
()
(
*
Stream
,
error
)
{
s
,
err
:=
c
.
StreamConn
()
.
NewStream
()
return
wrap
Stream
(
s
),
err
return
(
*
Stream
)
(
s
),
err
}
// NewStream returns a new Stream from this connection
...
...
@@ -91,6 +91,10 @@ func (c *Conn) Close() error {
return
c
.
StreamConn
()
.
Close
()
}
func
(
c
*
Conn
)
GetStreams
()
([]
inet
.
Stream
,
error
)
{
return
nil
,
fmt
.
Errorf
(
"GetStreams() not yet implemented"
)
}
func
wrapConn
(
psc
*
ps
.
Conn
)
(
*
Conn
,
error
)
{
// grab the underlying connection.
if
_
,
ok
:=
psc
.
NetConn
()
.
(
iconn
.
Conn
);
!
ok
{
...
...
swarm_stream.go
View file @
0ff1abb2
...
...
@@ -9,14 +9,11 @@ import (
// Stream is a wrapper around a ps.Stream that exposes a way to get
// our Conn and Swarm (instead of just the ps.Conn and ps.Swarm)
type
Stream
struct
{
stream
*
ps
.
Stream
protocol
protocol
.
ID
}
type
Stream
ps
.
Stream
// Stream returns the underlying peerstream.Stream
func
(
s
*
Stream
)
Stream
()
*
ps
.
Stream
{
return
s
.
s
tream
return
(
*
p
s
.
S
tream
)(
s
)
}
// Conn returns the Conn associated with this Stream, as an inet.Conn
...
...
@@ -26,43 +23,29 @@ func (s *Stream) Conn() inet.Conn {
// SwarmConn returns the Conn associated with this Stream, as a *Conn
func
(
s
*
Stream
)
SwarmConn
()
*
Conn
{
return
(
*
Conn
)(
s
.
s
tream
.
Conn
())
return
(
*
Conn
)(
s
.
S
tream
()
.
Conn
())
}
// Read reads bytes from a stream.
func
(
s
*
Stream
)
Read
(
p
[]
byte
)
(
n
int
,
err
error
)
{
return
s
.
s
tream
.
Read
(
p
)
return
s
.
S
tream
()
.
Read
(
p
)
}
// Write writes bytes to a stream, flushing for each call.
func
(
s
*
Stream
)
Write
(
p
[]
byte
)
(
n
int
,
err
error
)
{
return
s
.
s
tream
.
Write
(
p
)
return
s
.
S
tream
()
.
Write
(
p
)
}
// Close closes the stream, indicating this side is finished
// with the stream.
func
(
s
*
Stream
)
Close
()
error
{
return
s
.
s
tream
.
Close
()
return
s
.
S
tream
()
.
Close
()
}
func
(
s
*
Stream
)
Protocol
()
protocol
.
ID
{
return
s
.
p
rotocol
return
(
*
ps
.
Stream
)(
s
)
.
P
rotocol
()
}
func
(
s
*
Stream
)
SetProtocol
(
p
protocol
.
ID
)
{
s
.
protocol
=
p
}
func
wrapStream
(
pss
*
ps
.
Stream
)
*
Stream
{
return
&
Stream
{
stream
:
pss
,
}
}
func
wrapStreams
(
st
[]
*
ps
.
Stream
)
[]
*
Stream
{
out
:=
make
([]
*
Stream
,
len
(
st
))
for
i
,
s
:=
range
st
{
out
[
i
]
=
wrapStream
(
s
)
}
return
out
(
*
ps
.
Stream
)(
s
)
.
SetProtocol
(
p
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment