無理やりgethostbyname をタイマー付で実行する技をiOSで試してみたところ

gethostbyname は iOSで実行すると 30秒固定で接続タイムアウトがくっつくので、名前解決ができないと30秒間フリーズしてしまうのは前の記事で書いたのだが

Xcode上だと動作するのに、実環境だと動作しないiOS アプリ

gethostbyname函数阻塞超时实现 - 蓝色矩阵 - 开源中国
signal コマンドと setjmp を併用してタイマー付で gethostbyname を任意のタイムアウトで処理させる関数を中国の人が作ってた((((・ω・)))) こりゃすごいや

早速試した
スクリーンショット 2018-07-06 午前9.42.20
結論、ランダムな確率で死ぬ。

どうやら、gethostbynameの処理中に longjmp 呼ぶとダメらしい。
たまにうまく動くのだが、 ランダムに変なアドレスに飛んで死亡する模様。
iOS にはまだ早すぎたのだ  ((((・ω・)))) gkbr

 

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です