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.
|
data := raw := dataStream next asInteger.
|
||||||
nib := (data bitAnd: 252) bitShift: -2.
|
nib := (data bitAnd: 252) bitShift: -2.
|
||||||
mimeStream nextPut: (ToCharTable at: nib + 1).
|
mimeStream nextPut: (ToCharTable at: nib + 1).
|
||||||
(raw := dataStream next) ifNil:
|
dataStream atEnd
|
||||||
[raw := 0.
|
ifTrue: [raw := 0. phase1 := true]
|
||||||
phase1 := true].
|
ifFalse: [raw := dataStream next].
|
||||||
data := ((data bitAnd: 3) bitShift: 8) + raw asInteger.
|
data := ((data bitAnd: 3) bitShift: 8) + raw asInteger.
|
||||||
nib := (data bitAnd: 1008) bitShift: -4.
|
nib := (data bitAnd: 1008) bitShift: -4.
|
||||||
mimeStream nextPut: (ToCharTable at: nib + 1).
|
mimeStream nextPut: (ToCharTable at: nib + 1).
|
||||||
(raw := dataStream next) ifNil:
|
dataStream atEnd
|
||||||
[raw := 0.
|
ifTrue: [raw := 0. phase2 := true]
|
||||||
phase2 := true].
|
ifFalse: [raw := dataStream next].
|
||||||
data := ((data bitAnd: 15) bitShift: 8) + raw asInteger.
|
data := ((data bitAnd: 15) bitShift: 8) + raw asInteger.
|
||||||
nib := (data bitAnd: 4032) bitShift: -6.
|
nib := (data bitAnd: 4032) bitShift: -6.
|
||||||
mimeStream nextPut: (ToCharTable at: nib + 1).
|
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.SIPDigestTest</sunit>
|
||||||
<sunit>Osmo.SIPRegisterTransactionTest</sunit>
|
<sunit>Osmo.SIPRegisterTransactionTest</sunit>
|
||||||
<sunit>Osmo.SIPInviteTest</sunit>
|
<sunit>Osmo.SIPInviteTest</sunit>
|
||||||
|
<sunit>Osmo.SIPBase64Test</sunit>
|
||||||
<filein>grammar/SIPGrammarTest.st</filein>
|
<filein>grammar/SIPGrammarTest.st</filein>
|
||||||
<filein>callagent/tests/SIPParserTest.st</filein>
|
<filein>callagent/tests/SIPParserTest.st</filein>
|
||||||
<filein>callagent/tests/Tests.st</filein>
|
<filein>callagent/tests/Tests.st</filein>
|
||||||
|
@ -79,5 +80,6 @@
|
||||||
<filein>callagent/tests/SIPTransportMock.st</filein>
|
<filein>callagent/tests/SIPTransportMock.st</filein>
|
||||||
<filein>callagent/tests/SIPRegisterTransactionTest.st</filein>
|
<filein>callagent/tests/SIPRegisterTransactionTest.st</filein>
|
||||||
<filein>callagent/tests/SIPInviteTest.st</filein>
|
<filein>callagent/tests/SIPInviteTest.st</filein>
|
||||||
|
<filein>callagent/tests/SIPBase64Test.st</filein>
|
||||||
</test>
|
</test>
|
||||||
</package>
|
</package>
|
||||||
|
|
Reference in New Issue