Comments (4)
ffftpではIPv4 / IPv6を明示的に選択しておらず、Windowsに任せています。
ホスト名が正しいにもかかわらずアクセスできず、IPv4アドレスでアクセスできたのであれば、Windowsの設定としてIPv6が優先されるようになっていると思われます。加えて、IPv6を扱えないネットワーク環境をお持ちの方なのであれば、ffftp単体での解決を目指さず、Windowsの設定としてIPv4を優先したりIPv6を無効化したりをお勧めします。
具体的な実装としてはこの辺りでして、SOCKS v4を使用していない限りはAF_UNSPEC
を指定することでIPv4 / IPv6どちらで接続してもよいとしています。(他方のAF_INET
はIPv4を意味し、ここに登場していないAF_INET6
がIPv6です。)
Lines 1364 to 1379 in 731e225
from ffftp.
ありがとうございます。ソースコードを拝見しました。こういう風になっているんですね。
仰る通りWindowsの設定の方を変更して解決するのは一番スマートではあると思うんですけど、一方で例えばGoogleでもAAAAレコードは設定されているようでして
nslookup type=AAAA google.co.jp
その方からすれば、ブラウザでアクセス出来るのにFFFTPでだけアクセス出来ないということになります。
調べてみますとaddrinfo構造体のai_nextを追うことで複数のアドレスを参照出来るようですけれど、こちらを利用して解決することは難しいでしょうか。
from ffftp.
古い機能がてんこ盛りなスパゲッティコードなため、別アドレスで再接続が簡単には書けないのが実情です。(引用範囲でも名前解決を3回、そのあとにももう2回の名前解決を行っている有様です。)
なお、getaddrinfo
は名前解決を行うのみで、その後にそのアドレスに対して接続を行う必要があります。そして、そこで繋がるまでリトライすることが望まれるわけですが、それを実現する WSAConnectByName
というAPIが既に用意されています。(このAPIはWindows Vista以降専用となっているため、ffftp v5.0でWindows XP対応を廃止するまで利用できずにいました。)
仮にそのような対応をして接続できるようになったとしても、OSの設定は間違ったままなのですから、一旦接続エラーが発生してからの再接続となり、「つながるまでに時間がかかる」と言われる未来が予想されます。基本的には小手先での対処でなく根本解決すべきと思います。
なお、Webブラウザーとは比較されたくありません。Webブラウザーであれば、自社で接続確認用サーバーを立ててプログラム起動時にIPv4 / IPv6 / DNSなどネットワーク環境を調査しています。ffftpにはそのような財力はなく、プログラム単体での処理に制限されます。
否定的なことを書きましたが、 WSAConnectByName
への移行は別途検討しています。
from ffftp.
そんなに名前解決されてたとは知りませんでした。
そうしますと難しいですね。こんなのを見かけたので普通に出来るのかと思ってしまいました。
ブラウザと比較したのはソフトウェアの規模の比較ではなくて、HTTPとFTPの比較です。
念頭にあったのは再接続を繰り返すことでしたので、環境整備まで必要になる開発投資は頭にはなく、それでも感情を逆なでしてしまっていたとあれば、それは申し訳無いです。
from ffftp.
Related Issues (20)
- docディレクトリの整理 HOT 1
- ファイル一覧の表示に時間がかかる HOT 11
- 設定したサウンドが再生されない HOT 1
- SJIS(Windows) のテキスト・ファイルをアスキー・モードでEUC(LINUX)に転送すると改行が挿入される場合がある HOT 6
- コマンドラインでミラーリングが動作せず強制終了する HOT 2
- ファイルをアップロードすると、末尾におかしな文字が追加される HOT 3
- 接続直後に切断されてしまう HOT 7
- ダークモード化 HOT 3
- ミラーリングアップロードの「一覧から削除」が正常に動作しない HOT 2
- XPビルド失敗 HOT 2
- ファイルではなくディレクトリが作成される HOT 2
- 転送時にFFFTPがクラッシュすることがある HOT 2
- 特定のサーバーでファイル一覧の取得に失敗する HOT 4
- アップロード時に同名のファイルがある場合、「新しければ上書き」を指定し、「以降全て」ボタンをクリックしても転送されない場合がある
- 半角スペースのみのファイル名やフォルダ名が正しく表示されない HOT 1
- 接続ホストのヒストリ個数 HOT 1
- ホストの設定→文字コードで 推奨設定を作られたらいかがでしょうか? HOT 6
- 改行がファイルの0x8000区切りの位置を跨ぐとダウンロード時に改行がもう1個増えてしまう
- 接続直後にすぐ「接続できません」と出ます HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from ffftp.