go-bt/addresses.go
Yves Junqueira 7d7d72e53c Move bencode-related methods to the bencode pkg.
This will allow a separation of the dht package.
2012-01-19 22:50:33 +01:00

23 lines
540 B
Go

package bencode
import "fmt"
// These are not strictly bencode features, but often needed by both DHT and
// Torrent clients.
func BinaryToDottedPort(port string) string {
return fmt.Sprintf("%d.%d.%d.%d:%d", port[0], port[1], port[2], port[3],
(uint16(port[4])<<8)|uint16(port[5]))
}
// 97.98.99.100:25958 becames "abcdef".
func DottedPortToBinary(b string) string {
a := make([]byte, 6, 6)
var c uint16
fmt.Sscanf(b, "%d.%d.%d.%d:%d", &a[0], &a[1], &a[2], &a[3], &c)
a[4] = uint8(c >> 8)
a[5] = uint8(c)
return string(a)
}