@@ -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;
0 commit comments