1
0
spogulis no https://bitbucket.org/s_l_teichmann/mtsatellite synced 2025-10-31 16:15:27 +01:00
Šī revīzija ir iekļauta:
Sascha L. Teichmann
2015-05-26 18:14:48 +02:00
revīzija af469a3173
8 mainīti faili ar 41 papildinājumiem un 51 dzēšanām

Parādīt failu

@@ -55,7 +55,7 @@ func (ct *ChangeTracker) FlushChanges(url string) {
go func() {
changes := make([]quantizedXZ, len(oldChanges))
i := 0
for change, _ := range oldChanges {
for change := range oldChanges {
changes[i] = change
i++
}

Parādīt failu

@@ -22,16 +22,18 @@ var (
)
type Connection struct {
conn net.Conn
session Session
boolArray []bool
conn net.Conn
session Session
maxBulkStringSize int64
boolArray []bool
}
func NewConnection(conn net.Conn, session Session) *Connection {
func NewConnection(conn net.Conn, session Session, maxBulkStringSize int64) *Connection {
return &Connection{
conn: conn,
session: session,
boolArray: []bool{}}
conn: conn,
session: session,
maxBulkStringSize: maxBulkStringSize,
boolArray: []bool{}}
}
func (c *Connection) Run() {
@@ -41,7 +43,7 @@ func (c *Connection) Run() {
}()
rce := NewRedisCommandExecutor(c)
r := bufio.NewReaderSize(c.conn, 8*1024)
parser := NewRedisParser(r, rce)
parser := NewRedisParser(r, rce, c.maxBulkStringSize)
parser.Parse()
log.Println("client disconnected")
}

Parādīt failu

@@ -16,9 +16,10 @@ import (
)
const (
Version = "0.3"
GCDuration = "24h"
ChangeDuration = "30s"
defaultMaxBulkStringSize = 32 * 1024 * 1024
Version = "0.3"
GCDuration = "24h"
ChangeDuration = "30s"
)
func usage() {
@@ -31,15 +32,16 @@ func usage() {
func main() {
var (
port int
host string
driver string
cacheSize int
version bool
interleaved bool
changeUrl string
gcDuration string
changeDuration string
port int
host string
driver string
cacheSize int
version bool
interleaved bool
changeUrl string
gcDuration string
changeDuration string
maxBulkStringSize int64
)
flag.Usage = usage
@@ -56,6 +58,8 @@ func main() {
flag.StringVar(&changeDuration,
"change-duration", ChangeDuration, "Duration to aggregate changes.")
flag.StringVar(&changeUrl, "change-url", "", "URL to send changes to.")
flag.Int64Var(&maxBulkStringSize, "max-bulk-string-size", defaultMaxBulkStringSize,
"max size of a bulk string to be accepted as input (in bytes).")
flag.Parse()
if version {
@@ -147,7 +151,7 @@ func main() {
log.Printf("Cannot create session: %s", err)
conn.Close()
} else {
go NewConnection(conn, session).Run()
go NewConnection(conn, session, maxBulkStringSize).Run()
}
case <-sigChan:
log.Println("Shutting down")

Parādīt failu

@@ -14,8 +14,6 @@ import (
"strings"
)
const maxBulkStringSize = 8 * 1024 * 1024
type RedisConsumer interface {
ConsumeInteger(int64) bool
ConsumeArray(int64) bool
@@ -25,14 +23,17 @@ type RedisConsumer interface {
}
type RedisParser struct {
reader *bufio.Reader
consumer RedisConsumer
reader *bufio.Reader
consumer RedisConsumer
maxBulkStringSize int64
}
func NewRedisParser(reader *bufio.Reader, consumer RedisConsumer) *RedisParser {
func NewRedisParser(reader *bufio.Reader, consumer RedisConsumer,
maxBulkStringSize int64) *RedisParser {
return &RedisParser{
reader: reader,
consumer: consumer}
reader: reader,
consumer: consumer,
maxBulkStringSize: maxBulkStringSize}
}
func (rp *RedisParser) Parse() {
@@ -95,7 +96,7 @@ func (rp *RedisParser) bulkString(line []byte) bool {
case i == 0:
return rp.consumer.ConsumeBulkString([]byte{})
default:
if i > maxBulkStringSize { // prevent denial of service.
if i > rp.maxBulkStringSize { // prevent denial of service.
return rp.consumer.ConsumeError(
fmt.Errorf("Bulk string too large (%d bytes).\n", i))
}

Parādīt failu

@@ -15,10 +15,7 @@ import (
)
const (
width = 18
height = 18
baseLevelDir = "8"
yOrderCapacity = 512
baseLevelDir = "8"
)
type blockPos struct {