Просмотр исходного кода

Implemented writing len enc strings

Josh Brickner 7 лет назад
Родитель
Сommit
bc23ea64f0
1 измененных файлов с 9 добавлено и 1 удалено
  1. 9 1
      binlog/connection.go

+ 9 - 1
binlog/connection.go

@@ -87,7 +87,7 @@ type Conn struct {
 	err               error
 	sequenceId        uint64
 	writeBuf          *bytes.Buffer
-	StausFlags        *StatusFlags
+	StatusFlags       *StatusFlags
 	Listener          *net.Listener
 	packetHeader      *PacketHeader
 	scanPos           uint64
@@ -533,6 +533,8 @@ func (c *Conn) putString(t int, v string) uint64 {
 	switch t {
 	case TypeFixedString:
 		b = c.encFixedString(v)
+	case TypeLenEncString:
+		b = c.encLenEncString(v)
 	case TypeNullTerminatedString:
 		b = c.encNullTerminatedString(v)
 	case TypeRestOfPacketString:
@@ -547,6 +549,12 @@ func (c *Conn) putString(t int, v string) uint64 {
 	return uint64(l)
 }
 
+func (c *Conn) encLenEncString(v string) []byte {
+	l := uint64(len(v))
+	b := c.encLenEncInt(l)
+	return append(b, c.encFixedString(v)...)
+}
+
 func (c *Conn) encNullTerminatedString(v string) []byte {
 	return append([]byte(v), NullByte)
 }