}
}
-func (msg Message) RequestSpec() RequestSpec {
- return RequestSpec{msg.Index, msg.Begin, msg.Length}
+func (msg Message) RequestSpec() (ret RequestSpec) {
+ return RequestSpec{
+ msg.Index,
+ msg.Begin,
+ func() Integer {
+ if msg.Type == Piece {
+ return Integer(len(msg.Piece))
+ } else {
+ return msg.Length
+ }
+ }(),
+ }
}
func (msg Message) MustMarshalBinary() []byte {
package peer_protocol
+import "fmt"
+
type RequestSpec struct {
Index, Begin, Length Integer
}
+
+func (me RequestSpec) String() string {
+ return fmt.Sprintf("{%d %d %d}", me.Index, me.Begin, me.Length)
+}