ipv6访问samba服务器失败

问题来源:

接触samba已经有一段时间了,前段时间遇到了ipv6访问samba服务器失败的问题,这个问题花费了时间挺长,现在将它记录下来。

众所周知,samba源码编译后可以同时支持ipv4和ipv6访问,对于samba在ubuntu的下载与安装,可以参考我的博文(https://blog.csdn.net/u010990478/article/details/102581475),之所以会遇到上述问题,本人需要对官网的samba源码进行剪裁,使之可以运行在特定的嵌入式板子上。

错误原因:

在samba-4.0.24\lib\replace路径下,存在名为getaddrinfo.c的文件,该文件说明如下图所示,主要定义了一些函数,如getaddrinfo等,在当前平台没有这些函数时可以使用。但都只支持ipv4,不支持ipv6。我当前使用的嵌入式板子集成了linux kernel,具有getaddrinfo等库函数。而我错误在makefile中编译了此文件,导致samba ipv6 server一直建立失败。

解决方案:

在makefile中去掉对getaddrinfo.c文件的编译,并且在samba的config.h文件中声明本平台支持getaddrinfo函数功能即#define HAVE_GETADDRINFO 1

 

对于getaddrinfo函数,大家可以参考博文:

https://www.cnblogs.com/fnlingnzb-learner/p/7542770.html

https://linux.die.net/man/3/getaddrinfo

https://www.cnblogs.com/battzion/p/4235562.html

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章