This commit is contained in:
Lei Xue
2017-08-02 19:44:13 +08:00
parent fcb96b323d
commit 787d872a30
2 changed files with 5 additions and 9 deletions

View File

@@ -24,7 +24,6 @@ import (
"github.com/gostor/gotgt/pkg/api" "github.com/gostor/gotgt/pkg/api"
"github.com/gostor/gotgt/pkg/util" "github.com/gostor/gotgt/pkg/util"
"github.com/gostor/gotgt/pkg/util/pool"
) )
const ( const (
@@ -126,13 +125,12 @@ func (c *iscsiConnection) init() {
sort.Sort(c.loginParam.sessionParam) sort.Sort(c.loginParam.sessionParam)
} }
func (c *iscsiConnection) readData(size int) ([]byte, int, error) { func (c *iscsiConnection) readData(buf []byte) (int, error) {
var buf = pool.NewBuffer(size)
length, err := io.ReadFull(c.conn, buf) length, err := io.ReadFull(c.conn, buf)
if err != nil { if err != nil {
return nil, -1, err return -1, err
} }
return buf, length, nil return length, nil
} }
func (c *iscsiConnection) write(resp []byte) (int, error) { func (c *iscsiConnection) write(resp []byte) (int, error) {

View File

@@ -217,7 +217,7 @@ func (s *ISCSITargetDriver) rxHandler(conn *iscsiConnection) {
switch conn.rxIOState { switch conn.rxIOState {
case IOSTATE_RX_BHS: case IOSTATE_RX_BHS:
log.Debug("rx handler: IOSTATE_RX_BHS") log.Debug("rx handler: IOSTATE_RX_BHS")
buf, length, err = conn.readData(BHS_SIZE) length, err = conn.readData(buf)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return return
@@ -227,7 +227,6 @@ func (s *ISCSITargetDriver) rxHandler(conn *iscsiConnection) {
conn.state = CONN_STATE_CLOSE conn.state = CONN_STATE_CLOSE
return return
} }
//conn.rxBuffer = buf
cmd, err = parseHeader(buf) cmd, err = parseHeader(buf)
if err != nil { if err != nil {
log.Error(err) log.Error(err)
@@ -262,12 +261,11 @@ func (s *ISCSITargetDriver) rxHandler(conn *iscsiConnection) {
cmd.RawData = pool.NewBuffer(dl) cmd.RawData = pool.NewBuffer(dl)
length := 0 length := 0
for length < dl { for length < dl {
b, l, err := conn.readData(dl - length) l, err := conn.readData(cmd.RawData[length:])
if err != nil { if err != nil {
log.Error(err) log.Error(err)
return return
} }
copy(cmd.RawData[length:], b)
length += l length += l
} }
if length != dl { if length != dl {