IPv6接続時、非PASVモードでのアップロードで「Listenソケットが取得できません」
IPv6接続時、非PASVモードでアップロードを行おうとすると、必ず「Listenソケットが取得できません」エラーとなります。
connect.c の GetFTPListenSocketIPv6() 関数において、saCtrlAddr 構造体の初期化がメンバ「sin6_port、 sin6_family、sin6_addr」に対して行われていますが、struct sockaddr_in6 にはこの他にもメンバが存在するため、 値が不定値になってしまいます。
/*===== SOCKSを使わない =====*/ DoPrintf("Use normal BIND"); memset(&saCtrlAddr, 0, sizeof(saCtrlAddr)); saCtrlAddr.sin6_port = htons(0); saCtrlAddr.sin6_family = AF_INET6;
のように構造体全体を初期化するようにすると、エラーは発生しなくなります。
ご報告ありがとうございます。 遅ればせながら、1.99ブランチにて対応いたしました。
対応ありがとうございました。
IPv6接続時、非PASVモードでもアップロードが行えるようになっていることを確認いたしました。
IPv6接続時、非PASVモードでアップロードを行おうとすると、必ず「Listenソケットが取得できません」エラーとなります。
connect.c の GetFTPListenSocketIPv6() 関数において、saCtrlAddr 構造体の初期化がメンバ「sin6_port、 sin6_family、sin6_addr」に対して行われていますが、struct sockaddr_in6 にはこの他にもメンバが存在するため、 値が不定値になってしまいます。
/*===== SOCKSを使わない =====*/ DoPrintf("Use normal BIND"); memset(&saCtrlAddr, 0, sizeof(saCtrlAddr)); saCtrlAddr.sin6_port = htons(0); saCtrlAddr.sin6_family = AF_INET6;
のように構造体全体を初期化するようにすると、エラーは発生しなくなります。