pest done
This commit is contained in:
parent
00fa90c6db
commit
4eaf1f34cd
18
pest.go
18
pest.go
@ -6,6 +6,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
"bytes"
|
||||||
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
const PACKET_HELLO = 0x50
|
const PACKET_HELLO = 0x50
|
||||||
@ -45,12 +46,13 @@ func (r *PacketReader) Read(b []byte) (int, error) {
|
|||||||
if ! r.started {
|
if ! r.started {
|
||||||
return 0, fmt.Errorf("read called but not started")
|
return 0, fmt.Errorf("read called but not started")
|
||||||
}
|
}
|
||||||
|
fmt.Printf("rd %d cnt %d left %d\n", len(b), r.count, bytesLeft)
|
||||||
n, err := r.base.Read(b)
|
n, err := r.base.Read(b)
|
||||||
if err != nil { return 0, err }
|
if err != nil { return 0, err }
|
||||||
for i := 0; i < n; i++ {
|
for i := 0; i < n; i++ {
|
||||||
r.sum += b[i]
|
r.sum += b[i]
|
||||||
}
|
}
|
||||||
r.count += uint(len(b))
|
r.count += uint(n)
|
||||||
return n, err
|
return n, err
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -372,6 +374,7 @@ func readDeletePolicyOkPacket(r *PacketReader) error {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func writeError(w *PacketWriter, e error) error {
|
func writeError(w *PacketWriter, e error) error {
|
||||||
|
fmt.Printf("sending error: %s\n", e)
|
||||||
err := w.start(PACKET_ERROR)
|
err := w.start(PACKET_ERROR)
|
||||||
if err != nil { return err }
|
if err != nil { return err }
|
||||||
err = writeLString(w, e.Error())
|
err = writeLString(w, e.Error())
|
||||||
@ -570,13 +573,18 @@ func (s *PestServer) processClient(con net.Conn) {
|
|||||||
|
|
||||||
func (s *PestSession) pestHandler() error {
|
func (s *PestSession) pestHandler() error {
|
||||||
err := readHello(s.r)
|
err := readHello(s.r)
|
||||||
if err != nil { return err }
|
|
||||||
fmt.Println("got hello, sending back")
|
fmt.Println("got hello, sending back")
|
||||||
err = sendHello(s.w)
|
sendHello(s.w)
|
||||||
|
if err != nil {
|
||||||
|
writeError(s.w, err)
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
var v SiteVisitPacket
|
var v SiteVisitPacket
|
||||||
for err == nil {
|
for err == nil {
|
||||||
|
s.con.SetReadDeadline(time.Now().Add(30*time.Second))
|
||||||
v, err = readSiteVisitPacket(s.r)
|
v, err = readSiteVisitPacket(s.r)
|
||||||
if err != nil { return err }
|
if err != nil { break }
|
||||||
fmt.Printf("I %+v\n", v)
|
fmt.Printf("I %+v\n", v)
|
||||||
err := validateSiteVisit(v)
|
err := validateSiteVisit(v)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@ -585,6 +593,8 @@ func (s *PestSession) pestHandler() error {
|
|||||||
s.backend <- v
|
s.backend <- v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
writeError(s.w, err)
|
||||||
|
fmt.Printf("ERROR: %s\n", err)
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user