Compare commits

..

No commits in common. "3e2320a5f4e5c11916bcd51ce057e150d00b4f5c" and "7830bfeaa5ec613e203784491b967007e6ccc550" have entirely different histories.

2 changed files with 11 additions and 23 deletions

View file

@ -8,24 +8,22 @@ This is a fork from [james4k/rcon](https://github.com/james4k/rcon) with the sup
// Establish a connection.
remoteConsole, err := rcon.Dial("127.0.0.1", "password")
if err != nil {
log.Fatal(err)
fmt.Println(err)
}
// Close the connection at the end to free the used resources.
defer remoteConsole.Close()
// Send a command.
requestID, err := remoteConsole.Write("command")
if err != nil {
log.Fatal(err)
fmt.Println(err)
}
// Read the response.
// Read the response
response, responseID, err := remoteConsole.Read()
if err != nil {
log.Fatal(err)
fmt.Println(err)
}
if requestID != responseID {
log.Fatal("response id doesn't match the request id!")
fmt.Println("response id doesn't match the request id!")
}
fmt.Println(response)

20
rcon.go
View file

@ -1,12 +1,3 @@
/*
A Go written library for the RCON Protocol from Valve.
Information to the protocol can be found under:
https://developer.valvesoftware.com/wiki/Source_RCON_Protocol
This is a fork from https://github.com/james4k/rcon with the support for go
modules and with a rework of the original implementation for better readability.
*/
package rcon
import (
@ -19,6 +10,8 @@ import (
"time"
)
// Information to the protocol can be found under: https://developer.valvesoftware.com/wiki/Source_RCON_Protocol
const (
typeAuth = 3
typeExecCommand = 2
@ -85,16 +78,13 @@ func Dial(host, password string) (*RemoteConsole, error) {
return nil, err
}
remoteConsole := &RemoteConsole{
conn: conn,
readBuff: make([]byte, maxPackageSize+fieldPackageSize),
}
remoteConsole.auth(password, timeout)
r := &RemoteConsole{conn: conn, readBuff: make([]byte, maxPackageSize+fieldPackageSize)}
r.auth(password, timeout)
if err != nil {
return nil, err
}
return remoteConsole, nil
return r, nil
}
// LocalAddr returns the local network address.