Skip to content

Commit

Permalink
Merge pull request #222 from NarrativeScience/fix/incomplete-tcp-mess…
Browse files Browse the repository at this point in the history
…ages2

Second attempt to address incomplete TCP messages
  • Loading branch information
msmathers authored Feb 14, 2020
2 parents 2a0d760 + 1802b53 commit 9e798a3
Show file tree
Hide file tree
Showing 7 changed files with 13 additions and 11 deletions.
2 changes: 1 addition & 1 deletion inputs/file/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion inputs/file/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "log.io-file-input",
"version": "0.4.7",
"version": "0.4.8",
"description": "Watches files on disk and sends new messages to the server",
"homepage": "http://logio.org",
"repository": {
Expand Down
2 changes: 1 addition & 1 deletion server/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion server/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "log.io",
"version": "0.4.7",
"version": "0.4.8",
"description": "Listens for new messages over TCP and broadcasts to browsers via socket.io",
"homepage": "http://logio.org",
"repository": {
Expand Down
12 changes: 7 additions & 5 deletions server/src/server.ts
Original file line number Diff line number Diff line change
Expand Up @@ -77,11 +77,13 @@ async function broadcastMessage(
data: Buffer,
): Promise<void> {
// Parse raw message into parts
const msgs = data.toString().split('\0')
// Ignore messages that don't contain null termination character
if (msgs.length === 1) { return }
const validMsgs = msgs.filter(msg => !!msg.trim())
validMsgs.forEach(async (msg) => {
// NOTE: After split on null termination character, last item will always
// be either an empty string or a partial/incomplete message
const msgs = data.toString()
.split('\0')
.slice(0, -1)
.filter(msg => !!msg.trim())
msgs.forEach(async (msg) => {
const msgParts = msg.split('|')
const messageHandler = messageHandlers[msgParts[0]]
if (messageHandler) {
Expand Down
2 changes: 1 addition & 1 deletion ui/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion ui/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "log.io-ui",
"version": "0.4.7",
"version": "0.4.8",
"license": "Apache-2.0",
"private": true,
"dependencies": {
Expand Down

0 comments on commit 9e798a3

Please sign in to comment.