smalltalk
/
osmo-st-sip
Archived
1
0
Fork 0

callagent: Avoid running into the EndOfStream exception

This commit is contained in:
Holger Hans Peter Freyther 2014-06-02 21:32:01 +02:00
parent 58cd187895
commit 24dbbc986c
3 changed files with 35 additions and 6 deletions

View File

@ -172,15 +172,15 @@ MimeConverter subclass: Base64LikeConverter [
data := raw := dataStream next asInteger.
nib := (data bitAnd: 252) bitShift: -2.
mimeStream nextPut: (ToCharTable at: nib + 1).
(raw := dataStream next) ifNil:
[raw := 0.
phase1 := true].
dataStream atEnd
ifTrue: [raw := 0. phase1 := true]
ifFalse: [raw := dataStream next].
data := ((data bitAnd: 3) bitShift: 8) + raw asInteger.
nib := (data bitAnd: 1008) bitShift: -4.
mimeStream nextPut: (ToCharTable at: nib + 1).
(raw := dataStream next) ifNil:
[raw := 0.
phase2 := true].
dataStream atEnd
ifTrue: [raw := 0. phase2 := true]
ifFalse: [raw := dataStream next].
data := ((data bitAnd: 15) bitShift: 8) + raw asInteger.
nib := (data bitAnd: 4032) bitShift: -6.
mimeStream nextPut: (ToCharTable at: nib + 1).

View File

@ -0,0 +1,27 @@
"
(C) 2011,2014 by Holger Hans Peter Freyther
All Rights Reserved
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
"
TestCase subclass: SIPBase64Test [
<category: 'OsmoSIP-Callagent-Tests'>
testBase64Encode [
self assert: (SIPBase64 encode: 'abcd') equals: 'YWJjZA__'.
self assert: (SIPBase64 encode: 'abce232321321321323123123') equals: 'YWJjZTIzMjMyMTMyMTMyMTMyMzEyMzEyMw__'.
self shouldnt: [SIPBase64 encode: 'abcd' readStream] raise: SystemExceptions.EndOfStream.
]
]

View File

@ -71,6 +71,7 @@
<sunit>Osmo.SIPDigestTest</sunit>
<sunit>Osmo.SIPRegisterTransactionTest</sunit>
<sunit>Osmo.SIPInviteTest</sunit>
<sunit>Osmo.SIPBase64Test</sunit>
<filein>grammar/SIPGrammarTest.st</filein>
<filein>callagent/tests/SIPParserTest.st</filein>
<filein>callagent/tests/Tests.st</filein>
@ -79,5 +80,6 @@
<filein>callagent/tests/SIPTransportMock.st</filein>
<filein>callagent/tests/SIPRegisterTransactionTest.st</filein>
<filein>callagent/tests/SIPInviteTest.st</filein>
<filein>callagent/tests/SIPBase64Test.st</filein>
</test>
</package>