2010-05-26 1 views
3

현재 ipv6를 지원하기 위해 소프트웨어를 업그레이드하고 있으며 그 사이 hostname/ip 필드를 최대 호스트 이름 크기로 확장합니다. 썬의 문서에서 이것은 1025 (netdb.h : #define NI_MAXHOST 1025 - 이것은 권장되는 호스트 이름 할당 정의) 일 수 있지만, getaddrinfo에 255 이상의 호스트 이름을 전달할 때 "getaddrinfo failed : memory allocation 실패". Sol10 상자에서 테스트하고 있습니다. 아이디어?getaddrinfo에 255 자 이상의 호스트 이름을 전달하면 getaddrinfo가 실패합니다 : 메모리 할당 실패 이유는 무엇입니까?

+1

오류가 발생한 코드를 표시 할 수 있습니까? – luke

+0

작은 호스트 이름으로도 작동합니까? – luke

+0

일반적인 Sol10 제한과 비슷하게 보이지만 호스트 이름도 짧게 제한됩니다. http://chihungchan.blogspot.com/2008/01/hostname-maximum-length-in-solaris.html –

답변

4

NI_MAXHOST는 getnameinfo()를, getaddrinfo()는 MAXHOSTNAMELEN을 사용합니다. (here 참조), 그리고 그것은 꽤 많이 하드 코드 된 것 같습니다 - 그리고 그것에 대해 할 수있는 것은 거의 없습니다.

정확하지 않은 이유는 정확히 무엇인지 모르지만 예를 들어 볼 수 있습니다. 최대 호스트 이름 길이에 대한 정보는 here/here입니다.

0

선택의 여지가 없습니다.이 255 자 제한이 표준입니다.

호스트 소프트웨어는 최대 63 자의 호스트 이름을 처리해야하고 은 최대 255 문자의 호스트 이름을 처리해야한다 : 나를 RFC 1123, 2.1 절을 인용 보자.