]> git.r.bdr.sh - rbdr/mobius/blobdiff - hotline/tracker.go
Fix userAdminFlag bug
[rbdr/mobius] / hotline / tracker.go
index 4ee192a4ae398f4b1479cc81f88907bde4f8e48a..63fb279bf29dc53a89c63a7c5e22d2958d613ce3 100644 (file)
@@ -12,11 +12,11 @@ import (
 )
 
 type TrackerRegistration struct {
 )
 
 type TrackerRegistration struct {
-       Port        []byte // Server listening port number
-       UserCount   int    // Number of users connected to this particular server
-       PassID      []byte // Random number generated by the server
-       Name        string // Server name
-       Description string // Description of the server
+       Port        [2]byte // Server listening port number
+       UserCount   int     // Number of users connected to this particular server
+       PassID      []byte  // Random number generated by the server
+       Name        string  // Server name
+       Description string  // Description of the server
 }
 
 func (tr *TrackerRegistration) Payload() []byte {
 }
 
 func (tr *TrackerRegistration) Payload() []byte {
@@ -25,7 +25,7 @@ func (tr *TrackerRegistration) Payload() []byte {
 
        return concat.Slices(
                []byte{0x00, 0x01},
 
        return concat.Slices(
                []byte{0x00, 0x01},
-               tr.Port,
+               tr.Port[:],
                userCount,
                []byte{0x00, 0x00},
                tr.PassID,
                userCount,
                []byte{0x00, 0x00},
                tr.PassID,
@@ -36,7 +36,7 @@ func (tr *TrackerRegistration) Payload() []byte {
        )
 }
 
        )
 }
 
-func register(tracker string, tr TrackerRegistration) error {
+func register(tracker string, tr *TrackerRegistration) error {
        conn, err := net.Dial("udp", tracker)
        if err != nil {
                return err
        conn, err := net.Dial("udp", tracker)
        if err != nil {
                return err
@@ -49,9 +49,6 @@ func register(tracker string, tr TrackerRegistration) error {
        return nil
 }
 
        return nil
 }
 
-type ServerListing struct {
-}
-
 const trackerTimeout = 5 * time.Second
 
 // All string values use 8-bit ASCII character set encoding.
 const trackerTimeout = 5 * time.Second
 
 // All string values use 8-bit ASCII character set encoding.
@@ -67,10 +64,10 @@ type TrackerHeader struct {
        Version  [2]byte // Old protocol (1) or new (2)
 }
 
        Version  [2]byte // Old protocol (1) or new (2)
 }
 
-//Message type 2       1       Sending list of servers
-//Message data size    2               Remaining size of this request
-//Number of servers    2               Number of servers in the server list
-//Number of servers    2               Same as previous field
+// Message type        2       1       Sending list of servers
+// Message data size   2               Remaining size of this request
+// Number of servers   2               Number of servers in the server list
+// Number of servers   2               Same as previous field
 type ServerInfoHeader struct {
        MsgType     [2]byte // always has value of 1
        MsgDataSize [2]byte // Remaining size of request
 type ServerInfoHeader struct {
        MsgType     [2]byte // always has value of 1
        MsgDataSize [2]byte // Remaining size of request
@@ -177,25 +174,6 @@ func (s *ServerRecord) Read(b []byte) (n int, err error) {
        return 12 + nameLen + int(s.DescriptionSize), nil
 }
 
        return 12 + nameLen + int(s.DescriptionSize), nil
 }
 
-//
-//func (s *ServerRecord) UnmarshalBinary(b []byte) (err error) {
-//     r := bytes.NewReader(b[:10])
-//     if err := binary.Read(r, binary.BigEndian, s); err != nil {
-//             return err
-//     }
-//
-//     copy(s.IPAddr[:], b[0:4])
-//     s.Port = b[4:6]
-//     s.NumUsers = b[6:8]
-//     s.NameSize = b[10]
-//     nameLen := int(b[10])
-//     s.Name = b[11 : 11+nameLen]
-//     s.DescriptionSize = b[11+nameLen]
-//     s.Description = b[12+nameLen : 12+nameLen+int(s.DescriptionSize)]
-//
-//     return nil
-//}
-
 func (s *ServerRecord) PortInt() int {
        data := binary.BigEndian.Uint16(s.Port[:])
        return int(data)
 func (s *ServerRecord) PortInt() int {
        data := binary.BigEndian.Uint16(s.Port[:])
        return int(data)