無理やりgethostbyname をタイマー付で実行する技をiOSで試してみたところ
gethostbyname は iOSで実行すると 30秒固定で接続タイムアウトがくっつくので、名前解決ができないと30秒間フリーズしてしまうのは前の記事で書いたのだが
Xcode上だと動作するのに、実環境だと動作しないiOS アプリ
gethostbyname函数阻塞超时实现 - 蓝色矩阵 - 开源中国
signal コマンドと setjmp を併用してタイマー付で gethostbyname を任意のタイムアウトで処理させる関数を中国の人が作ってた((((・ω・)))) こりゃすごいや
どうやら、gethostbynameの処理中に longjmp 呼ぶとダメらしい。
たまにうまく動くのだが、 ランダムに変なアドレスに飛んで死亡する模様。
iOS にはまだ早すぎたのだ ((((・ω・)))) gkbr
Comments