标签: c unix network-programming ipv6
我目前正在升级我们的软件以支持ipv6,同时我将主机名/ IP字段扩展到最大主机名大小。在sun文档中,它似乎可以达到1025(netdb.h:#define NI_MAXHOST 1025 - 这是推荐的主机名分配定义),但是当我将超过255的主机名传递给getaddrinfo时,我得到“getaddrinfo失败:内存分配失败”。我在Sol10盒子上测试。想法?
答案 0 :(得分:4)
NI_MAXHOST用于getnameinfo(),getaddrinfo()使用MAXHOSTNAMELEN。 (见here),这似乎很难被硬编码 - 而你几乎无能为力。
究竟为什么这些不同我不知道,但参见例如还有here / here有关最大主机名长度的一些信息。
答案 1 :(得分:0)
您别无选择:此限制为255个字符是标准。让我引用RFC 1123,第2.1节:
主机软件必须处理最多63个字符的主机名 应该处理最多255个字符的主机名。