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

 

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