第31章 ネットワーク

HTTP ホスト名が TLS セッションホスト名と一致する必要のあるサーバーと libcurl が通信できる

これまではケースによっては、Network Security Services (NSS) が異なるホスト名のサーバーに間違って TLS セッションを再利用していました。このため、HTTPS サーバーは、HTTP error 400 (Bad Request) を返すことがありました。libcurl ライブラリーのソースコードにアップストリームパッチが適用され、HTTP ホスト名が TLS セッションホスト名に一致しないケースで NSS が TLS セッションを再利用しないようにしました。この結果、libcurl は、HTTP ホスト名が TLS セッションホスト名と一致する必要のあるサーバーと正常に通信できるようになりました (BZ#1269855)。

curl がユーザー指定の公開キーを必要としない

これまでは、curl ユーティリティーはペアリングされている秘密および公開 SSH キーの両方をユーザー認証に必要としていました。このため、scp ユーティリティーではよくあるように、ユーザーが秘密 SSH キーのみを提供すると、curl はユーザーの認証に失敗していました。SSH ユーザー認証を改善するためにアップストリームパッチが適用され、curl は秘密 SSH キーのみが提供された場合でも、正常にユーザー認証ができるようになりました (BZ#1275769)。

libcurl が長いユーザー名とパスワードを切り捨てない

これまでは、libcurl ライブラリーの URL パーサーは長いユーザー名とパスワードを任意でサポートしていませんでした。このため、255 文字を超えるユーザー名とパスワードは切り詰められていました。libcurl ソースコードにアップストリームパッチが適用されたことで、libcurl は URL 内の長いユーザー名とパスワードを正常に処理するようになりました (BZ#1260178)。

PycURLpycurl.POSTFIELDS オプションが正常に機能する

これまでは、PycURL インターフェースは libcurl API を違反していました。これは、送信が完了するまで CURLOPT_POSTFIELDS オプションが渡す文字列が有効である必要があります。このため、pycurl.POSTFIELDS オプションが使用されると、libcurl がライフタイムが終わっている文字列にアクセスし、未定義の動作につながっていました。PycURL ソースコードにアップストリームパッチが適用されたことで、libcurlCURLOPT_POSTFIELDS オプションに渡される文字列の有効期間が長くなり、上記の問題が発生しなくなりました (BZ#1153321)。

sctp_accept() がタイムアウトイベント中に呼び出されてもデッドロックが発生しない

これまでは、4 方向のハンドシェイク後のハートビートタイムアウトイベント中にユーザーが sctp_accept() を呼び出すと、デッドロックが発生することがありました。今回の更新で assoc->base.sk ポインターが与えられ、SCTP が正常にリスニングしているソケットをロック、アンロックするようになりました (BZ#1270586)。

スタックサイズを無制限に設定すると、メモリー不足のメッセージが表示されない

これまでは、スタックサイズを無制限に設定した状態で ftpput コマンドを使用すると、sysconf(_SC_ARG_MAX) 関数が -1 を返し、これによりmalloc() 関数が 0 引数で呼び出され、Out of memory メッセージが表示されていました。今回の更新で基礎的なソースコードが改善され、妥当な最小限のメモリーが割り当てられるようになりました。この結果、スタックサイズが無制限に設定されても Out of memory メッセージが表示されないようになりました (BZ#1304064)。

NetworkManager が完全修飾ドメイン名 (DHCP_HOSTNAME) を dhclient に提供しない

これまでは、NetworkManager は常に DHCP リクエスト内でマシンホスト名のホスト部分のみを送信していました。このため、完全修飾ドメイン名 (FQDN) の送信を強制することができませんでした。今回の更新で、ユーザーは nmcli を使って DHCP リクエスト内で FQDN を送信するよう設定でき、ipv4.dhcp-fqdn を希望する FQDN に設定し、ipv4.dhcp-send-hostname が有効になるようになりました。設定ファイル内では、FQDN は DHCP_FQDN 変数で指定できます (BZ#1255507)。

このページには機械翻訳が使用されている場合があります (詳細はこちら)。