Skip to content

Commit ae67e78

Browse files
committed
cont fix long session names
1 parent d3e08f9 commit ae67e78

File tree

2 files changed

+21
-20
lines changed

2 files changed

+21
-20
lines changed

src/AppleMIDI_Parser.h

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -78,27 +78,31 @@ class AppleMIDIParser
7878

7979
#ifdef KEEP_SESSION_NAME
8080
uint16_t bi = 0;
81-
while ((i < buffer.size()) && (buffer[i] != 0x00))
81+
while (i < buffer.size())
8282
{
8383
if (bi < DefaultSettings::MaxSessionNameLen)
84-
invitation.sessionName[bi++] = buffer[i];
85-
i++;
84+
invitation.sessionName[bi++] = buffer[i++];
85+
else
86+
i++;
8687
}
8788
invitation.sessionName[bi++] = '\0';
8889
#else
89-
while ((i < buffer.size()) && (buffer[i] != 0x00))
90+
while (i < buffer.size())
9091
i++;
9192
#endif
9293
parserReturn parserReturn = parserReturn::Processed;
9394

94-
if (i > minimumLen && i == buffer.size() && buffer[i] != 0x00)
95-
parserReturn = parserReturn::SessionNameVeryLong;
95+
if (i > minimumLen)
96+
if (i == buffer.size() && buffer[i] != 0x00)
97+
parserReturn = parserReturn::SessionNameVeryLong;
9698

9799
while (i--)
98100
buffer.pop_front(); // consume all the bytes that made up this message
99101

100102
session->ReceivedInvitation(invitation, portType);
101103

104+
int yy = buffer.size();
105+
102106
return parserReturn;
103107
}
104108
else if (0 == memcmp(command, amEndSession, sizeof(amEndSession)))
@@ -266,31 +270,30 @@ class AppleMIDIParser
266270

267271
#ifdef KEEP_SESSION_NAME
268272
uint16_t bi = 0;
269-
while ((i < buffer.size()) && (buffer[i] != 0x00))
273+
while (i < buffer.size())
270274
{
271275
if (bi < DefaultSettings::MaxSessionNameLen)
272-
invitationAccepted.sessionName[bi++] = buffer[i];
273-
i++;
276+
invitationAccepted.sessionName[bi++] = buffer[i++];
277+
else
278+
i++;
274279
}
275280
invitationAccepted.sessionName[bi++] = '\0';
276281
#else
277-
while ((i < buffer.size()) && (buffer[i] != 0x00))
282+
while (i < buffer.size())
278283
i++;
279284
#endif
280-
//// session name is optional.
281-
//// If i > minimum size (16), then a sessionName was provided and must include 0x00
282-
//if (i > minimumLen)
283-
// if (i == buffer.size() || buffer[i++] != 0x00)
284-
// return parserReturn::NotEnoughData;
285285

286286
parserReturn parserReturn = parserReturn::Processed;
287287

288-
if (i > minimumLen && i == buffer.size() && buffer[i] != 0x00)
289-
parserReturn = parserReturn::SessionNameVeryLong;
288+
if (i > minimumLen)
289+
if (i == buffer.size() && buffer[i] != 0x00)
290+
parserReturn = parserReturn::SessionNameVeryLong;
290291

291292
while (i--)
292293
buffer.pop_front(); // consume all the bytes that made up this message
293294

295+
int yy = buffer.size();
296+
294297
session->ReceivedInvitationAccepted(invitationAccepted, portType);
295298

296299
return parserReturn;

test/Ethernet.h

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ class EthernetUDP
4141
0x6f, 0x72, 0x74, 0x20, 0x28, 0x36, 0x34, 0x37, 0x38, 0x3a, 0x30, 0x29, 0x00
4242
};
4343

44-
write(notOKSessionName, sizeof(notOKSessionName));
44+
write(okSessionName, sizeof(okSessionName));
4545

4646
}
4747

@@ -360,8 +360,6 @@ class EthernetUDP
360360

361361
int read()
362362
{
363-
int uu = _buffer.size();
364-
365363
if (_buffer.size() == 0)
366364
return -1;
367365

0 commit comments

Comments
 (0)