2011-01-04 5 views
1

고객이 이상한 프로필로 연결 실패를보고했습니다. 앱이 시작된 이후로 CFNetwork를 통한 첫 번째 URL 요청에 대해서만 실패합니다.CFStreamErrorHTTP 도메인의 CFNetwork 오류 -4는 무엇을 의미합니까?

CFNetwork에서 분명히 반환하는 오류 코드는 도메인 CFStreamErrorHTTP이지만이 도메인에 대해 공개적으로 정의 된 오류 코드와 일치하지 않는 오류 코드 -4가 있습니다.

CFHTTPStream.h에서 CFStreamErrorHTTP에 대해 공개적으로 정의 된 오류 코드는 -3에서 길조로 끝나며 -4가 Apple이 사용하고 있지만 아직 공개적으로 문서화되지 않은 오류 코드 일 수 있음을 강력히 암시합니다.

여기에 무슨 일이 일어나고 있는지 아십니까? 다른 사람이이 오류 코드를 보았고 운율이나 이유를 발견 했습니까?

+1

그들은 인터넷에 어떻게 연결하고 있습니까? 그것이 CLEAR 또는 4G 무언가 또는 다른 아마 그것의 모뎀이 재 연결하는 동안 요구를 떨어 뜨리는 경우에? – atebits

+0

좋은 생각으로 그들은 일반 케이블 ISP를 통해 연결하고 있습니다. 예를 들어 제 3 자 소프트웨어와 관련이 있는지 궁금합니다. 리틀 스 니치 (Little Snitch)처럼. 그들과 함께 확인. – danielpunkass

답변

3

아마도 최종 답변이 아니며 소스가있는 CFNetwork를 닫은 이후로 변경되었을 수 있습니다. 그러나 다음과 같은 온라인은 -4가 연결이 끊어진 오류임을 나타냅니다.

http://www.opensource.apple.com/source/CFNetwork/CFNetwork-129.9/HTTP/CFHTTPConnection.c

+0

고마워요! 그것은 좋은 발견이며 고객이보고있는 것과 설명에 해당합니다. 이제 연결이 첫 번째 시도에서 손실되는 이유를 알아낼 수 있다면 ... – danielpunkass

+0

친구가 지적한 MacNetworkProg의 이전 게시물 : http://lists.apple.com/archives/macnetworkprog/2009/Mar /msg00007.html – danielpunkass

+0

앱이 시작되기 전에 폐쇄 된 일종의 VPN 위에 있습니까? 일반적으로 앱이 시작될 때 기기/Mac은 어떤 조건입니까? – madninja

0

난 당신이 실패한 것 코드의 일부를 표시해야합니다 생각하지만, 몇 가지 질문이 마음에 봄. 첫째,이 문제를 직접 추적 할 수 있습니까? 재현 할 수 있습니까? 특히 이것이 어떤 스레드에서 발생하는지, 그리고 현재 runLoop 모드가 무엇인지 보는 것은 흥미로울 것입니다. 내부 CF runloops에서 스케줄링에 실패한 스트림 또는 연결을 나타낼 수 있습니다.

이 외에도 (CFNetwork는 더 이상 공개적으로 업데이트되지 않습니다.) 많은 일이 될 수 있지만 실패를 직접 디버그 할 수없는 경우 많은 정보를 기록해야합니다 (예 : 힌트 힌트 - https://github.com/fpillet/NSLogger을 사용하면 클라이언트에서 정보를 원격으로 기록 할 수 있습니다.

마지막으로 Mac Dev Forums (또는 iOS 개발자 포럼에서 코드가 iOS에서 실행되는 경우)에서 질문하십시오. Ping Quinn, 그는 그것을 모두 알고 있습니다. 공개적으로 질문에 대답 할 수 없으면 DTS 사건을 열고 티켓 #을 보내주십시오. 그는 당신이 당신의 문제를 조사하고자하는 사람입니다 :-)

+0

클라이언트가 동일한 컴퓨터 (즉, 공용 Wifi 핫스팟 또는 다른 위치)에서 다른 연결 구성을 시도하게하십시오. 작동하는 경우이 특정 네트워크 구성에 대한 문제를 피할 수 있습니다. 또한 SSL을 사용하는 경우 코드가 서명되어 있는지 확인하십시오. – fpillet

관련 문제