callagent: Avoid running into the EndOfStream exception
This commit is contained in:
parent
58cd187895
commit
24dbbc986c
|
@ -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).
|
||||
|
|
|
@ -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.
|
||||
]
|
||||
]
|
|
@ -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>
|
||||
|
|
Reference in New Issue