fix string truncation issue (#545)
* fix string truncation issue
Co-authored-by: Li Zhanhui <lizhanhui@apache.org>
diff --git a/.travis.yml b/.travis.yml
index 99f27b5..84a339c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -17,7 +17,7 @@
before_install:
- cd ${TRAVIS_HOME}
- - wget https://opensource-rocketmq-client-us.oss-us-west-1.aliyuncs.com/cpp-client/linux/1.2.4/RHEL7.x/librocketmq.tar.gz
+ - wget https://opensource-rocketmq-client-us.oss-us-west-1.aliyuncs.com/cpp-client/linux/1.2.5/RHEL7.x/librocketmq.tar.gz
- tar -xzf librocketmq.tar.gz
- sudo cp librocketmq.so librocketmq.a /usr/local/lib/
- sudo cp -r rocketmq /usr/local/include/
@@ -26,4 +26,6 @@
script:
- export LD_LIBRARY_PATH=/usr/local/lib
- cd ${GOPATH}/src/github.com/apache/rocketmq-client-go
+ - go get github.com/sirupsen/logrus
+ - go get github.com/stretchr/testify/assert
- go test ./core
diff --git a/core/message.go b/core/message.go
index f6f4637..29ef2ec 100644
--- a/core/message.go
+++ b/core/message.go
@@ -64,7 +64,7 @@
C.free(unsafe.Pointer(cs))
cs = C.CString(gomsg.Body)
- C.SetMessageBody(cmsg, cs)
+ C.SetByteMessageBody(cmsg, cs, C.int(len(gomsg.Body)))
C.free(unsafe.Pointer(cs))
C.SetDelayTimeLevel(cmsg, C.int(gomsg.DelayTimeLevel))
@@ -85,7 +85,7 @@
gomsg.Topic = C.GoString(C.GetOriginMessageTopic(cMsg))
gomsg.Tags = C.GoString(C.GetOriginMessageTags(cMsg))
gomsg.Keys = C.GoString(C.GetOriginMessageKeys(cMsg))
- gomsg.Body = C.GoString(C.GetOriginMessageBody(cMsg))
+ gomsg.Body = C.GoStringN(C.GetOriginMessageBody(cMsg), C.GetOriginMessageBodyLength(cMsg))
gomsg.DelayTimeLevel = int(C.GetOriginDelayTimeLevel(cMsg))
gomsg.cmsg = cMsg
@@ -129,7 +129,7 @@
gomsg.Topic = C.GoString(C.GetMessageTopic(cmsg))
gomsg.Tags = C.GoString(C.GetMessageTags(cmsg))
gomsg.Keys = C.GoString(C.GetMessageKeys(cmsg))
- gomsg.Body = C.GoString(C.GetMessageBody(cmsg))
+ gomsg.Body = C.GoStringN(C.GetMessageBody(cmsg), C.GetMessageBodyLength(cmsg))
gomsg.MessageID = C.GoString(C.GetMessageId(cmsg))
gomsg.DelayTimeLevel = int(C.GetMessageDelayTimeLevel(cmsg))
gomsg.QueueId = int(C.GetMessageQueueId(cmsg))