만, 64 비트에서 내 로그인 코드를 실행하기에 따라 나는 나의 초기 테스트를 위해 talk.google.com에 로그인 할 수있는 오류를 얻고있다. 32 비트가 잘 작동합니다. 로깅 매크로와 siginput 로깅을 가능하게되면64 비트 : ERROR_INVALID_TOKEN
, 나는에 실패 년대 XML이라고 볼 수있는이 : 해외 거주자 내부
<stream:stream from="gmail.com" id="3D9A4487B8514DE2" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">\232\231\377
내가 던져지는 XML_ERROR_INVALID_TOKEN
이 있음을 볼 수 있습니다,하지만 난 확실히 아니에요 거기서 어디로 가야하는지. 때로는 실제 로그인으로 만들지 만 잠시 후에 죽습니다. 상대적으로 무작위로 보이지만 처음 10 응답 내에서 항상 사망합니다. 나는 마지막에 쓰레기 데이터가 무효화 된 토큰을 일으키는 원인이 될 수 있지만 그 원인을 모르는 것이라고 알고 있습니다.
처음 생각했을 때 64 비트 (??)으로 전환 할 때 인코딩 문제가 있었지만 정직하게, 나는 그런 일이 발생할만한 원인이 무엇인지 모릅니다.
137[000:568] RECV <<<<<<<<<<<<<<<<<<<<<<<<< : Thu Feb 21 00:01:31 2013
[000:568] \332
[000:568] <iq id="2" type="result">
[000:568] <bind xmlns="urn:ietf:params:xml:ns:xmpp-bind">
[000:568] <jid>
[000:568] [email protected]/CD6FF
[000:568] </jid>
[000:568] </bind>
[000:568] </iq>
<iq id="2" type="result"><bind xmlns="urn:ietf:params:xml:ns:xmpp-bind"><jid>[email protected]/CD6FF</jid></bind></iq>x\332Mhanism>X-OAUTH2</mechanism></mechanisms></stream:features>p
그리고 또 다른 :
[000:217] <stream:stream from="gmail.com" id="2462F624C942" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">
<stream:stream from="gmail.com" id="246E4B24C942" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">\225\231\377
또 다른 :
139[000:178] RECV <<<<<<<<<<<<<<<<<<<<<<<<< : Thu Feb 21 00:20:52 2013
[000:178] <stream:stream from="gmail.com" id="B15C99514B664586" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">
<stream:stream from="gmail.com" id="B15C99514B664586" version="1.0" xmlns:stream="http://etherx.jabber.org/streams" xmlns="jabber:client">\366\231\377
또 다른 :
52[000:243] RECV <<<<<<<<<<<<<<<<<<<<<<<<< : Thu Feb 21 00:23:44 2013
[000:243] Q
[000:243] <success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>
<success xmlns="urn:ietf:params:xml:ns:xmpp-sasl"/>\261xml:ns:xmpp-sasl"><mechanism>PLAIN</mechanism><mechanism>X-GOOGLE-TOKEN</mechanism><mechanism>X-OAUTH2</mechanism></mechanisms></stream:features>Q
여기
은 libjingle가에 죽는 로그에서 추가 예제 코드 조각입니다
누구든지 이전에 이런 유형의 문제가 발생 했습니까?
Expat는이 스 니펫별로 기본적으로 UTF8을 사용하고 있습니다 (https://gist.github.com/zero1zero/ea566a5bbbafdfb253a1). XML_UNICODE이 (가) 내 xcode 프로젝트에 설정되어 있지 않습니다. 또한 libjingle이 https://gist.github.com/zero1zero/e4088d25efc9200f0993을 통해 UTF8 스트림을 확인하는지 확인했습니다. 잠깐 동안 인코딩 불일치가 있다고 가정하면, 어떤 불일치로 인해 ascii 문자가 여전히 이와 같이 올바르게 렌더링됩니다. – Zack
ASCII 문자 0x00-0x7f의 표현은 us-ascii와 utf-8 인코딩간에 차이가 없으므로 문자, 숫자, "프로그래머 기호"가 잘 나옵니다. – collapsar
정확히, 구문 분석 할 xml의 시작과 끝만 잘못 나오는 것은 당연한 것입니다. 대부분의 경우, 그것은 완전히 정크하거나 올바르게 작동해야합니다. 현재의 생각은 32 비트에서 64 비트로의 전환이 어떤 문제를 일으키는 지 중심에 있습니다. 나는 처음과 끝에서 정크 바이트를 유발할 수있는 것에 아직도 정체 상태이다. – Zack