Help us shape the future of Go! Take the 2026 Go Developer Survey

rcon

package module
v0.0.0-...-27e2c8c Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2016 License: MIT Imports: 6 Imported by: 0

README

rcon

Build Status Test Coverage GoDoc License

This package implements the rcon protocol for communicating with Source engine servers.

Usage

A simple example:

package main

import (
    "github.com/madcitygg/rcon"
)

func main() {
    r, err := rcon.Dial("10.10.10.10:27015")
    if err != nil {
        panic(err)
    }
    defer r.Close()

    err = r.Authenticate("password")
    if err != nil {
        panic(err)
    }

    response, err := r.Execute("status")
    if err != nil {
        panic(err)
    }

    fmt.Printf("Response: %+v\n", response)
}

Documentation

Index

Constants

View Source
const (
	Auth          int32 = 3
	AuthResponse  int32 = 2
	ExecCommand   int32 = 2
	ResponseValue int32 = 0
)

Variables

View Source
var (
	ErrMergeNoPackets   = errors.New("rcon: no packets to merge")
	ErrMergeInvalidID   = errors.New("rcon: mismatched packet ID in merge")
	ErrMergeInvalidType = errors.New("rcon: mismatched packet type in merge")
)
View Source
var (
	ErrInvalidWrite        = errors.New("rcon: failed to write to remote connection")
	ErrInvalidRead         = errors.New("rcon: failed to read from remote connection")
	ErrInvalidID           = errors.New("rcon: invalid response ID from remote connection")
	ErrInvalidAuthResponse = errors.New("rcon: invalid response type during auth")
	ErrInvalidPacketOrder  = errors.New("rcon: packets from server received out of order")
	ErrAuthFailed          = errors.New("rcon: authentication failed")
)

Functions

This section is empty.

Types

type Packet

type Packet struct {
	Size int32
	ID   int32
	Type int32
	Body string
}

func MergePackets

func MergePackets(packets []*Packet) (*Packet, error)

func NewPacket

func NewPacket(typ int32, body string) *Packet

func (*Packet) Payload

func (p *Packet) Payload() (payload []byte, err error)

type RCON

type RCON struct {
	// TODO: add some more useful stuff here?
	Address string
	// contains filtered or unexported fields
}

func Dial

func Dial(address string) (*RCON, error)

func (*RCON) Authenticate

func (r *RCON) Authenticate(password string) (err error)

func (*RCON) Close

func (r *RCON) Close() error

func (*RCON) Execute

func (r *RCON) Execute(command string) (response *Packet, err error)

func (*RCON) ReadPacket

func (r *RCON) ReadPacket() (response *Packet, err error)

func (*RCON) WritePacket

func (r *RCON) WritePacket(packet *Packet) (err error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL