Skip to content

Commit

Permalink
formatting
Browse files Browse the repository at this point in the history
  • Loading branch information
sarp committed Sep 6, 2024
1 parent 31c1402 commit debc214
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 44 deletions.
10 changes: 10 additions & 0 deletions internal/stage_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,16 @@ var samplePieceHashes = []string{
"aec2d7eb1db539c2a9d24d023fb916b79234b769",
}

type TestTorrentInfo struct {
filename string
outputFilename string
tracker string
infohash string
length int64
expectedSha1 string
incorrectSha1 []string
}

var testTorrents = []TestTorrentInfo{
{
filename: "codercat.gif.torrent",
Expand Down
89 changes: 45 additions & 44 deletions internal/stage_magnet_helpers.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,53 +13,28 @@ import (
)

type MagnetTestParams struct {
TrackerAddress string
PeerPort int
PeerAddress string
PeersResponse []byte
ExpectedInfoHash [20]byte
ExpectedReservedBytes []byte
ExpectedPeerID [20]byte
MyMetadataExtensionID uint8
MagnetUrlEncoded string
MagnetLinkInfo MagnetTestTorrentInfo
Logger *logger.Logger
TrackerAddress string
PeerPort int
PeerAddress string
PeersResponse []byte
ExpectedInfoHash [20]byte
ExpectedReservedBytes []byte
ExpectedPeerID [20]byte
MyMetadataExtensionID uint8
MagnetUrlEncoded string
MagnetLinkInfo MagnetTestTorrentInfo
Logger *logger.Logger
}

type MagnetTestTorrentInfo struct {
Filename string
InfoHashStr string
FileLengthBytes int
PieceLengthBytes int
MetadataSizeBytes int
Bitfield []byte
PieceHashes []string
ExpectedSha1 string
}

func (m *MagnetTestParams) toTrackerParams() TrackerParams {
return TrackerParams {
trackerAddress: m.TrackerAddress,
peersResponse: m.PeersResponse,
expectedInfoHash: m.ExpectedInfoHash,
fileLengthBytes: m.MagnetLinkInfo.FileLengthBytes,
logger: m.Logger,
myMetadataExtensionID: m.MyMetadataExtensionID,
}
}

func (m *MagnetTestParams) toPeerConnectionParams() PeerConnectionParams {
return PeerConnectionParams {
address: m.PeerAddress,
myPeerID: m.ExpectedPeerID,
infoHash: m.ExpectedInfoHash,
expectedReservedBytes: [][]byte{m.ExpectedReservedBytes},
myMetadataExtensionID: m.MyMetadataExtensionID,
metadataSizeBytes: m.MagnetLinkInfo.MetadataSizeBytes,
bitfield: m.MagnetLinkInfo.Bitfield,
magnetLink: m.MagnetLinkInfo,
logger: m.Logger,
}
Filename string
InfoHashStr string
FileLengthBytes int
PieceLengthBytes int
MetadataSizeBytes int
Bitfield []byte
PieceHashes []string
ExpectedSha1 string
}

var magnetTestTorrents = []MagnetTestTorrentInfo {
Expand Down Expand Up @@ -105,6 +80,31 @@ var magnetTestTorrents = []MagnetTestTorrentInfo {
},
}

func (m *MagnetTestParams) toTrackerParams() TrackerParams {
return TrackerParams {
trackerAddress: m.TrackerAddress,
peersResponse: m.PeersResponse,
expectedInfoHash: m.ExpectedInfoHash,
fileLengthBytes: m.MagnetLinkInfo.FileLengthBytes,
logger: m.Logger,
myMetadataExtensionID: m.MyMetadataExtensionID,
}
}

func (m *MagnetTestParams) toPeerConnectionParams() PeerConnectionParams {
return PeerConnectionParams {
address: m.PeerAddress,
myPeerID: m.ExpectedPeerID,
infoHash: m.ExpectedInfoHash,
expectedReservedBytes: [][]byte{m.ExpectedReservedBytes},
myMetadataExtensionID: m.MyMetadataExtensionID,
metadataSizeBytes: m.MagnetLinkInfo.MetadataSizeBytes,
bitfield: m.MagnetLinkInfo.Bitfield,
magnetLink: m.MagnetLinkInfo,
logger: m.Logger,
}
}

func NewMagnetTestParams(magnetLink MagnetTestTorrentInfo, logger *logger.Logger) (*MagnetTestParams, error) {
params := MagnetTestParams{}

Expand All @@ -122,6 +122,7 @@ func NewMagnetTestParams(magnetLink MagnetTestTorrentInfo, logger *logger.Logger
}
trackerAddress := fmt.Sprintf("127.0.0.1:%d", trackerPort)
params.TrackerAddress = trackerAddress

infoHashStr := magnetLink.InfoHashStr
params.MagnetUrlEncoded = "magnet:?xt=urn:btih:" + infoHashStr + "&dn=" + magnetLink.Filename + "&tr=http%3A%2F%2F" + trackerAddress + "%2Fannounce"

Expand Down

0 comments on commit debc214

Please sign in to comment.