)]}'
{
  "log": [
    {
      "commit": "4d62cad00d7aca9543dcf6eb6fb6e6744c404bcd",
      "tree": "aa301fc059fec24c561142566d5b94fa792c32a0",
      "parents": [
        "eea4c314208f428aa74e6139c63f43b5e753d134"
      ],
      "author": {
        "name": "Sean He",
        "email": "sean.he.wiwynn@gmail.com",
        "time": "Mon Mar 30 08:51:17 2026 +0000"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Thu May 21 11:22:42 2026 +0930"
      },
      "message": "console-socket: fix truncated socket address in error log\n\nAn error log in obmc-console-client showed truncated socket names, e.g.,\n\"@obmc-console.hos\" instead of \"@obmc-console.host1\". Address length\nconfusion by introducing and renaming relevant variables. While we\u0027re\nthere, tidy up some of the arithmetic to use offsetof() against sun_path\nrather than sizeof() against sun_family.\n\nChange-Id: I7c574cc2a3415fd76122da995edad77d5eab27a2\nSigned-off-by: Sean He \u003csean.he.wiwynn@gmail.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "eea4c314208f428aa74e6139c63f43b5e753d134",
      "tree": "0b1490930cfdf6800b8bba26fd9770f9acb92dfb",
      "parents": [
        "1aeced9155d34fc51c5082b6cbb4a53509a0e076"
      ],
      "author": {
        "name": "Howard Chang",
        "email": "howard.chang.wiwynn@gmail.com",
        "time": "Mon Mar 23 01:57:26 2026 +0000"
      },
      "committer": {
        "name": "Howard Chang",
        "email": "howard.chang.wiwynn@gmail.com",
        "time": "Thu Apr 23 07:20:10 2026 +0000"
      },
      "message": "log-handler: Add secondary timestamped logging\n\nAdd an optional timestamped text log that improves the debugging\nexperience by allowing developers to easily inspect event\nsequences using standard text tools.\n\nImplement a sanitize_to_ascii_ansi() state machine to strip\nescape sequences. When enabled via the log-timestamp\nconfiguration, the system prepends each ASCII line with a\nformatted timestamp and a seven-digit line count.\n\nChange-Id: Iffe6c4e29642bbdb2bcb514e36fb5b3c76ba0767\nSigned-off-by: Howard Chang \u003choward.chang.wiwynn@gmail.com\u003e\n"
    },
    {
      "commit": "1aeced9155d34fc51c5082b6cbb4a53509a0e076",
      "tree": "7b529e9b15399594bec599a43831d09267d303bb",
      "parents": [
        "302f617c0cec01dc6efd30df17f55d50155912f0"
      ],
      "author": {
        "name": "Andrew Geissler",
        "email": "geissonator@yahoo.com",
        "time": "Tue Dec 09 11:06:58 2025 -0600"
      },
      "committer": {
        "name": "Andrew Geissler",
        "email": "geissonator@yahoo.com",
        "time": "Wed Dec 17 09:41:48 2025 -0600"
      },
      "message": "remove installs on templated services and targets\n\nNew yocto is getting more stringent on installation of templated service\nand targets.\n\nTemplated services are installed by bitbake recipes so there\u0027s no\nneed to have the WantedBy/RequiredBy in those services.\n\nHere\u0027s a summary of the error we get for packages which have templated\nservices doing an install:\n\n```\nERROR: obmc-phosphor-image-1.0-r0 do_rootfs: Postinstall scriptlets of\n[\u0027\u003cpackage\u003e\u0027 \u0027inst returned 1, marking as unpacked only, configuration\nrequired on target\u0027]\nIf the intention is to defer them to first boot,\nthen please place them into pkg_postinst_ontarget:${PN} ().\nDeferring to first boot via \u0027exit 1\u0027 is no longer supported.\n```\n\nTested:\n- Confirmed image builds with new yocto and services are still installed\n  as expected\n\nChange-Id: I2556c784e0d6e7921eae7c15babb231a2ae931b1\nSigned-off-by: Andrew Geissler \u003cgeissonator@yahoo.com\u003e\n"
    },
    {
      "commit": "302f617c0cec01dc6efd30df17f55d50155912f0",
      "tree": "03c9b067eb72a88787dd99b343e78ed1e664c378",
      "parents": [
        "d972ab558efb5d23790c4638a3012de6c06a7fad"
      ],
      "author": {
        "name": "Matt Johnston",
        "email": "matt@codeconstruct.com.au",
        "time": "Wed Dec 10 14:42:33 2025 +0900"
      },
      "committer": {
        "name": "Matt Johnston",
        "email": "matt@codeconstruct.com.au",
        "time": "Wed Dec 10 14:42:33 2025 +0900"
      },
      "message": "service files: Disable tcp and unix forwarding\n\nTCP and unix stream SSH forwarding are not used for obmc-console, so\ndisable it in dropbear arguments.\n\nSigned-off-by: Matt Johnston \u003cmatt@codeconstruct.com.au\u003e\nChange-Id: I498f7ee8ee7f91474e02c077f2df1871dcee39ba\n"
    },
    {
      "commit": "d972ab558efb5d23790c4638a3012de6c06a7fad",
      "tree": "22024dd5b612f677c1d065884f0630796c807c3b",
      "parents": [
        "ef07b7752773ed4d115e7641b1ffacece39a407d"
      ],
      "author": {
        "name": "Eddie James",
        "email": "eajames@linux.ibm.com",
        "time": "Thu Feb 27 16:25:31 2025 -0600"
      },
      "committer": {
        "name": "Eddie James",
        "email": "eajames@linux.ibm.com",
        "time": "Thu Sep 11 09:37:10 2025 -0500"
      },
      "message": "console-server: Fix tty paths with Linux 6.8+\n\nThe sysfs files are found in a different path with newer Linux\nversions, so update the vuart config search code.\n\nThe relevant linux change is [1].\n\n[1] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id\u003db286f4e87e325b76789f30337c98ba72e00532e2\nChange-Id: Iab686d384b20d8e2495ebbc04a1632be85919cb9\nCo-authored-by: Jeremy Kerr \u003cjk@codeconstruct.com.au\u003e\nSigned-off-by: Eddie James \u003ceajames@linux.ibm.com\u003e\n"
    },
    {
      "commit": "ef07b7752773ed4d115e7641b1ffacece39a407d",
      "tree": "ff41c8832ef85496a7594aab4d6acefd9e3e8d3d",
      "parents": [
        "f3153347bb53a7ba600242c5d00ec5863fd4b4e4"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@codeconstruct.com.au",
        "time": "Wed Sep 10 11:48:48 2025 +0800"
      },
      "committer": {
        "name": "Eddie James",
        "email": "eajames@linux.ibm.com",
        "time": "Thu Sep 11 09:32:37 2025 -0500"
      },
      "message": "console-server: rework error path for realpath(../..) failure\n\nWe shouldn\u0027t hit this, as no tty paths will be directly under /sys. All\nfollowing code will require tty_device_tty_dir to be set, so use the\nexit path without indicating an error.\n\nChange-Id: I3a447d0fed6dda6372fed7a6c7879fad7f04f077\nSigned-off-by: Jeremy Kerr \u003cjk@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "f3153347bb53a7ba600242c5d00ec5863fd4b4e4",
      "tree": "505bbe118a8632dc048b243fe18a0c93987e51b3",
      "parents": [
        "860a8f8e6d0daf1e51ff783a18743007ad6d8031"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@codeconstruct.com.au",
        "time": "Wed Sep 10 11:40:02 2025 +0800"
      },
      "committer": {
        "name": "Eddie James",
        "email": "eajames@linux.ibm.com",
        "time": "Thu Sep 11 09:28:41 2025 -0500"
      },
      "message": "console-server: separate search for vuart node from tty setup\n\nMove the code that sets up the tty to before the search for uart type.\n\nChange-Id: Id08bfddd4e7710ba32f41aa10f4ce684b516a232\nSigned-off-by: Jeremy Kerr \u003cjk@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "860a8f8e6d0daf1e51ff783a18743007ad6d8031",
      "tree": "99096bcf7bb7257a5c8211a796aad4bdd524e346",
      "parents": [
        "7b1c75603331fec0c7643fc3f69d4f7e46551ba4"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Wed Jul 09 11:41:58 2025 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Wed Jul 09 11:41:58 2025 -0400"
      },
      "message": "meson: use non-deprecated systemd packageconfig\n\nSystemd\u0027s packageconfig file has both `systemdsystemunitdir` and\n`systemd_system_unit_dir` defined.  The non-underscore one appears\nto be a deprecated alias[1].  Move to the non-deprecated /\nunderscore-separated variant.\n\n[1]: https://github.com/systemd/systemd/commit/4908de44b0a0409f84a7cdc5641b114d6ce8ba03\n\nChange-Id: I913d49c33da18f146b3b5d2ac47136d173e35b88\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "7b1c75603331fec0c7643fc3f69d4f7e46551ba4",
      "tree": "85fb0174a6c6a02491d64f19a44c29ad35e1cb29",
      "parents": [
        "6b62be601e3a871436bd01d2bce1e1260b2f8bdc"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Thu Jun 12 12:55:36 2025 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Thu Jun 12 12:55:36 2025 -0400"
      },
      "message": "markdownlint: minor fixes\n\nChange-Id: Id2086624c8727066aeea020c427f535f91fd31ce\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "6b62be601e3a871436bd01d2bce1e1260b2f8bdc",
      "tree": "ed14c82ef0868ea53b4b74b1c6dbe8e9fdcf63c4",
      "parents": [
        "6410840fb40a141780d464294053fab8a115952b"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri May 30 10:26:23 2025 -0400"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Mon Jun 02 13:26:06 2025 +0930"
      },
      "message": "clang-tidy: format with config-clang-tidy\n\nReformat the .clang-tidy file for consistency using the\nconfig-clang-tidy tool from openbmc-build-scripts.\n\nChange-Id: I13360da960b37755974de2b7b53b31a646f56be2\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "6410840fb40a141780d464294053fab8a115952b",
      "tree": "5c2846ccea19d37a6dbf2d0382bd9f1bce5c25d6",
      "parents": [
        "375786fc0e8ce34d72bafffb03a28689df94fb62"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Mon Jun 02 13:14:39 2025 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Mon Jun 02 13:26:00 2025 +0930"
      },
      "message": "console-server: Fix pointer arithmetic in container_of() implementation\n\nPointer arithmetic is performed in units of the size of the pointed-to\nobject. Cast to char to ensure that both the pointer arithmetic is\ndefined, and that subtracting the result of the offsetof() stays\nin-bounds.\n\nThe issue was detected by clang-tidy:\n\n```\n\u003e\u003e\u003e /usr/bin/clang-tidy --use-color -export-fixes .../obmc-console/buildc92dibdo/meson-private/clang-tidy-fix/log-handler.c.m2f5figo.yaml -quiet -p .../obmc-console/buildc92dibdo .../obmc-console/log-handler.c\n9557 warnings generated.\n../log-handler.c:50:9: error: suspicious usage of \u0027offsetof(...)\u0027 in pointer arithmetic; this scaled value will be scaled again by the \u0027-\u0027 operator [bugprone-sizeof-expression,-warnings-as-errors]\n   50 |         return container_of(handler, struct log_handler, handler);\n      |                ^\n../console-server.h:272:27: note: expanded from macro \u0027container_of\u0027\n  272 |         ((type *)((void *)((ptr) - offsetof(type, member))))\n      |                                  ^ ~~~~~~~~~~~~~~~~~~~~~~\n../log-handler.c:50:9: note: \u0027-\u0027 in pointer arithmetic internally scales with \u0027sizeof(struct handler)\u0027 \u003d\u003d 8\n   50 |         return container_of(handler, struct log_handler, handler);\n      |                ^\n../console-server.h:272:27: note: expanded from macro \u0027container_of\u0027\n  272 |         ((type *)((void *)((ptr) - offsetof(type, member))))\n      |                                  ^\n```\n\nChange-Id: I808428c0a751abeb4409cf28dd5e95588ae5c0e2\nFixes: 1a0e03b4385e (\"Split IO handling code into separate handler modules\")\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "375786fc0e8ce34d72bafffb03a28689df94fb62",
      "tree": "e2be4765bbfca25004e3c3a975cdab77e8cd9bf7",
      "parents": [
        "a1f911aaf2b730005f9aebca1f7ff752add26e0a"
      ],
      "author": {
        "name": "Dan Zhang",
        "email": "zhdaniel@google.com",
        "time": "Sun Feb 09 16:58:26 2025 +0000"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Mar 21 00:14:11 2025 +0000"
      },
      "message": "Fix unexpected behavior in client_timeout() error handling\n\nThere are 4 places that call client_close(), 3 are in poller callback\nfunction before return _REMOVE. The client_ringbuffer_poll() and\nclient_poll() both set the client-\u003erbc \u003d NULL or client-\u003epoller \u003d NULL\ncorrespondingly to avoid client_close() unregistering the poller within\npoller callback. Because calling console_poller_unregister() within the\nloop of console-sever.c:call_pollers() will make the loop writing into\nfreed poller, corrupting the memory and cause unexpected hehavior.\n\nThis fix is let the timeout callback follow the same pattern and avoid\ncalling console_poller_unregister() within call_pollers() loop.\n\nChange-Id: If723a476d4142a42aa62e97ed0d2e2abca5e00c6\nSigned-off-by: Dan Zhang \u003czhdaniel@google.com\u003e\n"
    },
    {
      "commit": "a1f911aaf2b730005f9aebca1f7ff752add26e0a",
      "tree": "b9bdaf203770b81016b526c436c6b48fbc6fa94c",
      "parents": [
        "7a765956ab33769880a42aafe1b7287ddf2dd126"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Sat Feb 01 08:37:47 2025 -0500"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Tue Feb 04 15:22:27 2025 +0000"
      },
      "message": "meson: reformat with meson formatter\n\nApply the `meson format` results.\n\nChange-Id: Ife939931ed265bc3f7eceda84a0e3db3bd1012de\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "7a765956ab33769880a42aafe1b7287ddf2dd126",
      "tree": "02ac34d41cc2730e12aabf3890835d33ce92c58e",
      "parents": [
        "4ec26bb16e3a8ef10b4c00a50605c70e2a5c228b"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Mon Feb 03 16:47:40 2025 +1030"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Mon Feb 03 16:50:39 2025 +1030"
      },
      "message": "config.h: Include stddef.h for size_t\n\nAddress the following clang-tidy issue:\n\n```\nError while processing .../obmc-console/config.h.\n.../obmc-console/config.h:36:49: error: unknown type name \u0027size_t\u0027 [clang-diagnostic-error]\n   36 | int config_parse_bytesize(const char *size_str, size_t *size);\n      |                                                 ^\n```\n\nFixes: 1e04f449b7f0 (\"use iniparser dependency for config file parsing\")\nChange-Id: I22adfc548d1f8837fda8920267a16e93c17c8475\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "4ec26bb16e3a8ef10b4c00a50605c70e2a5c228b",
      "tree": "dfbe43f1683ed0f1a1125bdd9937ef7033fea50f",
      "parents": [
        "366651d9ef0e03f97b1e1d2b6188f2b452044d1c"
      ],
      "author": {
        "name": "Igor Kononenko",
        "email": "i.kononenko.e@gmail.com",
        "time": "Thu Aug 29 13:54:56 2024 +0300"
      },
      "committer": {
        "name": "Ninad Palsule",
        "email": "ninad@linux.ibm.com",
        "time": "Mon Jan 27 21:51:52 2025 -0600"
      },
      "message": "obmc-console: fix segfault on missing config\n\nThe `obmc-console-client` allow to not specify configuration file for\nactive session. But at the same time it does not tolerate null pointer\npassed as config. This leads to a segmentation fault due to a missing\nconfiguration file.\n\nFix this small inconvenience.\n\nAdded testcase to make sure that obmc-console-client doesn\u0027t segfault\nwhen invoked without any arguments.\n\nOutput without the fix:\n\u0027\u0027\u0027\n+ /home/dev/obmc-console/build/obmc-console-client\n+ grep Connection refused\nSegmentation fault (core dumped)\n\u0027\u0027\u0027\n\nOutput with the fix:\n\u0027\u0027\u0027\n+ /home/ninad/dev/1110_ghe/obmc-console/build/obmc-console-client\n+ grep Connection refused\n+ cleanup\n+ cd -\n+ rm -rf /tmp/test_console_client_no_args_3245394.DZqk0S\n\u0027\u0027\u0027\n\nChange-Id: Ia83da8bca30e2be94e00066f20f2cbe2ccba23b6\nTested-by: Ninad Palsule \u003cninad@linux.ibm.com\u003e\nSigned-off-by: Ninad Palsule \u003cninad@linux.ibm.com\u003e\nSigned-off-by: Igor Kononenko \u003ci.kononenko.e@gmail.com\u003e\n"
    },
    {
      "commit": "366651d9ef0e03f97b1e1d2b6188f2b452044d1c",
      "tree": "7a1f9594f1cf5b105ace3f150921abe4c1201bc7",
      "parents": [
        "6498f9fa9792ef0c14dab4aca3d38a674f6402cd"
      ],
      "author": {
        "name": "Marshall Zhan",
        "email": "marshall.zhan.wiwynn@gmail.com",
        "time": "Thu Aug 22 17:10:44 2024 +0800"
      },
      "committer": {
        "name": "Marshall Zhan",
        "email": "marshall.zhan.wiwynn@gmail.com",
        "time": "Fri Oct 04 11:25:37 2024 +0800"
      },
      "message": "log-handler: Set the end of the file as the file size\n\nThe file descriptor is lost after system AC cycle.\nThe log file will grow indefinitely if the log recorded does not exceed\nthe maximum log size after each AC cycle.\n\nChange-Id: If23d68b08817d54731dd6eff8a42e9eb476b6437\nFixes: 46d9ef298f2e (\"Do not truncate log files after reboot\")\nSigned-off-by: Marshall Zhan \u003cmarshall.zhan.wiwynn@gmail.com\u003e\n"
    },
    {
      "commit": "6498f9fa9792ef0c14dab4aca3d38a674f6402cd",
      "tree": "65ee94994d6d461f3f77a1fc49975dccdc9890d6",
      "parents": [
        "b965c2201a52ed66efe06ee4ec6c2c51a16b453e"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Sep 13 17:15:33 2024 +0200"
      },
      "committer": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Mon Sep 16 10:31:28 2024 +0200"
      },
      "message": "log-handler: fix console logs\n\nserver-\u003en_consoles was not incremented until after console_init.\n\nBut the log handler already made use of that value to decide which\nfilename to use for logging, in the case of config with no sections.\n\nThis fix avoids use of server-\u003en_consoles in favor of looking at the\nnumber of sections in the config.\n\nChange-Id: Ic19802808197557cd1f632c63a0123604a619039\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "b965c2201a52ed66efe06ee4ec6c2c51a16b453e",
      "tree": "5e26a573b354dfd63ce0b6ddc7277dcb4cbaa9e4",
      "parents": [
        "85055f997acddcf9d7ca49ed0981cb7700587b98"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Aug 16 15:21:28 2024 -0400"
      },
      "committer": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Aug 16 15:21:28 2024 -0400"
      },
      "message": "clang-format: re-format for clang-18\n\nclang-format-18 isn\u0027t compatible with the clang-format-17 output, so we\nneed to reformat the code with the latest version.  The way clang-18\nhandles lambda formatting also changed, so we have made changes to the\norganization default style format to better handle lambda formatting.\n\nSee I5e08687e696dd240402a2780158664b7113def0e for updated style.\nSee Iea0776aaa7edd483fa395e23de25ebf5a6288f71 for clang-18 enablement.\n\nChange-Id: I2f8eeee40b0b2583092d351979dd77fd277a97ba\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "85055f997acddcf9d7ca49ed0981cb7700587b98",
      "tree": "852649c3d88d7d77f4c5e36bda9b6712ffb178ee",
      "parents": [
        "ce3688c90858864222d0efc543d05be675dbf776"
      ],
      "author": {
        "name": "George Liu",
        "email": "liuxiwei@ieisystem.com",
        "time": "Mon Aug 05 13:44:25 2024 +0800"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 07:52:07 2024 +0000"
      },
      "message": "docs/mux-support.md: Fix MD014 warnings\n\nThe following warnings are generated by using markdownlint analysis:\n```\nMD014/commands-show-output Dollar signs used before commands without showing output [Context: \"$ obmc-console-server --config...\"]\n```\nRefer to markdown-lint [1] to fix MD014\n[1]: https://github.com/updownpress/markdown-lint/blob/master/rules/014-commands-show-output.md\n\nSigned-off-by: George Liu \u003cliuxiwei@ieisystem.com\u003e\nChange-Id: I9daa0403355e45bf39410ccf92693bdccf1830c4\n"
    },
    {
      "commit": "ce3688c90858864222d0efc543d05be675dbf776",
      "tree": "9506de08b6a4374dd269811472a95f3dcc43fb96",
      "parents": [
        "97e7e51e3da9bcfb6c7c17b4e218ce65257aad74"
      ],
      "author": {
        "name": "George Liu",
        "email": "liuxiwei@ieisystem.com",
        "time": "Mon Aug 05 13:42:00 2024 +0800"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 07:52:07 2024 +0000"
      },
      "message": "docs/mux-support.md: Fix MD040 warnings\n\nThe following warnings are generated by using markdownlint analysis:\n```\nMD040/fenced-code-language Fenced code blocks should have a language specified [Context: \"```\"]\n```\nRefer to markdown-lint [1] to fix MD040\n[1]: https://github.com/updownpress/markdown-lint/blob/master/rules/040-fenced-code-language.md\n\nSigned-off-by: George Liu \u003cliuxiwei@ieisystem.com\u003e\nChange-Id: I67875268370268715241c0ddb2c58da4a9a3f54f\n"
    },
    {
      "commit": "97e7e51e3da9bcfb6c7c17b4e218ce65257aad74",
      "tree": "4c0a7785ffd94d6a297a947b0d59c895c7bb5ddb",
      "parents": [
        "c7602e0a833de4821d30ce836fcce4de9c5ca9a6"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Aug 02 16:44:41 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 13:37:56 2024 +0930"
      },
      "message": "test: multiple consoles\n\nChange-Id: Ib7e63eb9b5a9c000ad7548115e46517b8b0bfc92\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "c7602e0a833de4821d30ce836fcce4de9c5ca9a6",
      "tree": "3840cbc9ff0fe791405f3516370354680d042251",
      "parents": [
        "e11cca1ea5d93daac50850aa19ed2dd15d4887bd"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Aug 02 16:13:56 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 13:37:48 2024 +0930"
      },
      "message": "test: console socket write\n\nChange-Id: I77ba9168f5b363f7e776d54eb143a716544b5bb5\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "e11cca1ea5d93daac50850aa19ed2dd15d4887bd",
      "tree": "83061b27ebf6efb50a2dbe77d120ce0dc932c4b1",
      "parents": [
        "a30b7659f4af6177c8f16d982b1fa15485189597"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Aug 02 15:08:05 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 13:37:40 2024 +0930"
      },
      "message": "test: console socket read\n\nChange-Id: Ic7c2035640db4e403afe9db01a33ccb532d195d6\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "a30b7659f4af6177c8f16d982b1fa15485189597",
      "tree": "e368ac0b053b07fa26e59edddda2e7f6320f5e76",
      "parents": [
        "12bf483bee582d2feed71e6ef345195ef62d53d4"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Aug 02 14:49:10 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 13:37:33 2024 +0930"
      },
      "message": "test: console-client can write\n\nChange-Id: Iffc38fb78ebbf79f8a0bdd7cd0b8cbc5916768cc\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "12bf483bee582d2feed71e6ef345195ef62d53d4",
      "tree": "633f34224b8395960495e7ebdc9bdbca98464c19",
      "parents": [
        "29a8f9895459ea729de19bee797015ad26e66079"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Aug 02 10:24:56 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 13:37:25 2024 +0930"
      },
      "message": "test: console-client can read\n\nChange-Id: I08c7523af548968c1545189c0007f44144589aec\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "29a8f9895459ea729de19bee797015ad26e66079",
      "tree": "fdd93c1229608e6c39a1dc4ff1bfc98366efb97b",
      "parents": [
        "3ff250d72bf2d13f20e7f4b816b4f5c4228f0556"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 31 10:47:08 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 13:37:07 2024 +0930"
      },
      "message": "test: console logs to file\n\nTest for the logging feature of obmc-console-server.\n\nChange-Id: I9836727a944a0351962133baa2fd2ff5eb60e67f\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "3ff250d72bf2d13f20e7f4b816b4f5c4228f0556",
      "tree": "d81ab8b82babdedebd80c36c89dea1b525a44fdf",
      "parents": [
        "13d3aa75ca429f3ea7245bcb4ef352f27e57c424"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 13:30:19 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Aug 09 13:35:04 2024 +0930"
      },
      "message": "changelog: List UART mux support and iniparser dependency\n\nUART mux support is a notable feature. Make sure users can be aware\nof it.\n\nChange-Id: I26ae052f5b64d4eaaea1f814bfddf9632739f2c7\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "13d3aa75ca429f3ea7245bcb4ef352f27e57c424",
      "tree": "a84394689229f780b841cf66dd3cea661bf786ac",
      "parents": [
        "289e64791e447ae75676204528e50f8230aa9095"
      ],
      "author": {
        "name": "George Liu",
        "email": "liuxiwei@ieisystem.com",
        "time": "Mon Aug 05 13:39:17 2024 +0800"
      },
      "committer": {
        "name": "George Liu",
        "email": "liuxiwei@ieisystem.com",
        "time": "Mon Aug 05 13:50:38 2024 +0800"
      },
      "message": "docs/mux-support.md: README.md: Fix MD041 warnings\n\nThe following warnings are generated by using markdownlint analysis:\n```\ndocs/mux-support.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: \"## Mux Support\"]\n```\nRefer to markdown-lint [1] to fix MD041\n[1]: https://github.com/updownpress/markdown-lint/blob/master/rules/041-first-line-h1.md\n\nSigned-off-by: George Liu \u003cliuxiwei@ieisystem.com\u003e\nChange-Id: Id2dc44fd63b40492a67965c4a51aceeb67b9307d\n"
    },
    {
      "commit": "289e64791e447ae75676204528e50f8230aa9095",
      "tree": "67a2d63a16e6bc6a264f4d303df55bcd080999bf",
      "parents": [
        "86f6f619d33f37552ee32e7770f7b8c26b338abd"
      ],
      "author": {
        "name": "George Liu",
        "email": "liuxiwei@ieisystem.com",
        "time": "Mon Aug 05 13:37:45 2024 +0800"
      },
      "committer": {
        "name": "George Liu",
        "email": "liuxiwei@ieisystem.com",
        "time": "Mon Aug 05 13:50:38 2024 +0800"
      },
      "message": "README.md: Fix MD041 warnings\n\nThe following warnings are generated by using markdownlint analysis:\n```\nREADME.md:1 MD041/first-line-heading/first-line-h1 First line in a file should be a top-level heading [Context: \"## To Build\"]\n```\nRefer to markdown-lint [1] to fix MD041\n[1]: https://github.com/updownpress/markdown-lint/blob/master/rules/041-first-line-h1.md\n\nSigned-off-by: George Liu \u003cliuxiwei@ieisystem.com\u003e\nChange-Id: I561d1b2950153f2b26bddbf9d1888a02016d4722\n"
    },
    {
      "commit": "86f6f619d33f37552ee32e7770f7b8c26b338abd",
      "tree": "70ddd2caed232950f3e6e2cad506bc2b53d2c1cb",
      "parents": [
        "8fee42423c97581eaf2c318aa9124abb007e5d70"
      ],
      "author": {
        "name": "George Liu",
        "email": "liuxiwei@ieisystem.com",
        "time": "Mon Aug 05 13:36:26 2024 +0800"
      },
      "committer": {
        "name": "George Liu",
        "email": "liuxiwei@ieisystem.com",
        "time": "Mon Aug 05 13:50:21 2024 +0800"
      },
      "message": "README.md: Fix MD040 warnings\n\nThe following warnings are generated by using markdownlint analysis:\n```\nREADME.md:5 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: \"```\"]\nREADME.md:12 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: \"```\"]\nREADME.md:20 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: \"```\"]\nREADME.md:29 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: \"```\"]\nREADME.md:40 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: \"```\"]\nREADME.md:78 MD040/fenced-code-language Fenced code blocks should have a language specified [Context: \"```\"]\n```\nRefer to markdown-lint [1] to fix MD040\n[1]: https://github.com/updownpress/markdown-lint/blob/master/rules/040-fenced-code-language.md\n\nSigned-off-by: George Liu \u003cliuxiwei@ieisystem.com\u003e\nChange-Id: Ibb0ba5ad26c7b362258dad92acad48ea10cae9a2\n"
    },
    {
      "commit": "8fee42423c97581eaf2c318aa9124abb007e5d70",
      "tree": "84c897a86bb0ac65705f00d010cfe25ec3d85fe2",
      "parents": [
        "a6b291048fcb0fb58ada2c47b29cbc80b5f5f514"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Thu Jun 06 16:07:21 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 24 17:01:17 2024 +0930"
      },
      "message": "UART Mux Support: Documentation\n\nThis commit adds markdown documentation of how uart-mux support is\nimplemented in obmc-console. The supported hardware configuration and\nexample config files are shown.\n\nChange-Id: I19cd3de0f9cb6b98742fc264c4e2963c06ff9db1\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "a6b291048fcb0fb58ada2c47b29cbc80b5f5f514",
      "tree": "d1511f0b6fc727d55c133c3a0b2693fe0ef87c50",
      "parents": [
        "312ecdc2b4bab980e7baeba2d3a75cd5266d6061"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Wed Jul 10 15:33:37 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 24 17:01:17 2024 +0930"
      },
      "message": "console-server: Add UART Mux Support\n\nThis commit adds support for uart-muxes which can be controlled via\ngpios.\n\nChange-Id: I91a4de1962554adf4302a2a59d2b371f492dc21d\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "312ecdc2b4bab980e7baeba2d3a75cd5266d6061",
      "tree": "68008fd6718aaa02147470a00ea9c0535ec2e1ef",
      "parents": [
        "2325d5d5aa0538329d06ec2c4c000089525cbe20"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Wed Jul 10 15:33:37 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 24 17:01:17 2024 +0930"
      },
      "message": "console-server: Enable multiple consoles\n\nobmc-console can now support multiple consoles that can be configured.\n\nThe first console is the active console, if not configured otherwise.\n\nThis serves as preparation for uart mux support.\n\nChange-Id: I6f350b8efe70c3b424bdadaa3fe1bbf89d310e5d\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "2325d5d5aa0538329d06ec2c4c000089525cbe20",
      "tree": "4fec7925297e9d3862a41fd20ffacffdbe15e6e0",
      "parents": [
        "e3a083ebf5a1ed337f3a851a6f6e6ce77a85113a"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Jun 07 16:54:20 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 24 15:00:45 2024 +0930"
      },
      "message": "console-server: refactor pollfd management\n\nInstead of the previous memory management of pollfd array,\nwith a fixed and flexible part and hardcoded indices,\nprovide two functions to request and release pollfds.\n\n- console_server_request_pollfd\n- console_server_release_pollfd\n\nThe pollfds are still in the same array but can be requested and\nreleased by these functions now. struct console_server and\nstruct console now contain indices into that array of pollfds.\n\nThe benefit of this contribution is that the new interface provides a\nclean allocator-like abstraction for requesting and releasing pollfds,\nwhich will scale to multiple consoles and can be refactored or\nunit-tested more easily in the future.\n\nThe previous implementation was tightly coupled to the single-console\nuse-case and the pollfds stored at hardcoded indices.\n\nChange-Id: I93226699618130b175bffbeb4f71c20c91a7083a\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "e3a083ebf5a1ed337f3a851a6f6e6ce77a85113a",
      "tree": "7e941e571a4710668e1b702804507d950b31125e",
      "parents": [
        "c2b0d8c7cb67715520a02882308fbb847f8f7a55"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Mon Jul 08 15:30:35 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Jul 12 12:23:46 2024 +0930"
      },
      "message": "config: support sections in config_ api\n\nThis commit wraps some functions from iniparser to support sections in\nour config files.\n\nThe new functions become part of the config_* api and will help to\nsupport the uart mux feature.\n\nChange-Id: I7fa9aa1d60b67458943d5c53a1aeb90406c5fcf3\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "c2b0d8c7cb67715520a02882308fbb847f8f7a55",
      "tree": "5aab5ddf0a92f9a427a388bd641f2037e6108492",
      "parents": [
        "e3f1aa1ec8cecd58aa8f67702bd587c2989f787e"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Jun 07 14:35:44 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Jul 12 10:04:30 2024 +0930"
      },
      "message": "console-server: introduce `struct console_server`\n\nLift `struct console_server` from `struct console`\n\nstruct console_server will enable obmc-console to support multiple\nconsoles in a single obmc-console-server in the future.\n\nCurrently the \u0027struct console_server\u0027 only supports one active console.\n\nChange-Id: Icb22fb46f217b174f3bccc0a03485549d82d1d6b\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "e3f1aa1ec8cecd58aa8f67702bd587c2989f787e",
      "tree": "075cc5f31f539a61ab769e261174a0063d5fd601",
      "parents": [
        "ace05dccbbbf5a07ea2581fdf511078b6de6e0f6"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Wed Jul 10 11:57:17 2024 +0200"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Jul 12 09:24:29 2024 +0930"
      },
      "message": "util: Consolidate ARRAY_SIZE() definitions\n\nARRAY_SIZE() was defined several times around the code-base.\nProvide a single definition in util.h and include it where necessary.\n\nChange-Id: Idc4cf030969ffc7f0928c6897a23962a70adcf05\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "ace05dccbbbf5a07ea2581fdf511078b6de6e0f6",
      "tree": "11dad358805c5b299f8d86b97c1add379d2944b3",
      "parents": [
        "adedc33303be8007aa73146b721b96b2693cbe5b"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 11:19:11 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 13:46:33 2024 +0930"
      },
      "message": "meson: Exploit `tests` option to disable the test suite\n\nSomehow we had the option, but no use of it to define the build.\n\nChange-Id: I42431d962288bbc642413d77eafe754e48e599a6\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "adedc33303be8007aa73146b721b96b2693cbe5b",
      "tree": "dbcc14ed765cd9ce20ca55430d48575b2a16465d",
      "parents": [
        "d659cfcdf6639e2628c982cdf2c3db16649f17b9"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 10:48:13 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 13:46:18 2024 +0930"
      },
      "message": "console-server: Enable handler iteration with -fsanitize\u003daddress\n\nCurrently when running obmc-console-server built with -fsanitize\u003daddress\nwe receive the following abort:\n\n```\n$ dbus-run-session ./build/obmc-console-server -i test $(realpath pts)\niniparser: cannot open etc/obmc-console.conf\n3 handler types\nobmc-console-server: Can\u0027t open log buffer file /var/local/log/obmc-console.log: No such file or directory\n  console \u0027test\u0027: handler log [inactive]\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003d\u003d724703\u003d\u003dERROR: AddressSanitizer: global-buffer-overflow on address 0x559163200b08 at pc 0x5591631e6d08 bp 0x7ffdb2e64350 sp 0x7ffdb2e64348\nREAD of size 8 at 0x559163200b08 thread T0\n    #0 0x5591631e6d07 in handlers_init ../console-server.c:560\n    #1 0x5591631e6d07 in main ../console-server.c:1025\n    #2 0x7f8e3f446249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58\n    #3 0x7f8e3f446304 in __libc_start_main_impl ../csu/libc-start.c:360\n    #4 0x5591631e7390 in _start (/home/andrew/src/openbmc.org/openbmc/obmc-console/build/obmc-console-server+0x26390)\n\n0x559163200b08 is located 24 bytes to the left of global variable \u0027socket_handler\u0027 defined in \u0027../socket-handler.c:515:34\u0027 (0x559163200b20) of size 32\n0x559163200b08 is located 8 bytes to the right of global variable \u0027log_handler\u0027 defined in \u0027../log-handler.c:222:34\u0027 (0x559163200ae0) of size 32\nSUMMARY: AddressSanitizer: global-buffer-overflow ../console-server.c:560 in handlers_init\nShadow bytes around the buggy address:\n  0x0ab2ac638110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n  0x0ab2ac638120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n  0x0ab2ac638130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n  0x0ab2ac638140: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00\n  0x0ab2ac638150: 00 00 00 00 00 00 00 00 f9 f9 f9 f9 00 00 00 00\n\u003d\u003e0x0ab2ac638160: f9[f9]f9 f9 00 00 00 00 f9 f9 f9 f9 00 00 00 00\n  0x0ab2ac638170: f9 f9 f9 f9 00 00 00 00 00 00 00 00 00 00 00 00\n  0x0ab2ac638180: 00 00 00 00 00 00 00 00 00 f9 f9 f9 f9 f9 f9 f9\n  0x0ab2ac638190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\n  0x0ab2ac6381a0: 00 00 00 00 00 f9 f9 f9 f9 f9 f9 f9 00 00 00 00\n  0x0ab2ac6381b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00\nShadow byte legend (one shadow byte represents 8 application bytes):\n  Addressable:           00\n  Partially addressable: 01 02 03 04 05 06 07\n  Heap left redzone:       fa\n  Freed heap region:       fd\n  Stack left redzone:      f1\n  Stack mid redzone:       f2\n  Stack right redzone:     f3\n  Stack after return:      f5\n  Stack use after scope:   f8\n  Global redzone:          f9\n  Global init order:       f6\n  Poisoned by user:        f7\n  Container overflow:      fc\n  Array cookie:            ac\n  Intra object redzone:    bb\n  ASan internal:           fe\n  Left alloca redzone:     ca\n  Right alloca redzone:    cb\n\u003d\u003d724703\u003d\u003dABORTING\n```\n\nRework the start and stop symbol declarations to indicate we\u0027re\naccessing an array, which keeps the sanitizer happy.\n\nChange-Id: Ib17506a018702e64bbc419f0056da571847e2787\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "d659cfcdf6639e2628c982cdf2c3db16649f17b9",
      "tree": "55d689518e5ecec0c35cd9308f72b79464f8c14c",
      "parents": [
        "28a1761ac718dcaa7a21ff91cfc3c8806650c766"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 09:42:50 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 13:45:57 2024 +0930"
      },
      "message": "config: Allow NULL for internal dict pointer\n\nIf the default configuration file is not present, behave as if it\nwere empty. This allows obmc-console-server to not fail out if no\nconfiguration is provided, but still fail out if a struct config object\ncouldn\u0027t be allocated.\n\nChange-Id: Ic188281f5fc41d94b3175c8009c97f1efb62699a\nFixes: 1e04f449b7f0 (\"use iniparser dependency for config file parsing\")\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "28a1761ac718dcaa7a21ff91cfc3c8806650c766",
      "tree": "611b355e30a442840b9ed30bb0ece6fbe9e3463e",
      "parents": [
        "ab64dadd9506d6f93ff98b9e1d51d12a9df76523"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 09:32:05 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 09:56:53 2024 +0930"
      },
      "message": "console-server: Avoid SEGV on on failure to load configuration\n\nOn a system without a file at the default configuration path we hit\na SEGV:\n\n```\n$ ./build/obmc-console-server -i test $(realpath pts)\nobmc-console-server: Can\u0027t open configuration file etc/obmc-console.conf: No such file or directory\n../config.c:56:48: runtime error: member access within null pointer of type \u0027struct config\u0027\nAddressSanitizer:DEADLYSIGNAL\n\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\n\u003d\u003d693793\u003d\u003dERROR: AddressSanitizer: SEGV on unknown address 0x000000000000 (pc 0x55be18aa0d76 bp 0x7ffe1f8a5640 sp 0x7ffe1f8a53a0 T0)\n\u003d\u003d693793\u003d\u003dThe signal is caused by a READ memory access.\n\u003d\u003d693793\u003d\u003dHint: address points to the zero page.\n    #0 0x55be18aa0d76 in config_get_value ../config.c:56\n    #1 0x55be18a9e10e in main ../console-server.c:985\n    #2 0x7f80bd046249 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58\n    #3 0x7f80bd046304 in __libc_start_main_impl ../csu/libc-start.c:360\n    #4 0x55be18aa0be0 in _start (/home/andrew/src/openbmc.org/openbmc/obmc-console/build/obmc-console-server+0x25be0)\n\nAddressSanitizer can not provide additional info.\nSUMMARY: AddressSanitizer: SEGV ../config.c:56 in config_get_value\n\u003d\u003d693793\u003d\u003dABORTING\n```\n\nRework the cleanup sequence in main() to avoid the problem.\n\nChange-Id: I6cbea10889d65666d660ee198c4ad6f6935fea85\nFixes: 1e04f449b7f0 (\"use iniparser dependency for config file parsing\")\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "ab64dadd9506d6f93ff98b9e1d51d12a9df76523",
      "tree": "9d926773afba9e3fa01ebe7014b30ee209d646a3",
      "parents": [
        "1e04f449b7f00a7b426615533a44519149d2ea38"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 09:12:34 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Jul 10 09:12:34 2024 +0930"
      },
      "message": "subprojects: iniparser: Address meson run_command() warning\n\nThe `run_command()` invocations in the iniparser meson.build lacked the\n`check` parameter:\n\n```\niniparser| WARNING: You should add the boolean check kwarg to the run_command call.\niniparser| It currently defaults to false,\niniparser| but it will default to true in future releases of meson.\niniparser| See also: https://github.com/mesonbuild/meson/issues/9300\n```\n\nAdd `check` and set it to true to make sure the build configuration only\nsucceeds if these commands also succeed.\n\nFixes: 1e04f449b7f0 (\"use iniparser dependency for config file parsing\")\nChange-Id: I97841398fc899e876b97e4e28e18cd8dd3b13222\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "1e04f449b7f00a7b426615533a44519149d2ea38",
      "tree": "d4922e8ef1ca5f8754a0d8fea96a17e5497084a0",
      "parents": [
        "498a4a81d93b0242cea5de929f00cade2b5fe9f2"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Wed Jun 12 16:35:58 2024 +0200"
      },
      "committer": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Tue Jul 09 14:39:40 2024 +0200"
      },
      "message": "use iniparser dependency for config file parsing\n\nFor the config file, we do not need the custom handwritten parser.\n\nThanks to Andrew for this command, we can now search for an alternative\n\n$ git grep -lw INI -- :/:*.bb\nmeta-openembedded/meta-oe/recipes-support/inih/libinih_58.bb\nmeta-openembedded/meta-oe/recipes-support/iniparser/iniparser_4.1.bb\nmeta-openembedded/meta-oe/recipes-support/minini/minini_1.2.b.bb\npoky/meta/recipes-devtools/python/python3-iniconfig_2.0.0.bb\npoky/meta/recipes-devtools/python/python3-iniparse_0.5.bb\n\nFor the ini parser we have following requirements\n\n- small API\n- easy to use\n- compiles fast\n- has tests, examples, docs\n- support for sections\n\n- minini [1]\n\n  can be dropped from the list since it also supports colon\n  \u0027:\u0027 instead of \u0027\u003d\u0027 for separating key and value, creating 2 ways of\n  doing something. This makes it harder to swap out the ini parser in\n  the future.\n\n- libinih [2]\n\n  uses SAX-style parsing of .ini files and thus does not provide\n  a DOM of the .ini. This is a break from the previous parser which\n  stored everything in struct config. To use this library would require\n  to create a struct to store all the possible configuration, then fill\n  that struct in one pass. Essentially wrapping that library to have\n  DOM capability. That would be possible, but not ideal. libinih is also\n  highly configurable with lots of config options.\n\n- iniparser [3]\n\n  has all the required features and stores the results of its\n  parsing for later use. It is a seamless upgrade from the previous\n  parser. The call sites do not have to be modified and we can read the\n  config as before. A downside is that we have to provide our own wrap\n  file.\n\nFor our purposes, iniparser is a good choice.\n\nUsing this dependency allows us to drop the custom parser and all the\ntests that go along with it.\n\nIf sections are required in future config files, iniparser can also\nsupport that.\n\nReferences:\n\n[1] https://github.com/compuphase/minIni\n[2] https://github.com/benhoyt/inih\n[3] https://gitlab.com/iniparser/iniparser\n\nChange-Id: Ie2b57171ec1f8cb6b1b80ca1d9e6c112bedc1195\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "498a4a81d93b0242cea5de929f00cade2b5fe9f2",
      "tree": "a0d2a1ec19b7ea3cf5a979143f51a3c0608407ac",
      "parents": [
        "12398cd53e75f3887b0615f00b90f3004d6e736b"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 15:07:05 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:57:46 2024 +0930"
      },
      "message": "console-server: Respect DBus init failure\n\nGiven that the DBus interface is required by other OpenBMC applications,\ndon\u0027t ignore a failure to initialize it.\n\nIt\u0027s always possible to add a switch down the track to avoid\ninitializing the DBus interfaces, if desired.\n\nChange-Id: I8aecf1a1cb06d021f374eaf0fd6893ddf3a9cc3c\nCo-developed-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "12398cd53e75f3887b0615f00b90f3004d6e736b",
      "tree": "250ab5f57e52fa97875f88272d5a2f0b8a3dbba9",
      "parents": [
        "7851a396511b623aca735d607382b93494c332a4"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 14:59:33 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:57:17 2024 +0930"
      },
      "message": "console-dbus: Connect to the default bus\n\nsd_bus_default() connects to the system bus unless it detects a user\nslice, in which case it connects to the bus for the user session.\n\nThis should keep the desired behavior in-context e.g. on a BMC, while\nmaking it slightly more ergonomic to run obmc-console-server under\ndbus-run-session(1) for testing.\n\nChange-Id: I0b5acfae49dcab9ec4f72159ba51296e118017ae\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "7851a396511b623aca735d607382b93494c332a4",
      "tree": "97a076a7a8b6ffe304ab03fb52b9d7a2592c7b3a",
      "parents": [
        "9cc8459acc0a425920aa663c8cdd5043464c366e"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 16:30:22 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:57:17 2024 +0930"
      },
      "message": "obmc-console: Address more instances of realloc() with size 0\n\nThere are some portability concerns around the behavior of passing\na zero size to realloc*() APIs. One instance caught by valgrind was\nfixed in 2f1abc37384d (\"Fix realloc() with size 0\"). All invocations of\nrealloc*() APIs were evaluated, and those fixed here are the ones that\nwere at risk.\n\nThere\u0027s a broader problem of the code-base assuming realloc*() calls\ndon\u0027t return NULL (and malloc() also). The returned pointer is usually\nwritten into the pointer object passed as the first argument, which\nmeans the existing object would be leaked. Fixing that is a bigger\nendeavor as the callers of the functions invoking realloc*() are often\nwritten with the assumption that the result is not NULL. However, with\nthis change, at least one of the realloc*() concerns is put to rest.\n\nChange-Id: I5dd6f4f8cc3164e400c87ea37afc350840a1865d\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "9cc8459acc0a425920aa663c8cdd5043464c366e",
      "tree": "8c655b4dcddb912b128961df6a64faa1960ba032",
      "parents": [
        "553cb663ad0b775777dc704f76bf5b46b72080be"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 15:44:30 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:57:17 2024 +0930"
      },
      "message": "console-server: Clear poller timeout on init\n\nAvoid spurious results in the poller calculations from uninitialized\nvalues.\n\nReported-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nCo-developed-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\nChange-Id: Ic84371d43ebb062a815b7dd0ebae518c374cde59\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "553cb663ad0b775777dc704f76bf5b46b72080be",
      "tree": "73ae6a841cb73af28fc9d123d6ca936596ac1a26",
      "parents": [
        "982090d9ea1d2f81572e4a783e17d1a8b3f35a71"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 15:14:56 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:57:17 2024 +0930"
      },
      "message": "console-server: Define static sigint object as `volatile sig_atomic_t`\n\nThe C language defines that access to any other type, of static storage\nduration, in a signal handler, yields undefined-behavior. Avoid the\nproblem given that compilers like to assume undefined behavior doesn\u0027t\noccur.\n\nChange-Id: I3cd37d7933c6c759aa52b11e3fdbecfe07e25981\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "982090d9ea1d2f81572e4a783e17d1a8b3f35a71",
      "tree": "48ea586ae69415cb9be03122cbfc36fbfbd39cf5",
      "parents": [
        "48d1f533efab4d48d45de5a79ed86f9b6814d068"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:31:27 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:57:17 2024 +0930"
      },
      "message": "console-server: Fix leak of TTY sysfs dev node path\n\nIdentified by valgrind:\n\n```\n\u003d\u003d1304\u003d\u003d 50 bytes in 1 blocks are definitely lost in loss record 1 of 1\n\u003d\u003d1304\u003d\u003d    at 0x4831C14: malloc (vg_replace_malloc.c:442)\n\u003d\u003d1304\u003d\u003d    by 0x499D10F: strdup (strdup.c:42)\n\u003d\u003d1304\u003d\u003d    by 0x4942913: realpath_stk (canonicalize.c:409)\n\u003d\u003d1304\u003d\u003d    by 0x4942913: realpath@@GLIBC_2.4 (canonicalize.c:431)\n\u003d\u003d1304\u003d\u003d    by 0x109CFF: UnknownInlinedFun (stdlib.h:42)\n\u003d\u003d1304\u003d\u003d    by 0x109CFF: UnknownInlinedFun (console-server.c:143)\n\u003d\u003d1304\u003d\u003d    by 0x109CFF: UnknownInlinedFun (console-server.c:359)\n\u003d\u003d1304\u003d\u003d    by 0x109CFF: main (console-server.c:1000)\n```\n\nChange-Id: I614ef9f36d59587c6a633d679d0997136ab29bf3\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "48d1f533efab4d48d45de5a79ed86f9b6814d068",
      "tree": "e313f369774f8a105a63bfbbbd95e5ae90cf552e",
      "parents": [
        "3f8d5bebebd401ab99e255dd648b55290bd1495a"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 14:46:14 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:57:17 2024 +0930"
      },
      "message": "log-hander: Fix leak of rotate_filename in cleanup path\n\nRunning `obmc-console-server` under valgrind yields:\n\n```\n\u003d\u003d259265\u003d\u003d 34 bytes in 1 blocks are definitely lost in loss record 1 of 1\n\u003d\u003d259265\u003d\u003d    at 0x48407B4: malloc (vg_replace_malloc.c:381)\n\u003d\u003d259265\u003d\u003d    by 0x49BC427: __vasprintf_internal (vasprintf.c:71)\n\u003d\u003d259265\u003d\u003d    by 0x498FBD5: asprintf (asprintf.c:31)\n\u003d\u003d259265\u003d\u003d    by 0x10F2EF: log_init (log-handler.c:189)\n\u003d\u003d259265\u003d\u003d    by 0x10EBEB: handlers_init (console-server.c:564)\n\u003d\u003d259265\u003d\u003d    by 0x10EBEB: main (console-server.c:1000)\n```\n\nFree rotate_filename to avoid the leak.\n\nChange-Id: Ib403d50d47b5d266bab415944cbae93582ecdb65\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "3f8d5bebebd401ab99e255dd648b55290bd1495a",
      "tree": "2cd38fb39900010236813a2a18eba77456af076d",
      "parents": [
        "079fc516efb9e0017b9ae66d558f2cdb423caaa6"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 14:40:50 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 17:57:05 2024 +0930"
      },
      "message": "console-server: Call ringbuffer_fini() to mitigate leak report\n\nRunning obmc-console-server under valgrind yields:\n\n```\n\u003d\u003d256429\u003d\u003d 131,112 bytes in 1 blocks are definitely lost in loss record 2 of 2\n\u003d\u003d256429\u003d\u003d    at 0x48407B4: malloc (vg_replace_malloc.c:381)\n\u003d\u003d256429\u003d\u003d    by 0x10F3FC: ringbuffer_init (ringbuffer.c:33)\n\u003d\u003d256429\u003d\u003d    by 0x10E61E: main (console-server.c:984)\n```\n\nAdd the missing call to ringbuffer_fini() in the exit path.\n\nChange-Id: I39b9a652a0565de73446f5ec7bfeac4bbc2281d8\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "079fc516efb9e0017b9ae66d558f2cdb423caaa6",
      "tree": "7001e2f86a1fada10ad27a1dde0ca917367e47d7",
      "parents": [
        "e2826c7def432a5c8f694ffb87355cb80862612b"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 16:51:56 2024 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Jul 09 16:53:06 2024 +0930"
      },
      "message": "console-server: Fix printf() format string for discovered handlers\n\nGCC reports the following on ARM:\n\n```\n../../../../../../workspace/sources/obmc-console/console-server.c: In function \u0027handlers_init\u0027:\n../../../../../../workspace/sources/obmc-console/console-server.c:549:19: error: format \u0027%ld\u0027 expects argument of type \u0027long int\u0027, but argument 2 has type \u0027size_t\u0027 {aka \u0027unsigned int\u0027} [-Werror\u003dformat\u003d]\n  549 |         printf(\"%ld handler type%s\\n\", n_types, n_types \u003d\u003d 1 ? \"\" : \"s\");\n      |                 ~~^                    ~~~~~~~\n      |                   |                    |\n      |                   long int             size_t {aka unsigned int}\n      |                 %d\n```\n\nChange-Id: Ib40f2e0576588d8dbd6fd38c4e969a1749c18538\nSigned-off-by: Andrew Jeffery \u003candrew@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "e2826c7def432a5c8f694ffb87355cb80862612b",
      "tree": "99eae2aff8f5a268c828a82a48b5f6ce97c6dc68",
      "parents": [
        "a71b3954015c3f670ed102f05f451ae47b7025eb"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@codeconstruct.com.au",
        "time": "Fri Jul 05 10:54:21 2024 +0800"
      },
      "committer": {
        "name": "Jeremy Kerr",
        "email": "jk@codeconstruct.com.au",
        "time": "Fri Jul 05 13:27:49 2024 +0800"
      },
      "message": "console-server: allow separate handler instances\n\nCurrently, each handler (socket-handler, tty-handler and log-handler)\nprovides a statically-allocated instance of a handler, which gets\ninitialized for a console through the -\u003einit callback.\n\nWe have upcoming changes that may create more than one console object,\nin which case means we will need multiple instances of each handler\ntype.\n\nThis change splits the handler type from the handler instance; the\nformer is now struct handler_type, with struct handler being the\ninstance. Handler modules define a (const) struct handler_type, and\n-\u003einit() now returns a newly-allocated instance of a handler of that\ntype.\n\nThis allows multiple handlers of each type.\n\nBecause the handler instances are allocated by type-\u003einit, we now\nrequire both -\u003einit and -\u003efini to be present on registered handlers.\n\nWe no longer need the `bool active` member of the handler, as instances\nare always active.\n\nChange-Id: Id97f15bd6445e17786f5883b849de8559c5ea434\nSigned-off-by: Jeremy Kerr \u003cjk@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "a71b3954015c3f670ed102f05f451ae47b7025eb",
      "tree": "46104b4e0fb62cd8d973a706102626c1d82105fc",
      "parents": [
        "6925740d318e6c305463f3d430d2064da6102752"
      ],
      "author": {
        "name": "Jeremy Kerr",
        "email": "jk@codeconstruct.com.au",
        "time": "Fri Jul 05 11:52:49 2024 +0800"
      },
      "committer": {
        "name": "Jeremy Kerr",
        "email": "jk@codeconstruct.com.au",
        "time": "Fri Jul 05 13:00:50 2024 +0800"
      },
      "message": "console-server: Add BUILD_ASSERT_OR_ZERO\n\nIntroduce the common BUILD_ASSERT_OR_ZERO, matching BUILD_ASSERT, which\nallows use in file scope.\n\nChange-Id: Ic88760bfdcfcb05468147fbc133a1a05427f886c\nSigned-off-by: Jeremy Kerr \u003cjk@codeconstruct.com.au\u003e\n"
    },
    {
      "commit": "6925740d318e6c305463f3d430d2064da6102752",
      "tree": "30e8250f39a155f2f2cb6109242a9d555805d8ef",
      "parents": [
        "46d9ef298f2e26f4c513fedff3b8a26fdf4b2d35"
      ],
      "author": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Fri Jun 07 15:17:09 2024 +0200"
      },
      "committer": {
        "name": "Alexander Hansen",
        "email": "alexander.hansen@9elements.com",
        "time": "Thu Jun 27 17:17:58 2024 +0200"
      },
      "message": "Refactor run_console: extract function\n\nrun_console has a loop that contains a lot of code and causes\nunnecessary indentation. This can be extracted into a separate function,\nwhich makes it more readable.\n\nreplace \u0027break\u0027 -\u003e \u0027return -1\u0027\nreplace \u0027continue\u0027 -\u003e \u0027return 0\u0027\n\nBased on the return value of run_console_iteration, the loop can break\nor continue as before.\n\nThe behavior should be the same.\n\nChange-Id: I46337c49a559d326206ab7e7cce9c6a83f2550b9\nSigned-off-by: Alexander Hansen \u003calexander.hansen@9elements.com\u003e\n"
    },
    {
      "commit": "46d9ef298f2e26f4c513fedff3b8a26fdf4b2d35",
      "tree": "39481f70f13897065a8f8092c5c52977e1caee20",
      "parents": [
        "2f1abc37384d6a5fda99f89b20ca0c11db940663"
      ],
      "author": {
        "name": "John Wang",
        "email": "wangzhiqiang02@inspur.com",
        "time": "Mon Jan 16 11:04:51 2023 +0800"
      },
      "committer": {
        "name": "John Wang",
        "email": "wangzhiqiang02@ieisystem.com",
        "time": "Wed Jun 05 12:50:27 2024 +0800"
      },
      "message": "Do not truncate log files after reboot\n\nThe log file will be truncated during the log_init process, so that the\nlogs will be lost after bmc(obmc-console) restarts.\n\nHere we change the logic to loop through the sol logs instead of\ntruncating them when they already exist in the bmc system\n\nSigned-off-by: John Wang \u003cwangzhiqiang02@inspur.com\u003e\nChange-Id: I9a14867c7ec8bfb6f25edcc8f383afd44f8ee3ad\n"
    },
    {
      "commit": "2f1abc37384d6a5fda99f89b20ca0c11db940663",
      "tree": "e73029c738cf7f2c571af30f49f7f8493afa6949",
      "parents": [
        "b7dddbc63e601298474dee68ea4c0cc25b865461"
      ],
      "author": {
        "name": "John Wang",
        "email": "wangzhiqiang02@ieisystem.com",
        "time": "Tue Jun 04 20:58:33 2024 +0800"
      },
      "committer": {
        "name": "John Wang",
        "email": "wangzhiqiang02@ieisystem.com",
        "time": "Wed Jun 05 12:50:27 2024 +0800"
      },
      "message": "Fix realloc() with size 0\n\nValgrind reported “realloc() with size 0\"\n\n\u0027\u0027\u0027\n\u003d\u003d508\u003d\u003d realloc() with size 0\n\u003d\u003d508\u003d\u003d at 0x484DB80: realloc (in /usr/libexec/valgrind/vgpreload_memcheck-amd64-linux.so)\n\u003d\u003d508\u003d\u003d by 0x1093E3: ringbuffer_consumer_unregister (ringbuffer.c:103)\n\u003d\u003d508\u003d\u003d by 0x10942B: ringbuffer_fini (ringbuffer.c:48)\n\u003d\u003d508\u003d\u003d by 0x109989: test_simple_poll (test-ringbuffer-simple-poll.c:31)\n\u003d\u003d508\u003d\u003d by 0x109A3A: main (test-ringbuffer-simple-poll.c:37)\n\u0027\u0027\u0027\n\nAnd gnu libc manual[1] said:\nPortable programs should not attempt to reallocate blocks to be size\nzero. On other implementations if ptr is non-null, realloc (ptr, 0)\nmight free the block and return a non-null pointer to a size-zero\nobject, or it might fail and return NULL without freeing the block.\nThe ISO C17 standard allows these variations.\n\nSo use free instead of realloc with size 0\n\n[1] https://www.gnu.org/software/libc/manual/html_node/Changing-Block-Size.html\nChange-Id: Ie716dd6ea84696a2091c680d71a0624423d1a185\nSigned-off-by: John Wang \u003cwangzhiqiang02@ieisystem.com\u003e\n"
    },
    {
      "commit": "b7dddbc63e601298474dee68ea4c0cc25b865461",
      "tree": "2030f7ded94cb1d1ef8fe25c6322e0b21c61d4e9",
      "parents": [
        "7f2bfb9b9f760f9599ce24e772e78f9ade43cc0f"
      ],
      "author": {
        "name": "Andrew Geissler",
        "email": "geissonator@yahoo.com",
        "time": "Wed Mar 27 16:13:21 2024 -0500"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Thu Apr 18 00:53:48 2024 +0000"
      },
      "message": "obmc-console-ssh@.service: add ECDSA and ED25519 keys\n\nWith RSA-SHA1 being deprecated, have our dropbear server also support\nECDSA and ED25519 keys.\n\nThe key generation and support within our standard ssh port 22 was added\nvia commit [1].\n\nThis commit adds support for our virtual console ports that come in via\nssh.\n\nThe service files have a somewhat unfortunately named variable,\nDROPBEAR_RSAKEY_DIR, which assumed dropbear was only going to support\nRSA keys. As this commit shows, dropbear supports multiple key types and\nthe directory, /etc/dropbear/, has no limitations on the type of key\nthat can go in that directory. Initially, we changed this variable name\nto DROPBEAR_KEY_DIR but upon further investigation we saw that this\nnaming convention was utilized heavily in the dropbear recipes. To keep\nthings consistent with dropbear, we left it as DROPBEAR_RSAKEY_DIR even\nthough other key types will be stored in that directory.\n\nTested:\n- Confirmed port 2200 and 2201 dropbear services loaded new RSA keys\n  (via \u0027ps\u0027 command) on p10bmc machine\n- Confirmed when an ssh was done to port 2200, it connected, properly\n  and listed the following as supported via \"ssh -vv\":\n    host key algorithms: ssh-ed25519,ecdsa-sha2-nistp384,rsa-sha2-256\n\n[1]: https://gerrit.openbmc.org/c/openbmc/openbmc/+/70265\n\nChange-Id: I76dd742654a67645d12856ae8fd15dfe71876b9d\nSigned-off-by: Andrew Geissler \u003cgeissonator@yahoo.com\u003e\n"
    },
    {
      "commit": "7f2bfb9b9f760f9599ce24e772e78f9ade43cc0f",
      "tree": "19db3c18a49565814740ee52423ec4f4a5382bbe",
      "parents": [
        "d6e8b64abad28f8accdc3e5d71c1413b555e8bda"
      ],
      "author": {
        "name": "Medicine Yeh",
        "email": "medicinehy@gmail.com",
        "time": "Sun Mar 10 23:19:41 2024 -0700"
      },
      "committer": {
        "name": "Medicine Yeh",
        "email": "medicinehy@gmail.com",
        "time": "Tue Apr 16 22:50:33 2024 +0000"
      },
      "message": "config: add ringbuffer-size in config file options\n\nEnable fine-tuning the memory usage by assigning ringbuffer size by\nsetting ringbuffer-size in the config file.\n\nChange-Id: I2425e4297aadbb528598ac9bc80840774a117a03\nSigned-off-by: Medicine Yeh \u003cmedicinehy@gmail.com\u003e\n"
    },
    {
      "commit": "d6e8b64abad28f8accdc3e5d71c1413b555e8bda",
      "tree": "4bf8492143e4d31e7fbedddf375472b6e7735720",
      "parents": [
        "bd4af900acc889ef840b78b6707d54b084e51dbf"
      ],
      "author": {
        "name": "Medicine Yeh",
        "email": "medicinehy@gmail.com",
        "time": "Mon Mar 18 01:49:17 2024 -0700"
      },
      "committer": {
        "name": "Medicine Yeh",
        "email": "medicinehy@gmail.com",
        "time": "Tue Apr 16 22:49:59 2024 +0000"
      },
      "message": "config: rename parse_logsize to be more generic\n\nRename config_parse_logsize to config_parse_bytesize.\nA more generic name allows this function to be reused in other\nconfig parsing purposes.\n\nChange-Id: I3036c184669be17ddc0d194f275ea05d871341d1\nSigned-off-by: Medicine Yeh \u003cmedicinehy@gmail.com\u003e\n"
    },
    {
      "commit": "bd4af900acc889ef840b78b6707d54b084e51dbf",
      "tree": "3f0c61ab62240dd4e1fd1e9e29160e84bb7d6f04",
      "parents": [
        "66ddf711d10cf684c8a179c4c2e6690e073990da"
      ],
      "author": {
        "name": "Andrew Geissler",
        "email": "geissonator@yahoo.com",
        "time": "Mon Feb 12 09:52:25 2024 -0500"
      },
      "committer": {
        "name": "Andrew Geissler",
        "email": "geissonator@yahoo.com",
        "time": "Tue Feb 13 07:20:35 2024 -0500"
      },
      "message": "80-obmc-console-uart.rules: fix udevadm warnings\n\nWithout this change we get the following warnings:\n```\nudevadm verify\n\n/usr/lib/udev/rules.d/80-obmc-console-uart.rules:1 style: a comma between tokens is expected.\n/usr/lib/udev/rules.d/80-obmc-console-uart.rules:2 style: a comma between tokens is expected.\n/usr/lib/udev/rules.d/80-obmc-console-uart.rules: udev rules have style issues.\n\n41 udev rules files have been checked.\n  Success: 40\n  Fail:    1\n```\n\nTested:\n- Confirmed \u0027udevadm verify\u0027 returns no warnings\n\nChange-Id: Ic1e1ddd212619fa5c9666adeb268bcfb60b0fb3a\nSigned-off-by: Andrew Geissler \u003cgeissonator@yahoo.com\u003e\n"
    },
    {
      "commit": "66ddf711d10cf684c8a179c4c2e6690e073990da",
      "tree": "92ebb5daefe0e30c8e9072e99fa723a732ac454e",
      "parents": [
        "3453084b579970cd368357bf091f173924ecba5e"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Dec 22 16:10:38 2023 +1030"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Dec 22 16:10:38 2023 +1030"
      },
      "message": "OWNERS: Update Andrew\u0027s preferred email\n\nWe\u0027re having some grief with non-preferred emails in Gerrit[1]. I now\nprefer project-related content goes to my work email address, so use my\nnon-preferred email to implement the switch.\n\n[1]: https://issues.gerritcodereview.com/issues/317345953\n\nChange-Id: I136e0bf66a43e830134cc2a8065e4b93edd523ed\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\n"
    },
    {
      "commit": "3453084b579970cd368357bf091f173924ecba5e",
      "tree": "03e876f8858db1fc7262488f6a9222ae610cc0c2",
      "parents": [
        "bae933a7c1aed0708b6c76a8833f4a4cbeb4190a"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Fri Oct 20 11:19:34 2023 -0500"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Tue Nov 07 23:43:20 2023 +0000"
      },
      "message": "clang-format: copy latest and re-format\n\nCopy the latest .clang-format from the docs repository and reformat the\nrepository.\n\nChange-Id: I5ffeeb2852dd6cc5bab2b407afdbb307414033b6\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "bae933a7c1aed0708b6c76a8833f4a4cbeb4190a",
      "tree": "1093eedb3248bf6dedda46318d4687be905191e4",
      "parents": [
        "955d140e3caafb8a082a094d4fb6ebd2e3d7782a"
      ],
      "author": {
        "name": "Patrick Williams",
        "email": "patrick@stwcx.xyz",
        "time": "Tue Oct 24 03:15:52 2023 -0500"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Fri Oct 27 16:54:24 2023 +1030"
      },
      "message": "meson: rename options file\n\nMeson supports the options being in a `meson.options` instead of a\ngeneric text file so leverage this option. Use of `meson.options`\nrequires at least meson v1.1.0, but that in turn yields an issue with\nthe options file:\n\n```\nmeson.options:2: WARNING: Project targets \u0027\u003e\u003d1.1.0\u0027 but uses feature deprecated since \u00271.1.0\u0027: \"boolean option\" keyword argument \"value\" of type str. use a boolean, not a string\n```\n\nFix all of these issues together.\n\nChange-Id: Idebe8f5ccd2d7ba2dbb0a45a274deac0c1fd327d\nSigned-off-by: Patrick Williams \u003cpatrick@stwcx.xyz\u003e\n"
    },
    {
      "commit": "955d140e3caafb8a082a094d4fb6ebd2e3d7782a",
      "tree": "480465c009cb771fa16cbbdcfc69665016fcac62",
      "parents": [
        "a2a026dc9aa4a99e57271985b799dbb9f49d4419"
      ],
      "author": {
        "name": "Oskar Senft",
        "email": "osk@google.com",
        "time": "Wed Sep 27 22:43:22 2023 -0400"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@codeconstruct.com.au",
        "time": "Wed Oct 04 01:07:37 2023 +0000"
      },
      "message": "console-server: Fix config of lpc_address and sirq sysfs attributes\n\nThis change fixes console-server to correctly configure lpc_address\nand sirq for VUART devices. It modifies tty_find_device to store the\ntty_sysfs_devnode path in the new console-\u003etty.vuart.sysfs_devnode\nas introduced by commit 30ea6385df2d7c6db6954d41555d667d509ba873.\n\nTested:\nManually modified the lpc_address and sirq sysfs attributes, then\nrestarted obmc-console-server. Checked that lpc_address and sirq\ngot configured to the values from the obmc-console confiugration\nfile.\n\nFixes: 30ea6385df2d (\"console-server: Add PTY support for testing purposes\")\nChange-Id: I10b715690d428722f772245618d8aa6f928154f6\nSigned-off-by: Oskar Senft \u003cosk@google.com\u003e\n"
    },
    {
      "commit": "a2a026dc9aa4a99e57271985b799dbb9f49d4419",
      "tree": "a2dceba840cdf1eea6bc0e0c2d8168705f1b36d9",
      "parents": [
        "2a5fface51431415ada38c947b4ebc06f0a9fbe5"
      ],
      "author": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Tue Sep 26 12:59:51 2023 -0700"
      },
      "committer": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Tue Sep 26 13:01:24 2023 -0700"
      },
      "message": "ssh: Service don\u0027t depends on concurrent-servers\n\nInstall the service files even with `concurrent-servers` enabled. This\nwill match the behavior before\nhttps://gerrit.openbmc.org/c/openbmc/obmc-console/+/66418\n\nChange-Id: If539b099185974a2546249b40bc4c97968f1a206\nSigned-off-by: Willy Tu \u003cwltu@google.com\u003e\n"
    },
    {
      "commit": "2a5fface51431415ada38c947b4ebc06f0a9fbe5",
      "tree": "67ddb08da82fea6925602c8c6598caf08bdbf0ba",
      "parents": [
        "7dc08baac216253b289f60c3cb0b39179f7aaefc"
      ],
      "author": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Thu Aug 31 13:53:31 2023 -0700"
      },
      "committer": {
        "name": "Willy Tu",
        "email": "wltu@google.com",
        "time": "Mon Sep 18 14:48:04 2023 +0000"
      },
      "message": "obmc-console-ssh: Add feature behind an option flag\n\nAllow us to disable obmc-console-ssh if it is not needed. Default to be\nenabled so there are no functional changes.\n\nChange-Id: I3c83a3102626c5a511cae14c18ed284af6078edd\nSigned-off-by: Willy Tu \u003cwltu@google.com\u003e\n"
    },
    {
      "commit": "7dc08baac216253b289f60c3cb0b39179f7aaefc",
      "tree": "d91661942455fadf78bdd7b4036575fb09194b14",
      "parents": [
        "acefe010e0b48193c2f3d44b71f83e917259f2f2"
      ],
      "author": {
        "name": "Zev Weiss",
        "email": "zev@bewilderbeest.net",
        "time": "Tue Sep 12 20:49:14 2023 -0700"
      },
      "committer": {
        "name": "Zev Weiss",
        "email": "zev@bewilderbeest.net",
        "time": "Wed Sep 13 13:04:10 2023 -0700"
      },
      "message": "config: Add support for aspeed-uart-routing config directive\n\nIt accepts one or more words of the form SINK:SOURCE, where SOURCE is\nwritten to the file SINK in the aspeed-uart-routing driver\u0027s sysfs\ndirectory (they are thus expected to be things like \"uart1\", \"uart2\",\n\"io1\", etc.).\n\nSigned-off-by: Zev Weiss \u003czev@bewilderbeest.net\u003e\nChange-Id: Iacbc524340e4b73f3d122bc77670eedb3957a858\n"
    },
    {
      "commit": "acefe010e0b48193c2f3d44b71f83e917259f2f2",
      "tree": "815f16fe883d382982279203ffc9e6b168059db7",
      "parents": [
        "35f44fccdc0c9ea42026d48a5b1e25a916e2a60c"
      ],
      "author": {
        "name": "Zev Weiss",
        "email": "zev@bewilderbeest.net",
        "time": "Tue Sep 12 19:12:22 2023 -0700"
      },
      "committer": {
        "name": "Zev Weiss",
        "email": "zev@bewilderbeest.net",
        "time": "Tue Sep 12 19:15:14 2023 -0700"
      },
      "message": "config: Allow multi-word config values\n\nNone of the presently existing config keys need it, but in order to\nsupport configuring multiple channels of the Aspeed UART-routing mux it\nwill be useful to be able to have multiple (space-separated) words in a\nconfig value (whereas previously the value was truncated at the first\nspace).  The \u0027#\u0027 comment character is respected as terminating the\nvalue, however.\n\nSigned-off-by: Zev Weiss \u003czev@bewilderbeest.net\u003e\nChange-Id: I2ab6f16efb2f0bed1041d79b1766136df939350d\n"
    },
    {
      "commit": "35f44fccdc0c9ea42026d48a5b1e25a916e2a60c",
      "tree": "8bc0cbb0e602da1b2b0eddb48a5f7d36e58d5e84",
      "parents": [
        "dfda5afb4ff7c76c4df3ebebbf496fdbda0fbbae"
      ],
      "author": {
        "name": "Zev Weiss",
        "email": "zev@bewilderbeest.net",
        "time": "Tue Sep 12 19:07:19 2023 -0700"
      },
      "committer": {
        "name": "Zev Weiss",
        "email": "zev@bewilderbeest.net",
        "time": "Tue Sep 12 19:07:19 2023 -0700"
      },
      "message": "config: Use isspace(3) instead of open-coding it\n\nWhile we\u0027re at it, a \u0027while\u0027 loop seems incrementally more readable than\na partially-populated \u0027for\u0027 loop with the desired effect in the third\nclause.\n\nSigned-off-by: Zev Weiss \u003czev@bewilderbeest.net\u003e\nChange-Id: I2a1a9b9f6fecc8e24ef7f124b8ac5048f20be3f9\n"
    },
    {
      "commit": "dfda5afb4ff7c76c4df3ebebbf496fdbda0fbbae",
      "tree": "0dd937e1310d0a5d8b0cb76e2d55d5a240a64c98",
      "parents": [
        "ba0a5a74ef699f2bd7d3dbbce24b26fa1ce5e6d5"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed Jun 07 13:33:47 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed Jun 07 13:41:01 2023 +0930"
      },
      "message": "config: Drop support for the `socket-id` configuration key\n\n9a8f30ec5b58 (\"obmc-console: Introduce console-id, deprecate socket-id\")\nreplaces the `socket-id` configuration key with a better name. Now that\nwe\u0027ve fixed up all in-tree users in OpenBMC with 7a612d4fa70f\n(\"obmc-console: Convert configs from socket-id to console-id\"), drop\nsupport for `socket-id`.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: Ied35025a98db426e27891f32ed4bd661d0edb14c\n"
    },
    {
      "commit": "ba0a5a74ef699f2bd7d3dbbce24b26fa1ce5e6d5",
      "tree": "d793a8eb5b6ea4c541251056d8dbbebfaa969f7d",
      "parents": [
        "db928087ee94b970cffe6720caca9bbb2f56753b"
      ],
      "author": {
        "name": "Jonathan Doman",
        "email": "jonathan.doman@intel.com",
        "time": "Thu Jun 01 10:47:17 2023 -0700"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed Jun 07 13:21:38 2023 +0930"
      },
      "message": "Remove deprecated D-Bus interface\n\n9598b866d8e2 (\"Add new D-Bus UART interface\") adds the interface that\u0027s\ndescribed in phosphor-dbus-interface and deprecates the old interface.\nNow that the new interface is merged, follow through and delete the\ndeprecated interface.\n\nChange-Id: I304041d74a5b2218732b32f915efcbc0a5e9aafe\nSigned-off-by: Jonathan Doman \u003cjonathan.doman@intel.com\u003e\n[AJ: Rebase on master and update changelog]\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\n"
    },
    {
      "commit": "db928087ee94b970cffe6720caca9bbb2f56753b",
      "tree": "8db13ca2c9608b309eea7ff25f3320fff651db77",
      "parents": [
        "7c02ae1ebe2689422fc233cddd91f1a265d293fc"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed Jun 07 09:45:11 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed Jun 07 09:46:41 2023 +0930"
      },
      "message": "obmc-console: Update version and CHANGELOG for 1.1.0\n\nWith a bunch of work merged recently it\u0027s time for a tag before we merge\nsome breaking changes.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I0b54da30da0edec81bc8ed813db938522ebf10e3\n"
    },
    {
      "commit": "7c02ae1ebe2689422fc233cddd91f1a265d293fc",
      "tree": "cf61f29fffbd0609890f91f00359ee9e90ae834d",
      "parents": [
        "9598b866d8e2189b0f426e8a384f2e20dc4d732c"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Mon Jun 05 18:45:38 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Mon Jun 05 11:04:33 2023 +0000"
      },
      "message": "console-server: Use correct attribute name in VUART test\n\nThe test was looking for a sysfs attribute named `lpc_addr`, but the\nattribute actually exposed is `lpc_address`:\n\nhttps://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/ABI/stable/sysfs-driver-aspeed-vuart?h\u003dv6.3#n1\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: Ifaa2687385c53d847d79803a4bb7cf77054a7dde\n"
    },
    {
      "commit": "9598b866d8e2189b0f426e8a384f2e20dc4d732c",
      "tree": "4e4b7b494785c59509f6fb7ee0297e8d98d3d50f",
      "parents": [
        "bd992c9f62dbf127a21de26714662f92eabd0156"
      ],
      "author": {
        "name": "Jonathan Doman",
        "email": "jonathan.doman@intel.com",
        "time": "Thu Jun 01 10:21:25 2023 -0700"
      },
      "committer": {
        "name": "Jonathan Doman",
        "email": "jonathan.doman@intel.com",
        "time": "Fri Jun 02 12:28:32 2023 -0700"
      },
      "message": "Add new D-Bus UART interface\n\nNew interface xyz.openbmc_project.Console.UART was added to P-D-I:\nhttps://github.com/openbmc/phosphor-dbus-interfaces/blob/3826910ef8f91c05562a716929221745c92dd9d7/yaml/xyz/openbmc_project/Console/UART.interface.yaml\n\nTested: With obmc-console@ttyS2:\nbmc# alias xyz\u003dxyz.openbmc_project; alias XYZ\u003d/xyz/openbmc_project\nbmc# stty -F /dev/ttyS2 speed\n921600\nbmc# busctl introspect $xyz.Console.default $XYZ/console/default $xyz.Console.UART\nNAME                             TYPE      SIGNATURE RESULT/VALUE FLAGS\n.Baud                            property  t         921600       writable\n\nbmc# busctl set-property $xyz.Console.default $XYZ/console/default \\\n        $xyz.Console.UART Baud t 57600\nbmc# stty -F /dev/ttyS2 speed\n57600\n\nbmc# busctl set-property $xyz.Console.default $XYZ/console/default \\\n        $xyz.Console.UART Baud t 57601\nFailed to set property Baud on interface xyz.openbmc_project.Console.UART: Invalid argument\n\nChange-Id: I055f2a95c515636b38a694bf565b71aa648fe7b7\nSigned-off-by: Jonathan Doman \u003cjonathan.doman@intel.com\u003e\n"
    },
    {
      "commit": "bd992c9f62dbf127a21de26714662f92eabd0156",
      "tree": "ca4203b34e4b7d089d70bfc298a3f11285575290",
      "parents": [
        "5ba20b5bf1351a3550b56c2a6eca7045336d8001"
      ],
      "author": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Tue May 09 18:30:01 2023 -0500"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 17 07:28:54 2023 +0000"
      },
      "message": "Add Connect() method to console DBUS object\n\nAdded new poller and consumer for the console DBUS data.\n\nNote: We initially developed SocketName attribute but it is now\n      deprecated/removed.\n\nThe tree of default object:\n$ busctl tree xyz.openbmc_project.Console.default\n`-/xyz\n  `-/xyz/openbmc_project\n    `-/xyz/openbmc_project/console\n      `-/xyz/openbmc_project/console/default\n\nThe introspect of default console:\n$ busctl introspect xyz.openbmc_project.Console.default /xyz/openbmc_project/console/default\nNAME                                TYPE      SIGNATURE RESULT/VALUE FLAGS\norg.freedesktop.DBus.Introspectable interface -         -            -\n.Introspect                         method    -         s            -\norg.freedesktop.DBus.Peer           interface -         -            -\n.GetMachineId                       method    -         s            -\n.Ping                               method    -         -            -\norg.freedesktop.DBus.Properties     interface -         -            -\n.Get                                method    ss        v            -\n.GetAll                             method    s         a{sv}        -\n.Set                                method    ssv       -            -\n.PropertiesChanged                  signal    sa{sv}as  -            -\nxyz.openbmc_project.Console.Access  interface -         -            -\n.Connect                            method    -         h            -\nxyz.openbmc_project.console         interface -         -            -\n.setBaudRate                        method    u         x            -\n.baudrate                           property  u         0            -\n\nTested:\n  Performed integration testing with bmcweb.\n\nChange-Id: I2444b1083cf26536f43c6f6b4b0857a2921c4f78\nSigned-off-by: Ninad Palsule \u003cninadpalsule@us.ibm.com\u003e\n"
    },
    {
      "commit": "5ba20b5bf1351a3550b56c2a6eca7045336d8001",
      "tree": "f3f24172acf6bea6a6e4c7d56829613a7ac2a79e",
      "parents": [
        "4e44c790ada85a0af47e0766471658e9f6cbc0b2"
      ],
      "author": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Fri May 12 14:03:15 2023 -0500"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 16 11:56:31 2023 +0930"
      },
      "message": "obmc-console: Consolidate handling of default socket-id\n\nIf console-id is not specified on command line or in the config file\nthen use the default value. ae2460d0b8e8 (\"obmc-console: Provide a\ndefault value for `console-id`.\") only implemented the default value for\nnaming the abstract listening socket and overlooked the new DBus path\nnaming convention.  This caused issues during dbus registration:\n\n```\nobmc-console-server: Object name: /xyz/openbmc_project/console/(null)\nobmc-console-server: Failed to issue method call: Invalid argument\n```\n\nFixes: ae2460d0b8e8 (\"obmc-console: Provide a default value for `console-id`.\")\nChange-Id: I6d0f7b23cc085992189cd4463129a6aae590b3e7\nSigned-off-by: Ninad Palsule \u003cninadpalsule@us.ibm.com\u003e\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\n"
    },
    {
      "commit": "4e44c790ada85a0af47e0766471658e9f6cbc0b2",
      "tree": "44d4596868010b7fd23c1da7cb29a819b82b8dba",
      "parents": [
        "ae2460d0b8e808078ba130d63514b20b66cd3375"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri May 12 15:57:46 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri May 12 16:03:17 2023 +0930"
      },
      "message": "clang-format: copy latest and re-format\n\nclang-format-16 has some backwards incompatible changes that require\nadditional settings for best compatibility and re-running the formatter.\nCopy the latest .clang-format from the docs repository and reformat the\nrepository.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I1617773783af90585a0ff753b6fa548d614f4d09\n"
    },
    {
      "commit": "ae2460d0b8e808078ba130d63514b20b66cd3375",
      "tree": "9be0e6a522be38173aa93dc79d0bc4171caa00d1",
      "parents": [
        "ba2af9692e491d04e82e5646f531a3ebed409ece"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 09 17:12:45 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Thu May 11 14:45:09 2023 +0930"
      },
      "message": "obmc-console: Provide a default value for `console-id`.\n\n4e7186918599 (\"Fixed broken dbus interface for multiple consoles\")\nintroduced the requirement that `console-id` be specified in the\nconfiguration files for both the client and server. It was paired with a\nfix to platform configurations in the OpenBMC bitbake metadata[1]. In\ntheory this should have worked, but because specifying `console-id`\nwasn\u0027t a requirement, not all platforms supplied a client configuration.\nInstead they relied on the default behaviour.\n\n[1]: https://gerrit.openbmc.org/c/openbmc/openbmc/+/62712\n\nRemove the requirement that a `console-id` be specified and instead\nprovide a default value that can be overridden by configuration. This\ncarries forward the consequence from 4e7186918599 (\"Fixed broken dbus\ninterface for multiple consoles\") that the original `\\0obmc-console`\nabstract socket will never be created. This doesn\u0027t resolve the break in\nipmid or bmcweb, but resolves the break to SSH-based SOL on platforms\nnot supplying client configuration files for one of their consoles.\n\nThe fix to bmcweb (whose strategy can also be applied to ipmid) is\ncurrently being prototyped[2].\n\n[2]: https://discord.com/channels/775381525260664832/1083551792094249051/1103867159412752424\n\nA deeper treatment of the problems, impacts, and solutions is provided\nin [3].\n\n[3]: https://amboar.github.io/notes/2023/05/08/happenings-in-obmc-console.html\n\nFixes: 4e7186918599 (\"Fixed broken dbus interface for multiple consoles\")\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I970578f1b695f729f6524c4da6bba6e89bf14d52\n"
    },
    {
      "commit": "ba2af9692e491d04e82e5646f531a3ebed409ece",
      "tree": "672124d0b921beb67c14cde43df50f1c8260e0f3",
      "parents": [
        "954be0fbc4acdd0322041c4c86fa08fd33ded594"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 02 15:02:56 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 09 22:30:25 2023 +0930"
      },
      "message": "console-server: Don\u0027t require a configuration file\n\nNot requiring a configuration file makes it marginally less irritating\nto test obmc-console-server.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: Ibdf898933284bb4028861d25640bea3c58fb05bf\n"
    },
    {
      "commit": "954be0fbc4acdd0322041c4c86fa08fd33ded594",
      "tree": "ba1dbea6659af9219ca99ce09d506ea536d25e23",
      "parents": [
        "9a8f30ec5b58252caeb5b856c353d37df9e4cf4d"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 21:01:59 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 09 22:30:25 2023 +0930"
      },
      "message": "console-server: Add --console-id option\n\nAllow specification of the console-id on the command-line. Specification\non the command line takes precedence over the value in the configuration\nfile.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: Ia143e997b9f5386493564aa92e44e2813173e238\n"
    },
    {
      "commit": "9a8f30ec5b58252caeb5b856c353d37df9e4cf4d",
      "tree": "9c00e437224af7a7dc8de4399dfd2a727ca5f35b",
      "parents": [
        "30ea6385df2d7c6db6954d41555d667d509ba873"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 02 13:56:02 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 09 22:30:25 2023 +0930"
      },
      "message": "obmc-console: Introduce console-id, deprecate socket-id\n\nThe name `socket-id` exposes too much detail about the implementation.\nReally the tag identifies the console, so name it as such.\n\nMaintain backwards compatibility until we\u0027ve converted all the in-tree\nOpenBMC users over to `console-id`. Once that\u0027s done we can drop support\nfor `socket-id`.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I5aa2ba84835d64901e459b42bfe7be59043466c7\n"
    },
    {
      "commit": "30ea6385df2d7c6db6954d41555d667d509ba873",
      "tree": "dc38d9ea47bc756f5a8650eccf1aed122d21196a",
      "parents": [
        "d769eecf1c0edc47f86c9325e03275d876dbc05d"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 16:56:10 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 09 22:28:16 2023 +0930"
      },
      "message": "console-server: Add PTY support for testing purposes\n\nDifferent TTY device types have different configuration options. The\nexisting code kinda smooshes the differences between UARTs and VUARTs\ntogether. PTYs do not require the configuration applicable to either\nUARTs or VUARTs. Given this, separate out and be explict about the\nconcepts and configuration required for all three types.\n\nThis in turn, with some further patches, allows testing of obmc-console\nusing `socat`:\n\nhttps://amboar.github.io/notes/2023/05/02/testing-obmc-console-with-socat.html\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I3c1ce610132fce8ef6b5324ed3b4e0c86395e433\n"
    },
    {
      "commit": "d769eecf1c0edc47f86c9325e03275d876dbc05d",
      "tree": "449773c72aea74260fad2722d04d396ad62fb816",
      "parents": [
        "29c59c44c8f1e45f2a63f23fc0afa3b5c29891bd"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 20:00:09 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri May 05 12:10:23 2023 +0930"
      },
      "message": "console-server: Move console-\u003etty_kname initialisation to tty_init()\n\nConsolidate the TTY initialisation code and fix some odd interleaving\nwith `set_socket_info()`.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I3d26afda2a950f83313d2586d42551576e7d552e\n"
    },
    {
      "commit": "29c59c44c8f1e45f2a63f23fc0afa3b5c29891bd",
      "tree": "bc0bddebaeb5966f3c5e758e44c860a8f340b568",
      "parents": [
        "4ee702a86592edcd1a1dd2c2ab94a50e0a49ee0d"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 19:33:07 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri May 05 09:41:02 2023 +0930"
      },
      "message": "console-server: Consistently use cleanup labels on error\n\nWe\u0027ve already allocated the `struct console` object here, and some error\npaths before and after jump to the `out_*` labels, but others just\n`return EXIT_FAILURE`. Pick a consistent strategy, and also one that\naligns with useful leak analysis results.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I2e9be530823fb117bf2d013757c99d8d43e680d7\n"
    },
    {
      "commit": "4ee702a86592edcd1a1dd2c2ab94a50e0a49ee0d",
      "tree": "489a0c6be29b116869f711d0a22363ea0c00d80d",
      "parents": [
        "d3cb9c224bc63c61d0dabd529d3074278496a39a"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 02 14:13:17 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 17:48:16 2023 +0930"
      },
      "message": "console-server: Rationalise acquisition of console_id\n\nIt turns out we were also populating console-\u003econsole_id in\n`set_socket_info()`. Remove the open-coded acquisition in main(), as\nit\u0027s not particularly useful beyond the call to `set_socket_info()`.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I696d95157953f396a9ce65dd57d15daa66191118\n"
    },
    {
      "commit": "d3cb9c224bc63c61d0dabd529d3074278496a39a",
      "tree": "7d690fc7c1c5dc2de6c8ee34e22683a61c18b7da",
      "parents": [
        "7eb20ac61324eb4ad872f1166eb0c19156cca2ca"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 17:13:50 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 17:48:16 2023 +0930"
      },
      "message": "console-server: Assign NULL in declarations for brevity\n\nDeclaring and then separately assigning the tty stack variables was\npretty verbose. No complex initialisation was performed that might\njustify separating them, so let\u0027s combine them.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: Ifea0ca68f65a2f2eaec48cac303c70099d6153ab\n"
    },
    {
      "commit": "7eb20ac61324eb4ad872f1166eb0c19156cca2ca",
      "tree": "7e5d64a7c70f646a60c249a6fae4f2c19e2eea92",
      "parents": [
        "095db476d486199c607631c7ec8c4cc561e09f10"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 11:00:32 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed May 03 13:00:16 2023 +0930"
      },
      "message": "obmc-console: Introduce a changelog\n\nFollow the changelog structure outlined at https://keepachangelog.com/\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I663231bf9adb9298cc122b2c399bfc7c19c7513e\n"
    },
    {
      "commit": "095db476d486199c607631c7ec8c4cc561e09f10",
      "tree": "40b63968d87881a4d329dbc228fe28f2c21ab761",
      "parents": [
        "4dfefa972ddbe20c4d3164fd526f910c4ecd2966"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 02 16:53:06 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 02 23:34:17 2023 +0000"
      },
      "message": "README: Convert the build instructions to meson\n\nThis probably should have been done before the removal of the autotools\nbuild system, but who reads READMEs anyway.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I4483f6608fd54ac0db6d78a116185056b96adbfc\n"
    },
    {
      "commit": "4dfefa972ddbe20c4d3164fd526f910c4ecd2966",
      "tree": "a96b17e92bbed419de6ac26e2ac7077b3e461093",
      "parents": [
        "c9f4a556ddc4154909c8d83323ac3b7b3dc38a1c"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 02 15:53:16 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue May 02 16:00:32 2023 +0930"
      },
      "message": "test: ringbuffer-test-utils: Add stdlib.h for malloc()/free()\n\nInclude what we use to address clang-tidy issues:\n\n```\nError while processing /mnt/host/andrew/home/andrew/src/openbmc/obmc-console/test/ringbuffer-test-utils.c.\n/mnt/host/andrew/home/andrew/src/openbmc/obmc-console/test/ringbuffer-test-utils.c:25:2: error: call to undeclared library function \u0027free\u0027 with type \u0027void (void *)\u0027; ISO C99 and later do not support implicit function declarations [clang-diagnostic-implicit-function-declaration]\n        free(ctx-\u003edata);\n        ^\n/mnt/host/andrew/home/andrew/src/openbmc/obmc-console/test/ringbuffer-test-utils.c:25:2: note: include the header \u003cstdlib.h\u003e or explicitly provide a declaration for \u0027free\u0027\n/mnt/host/andrew/home/andrew/src/openbmc/obmc-console/test/ringbuffer-test-utils.c:64:15: error: call to undeclared library function \u0027realloc\u0027 with type \u0027void *(void *, unsigned long)\u0027; ISO C99 and later do not support implicit function declarations [clang-diagnostic-implicit-function-declaration]\n                ctx-\u003edata \u003d realloc(ctx-\u003edata, ctx-\u003elen + len);\n                            ^\n/mnt/host/andrew/home/andrew/src/openbmc/obmc-console/test/ringbuffer-test-utils.c:64:15: note: include the header \u003cstdlib.h\u003e or explicitly provide a declaration for \u0027realloc\u0027\n```\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: Icf6d9ab735fb035572e8953ec474afd81efa53e9\n"
    },
    {
      "commit": "c9f4a556ddc4154909c8d83323ac3b7b3dc38a1c",
      "tree": "ab5bae77ba37c2a945ef60bd9ac4b2bfb49b4810",
      "parents": [
        "b14ca19cf380efbf7a96a348cc6fc81e75bf0591"
      ],
      "author": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Thu Apr 27 21:30:19 2023 -0500"
      },
      "committer": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Fri Apr 28 02:31:34 2023 +0000"
      },
      "message": "Adding myself as a reviewer\n\nRequesting to add me as a reviewer.\n\nChange-Id: Id5b56cf4d2595fc909c6ba8be0c2cd7d777702ba\nSigned-off-by: Ninad Palsule \u003cninadpalsule@us.ibm.com\u003e\n"
    },
    {
      "commit": "b14ca19cf380efbf7a96a348cc6fc81e75bf0591",
      "tree": "b473e83c2aa554be9e62b5c65350478a25729e36",
      "parents": [
        "e258e51fd256c275cd58a104a6bcb379ff1534f9"
      ],
      "author": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Fri Mar 31 09:49:00 2023 -0500"
      },
      "committer": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Thu Apr 27 20:57:48 2023 -0500"
      },
      "message": "Added new dbus interface to query console info\n\nobmc-console recipe configure consoles by setting the socket-id\nfield in the console server config file. obmc-console server use this\nsocket id to build a abract socket name and register new service\n\"xyz.openbmc_project.Console.Access\". The leaf of the object path will\nbe socket-id configured. It also exposes the unix abstract socket name\nthrough SocketName property. The socket name is sent as a byte stream as\nabstract socket contains null character at the start.\n\n*** For example if recipe configured socket-id as \"console0\" the\n*** following object is exported through dbus interface\n\n    # Tree for \"console0\" console.\n    $ busctl tree xyz.openbmc_project.Console.console0\n    `-/xyz\n      `-/xyz/openbmc_project\n        `-/xyz/openbmc_project/console\n          `-/xyz/openbmc_project/console/console0\n\n    # Get SocketName property for console0 object\n    $ busctl get-property xyz.openbmc_project.Console.console0 /xyz/openbmc_project/console/console0 xyz.openbmc_project.Console.Access SocketName\n    ay 22 0 111 98 109 99 45 99 111 110 115 111 108 101 46 99 111 110 115 111 108 101 48\n\n    # Tree for \"hypervisor\" console\n    $ busctl tree xyz.openbmc_project.Console.hypervisor\n    `-/xyz\n      `-/xyz/openbmc_project\n        `-/xyz/openbmc_project/console\n          `-/xyz/openbmc_project/console/hypervisor\n\n    # Get SocketName property for hypervisor object\n    $ busctl get-property xyz.openbmc_project.Console.hypervisor /xyz/openbmc_project/console/hypervisor xyz.openbmc_project.Console.Access SocketName\n    ay 24 0 111 98 109 99 45 99 111 110 115 111 108 101 46 104 121 112 101 114 118 105 115 111 114\n\n    # Note that this is an example of two consoles one is \u0027console0\u0027 and\n    # second is \u0027hypervisor\u0027. I have formated the output to easy viewing.\n    # We also have one extra service for console that is coming from the\n    # service exist today to get/set the tty device baud rate.\n    $ busctl call  xyz.openbmc_project.ObjectMapper \\\n        /xyz/openbmc_project/object_mapper xyz.openbmc_project.ObjectMapper \\\n        GetSubTree sias /xyz/openbmc_project/console 0 1 \\\n        xyz.openbmc_project.Console.Access\n    a{sa{sas}}\n    2\n    \"/xyz/openbmc_project/console/console0\" \\\n        1\n        \"xyz.openbmc_project.Console.console0\"\n           4 \"org.freedesktop.DBus.Introspectable\"\n             \"org.freedesktop.DBus.Peer\"\n             \"org.freedesktop.DBus.Properties\"\n             \"xyz.openbmc_project.Console.Access\"\n    \"/xyz/openbmc_project/console/hypervisor\"\n        2\n        \"xyz.openbmc_project.Console.hypervisor\"\n           4 \"org.freedesktop.DBus.Introspectable\"\n             \"org.freedesktop.DBus.Peer\"\n             \"org.freedesktop.DBus.Properties\"\n             \"xyz.openbmc_project.Console.Access\"\n        \"xyz.openbmc_project.console\"\n          4 \"org.freedesktop.DBus.Introspectable\"\n            \"org.freedesktop.DBus.Peer\"\n            \"org.freedesktop.DBus.Properties\"\n            \"xyz.openbmc_project.Console.Access\"\n\nTested:\n    Tested on the rainer system with busctl command and integration\n    with bmcweb\n\nRelated commits:\n    1) phosphor-dbus-interface: https://gerrit.openbmc.org/c/openbmc/phosphor-dbus-interfaces/+/61486\n    2) obmc-console: https://gerrit.openbmc.org/c/openbmc/obmc-console/+/62496\n    3) bmcweb: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/62525\n\nChange-Id: Ifb70ce5585c3937f3abd904ffbae51ca67f58724\nSigned-off-by: Ninad Palsule \u003cninadpalsule@us.ibm.com\u003e\n"
    },
    {
      "commit": "e258e51fd256c275cd58a104a6bcb379ff1534f9",
      "tree": "cec88605f68642f778d8d8640b40b1d7d40bdc6b",
      "parents": [
        "4e71869185995ff44e4bfafb8be1e16452e87835"
      ],
      "author": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Wed Apr 26 22:17:57 2023 -0500"
      },
      "committer": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Thu Apr 27 19:55:16 2023 -0500"
      },
      "message": "Split dbus related code into separate file\n\nMoved dbus related code into separate file. This can be used to disable\ndbus interface if required.\n\nChange-Id: I880639983edaf00c64acc4acb786203c51b414e7\nSigned-off-by: Ninad Palsule \u003cninadpalsule@us.ibm.com\u003e\n"
    },
    {
      "commit": "4e71869185995ff44e4bfafb8be1e16452e87835",
      "tree": "8aea9cbe0a1d89acaffb32a1e8ecf1cf1b7ee4a3",
      "parents": [
        "b377362110f93a6eeabfb7f7a0e5cbb1eba65089"
      ],
      "author": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Wed Apr 26 21:18:35 2023 -0500"
      },
      "committer": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Thu Apr 27 19:51:19 2023 -0500"
      },
      "message": "Fixed broken dbus interface for multiple consoles\n\nThere is a console server instance per console. So if there are two\nconsoles then two console server instances will be started. The issue\nis that each instance is sharing same bus name and object path. The\nissue is fixed by keeping the interface name same as before\n(xyz.openbmc_project.console) but changing the bus name and object path\nname by appending socket-id which makes them unique. So the bus name\nbecomes xyz.openbmc_project.Console.\u003csocket-id\u003e and the object name\nbecomes /xyz/openbmc_project/Console/\u003csocket-id\u003e. Each console server\nhas its own socket-id hence there should not be any conflict between two\nconsoles.\n\nTesting:\n    -\u003e Ran busctl to check object changes\n    $ busctl get-property xyz.openbmc_project.Console.console0 /xyz/openbmc_project/console/console0 xyz.openbmc_project.console baudrate\n    u 0\n    $ busctl introspect xyz.openbmc_project.Console.console0 /xyz/openbmc_project/console/console0    ....\n    xyz.openbmc_project.Console         interface -         -            -\n    .setBaudRate                        method    u         x            -\n    .baudrate                           property  u         0            -\n\nChange-Id: Ic1aacd8f284a867416081b4965b55ba7c3cb34e3\nSigned-off-by: Ninad Palsule \u003cninadpalsule@us.ibm.com\u003e\n"
    },
    {
      "commit": "b377362110f93a6eeabfb7f7a0e5cbb1eba65089",
      "tree": "94f3b790be4aec0e922b0aaba2417410d41cce2c",
      "parents": [
        "86e3fd70f003264a05a09452c60ea8b9da6be287"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed Apr 26 08:36:04 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed Apr 26 08:36:04 2023 +0930"
      },
      "message": "obmc-console: Remove autotools build system\n\nAfter introducing the meson build system and switching over the bitbake\nrecipe there\u0027s no need to continue maintaining the autotools build.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I49c808284e640e3c1efe1f9e555c31c7a3af041c\n"
    },
    {
      "commit": "86e3fd70f003264a05a09452c60ea8b9da6be287",
      "tree": "624b7432dcaa88e6fdefad0b99942579e84d6813",
      "parents": [
        "dd4fa59109501b69b9fb0af94b8afb8c3778fa3d"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Apr 21 16:14:17 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Apr 21 16:20:13 2023 +0930"
      },
      "message": "meson: Install obmc-console-server in $sbindir for consistency\n\nCurrently the autotools build and the systemd service units expect\nobmc-console-server to be installed in ${sbindir}. This probably still\nisn\u0027t quite right (`${libexecdir}/obmc-console/` might be a better\nchoice by [1]) but at least it\u0027s consistent.\n\n[1] https://github.com/openbmc/docs/blob/master/anti-patterns.md#incorrect-placement-of-executables-in-sbin-usrsbin-or-bin-usrbin\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I6db11d0916ce40d0dcae4617d1ae1ddab3fe9a81\n"
    },
    {
      "commit": "dd4fa59109501b69b9fb0af94b8afb8c3778fa3d",
      "tree": "83d66dca35990b738f40e91e09a3f84e1f06003c",
      "parents": [
        "533f9702a3ce08b38011045e07cb3c078788970f"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Apr 21 11:48:56 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Apr 21 03:45:22 2023 +0000"
      },
      "message": "test: test-config-parse-logsize: Fix invalid size_t format specifier\n\nCaught by building under bitbake:\n\n```\n| arm-openbmc-linux-gnueabi-gcc -march\u003darmv7-a -mfpu\u003dvfpv4-d16 -mfloat-abi\u003dhard -fstack-protector-strong -O2 -D_FORTIFY_SOURCE\u003d2 -Wformat -Wformat-security -Werror\u003dformat-security --sysroot\u003d/var/tmp/bitbake/build/p10bmc/tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-console/1.0+gitAUTOINC+533f9702a3-r1/recipe-sysroot -Itest/test-config-parse-logsize.p -Itest -I../git/test -I. -I../git -flto\u003dauto -fdiagnostics-color\u003dalways -D_FILE_OFFSET_BITS\u003d64 -Wall -Winvalid-pch -Wextra -Wpedantic -Werror -std\u003dgnu17 -D_GNU_SOURCE -O2 -pipe -g -feliminate-unused-debug-types -fmacro-prefix-map\u003d/var/tmp/bitbake/build/p10bmc/tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-console/1.0+gitAUTOINC+533f9702a3-r1/git\u003d/usr/src/debug/obmc-console/1.0+gitAUTOINC+533f9702a3-r1 -fdebug-prefix-map\u003d/var/tmp/bitbake/build/p10bmc/tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-console/1.0+gitAUTOINC+533f9702a3-r1/git\u003d/usr/src/debug/obmc-console/1.0+gitAUTOINC+533f9702a3-r1 -fmacro-prefix-map\u003d/var/tmp/bitbake/build/p10bmc/tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-console/1.0+gitAUTOINC+533f9702a3-r1/build\u003d/usr/src/debug/obmc-console/1.0+gitAUTOINC+533f9702a3-r1 -fdebug-prefix-map\u003d/var/tmp/bitbake/build/p10bmc/tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-console/1.0+gitAUTOINC+533f9702a3-r1/build\u003d/usr/src/debug/obmc-console/1.0+gitAUTOINC+533f9702a3-r1 -fdebug-prefix-map\u003d/var/tmp/bitbake/build/p10bmc/tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-console/1.0+gitAUTOINC+533f9702a3-r1/recipe-sysroot\u003d -fmacro-prefix-map\u003d/var/tmp/bitbake/build/p10bmc/tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-console/1.0+gitAUTOINC+533f9702a3-r1/recipe-sysroot\u003d -fdebug-prefix-map\u003d/var/tmp/bitbake/build/p10bmc/tmp/work/p10bmc-openbmc-linux-gnueabi/obmc-console/1.0+gitAUTOINC+533f9702a3-r1/recipe-sysroot-native\u003d -fpic -O2 \u0027-DSYSCONFDIR\u003d\"\"\u0027 -MD -MQ test/test-config-parse-logsize.p/test-config-parse-logsize.c.o -MF test/test-config-parse-logsize.p/test-config-parse-logsize.c.o.d -o test/test-config-parse-logsize.p/test-config-parse-logsize.c.o -c ../git/test/test-config-parse-logsize.c\n| ../git/test/test-config-parse-logsize.c: In function \u0027test_config_parse_logsize\u0027:\n| ../git/test/test-config-parse-logsize.c:56:60: error: format \u0027%lu\u0027 expects argument of type \u0027long unsigned int\u0027, but argument 4 has type \u0027size_t\u0027 {aka \u0027unsigned int\u0027} [-Werror\u003dformat\u003d]\n|    56 |                         warn(\"[%zu] Str %s expected size %lu, got size %lu\\n\",\n|       |                                                          ~~^\n|       |                                                            |\n|       |                                                            long unsigned int\n|       |                                                          %u\n|    57 |                              i, test_data[i].test_str,\n|    58 |                              test_data[i].expected_size, size);\n|       |                              ~~~~~~~~~~~~~~~~~~~~~~~~~~\n|       |                                          |\n|       |                                          size_t {aka unsigned int}\n| ../git/test/test-config-parse-logsize.c:56:74: error: format \u0027%lu\u0027 expects argument of type \u0027long unsigned int\u0027, but argument 5 has type \u0027size_t\u0027 {aka \u0027unsigned int\u0027} [-Werror\u003dformat\u003d]\n|    56 |                         warn(\"[%zu] Str %s expected size %lu, got size %lu\\n\",\n|       |                                                                        ~~^\n|       |                                                                          |\n|       |                                                                          long unsigned int\n|       |                                                                        %u\n|    57 |                              i, test_data[i].test_str,\n|    58 |                              test_data[i].expected_size, size);\n|       |                                                          ~~~~\n|       |                                                          |\n|       |                                                          size_t {aka unsigned int}\n| cc1: all warnings being treated as errors\n```\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I70a8077f2ab990a3b5aaab85aad545411ebd0a04\n"
    },
    {
      "commit": "533f9702a3ce08b38011045e07cb3c078788970f",
      "tree": "a9d933b4fd6ec99171447f713fb350c3dfc8af36",
      "parents": [
        "59d29a9f6e86ebe7663555904be08adaf6ebc981"
      ],
      "author": {
        "name": "Ninad Palsule",
        "email": "ninadpalsule@us.ibm.com",
        "time": "Thu Mar 09 10:05:40 2023 -0600"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Apr 21 01:36:28 2023 +0000"
      },
      "message": "Changes for new pre-defined usergroup hostconsole\n\nThe new pre-defined usergroup named \"hostconsole\" is added to\ndifferentiate access between host console and manager console.\nThe only users allowed to interact with host console are part of the\n\"hostconsole\" group.\n\nNote: The changes are spread across multiple repositories listed under\n\"Related commits:\"\n\nThe obmc-console changes to incorporate new group are as follows:\n- Remove dependency on dropbear.default file by adding new default file\n  dropbear.env for obmc-console. This file is required for obmc\n  services. This file is added in obmc-console-ssh@.service.in and\n  use-socket.conf\n- In future we can add file /etc/obmc-console/dropbear.%i.env for port\n  specific configuration.\n\nTested:\n  Loaded on system and qemu eumulator. Made sure that the new file\n  contents are reflected on the system.\n\nRelated commits:\n  docs: https://gerrit.openbmc.org/c/openbmc/docs/+/60968\n  phosphor-user-manager: https://gerrit.openbmc.org/c/openbmc/phosphor-user-manager/+/61583\n  openbmc: https://gerrit.openbmc.org/c/openbmc/openbmc/+/61582\n  obmc-console: https://gerrit.openbmc.org/c/openbmc/obmc-console/+/61581\n  bmcweb: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/61580\n\nChange-Id: Id080d0cf1c8dea7c383bc040c988dae2b4a09800\nSigned-off-by: Ninad Palsule \u003cninadpalsule@us.ibm.com\u003e\n"
    },
    {
      "commit": "59d29a9f6e86ebe7663555904be08adaf6ebc981",
      "tree": "4e0c945ff210eff990a0c48de3e0472050b7d755",
      "parents": [
        "1b8684418bc3af9ab72e1deea19793373bd8ecad"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Tue Apr 18 21:41:22 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Apr 21 10:49:13 2023 +0930"
      },
      "message": "obmc-console: Add clang-tidy configuration\n\nThe introduced configuration disables several checks that aren\u0027t helpful\nin the obmc-console codebase.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: I1994da0e3bd8bcfde8ddeafa47d257ed81b08257\n"
    },
    {
      "commit": "1b8684418bc3af9ab72e1deea19793373bd8ecad",
      "tree": "292e926205f42d4c4fddf228a4f955df8fec5e23",
      "parents": [
        "b70f8713e37719b6dad0cf8e1bf7f6edae5911d6"
      ],
      "author": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Wed Apr 19 13:16:32 2023 +0930"
      },
      "committer": {
        "name": "Andrew Jeffery",
        "email": "andrew@aj.id.au",
        "time": "Fri Apr 21 10:49:13 2023 +0930"
      },
      "message": "obmc-console: Fix ringbuffer-test-utils analysis\n\nninja\u0027s clang-tidy target barfs due to the strategy of including C files\ninto each other for test purposes. Help it out by moving the ringbuffer\nstruct definitions into console-server.h so it can find them when\nanalysing test/ringbuffer-test-utils.c.\n\nobmc-console isn\u0027t a library, so it\u0027s not like we\u0027re trying to avoid\nexpanding API/ABI surface.\n\nSigned-off-by: Andrew Jeffery \u003candrew@aj.id.au\u003e\nChange-Id: Ifd4501d3ca7f3bb02c557a1c31364aadd2b26abe\n"
    }
  ],
  "next": "b70f8713e37719b6dad0cf8e1bf7f6edae5911d6"
}
