# v1.0.1

## 概要

v1.0 のいくつかのバグ修正をしました。

## 主な更新内容

* Dive モジュールの安定性向上
* 軽微なバグフィックス

### サーバー

#### Core

* 新規接続タイミングの変更
* util.Async の非推奨化と util.Pause の追加
* ノイズの多いログを削減

#### **Direct Message**

* keepAlive での DM ユーザーアドレスの TTL 設定

#### **Dive**

* Dive のノードが nodemap に参加しないときがある不具合の修正
* Dive の migration の並列処理によって処理が終わらないことがある不具合の修正

#### Field

* 使用されていない構造体を削除
* パフォーマンス改善

#### **MatchMaker**

* 複数のユニットがある場合にチームマッチが適切に動作しない問題を修正。

**Mesh**

* 正常に読むことが出来なかったエラーログを修正

**Room**

* GetMemberSIDs で、ユーザーが確実に存在しているかを確認するチェックが欠落していた不具合を修正

### クライアント

* Diarkisランタイム
  * 全般
    * Diarkisランタイムのイベント処理において、Diarkis module のインスタンスが破棄された後にイベントが実行され、無効なポインターを参照する可能性があるバグを修正
  * UDP
    * ソケットエラー時のソケット再作成と再接続がデフォルトで有効に変更
      * IPv4 回線から IPv6 （NAT64）回線への切り替え時などにソケットエラーが発生した場合に、自動的に接続を再試行するようになりました。
      * Diarkis のランタイムは接続を再試行している間はエラーとして扱わないので、エラーを即座に検出したい場合は `IDiarkisUdp::SetEnableRecreateSocketOnError` で無効にしてください。
    * ソケットの接続処理は、DNS から取得したすべての `A` と `AAAA` レコードのアドレスへの接続を試みるように対応
      * 以前の動作は IPv4 か IPv6 のどちらかの接続を試行し、接続に失敗した場合はエラーで終了していたが、可能性のあるすべてのアドレスへの接続を試行するようになりました。
  * P2P
    * P2P 切断時に P2P 切断イベントが発生しない不具合を修正
    * NAT64/DNS64 など、IPv6 ソケットを使用する環境でのホールパンチのバグを修正
    * NAT64/DNS64などIPv6 ソケットを使用する環境で、ホールパンチング処理がエラーとなりランタイムが終了することがある不具合を修正
    * P2P の unordered RUDP 通信において、パケットのシーケンス番号が最大値に達すると、同じシーケンス番号の複数のパケットが処理されてしまう不具合を修正
    * IDiarkisP2P::Disconnect を呼び出した直後に P2P インスタンスを削除するとクラッシュする問題を修正
* Diarkis モジュール
  * httplibで IPv6 アドレスが正しく解析されないバグを修正
