7d7d72e53c
This will allow a separation of the dht package.
23 lines
540 B
Go
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)
|
|
}
|