)]}'
{
  "commit": "d14c8cc69dcd64031019da857f93ee5f6d64bb75",
  "tree": "6d5ca843c8715b93dcab0cd46028ba00c335c859",
  "parents": [
    "09759245cf762d2fed4259494ec31198ac1ec0f4"
  ],
  "author": {
    "name": "Vladimir Sementsov-Ogievskiy",
    "email": "vsementsov@yandex-team.ru",
    "time": "Tue Sep 16 16:13:57 2025 +0300"
  },
  "committer": {
    "name": "Daniel P. Berrangé",
    "email": "berrange@redhat.com",
    "time": "Fri Sep 19 12:46:07 2025 +0100"
  },
  "message": "io/channel-socket: rework qio_channel_socket_copy_fds()\n\nWe want to switch from qemu_socket_set_block() to newer\nqemu_set_blocking(), which provides return status of operation,\nto handle errors.\n\nStill, we want to keep qio_channel_socket_readv() interface clean,\nas currently it allocate @fds only on success.\n\nSo, in case of error, we should close all incoming fds and keep\nuser\u0027s @fds untouched or zero.\n\nLet\u0027s make separate functions qio_channel_handle_fds() and\nqio_channel_cleanup_fds(), to achieve what we want.\n\nReviewed-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\nSigned-off-by: Vladimir Sementsov-Ogievskiy \u003cvsementsov@yandex-team.ru\u003e\nSigned-off-by: Daniel P. Berrangé \u003cberrange@redhat.com\u003e\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "999a8f5f238d08a4759e36fbba49655d07a5d023",
      "old_mode": 33188,
      "old_path": "include/io/channel.h",
      "new_id": "0f25ae0069f9e6ee950522a02d6446a77f375a51",
      "new_mode": 33188,
      "new_path": "include/io/channel.h"
    },
    {
      "type": "modify",
      "old_id": "f7e3cb97422219cf098d4f5dbe02bc2f002881b9",
      "old_mode": 33188,
      "old_path": "io/channel-socket.c",
      "new_id": "e53d9ac76fff555b6d06d080061bfa0d8d7f135d",
      "new_mode": 33188,
      "new_path": "io/channel-socket.c"
    }
  ]
}
