)]}'
{
  "log": [
    {
      "commit": "d003d0e593323b3de427f01284ede81ba61e9dcc",
      "tree": "e20dd9cbb6d60d5d0b5f69f79eef91ed64dd436d",
      "parents": [
        "92a60ad23dc6bfe1ff0445635d4bf7df97c19fa8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 13 14:22:48 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 13 14:22:48 2026 +0100"
      },
      "message": "Release 3.12\n"
    },
    {
      "commit": "92a60ad23dc6bfe1ff0445635d4bf7df97c19fa8",
      "tree": "2fde63102ea8c4b4c872c9a2cb2e322a7c0bc5c1",
      "parents": [
        "c346f2b88de3358c65dfa670a71a6eae15eee0a1"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Mar 11 10:02:10 2026 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 13 12:03:35 2026 +0100"
      },
      "message": "auto-t: fix two issues with testAPRoam\n\nOne of the tests expects a roam to a certain BSS, but there\u0027s an\nextra hostapd instance (use by another test) making it random which\nBSS IWD roams to. This hostapd instance has been disabled for this\ntest.\n\nThe second issue was waiting for the no-roam-candidates event. The\ndefault wait is 10 seconds, which can sometimes take longer since\nIWD will perform a full scan after a roam scan. Increase this timeout\nto 20 seconds to guard against that.\n"
    },
    {
      "commit": "c346f2b88de3358c65dfa670a71a6eae15eee0a1",
      "tree": "25b906c8c740c3fbc3efd081a7792b356d9f2c5c",
      "parents": [
        "9909efb43524760d2b7eebf312c9012c9b8c4081"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon Mar 09 09:57:46 2026 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Mar 10 09:31:37 2026 -0500"
      },
      "message": "handshake: clear expiration of pmksa in _steal_pmksa()\n\nWhen pulling the pmksa out of the handshake object (to cache) we\nalso need to clear the expiration within the handshake itself. This\nwill prevent future attempts of setting the PMKSA into the handshake\ndue to the logic in handshake_state_set_pmksa():\n\n/* checks for both expiration || pmksa being set */\nif (s-\u003eexpiration)\n    return false;\n"
    },
    {
      "commit": "9909efb43524760d2b7eebf312c9012c9b8c4081",
      "tree": "58afc09fe75fc1de47d015b45df794d75faaf33d",
      "parents": [
        "e91b66b68536451047b10663d766103145231dab"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon Mar 09 09:57:45 2026 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Mar 10 09:31:34 2026 -0500"
      },
      "message": "auto-t: Add test to roam back to BSS with existing PMKSA\n\nThis test exposes a bug where if a PMKSA already exists for a BSS\nthat we are roaming to IWD crashes due to a missing check in\nstation.c\n"
    },
    {
      "commit": "e91b66b68536451047b10663d766103145231dab",
      "tree": "85e9caa0959da32a7b92b11fbcfadf2df18ae148",
      "parents": [
        "9df8d16f6d45b05a5fc0f047f06d4797e063ac5a"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon Mar 09 09:57:44 2026 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Mar 10 09:31:31 2026 -0500"
      },
      "message": "auto-t: refactor testSAE-roam into connect/roam functions\n\nThis makes adding roaming tests easier if they don\u0027t strictly conform\nto the existing test structure. By adding connect/roam helpers future\ntests will have a bit more control on whats being tested.\n"
    },
    {
      "commit": "9df8d16f6d45b05a5fc0f047f06d4797e063ac5a",
      "tree": "4c1e81fd64190acbf152319a5b64929e5a50128b",
      "parents": [
        "4deea7397745fd4cc4a202365c3298730e882e60"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon Mar 09 09:57:43 2026 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Mar 10 09:31:24 2026 -0500"
      },
      "message": "station: check return of handshake_state_set_pmksa\n\nIf this fails num_pmkids and pmkids would get set, but to an\nuninitialized buffer. This would then fail to build the handshake\nobject later when copying the PMKID.\n"
    },
    {
      "commit": "4deea7397745fd4cc4a202365c3298730e882e60",
      "tree": "b1b5c9265e27a1e29182ac8d3338268b82f505c6",
      "parents": [
        "a0751085a8b79e5666ce53aa11ad0ff97fdf7e07"
      ],
      "author": {
        "name": "Bastien Nocera",
        "email": "hadess@hadess.net",
        "time": "Thu Feb 19 13:28:23 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Feb 20 10:49:29 2026 +0100"
      },
      "message": "unit: Add better check for pkcs8_key_parser availability\n\nCheck whether the pkcs8_key_parser kernel module is available (whether\nbuilt-in or as a module) before announcing that we support PKCS#8.\n"
    },
    {
      "commit": "a0751085a8b79e5666ce53aa11ad0ff97fdf7e07",
      "tree": "2e8cfc3bf98f7b361e1c629401838d568b557def",
      "parents": [
        "d5818134bdeeb6beb7380f8d67a029020e433f15"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 17:35:28 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 17:37:09 2026 +0100"
      },
      "message": "client: Fix issue with const return value from strrchr\n\nWhen compiling iwd with recent gcc and glibc-2.43 the --Wdiscarded-qualifiers\nwarning occurs because with ISO C23, the function strrrchr that return\npointers into their input arrays now have definitions as macros that\nreturn a pointer to a const-qualified type when the input argument is\na pointer to a const-qualified type.\n\nclient/known-networks.c: In function \u0027known_network_proxy_find_by_name\u0027:\nclient/known-networks.c:296:29: warning: initialization discards \u0027const\u0027 qualifier from pointer target type [-Wdiscarded-qualifiers]\n 296 |                 char *dot \u003d strrchr(name, \u0027.\u0027);\n     |                             ^~~~~~~\n\nThe warning hints to real bug since *dot should not be modified since\n*name is actually const to begin with. Change the code to utilize a copy\nof the name value if needed.\n\nReported-by: Rudi Heitbaum \u003crudi@heitbaum.com\u003e\n"
    },
    {
      "commit": "d5818134bdeeb6beb7380f8d67a029020e433f15",
      "tree": "1155b0ff94bb0e383cd55d59eb8b97b9386f4e32",
      "parents": [
        "2bc1e914d078eddd3c246fb1cf982e7c35182f5e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 17:12:02 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 17:12:23 2026 +0100"
      },
      "message": "wired: Fix build issue with missing _GNU_SOURCE\n\n  CC       wired/ethdev.o\nwired/ethdev.c: In function ‘pae_open’:\nwired/ethdev.c:331:40: error: ‘SO_ATTACH_FILTER’ undeclared (first use in this function)\n  331 |         if (setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER,\n      |                                        ^~~~~~~~~~~~~~~~\nwired/ethdev.c:331:40: note: each undeclared identifier is reported only once for each function it appears in\n"
    },
    {
      "commit": "2bc1e914d078eddd3c246fb1cf982e7c35182f5e",
      "tree": "4b16d595556d3096021c929521bc8282385b2aa5",
      "parents": [
        "12e65dc02520665dd16137534c4d93fb159b7a48"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 17:11:08 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 17:11:30 2026 +0100"
      },
      "message": "udev: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/udev.o\nsrc/udev.c: In function ‘attach_filter’:\nsrc/udev.c:129:40: error: ‘SO_ATTACH_FILTER’ undeclared (first use in this function)\n  129 |         if (setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER,\n      |                                        ^~~~~~~~~~~~~~~~\nsrc/udev.c:129:40: note: each undeclared identifier is reported only once for each function it appears in\n"
    },
    {
      "commit": "12e65dc02520665dd16137534c4d93fb159b7a48",
      "tree": "b26ae09aed852e1b1e27c26dcf6cf48d8f1dac56",
      "parents": [
        "98d50159165194bf3ee374aa681c5957c86e2f97"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 17:10:16 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 17:10:34 2026 +0100"
      },
      "message": "netdev: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/netdev.o\nsrc/netdev.c: In function ‘pae_open’:\nsrc/netdev.c:6606:40: error: ‘SO_ATTACH_FILTER’ undeclared (first use in this function)\n 6606 |         if (setsockopt(fd, SOL_SOCKET, SO_ATTACH_FILTER,\n      |                                        ^~~~~~~~~~~~~~~~\nsrc/netdev.c:6606:40: note: each undeclared identifier is reported only once for each function it appears in\n"
    },
    {
      "commit": "98d50159165194bf3ee374aa681c5957c86e2f97",
      "tree": "07d1ae4bf7977fb2434d711f32a2bd26e78144ac",
      "parents": [
        "6116554d637bca65d131ade76c1362b28eacb37e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:53:59 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:54:42 2026 +0100"
      },
      "message": "tools: Fix build issue with missing _GNU_SOURCE\n\n  CC       tools/probe-req.o\ntools/probe-req.c: In function ‘get_interface_callback’:\ntools/probe-req.c:122:22: error: storage size of ‘ifr’ isn’t known\n  122 |         struct ifreq ifr;\n      |                      ^~~\ntools/probe-req.c:155:42: error: ‘IFF_UP’ undeclared (first use in this function)\n  155 |         if (r \u003d\u003d -1 || !(ifr.ifr_flags \u0026 IFF_UP))\n      |                                          ^~~~~~\ntools/probe-req.c:155:42: note: each undeclared identifier is reported only once for each function it appears in\ntools/probe-req.c:122:22: error: unused variable ‘ifr’ [-Werror\u003dunused-variable]\n  122 |         struct ifreq ifr;\n      |                      ^~~\n"
    },
    {
      "commit": "6116554d637bca65d131ade76c1362b28eacb37e",
      "tree": "f1695a65c327539cba02465a5d1990c646e18962",
      "parents": [
        "de3c8ab3fb6823a83388f9e5501d2dad5bdb2632"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:53:01 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:53:34 2026 +0100"
      },
      "message": "unit: Fix build issue with missing alloca.h include\n\n  CC       unit/test-sae.o\nunit/test-sae.c: In function ‘test_clogging’:\nunit/test-sae.c:253:44: error: implicit declaration of function ‘alloca’; did you mean ‘calloc’? [-Wimplicit-function-declaration]\n  253 |         struct authenticate_frame *frame \u003d alloca(\n      |                                            ^~~~~~\n      |                                            calloc\nunit/test-sae.c:253:44: error: initialization of ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\nunit/test-sae.c: In function ‘test_early_confirm’:\nunit/test-sae.c:282:44: error: initialization of ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  282 |         struct authenticate_frame *frame \u003d alloca(\n      |                                            ^~~~~~\nunit/test-sae.c: In function ‘test_malformed_commit’:\nunit/test-sae.c:323:44: error: initialization of ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  323 |         struct authenticate_frame *frame \u003d alloca(\n      |                                            ^~~~~~\nunit/test-sae.c: In function ‘test_malformed_confirm’:\nunit/test-sae.c:341:44: error: initialization of ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  341 |         struct authenticate_frame *frame \u003d alloca(\n      |                                            ^~~~~~\nunit/test-sae.c:352:15: error: assignment to ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  352 |         frame \u003d alloca(sizeof(struct authenticate_frame) + sizeof(aa_confirm));\n      |               ^\nunit/test-sae.c: In function ‘test_bad_group’:\nunit/test-sae.c:378:44: error: initialization of ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  378 |         struct authenticate_frame *frame \u003d alloca(\n      |                                            ^~~~~~\nunit/test-sae.c: In function ‘test_bad_confirm’:\nunit/test-sae.c:409:44: error: initialization of ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  409 |         struct authenticate_frame *frame \u003d alloca(\n      |                                            ^~~~~~\nunit/test-sae.c: In function ‘test_confirm_after_accept’:\nunit/test-sae.c:482:44: error: initialization of ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  482 |         struct authenticate_frame *frame \u003d alloca(\n      |                                            ^~~~~~\nunit/test-sae.c:484:41: error: initialization of ‘struct associate_frame *’ from ‘int’ makes pointer from integer without a cast -Wint-conversion]\n  484 |         struct associate_frame *assoc \u003d alloca(sizeof(struct associate_frame));\n      |                                         ^~~~~~\nunit/test-sae.c: In function ‘test_end_to_end’:\nunit/test-sae.c:566:44: error: initialization of ‘struct authenticate_frame *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  566 |         struct authenticate_frame *frame \u003d alloca(\n      |                                            ^~~~~~\nunit/test-sae.c:568:41: error: initialization of ‘struct associate_frame *’ from ‘int’ makes pointer from integer without a cast -Wint-conversion]\n  568 |         struct associate_frame *assoc \u003d alloca(sizeof(struct associate_frame));\n      |                                         ^~~~~~\n"
    },
    {
      "commit": "de3c8ab3fb6823a83388f9e5501d2dad5bdb2632",
      "tree": "2de5181033b8f6b6f1eaf8a02b0d759137191849",
      "parents": [
        "67ae0ac8b10614bb183aec94b15f41336a47be06"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:50:07 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:50:20 2026 +0100"
      },
      "message": "mschaputil: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/mschaputil.o\nsrc/mschaputil.c: In function ‘mschap_des_encrypt’:\nsrc/mschaputil.c:55:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n   55 |         explicit_bzero(pkey, 8);\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "67ae0ac8b10614bb183aec94b15f41336a47be06",
      "tree": "74649bd0f244fe77def41dff34cdd6e90f92683a",
      "parents": [
        "3f130f7f34c8f7084cfcd61ed829e060ae544b95"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:49:15 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:49:26 2026 +0100"
      },
      "message": "simutil: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/simutil.o\nsrc/simutil.c: In function ‘eap_aka_derive_primes’:\nsrc/simutil.c:168:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  168 |         explicit_bzero(key, sizeof(key));\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "3f130f7f34c8f7084cfcd61ed829e060ae544b95",
      "tree": "7a7ad9b7432181a9105c981ce59a34c1a12852c3",
      "parents": [
        "169bd75678bec8605c48ba43cf81701bbe19c62c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:48:20 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:48:38 2026 +0100"
      },
      "message": "eap-pwd: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-pwd.o\nsrc/eap-pwd.c: In function ‘eap_pwd_free’:\nsrc/eap-pwd.c:177:17: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  177 |                 explicit_bzero(pwd-\u003epassword, strlen(pwd-\u003epassword));\n      |                 ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "169bd75678bec8605c48ba43cf81701bbe19c62c",
      "tree": "0d9ddb402dd709d7a97077dda7f8c9048267ba4c",
      "parents": [
        "242a8e0292a5c1c81c2a56676d789b2c2255f68e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:47:30 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:47:43 2026 +0100"
      },
      "message": "eap-gtc: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-gtc.o\nsrc/eap-gtc.c: In function ‘eap_gtc_free’:\nsrc/eap-gtc.c:48:17: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n   48 |                 explicit_bzero(gtc-\u003epassword, strlen(gtc-\u003epassword));\n      |                 ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "242a8e0292a5c1c81c2a56676d789b2c2255f68e",
      "tree": "48abe262ba0e4caafb0ef743f486af895034f13a",
      "parents": [
        "e93b1566ef51c9595a8412b6416bf31dce777c53"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:46:43 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:46:54 2026 +0100"
      },
      "message": "epa-peap: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-peap.o\nsrc/eap-peap.c: In function ‘eap_peap_phase2_complete’:\nsrc/eap-peap.c:120:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  120 |         explicit_bzero(peap_state-\u003ekey, sizeof(peap_state-\u003ekey));\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "e93b1566ef51c9595a8412b6416bf31dce777c53",
      "tree": "a26740a9e7e9948bca9d52d4dbe40e88eb087823",
      "parents": [
        "5a08930507fbd4f21bb5c7bbcff34ba93e9ee7e3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:43:44 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:43:54 2026 +0100"
      },
      "message": "eap-aka: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-aka.o\nsrc/eap-aka.c: In function ‘eap_aka_clear_secrets’:\nsrc/eap-aka.c:114:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  114 |         explicit_bzero(aka-\u003emk, sizeof(aka-\u003emk));\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "5a08930507fbd4f21bb5c7bbcff34ba93e9ee7e3",
      "tree": "6a687d1ca178f14e206f5949b59f3cc0f109806f",
      "parents": [
        "e81f078bfd867413b3500ba5d815837995f6d56a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:43:00 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:43:12 2026 +0100"
      },
      "message": "eap-sim: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-sim.o\nsrc/eap-sim.c: In function ‘eap_sim_clear_secrets’:\nsrc/eap-sim.c:132:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  132 |         explicit_bzero(sim-\u003emk, sizeof(sim-\u003emk));\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "e81f078bfd867413b3500ba5d815837995f6d56a",
      "tree": "936f5a4bf7ea70a44bd9eca5ab4fffe007c27df6",
      "parents": [
        "13382cbb47e6db161e2cdee3c18c07fe23c132f0"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:40:41 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:41:12 2026 +0100"
      },
      "message": "eap-mschapv2: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-mschapv2.o\nsrc/eap-mschapv2.c: In function ‘eap_mschapv2_state_free’:\nsrc/eap-mschapv2.c:202:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  202 |         explicit_bzero(state-\u003epassword_hash, sizeof(state-\u003epassword_hash));\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "13382cbb47e6db161e2cdee3c18c07fe23c132f0",
      "tree": "311e7d5b1b9e48782ec2d6a4e36ced64a6d08e3b",
      "parents": [
        "fc55e93829a4b5fd6b9e7cac27dcf71531f1239f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:39:43 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:39:55 2026 +0100"
      },
      "message": "eap-ttls: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-ttls.o\nsrc/eap-ttls.c: In function ‘avp_builder_free’:\nsrc/eap-ttls.c:159:17: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  159 |                 explicit_bzero(builder-\u003ebuf, builder-\u003epos);\n      |                 ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "fc55e93829a4b5fd6b9e7cac27dcf71531f1239f",
      "tree": "f31fd0a24e9d4da6d2882b8b971f22f3bd207ecc",
      "parents": [
        "349106b28b0033253f22734d78c056812b140214"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:38:59 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:39:14 2026 +0100"
      },
      "message": "eap-tls: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-tls.o\nsrc/eap-tls.c: In function ‘eap_tls_tunnel_ready’:\nsrc/eap-tls.c:56:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n   56 |         explicit_bzero(msk_emsk, sizeof(msk_emsk));\n      |         ^~~~~~~~~~~~~~\nsrc/eap-tls.c: In function ‘eap_tls_check_keys_match’:\nsrc/eap-tls.c:82:21: error: implicit declaration of function ‘alloca’; did you mean ‘calloc’? [-Wimplicit-function-declaration]\n   82 |         encrypted \u003d alloca(size);\n      |                     ^~~~~~\n      |                     calloc\nsrc/eap-tls.c:82:19: error: assignment to ‘uint8_t *’ {aka ‘unsigned char *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n   82 |         encrypted \u003d alloca(size);\n      |                   ^\nsrc/eap-tls.c:83:19: error: assignment to ‘uint8_t *’ {aka ‘unsigned char *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n   83 |         decrypted \u003d alloca(size);\n      |                   ^\n"
    },
    {
      "commit": "349106b28b0033253f22734d78c056812b140214",
      "tree": "894cd1be1a8c6cf5995390a40d7845028428e4b9",
      "parents": [
        "8a46eca3f73fcd86d4b6343a1f256fafd9778f63"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:37:47 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:37:59 2026 +0100"
      },
      "message": "eap-md5: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-md5.o\nsrc/eap-md5.c: In function ‘eap_md5_free’:\nsrc/eap-md5.c:46:17: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n   46 |                 explicit_bzero(md5-\u003esecret, strlen(md5-\u003esecret));\n      |                 ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "8a46eca3f73fcd86d4b6343a1f256fafd9778f63",
      "tree": "49e7692ecb692ce66fd55f66ff45d91869655351",
      "parents": [
        "f6bcb01d40a7e4fd2128307ba405f2f643af89f9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:35:49 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:36:03 2026 +0100"
      },
      "message": "dpp: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/dpp.o\nsrc/dpp.c: In function ‘dpp_reset’:\nsrc/dpp.c:536:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  536 |         explicit_bzero(dpp-\u003er_nonce, dpp-\u003enonce_len);\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "f6bcb01d40a7e4fd2128307ba405f2f643af89f9",
      "tree": "b25595508e5b975b5bc96ab87eab60f6b6f59555",
      "parents": [
        "1c7933296b4bf53057c8f3ab4c79635bed225c75"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:34:52 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 16:35:08 2026 +0100"
      },
      "message": "eap-wsc: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eap-wsc.o\nsrc/eap-wsc.c: In function ‘encrypted_settings_decrypt’:\nsrc/eap-wsc.c:258:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  258 |         explicit_bzero(decrypted, encrypted_len);\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "1c7933296b4bf53057c8f3ab4c79635bed225c75",
      "tree": "3a1e31b156ca876dcc3b3aa2d32cdc9caf8778b3",
      "parents": [
        "fd0f14b164dba288a73155fadcf894542795eb8f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:22:57 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:23:11 2026 +0100"
      },
      "message": "p2p: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/p2p.o\nsrc/p2p.c: In function ‘p2p_connection_reset’:\nsrc/p2p.c:643:17: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  643 |                 explicit_bzero(dev-\u003econn_pin, strlen(dev-\u003econn_pin));\n      |                 ^~~~~~~~~~~~~~\nsrc/p2p.c: In function ‘p2p_device_update_from_genl’:\nsrc/p2p.c:4342:23: error: ‘HOST_NAME_MAX’ undeclared (first use in this function); did you mean ‘XATTR_NAME_MAX’?\n 4342 |         char hostname[HOST_NAME_MAX + 1];\n      |                       ^~~~~~~~~~~~~\n      |                       XATTR_NAME_MAX\nsrc/p2p.c:4342:23: note: each undeclared identifier is reported only once for each function it appears in\nsrc/p2p.c:4376:9: error: implicit declaration of function ‘gethostname’; did you mean ‘getsockname’? [-Wimplicit-function-declaration]\n 4376 |         gethostname(hostname, sizeof(hostname));\n      |         ^~~~~~~~~~~\n      |         getsockname\nsrc/p2p.c:4342:14: error: unused variable ‘hostname’ [-Werror\u003dunused-variable]\n 4342 |         char hostname[HOST_NAME_MAX + 1];\n      |              ^~~~~~~~\n"
    },
    {
      "commit": "fd0f14b164dba288a73155fadcf894542795eb8f",
      "tree": "2efce1185ce454bb1a4e838ce3765cb418483b84",
      "parents": [
        "e5e7e67d0d143e0f5c6512b1f2042aa25d52bc24"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:21:36 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:21:47 2026 +0100"
      },
      "message": "hotspot: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/hotspot.o\nsrc/hotspot.c: In function ‘hotspot_init’:\nsrc/hotspot.c:516:39: error: ‘DT_UNKNOWN’ undeclared (first use in this function)\n  516 |                 if (dirent-\u003ed_type \u003d\u003d DT_UNKNOWN) {\n      |                                       ^~~~~~~~~~\nsrc/hotspot.c:516:39: note: each undeclared identifier is reported only once for each function it appears in\nsrc/hotspot.c:519:46: error: ‘DT_REG’ undeclared (first use in this function)\n  519 |                 } else if (dirent-\u003ed_type !\u003d DT_REG \u0026\u0026\n      |                                              ^~~~~~\nsrc/hotspot.c:520:67: error: ‘DT_LNK’ undeclared (first use in this function)\n  520 |                                                 dirent-\u003ed_type !\u003d DT_LNK) {\n      |                                                                   ^~~~~~\n"
    },
    {
      "commit": "e5e7e67d0d143e0f5c6512b1f2042aa25d52bc24",
      "tree": "828fe762dfe0dc924ef7a94ee4b0f01701c5af0a",
      "parents": [
        "88d2718b507c95ca8f78e85eabf4eba1ff4d2c29"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:20:52 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:21:04 2026 +0100"
      },
      "message": "resolve: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/resolve.o\nsrc/resolve.c: In function ‘resolvconf_invoke’:\nsrc/resolve.c:386:30: error: implicit declaration of function ‘popen’; did you mean ‘fopen’? [-Wimplicit-function-declaration]\n  386 |                 resolvconf \u003d popen(cmd, \"w\");\n      |                              ^~~~~\n      |                              fopen\nsrc/resolve.c:386:28: error: assignment to ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  386 |                 resolvconf \u003d popen(cmd, \"w\");\n      |                            ^\nsrc/resolve.c:390:28: error: assignment to ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  390 |                 resolvconf \u003d popen(cmd, \"r\");\n      |                            ^\nsrc/resolve.c:403:17: error: implicit declaration of function ‘pclose’; did you mean ‘close’? [-Wimplicit-function-declaration]\n  403 |         error \u003d pclose(resolvconf);\n      |                 ^~~~~~\n      |                 close\n"
    },
    {
      "commit": "88d2718b507c95ca8f78e85eabf4eba1ff4d2c29",
      "tree": "aed1099a5a64366517119d6ec5dff32033967986",
      "parents": [
        "30049f582237bb21a64a7e9e4c427b7309b202a9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:19:56 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:20:12 2026 +0100"
      },
      "message": "netconfig: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/netconfig.o\nsrc/netconfig.c: In function ‘netconfig_load_settings’:\nsrc/netconfig.c:290:23: error: ‘HOST_NAME_MAX’ undeclared (first use in this function); did you mean ‘XATTR_NAME_MAX’?\n  290 |         char hostname[HOST_NAME_MAX + 1];\n      |                       ^~~~~~~~~~~~~\n      |                       XATTR_NAME_MAX\nsrc/netconfig.c:290:23: note: each undeclared identifier is reported only once for each function it appears in\nsrc/netconfig.c:388:30: error: implicit declaration of function ‘gethostname’; did you mean ‘getsockname’? [-Wimplicit-function-declaration]\n  388 |         if (send_hostname \u0026\u0026 gethostname(hostname, sizeof(hostname)) !\u003d 0) {\n      |                              ^~~~~~~~~~~\n      |                              getsockname\nsrc/netconfig.c:290:14: error: unused variable ‘hostname’ [-Werror\u003dunused-variable]\n  290 |         char hostname[HOST_NAME_MAX + 1];\n      |              ^~~~~~~~\n"
    },
    {
      "commit": "30049f582237bb21a64a7e9e4c427b7309b202a9",
      "tree": "ba4fd16bc92ff6aa384bb27aa999e3c41fe50057",
      "parents": [
        "b1bcc47ffeeed0c689170dffa9089712ad222f17"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:17:29 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:17:43 2026 +0100"
      },
      "message": "fils: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/fils.o\nsrc/fils.c: In function ‘fils_erp_tx_func’:\nsrc/fils.c:117:16: error: implicit declaration of function ‘alloca’; did you mean ‘calloc’? [-Wimplicit-function-declaration]\n  117 |         rsne \u003d alloca(256);\n      |                ^~~~~~\n      |                calloc\nsrc/fils.c:117:14: error: assignment to ‘uint8_t *’ {aka ‘unsigned char *’} from ‘int’ makes pointer from integer without a cast -Wint-conversion]\n  117 |         rsne \u003d alloca(256);\n      |              ^\nsrc/fils.c: In function ‘fils_derive_key_data’:\nsrc/fils.c:301:22: error: assignment to ‘uint8_t *’ {aka ‘unsigned char *’} from ‘int’ makes pointer from integer without a cast -Wint-conversion]\n  301 |                 rsne \u003d alloca(256);\n      |                      ^\nsrc/fils.c: In function ‘fils_free’:\nsrc/fils.c:350:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  350 |         explicit_bzero(fils-\u003eick, sizeof(fils-\u003eick));\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "b1bcc47ffeeed0c689170dffa9089712ad222f17",
      "tree": "546345c599d3bdb92580905eeca07207cef59585",
      "parents": [
        "534a41c0737d0e93aee3a9deb85927be86b3cd09"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:15:38 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:15:55 2026 +0100"
      },
      "message": "erp: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/erp.o\nsrc/erp.c: In function ‘erp_free’:\nsrc/erp.c:357:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  357 |         explicit_bzero(erp-\u003ermsk, sizeof(erp-\u003ermsk));\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "534a41c0737d0e93aee3a9deb85927be86b3cd09",
      "tree": "c7fe5f0a9ba29e87b50f96e5f4076bbaeef1bbba",
      "parents": [
        "2170b918345d833ac95d2551bea7065d5b4d1a36"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:14:26 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:14:45 2026 +0100"
      },
      "message": "ap: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/ap.o\nsrc/ap.c: In function ‘ap_reset’:\nsrc/ap.c:286:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  286 |         explicit_bzero(ap-\u003epassphrase, sizeof(ap-\u003epassphrase));\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "2170b918345d833ac95d2551bea7065d5b4d1a36",
      "tree": "69347e6d5998b1cf5a17942f0dfd3d3bfa8be7cd",
      "parents": [
        "13253a4aedc91a36fdb424dc27dd951a76418551"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:13:19 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:13:40 2026 +0100"
      },
      "message": "ft: Fix build issue with missing alloca.h include\n\n  CC       src/ft.o\nsrc/ft.c: In function ‘ft_prepare_handshake’:\nsrc/ft.c:846:16: error: implicit declaration of function ‘alloca’; did you mean ‘calloc’? [-Wimplicit-function-declaration]\n  846 |         rsne \u003d alloca(256);\n      |                ^~~~~~\n      |                calloc\nsrc/ft.c:846:14: error: assignment to ‘uint8_t *’ {aka ‘unsigned char *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  846 |         rsne \u003d alloca(256);\n      |              ^\nsrc/ft.c:887:13: error: assignment to ‘uint8_t *’ {aka ‘unsigned char *’} from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  887 |         fte \u003d alloca(256);\n      |             ^\n"
    },
    {
      "commit": "13253a4aedc91a36fdb424dc27dd951a76418551",
      "tree": "0f40d82c18233748be70dbf85517c33235b6c0c0",
      "parents": [
        "7e0b9b7a547fafdd9cba78cf75747d4ed498a29a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:12:20 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:12:37 2026 +0100"
      },
      "message": "rfkill: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/rfkill.o\nIn file included from ./ell/ell.h:1,\n                 from src/rfkill.c:35:\nsrc/rfkill.c: In function ‘rfkill_init’:\nsrc/rfkill.c:282:49: error: ‘O_CLOEXEC’ undeclared (first use in this function); did you mean ‘FD_CLOEXEC’?\n  282 |         fd \u003d L_TFR(open(\"/dev/rfkill\", O_RDWR | O_CLOEXEC));\n      |                                                 ^~~~~~~~~\n./ell/util.h:348:34: note: in definition of macro ‘L_TFR’\n  348 |        do __result \u003d (long int) (expression);      \\\n      |                                  ^~~~~~~~~~\nsrc/rfkill.c:282:49: note: each undeclared identifier is reported only once for each function it appears in\n  282 |         fd \u003d L_TFR(open(\"/dev/rfkill\", O_RDWR | O_CLOEXEC));\n      |                                                 ^~~~~~~~~\n./ell/util.h:348:34: note: in definition of macro ‘L_TFR’\n  348 |        do __result \u003d (long int) (expression);      \\\n      |                                  ^~~~~~~~~~\n"
    },
    {
      "commit": "7e0b9b7a547fafdd9cba78cf75747d4ed498a29a",
      "tree": "443b8779b85f9a3bf5b329967ef28b470f3ec123",
      "parents": [
        "02ee2df95203fc41b16284f6677f9863813f9212"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:11:26 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:11:46 2026 +0100"
      },
      "message": "knownnetworks: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/knownnetworks.o\nsrc/knownnetworks.c: In function ‘known_networks_init’:\nsrc/knownnetworks.c:1100:39: error: ‘DT_UNKNOWN’ undeclared (first use in this function)\n 1100 |                 if (dirent-\u003ed_type \u003d\u003d DT_UNKNOWN) {\n      |                                       ^~~~~~~~~~\nsrc/knownnetworks.c:1100:39: note: each undeclared identifier is reported only once for each function it appears in\nsrc/knownnetworks.c:1103:46: error: ‘DT_REG’ undeclared (first use in this function)\n 1103 |                 } else if (dirent-\u003ed_type !\u003d DT_REG \u0026\u0026\n      |                                              ^~~~~~\nsrc/knownnetworks.c:1104:67: error: ‘DT_LNK’ undeclared (first use in this function)\n 1104 |                                                 dirent-\u003ed_type !\u003d DT_LNK) {\n      |                                                                   ^~~~~~\n"
    },
    {
      "commit": "02ee2df95203fc41b16284f6677f9863813f9212",
      "tree": "ca7baa6f0ab17fb4e7934c4e80bf35b634e390c8",
      "parents": [
        "6f1b31d62d3a6057db9030a49f3e33d4e7d141b6"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:10:35 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:10:48 2026 +0100"
      },
      "message": "wsc: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/wsc.o\nsrc/wsc.c: In function ‘wsc_enrollee_credential_obtained’:\nsrc/wsc.c:211:25: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  211 |                         explicit_bzero(decoded, 32);\n      |                         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "6f1b31d62d3a6057db9030a49f3e33d4e7d141b6",
      "tree": "fd47cfca4225df1d0a158df33c697f4829399894",
      "parents": [
        "1cef23cd7bf6f7d0031167dbff9192b79ee7f346"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:09:40 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:09:55 2026 +0100"
      },
      "message": "network: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/network.o\nsrc/network.c: In function ‘network_reset_psk’:\nsrc/network.c:114:17: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  114 |                 explicit_bzero(network-\u003epsk, 32);\n      |                 ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "1cef23cd7bf6f7d0031167dbff9192b79ee7f346",
      "tree": "6b351bd3c6b86d978df889a319475b4f565e5bcf",
      "parents": [
        "a5a67b5de4b8fd316c4f813cd1ae1e2c7fba3b9b"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:08:48 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:09:03 2026 +0100"
      },
      "message": "handshake: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/handshake.o\nsrc/handshake.c: In function ‘handshake_state_unref’:\nsrc/handshake.c:151:17: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  151 |                 explicit_bzero(s-\u003epassphrase, strlen(s-\u003epassphrase));\n      |                 ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "a5a67b5de4b8fd316c4f813cd1ae1e2c7fba3b9b",
      "tree": "51a73fbc3665ef5c7045cb28efabbe8f7e342af6",
      "parents": [
        "f92c6cf0cf8e726f9207ae67b1900eda29a92001"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:07:52 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 09:08:09 2026 +0100"
      },
      "message": "eapol: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/eapol.o\nsrc/eapol.c: In function ‘eapol_decrypt_key_data’:\nsrc/eapol.c:314:17: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  314 |                 explicit_bzero(key, sizeof(key));\n      |                 ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "f92c6cf0cf8e726f9207ae67b1900eda29a92001",
      "tree": "9ff8e23177d925c051396b984d41d90bc008e220",
      "parents": [
        "4e064859b7e6b48b8e8d1a9b262ee399d5ddb25d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 08:56:38 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 08:57:11 2026 +0100"
      },
      "message": "crypto: Fix build issue with missing _GNU_SOURCE\n\n  CC       src/crypto.o\nsrc/crypto.c: In function ‘aes_unwrap’:\nsrc/crypto.c:187:9: error: implicit declaration of function ‘explicit_bzero’ [-Wimplicit-function-declaration]\n  187 |         explicit_bzero(\u0026b[1], 8);\n      |         ^~~~~~~~~~~~~~\n"
    },
    {
      "commit": "4e064859b7e6b48b8e8d1a9b262ee399d5ddb25d",
      "tree": "d6e9d4f8d8f62f835977066569fa85042bef091a",
      "parents": [
        "0a73e18fe2d615075db57806b0ff342eec836010"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 08:55:08 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 08:55:08 2026 +0100"
      },
      "message": "wscutil: Fix build issue with missing strings.h include\n\n  CC       src/wscutil.o\nsrc/wscutil.c: In function ‘wsc_device_type_from_subcategory_str’:\nsrc/wscutil.c:3043:30: error: implicit declaration of function ‘strcasecmp’; did you mean ‘strncmp’? [-Wimplicit-function-declaration]\n 3043 |                         if (!strcasecmp(subcategory_str,\n      |                              ^~~~~~~~~~\n      |                              strncmp\n"
    },
    {
      "commit": "0a73e18fe2d615075db57806b0ff342eec836010",
      "tree": "e1c055dda04b6111ace63d80af414231fe7c3030",
      "parents": [
        "9d9d1a8ce12da45d3ae191fc48a58306b9404b83"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 08:52:58 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Feb 10 08:53:32 2026 +0100"
      },
      "message": "client: Fix build issue with missing _GNU_SOURCE\n\n  CC       client/dpp.o\nclient/dpp.c: In function ‘get_uri_method_callback’:\nclient/dpp.c:174:13: error: implicit declaration of function ‘popen’; did you mean ‘fopen’? [-Wimplicit-function-declaration]\n  174 |         f \u003d popen(cmd, \"r\");\n      |             ^~~~~\n      |             fopen\nclient/dpp.c:174:11: error: assignment to ‘FILE *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion]\n  174 |         f \u003d popen(cmd, \"r\");\n      |           ^\nclient/dpp.c:181:9: error: implicit declaration of function ‘pclose’; did you mean ‘close’? [-Wimplicit-function-declaration]\n  181 |         pclose(f);\n      |         ^~~~~~\n      |         close\n"
    },
    {
      "commit": "9d9d1a8ce12da45d3ae191fc48a58306b9404b83",
      "tree": "c9abf4c647ae624b3ab5325a7928420796e6b404",
      "parents": [
        "b49ed01626f0724d85de7bd76ec2e9e3dfd3c3c7"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 10:41:13 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 10:41:13 2026 +0100"
      },
      "message": "Release 3.11\n"
    },
    {
      "commit": "b49ed01626f0724d85de7bd76ec2e9e3dfd3c3c7",
      "tree": "861d87b751927fad29160430bc7066e06015d8c0",
      "parents": [
        "3e7a8feee054ac5b48398ba83a08aca623fe1067"
      ],
      "author": {
        "name": "Ronan Pigott",
        "email": "ronan@rjp.ie",
        "time": "Sat Jan 31 14:53:54 2026 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Feb 05 12:29:46 2026 -0600"
      },
      "message": "dbus: register interface before acquiring name\n\nIf the interface isn\u0027t available by the time we acquire the well-known\nname, clients can get confused when the expected interfaces are missing\nduring bus activation.\n"
    },
    {
      "commit": "3e7a8feee054ac5b48398ba83a08aca623fe1067",
      "tree": "554ed07e508fc73f69c54c7ee3ca517b4612d0eb",
      "parents": [
        "3760a49650b39edd623a85a2b9d51645b52d004a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 25 15:36:37 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 25 15:36:37 2025 +0200"
      },
      "message": "Release 3.10\n"
    },
    {
      "commit": "3760a49650b39edd623a85a2b9d51645b52d004a",
      "tree": "e437aa1d12f47854371699dfde74cae8d99cd1a5",
      "parents": [
        "c4d114d8049af38b9fd55b5b07c9770217f04daf"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:55:01 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:40:50 2025 -0500"
      },
      "message": "station: print vendor quirks (if any) when connecting/roaming\n\nThis makes it clear the BSS being selected for a connection/roam has\nany quirks associated with its OUI(s) and that IWD may behave\ndifferently based on these.\n"
    },
    {
      "commit": "c4d114d8049af38b9fd55b5b07c9770217f04daf",
      "tree": "3346838c9ab1da19d310be012c36885fb09a6388",
      "parents": [
        "ffe79bfada3339b482c2a87da9f51636fb73a6ac"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:55:00 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:40:44 2025 -0500"
      },
      "message": "auto-t: add AP roam test for bad neighbor reports/candidate lists\n"
    },
    {
      "commit": "ffe79bfada3339b482c2a87da9f51636fb73a6ac",
      "tree": "6034e6cb830647bbcba7b703909267b8d3fe4423",
      "parents": [
        "c0efaf21ad3d19ac503983b1aadffb5b3b6279ff"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:59 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:40:28 2025 -0500"
      },
      "message": "station: check vendor quirk for BSS TM request candidate list\n\nIf the AP vendor has known issues with the preferred candidate list\nignore it and jump directly to requesting a neighbor report.\n"
    },
    {
      "commit": "c0efaf21ad3d19ac503983b1aadffb5b3b6279ff",
      "tree": "7ccd4c00ffc29c76cad06136946a16eb3aca9e49",
      "parents": [
        "cee079da5b56d85e923e1c2bf312b8dcc83b126c"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:58 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:38:34 2025 -0500"
      },
      "message": "station: get neighbor report on BSS TM request\n\nIf a BSS is requesting IWD roam elsewhere but does not include a\npreferred candidate list try getting a neighbor report before doing\na full scan.\n\nIf the limited scan based on the candidate list comes up empty this\nwould previously result in IWD giving up on the AP roam entirely.\nThis patch also improves that behavior slightly by doing a full\nscan afterwards as a last ditch effort. If no BSS\u0027s are found after\nthat, IWD will give up on the AP roam.\n"
    },
    {
      "commit": "cee079da5b56d85e923e1c2bf312b8dcc83b126c",
      "tree": "08218e8d9a4cc68354bc238df2f4fd6267033b8e",
      "parents": [
        "df30309aacdeb1060c1995b2e32a0bd24b3f1e37"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:57 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:37:54 2025 -0500"
      },
      "message": "handshake: use vendor quirk to disable check of replay counters\n\nThis has been a long standing issue on Aruba APs where the scan\nIEs differ from the IEs received during FT. For compatibility we\nhave been carrying a patch to disable the replay counter check but\nthis isn\u0027t something that was ever acceptable for upstream. Now\nwith the addition of vendor quirks this check can be disabled only\nfor the OUI of Aruba APs.\n\nReported-by: Michael Johnson \u003cmjohnson459@gmail.com\u003e\nCo-authored-by: Michael Johnson \u003c\u003cmjohnson459@gmail.com\u003e\n"
    },
    {
      "commit": "df30309aacdeb1060c1995b2e32a0bd24b3f1e37",
      "tree": "fec27d62518528e1d542a613ddfeac8bbe7a0114",
      "parents": [
        "2fe8c130167cfe25a6ef1922a4d902dacf4263b4"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:56 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:37:49 2025 -0500"
      },
      "message": "station: set vendor quirks into handshake object\n"
    },
    {
      "commit": "2fe8c130167cfe25a6ef1922a4d902dacf4263b4",
      "tree": "228c4ed6582350d15806d23bf27b821ac95d4e62",
      "parents": [
        "84666b97030400728c7ba16b8c1423ead9de0e8d"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:55 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:37:21 2025 -0500"
      },
      "message": "scan: store vendor quirks in scan_bss\n\nAs each vendor IE is parsed lookup if there are any quirks associated\nwith it, and store these in a bit mask.\n"
    },
    {
      "commit": "84666b97030400728c7ba16b8c1423ead9de0e8d",
      "tree": "70773690e54f764f55fa7a56584a0a09951a644b",
      "parents": [
        "54c0dbb3c8d1d7935a7fd6bd5fcdbb974117974c"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:54 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:37:00 2025 -0500"
      },
      "message": "handshake: add vendor quirks into handshake object\n"
    },
    {
      "commit": "54c0dbb3c8d1d7935a7fd6bd5fcdbb974117974c",
      "tree": "40833e4e8da391927b611e541af411a64ef5c7d0",
      "parents": [
        "6e9e0928b0663f31f5b35949015313d8afbd28e9"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:53 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:36:13 2025 -0500"
      },
      "message": "handshake: pass object to handshake_util_ap_ie_matches\n\nThis is to prepare for supporting a vendor quirk, where we\u0027ll need\nthe handshake to lookup if the quirk to disable a specific check.\n"
    },
    {
      "commit": "6e9e0928b0663f31f5b35949015313d8afbd28e9",
      "tree": "b8b041ccda0d2b1416ccad1f5f8b41c7743f7c27",
      "parents": [
        "a1247fe46e97d0379ae8e141758cf3bb2e824b5c"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:52 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:31:57 2025 -0500"
      },
      "message": "vendor_quirks: implement two vendor quirks\n\nignore_bss_tm_candidates:\n  When a BSS requests a station roam it can optionally include a\n  list of BSS\u0027s that can be roamed to. IWD uses this list and only\n  scans on those frequencies. In some cases though the AP\u0027s list\n  contains very poor options and it would be better for IWD to\n  request a full neighbor report.\n\nreplay_counter_mismatch:\n  On some Aruba APs there is a mismatch in the replay counters\n  between what is seen in scans versus authentications/associations.\n  This difference is not allowed in the spec, therefore IWD will\n  not connect. This quirk is intended to relax that check.\n"
    },
    {
      "commit": "a1247fe46e97d0379ae8e141758cf3bb2e824b5c",
      "tree": "72868b321e6e96eb2318bfb303fa40cd5c2f056f",
      "parents": [
        "088bb2e308555c8630e095f3e688ebdd9a7a6a2d"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Aug 27 05:54:51 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 27 12:26:03 2025 -0500"
      },
      "message": "vendor_quirks: initial skeleton\n\nThis module will provide a database for known issues or quirks with\nwireless vendors.\n\nThe vendor_quirks_append_for_oui() API is intended to be called from\nscan.c when parsing vendor attributes. This will lookup any quirks\nassociated with the OUI provided and combine them into an existing\nvendor_quirk structure. This can be repeated against all the vendor\nOUI\u0027s seen in the scan then referenced later to alter IWD behavior.\n\nIn the future more critera could be added such as MAC address prefix\nor more generalized IE matches e.g.\n\nvendor_quirks_append_for_mac()\nvendor_quirks_append_for_ie()\netc.\n"
    },
    {
      "commit": "088bb2e308555c8630e095f3e688ebdd9a7a6a2d",
      "tree": "c6378ff0c1d5084f1091f7a23053a136ee6e91bb",
      "parents": [
        "57dc5d843c64e5e8e3a889844556b2b1aa22c569"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Fri Aug 22 12:51:17 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Aug 26 10:00:32 2025 -0500"
      },
      "message": "station: clear roam_freqs on delayed roam\n\nIf there were no BSS candidates found after trying to roam make\nsure the old roam_freqs list gets cleared so IWD doesn\u0027t end up\nscanning potentially old frequencies on the next retry.\n"
    },
    {
      "commit": "57dc5d843c64e5e8e3a889844556b2b1aa22c569",
      "tree": "71e7369fc77dba102690cdaa56789014ad2cb61d",
      "parents": [
        "8cb134f9359f020036b4bf6ebe4143769e1ea037"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Fri Aug 22 12:51:07 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Aug 26 09:38:01 2025 -0500"
      },
      "message": "monitor: add Cisco Meraki as a printable vendor\n"
    },
    {
      "commit": "8cb134f9359f020036b4bf6ebe4143769e1ea037",
      "tree": "ad9500b41568c5492e292be0cf98ddb24b425c95",
      "parents": [
        "46037c428ccae8b66b276610f69b0793739b627a"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Fri Aug 22 12:51:06 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Aug 26 09:37:17 2025 -0500"
      },
      "message": "scan: check support before using colocated flag\n"
    },
    {
      "commit": "46037c428ccae8b66b276610f69b0793739b627a",
      "tree": "182dfd9c03ef09cafd54ca7723fe83d28f290e4c",
      "parents": [
        "161de4a3ada881897f24c80e38bcb986baf7f590"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Fri Aug 22 12:51:05 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Aug 26 09:36:44 2025 -0500"
      },
      "message": "wiphy: add comments around the driver quirks\n"
    },
    {
      "commit": "161de4a3ada881897f24c80e38bcb986baf7f590",
      "tree": "fffe90855d2502b8833b61926ed8109811ccbd6f",
      "parents": [
        "77ee863f04ff5991151ff47574459d73431797e8"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Fri Aug 22 12:51:04 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Tue Aug 26 09:35:35 2025 -0500"
      },
      "message": "wiphy: add driver quirk for the colocated scan flag\n\nSome drivers do not handle the colocated scan flag very well and this\nresults in BSS\u0027s not being seen in scans. This of course results in\nvery poor behavior.\n\nThis has been seen on ath11k specifically but after some\nconversations [1] on the linux-wireless mailing list others have\nreported issues with iwlwifi acting similarly. Since there are many\nhardware variants that use both ath11k and iwlwifi this new quirk\nisn\u0027t being forced to those drivers, but let users configure IWD to\ndisable the flag if needed.\n\n[1] https://lore.kernel.org/linux-wireless/d1e75a08-047d-7947-d51a-2e486efead77@candelatech.com/\n"
    },
    {
      "commit": "77ee863f04ff5991151ff47574459d73431797e8",
      "tree": "df4efe5299f7c631d8b8f6727f7a8e06b2ab5d6d",
      "parents": [
        "405d1ab77c0ec8a9f1879adf4162db0bc5ab479c"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon Aug 18 07:30:41 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 20 11:18:51 2025 -0500"
      },
      "message": "auto-t: add test for channel switch during roam\n\nIn kernel 6.8 a new CMD_ASSOCIATE failure path was added which checks\nif the AP has a channel switch in progress. Eariler patches update\nIWD into handling this case better, and this new test exercises that.\n"
    },
    {
      "commit": "405d1ab77c0ec8a9f1879adf4162db0bc5ab479c",
      "tree": "0628afd7cc1d2f5013e00edeff997459f82f6de3",
      "parents": [
        "dc1589f3fef57e4c29ef5ddfa1478cb3cc1dc413"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon Aug 18 07:30:40 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 20 11:18:45 2025 -0500"
      },
      "message": "auto-t: make waiting for channel switch configurable\n"
    },
    {
      "commit": "dc1589f3fef57e4c29ef5ddfa1478cb3cc1dc413",
      "tree": "036c581c671578d033fa23f79d79c7afb308c5ab",
      "parents": [
        "755280a4cc1e258516685319c220093debf063d6"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon Aug 18 07:30:39 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 20 11:18:01 2025 -0500"
      },
      "message": "netdev: disconnect rather than deauth in FT association failure\n\nAfter CSA IE parsing was added to the kernel this opened up the\npossibility that associations could be rejected locally based on\nthe contents of this CSA IE in the AP\u0027s beacons. Overall, it was\nalways possible for a local rejection but this case was never\nconsidered by IWD. The CSA-based rejection is something that can\nand does happen out in the wild.\n\nWhen this association rejection happens it desync\u0027s IWD and the\nkernel\u0027s state:\n\n1. IWD begins an FT roam. Authenticates successfully, then proceeds\n   to calling netdev_ft_reassociate().\n2. Immediately IWD transitions to a ft-roaming state and waits for\n   an association response.\n3. CMD_ASSOCIATE is rejected by the kernel in the ACK which IWD\n   handles by sending a deauthenticate command to the kernel (since\n   we have a valid authentication to the new BSS).\n4. Due to a bug IWD uses the target BSSID to deauthenticate which\n   the kernel rejects since it has no knowledge of this auth. This\n   error is not handled or logged.\n5. IWD proceeds, assuming its deauthenticated, and transitions to a\n   disconnected state. The kernel remains \"connected\" which of course\n   prevents any future connections.\n\nA simple fix for this is to address the bug (4) in IWD that deauths\nusing the current BSS roam target. This is actually legacy behavior\nfrom back when IWD used CMD_AUTHENTICATE. Today the kernel is unaware\nthat IWD authenticated so a deauth is not going to be effective.\nInstead we can issue a CMD_DISCONNECT. This is somewhat of a large\nhammer, but since the handshake and internal state has already been\nmodified to use the new target BSS we cannot go back and maintain the\nexisting connect (though it is _possible_, see the TODO in the\npatch).\n"
    },
    {
      "commit": "755280a4cc1e258516685319c220093debf063d6",
      "tree": "8aa3db49a8690b9b3efd2a4b01bb7b843d4c418f",
      "parents": [
        "df2c5cf7fa5a9424497a60f69f8bb0c0bc610eb7"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon Aug 18 07:30:38 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 20 11:17:54 2025 -0500"
      },
      "message": "netdev: check connected in channel switch event\n\nIn an ideal world userspace should never be getting a channel switch\nevent unless connected to an AP, but alas this has been seen at least\nwith ath10k hardware. This causes IWD to crash since the logic\nassumes netdev-\u003ehandshake is set.\n"
    },
    {
      "commit": "df2c5cf7fa5a9424497a60f69f8bb0c0bc610eb7",
      "tree": "68aa4c05b1efed6f3878349e27702e1aa6c293d6",
      "parents": [
        "fee0e5de33cee1a40890e3778e5242093463fb8d"
      ],
      "author": {
        "name": "Gokul Sivakumar",
        "email": "gokulkumar.sivakumar@infineon.com",
        "time": "Thu Aug 07 14:28:57 2025 +0530"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Aug 07 17:59:15 2025 -0500"
      },
      "message": "doc: add STA inactive and connected time duration info to diagnostics\n"
    },
    {
      "commit": "fee0e5de33cee1a40890e3778e5242093463fb8d",
      "tree": "9ba7987d80120f5bf797dd992b623216b0f35142",
      "parents": [
        "601d9b0e02a70e3f6c72912ece8082400c303cc1"
      ],
      "author": {
        "name": "Gokul Sivakumar",
        "email": "gokulkumar.sivakumar@infineon.com",
        "time": "Wed Aug 06 14:46:25 2025 +0530"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Aug 06 09:33:42 2025 -0500"
      },
      "message": "netdev: parse INACTIVE_TIME and CONNECTED_TIME in netdev_get_station\n\nThese two newly parsed station info params \"inactive time\" and the\n\"connected time\" would be helpful to track the duration (in ms) for\nwhich the station was last inactive and the total duration (in s) for\nwhich the station is currently connected to the AP.\n\nWhen the wlan device is in STA mode, these fields represent the info\nof this station device. And when wlan device is in AP mode, then these\nfields repesents the stations that are connected to this AP device.\n"
    },
    {
      "commit": "601d9b0e02a70e3f6c72912ece8082400c303cc1",
      "tree": "9eb4cb1188e84fb24b6795dc916c2d9fe583de27",
      "parents": [
        "f209e00dde92d26ee3aab4feb257f08460ca675b"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Jun 14 12:10:16 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Jun 14 12:10:16 2025 +0200"
      },
      "message": "Release 3.9\n"
    },
    {
      "commit": "f209e00dde92d26ee3aab4feb257f08460ca675b",
      "tree": "40c792dd87bfe7933520a1bbf80a14ba131fead5",
      "parents": [
        "86523b0597ac4994bb2fc3912f8353ae1869e679"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed May 28 13:10:26 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Jun 05 10:02:28 2025 -0500"
      },
      "message": "doc: add note about timeouts to Network.Connect()\n\nSince netconfig is now part of the Connect() call from a DBus\nperspective add a note indicating that this method has the potential\nto take a very long time if there are issues with DHCP.\n"
    },
    {
      "commit": "86523b0597ac4994bb2fc3912f8353ae1869e679",
      "tree": "174f37ac23c4e853e8c9fefc383e87d577b25fe1",
      "parents": [
        "85a2637fc5f1cd40a8d313ff2e996cfc2cfc9f4f"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed May 28 13:10:25 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Jun 05 10:02:23 2025 -0500"
      },
      "message": "auto-t: update several tests to work with netconfig refactor\n\nSince the method return to Connect() and ConnectBssid() come after\nnetconfig some tests needed to be updated since they were waiting\nfor the method return before continuing. For timeout-based tests\nspecifically this caused them to fail since before they expected\nthe return to come before the connection was actually completed.\n"
    },
    {
      "commit": "85a2637fc5f1cd40a8d313ff2e996cfc2cfc9f4f",
      "tree": "1defc5908bdfe61d9d5991d05b946ca21b1cb1e3",
      "parents": [
        "2f991918b1872250eb8f2d893527cac59b340651"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed May 28 13:10:24 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Jun 05 10:02:13 2025 -0500"
      },
      "message": "auto-t: allow configurable DBus timeout/callbacks on connect{_bssid}\n\nLet the caller specify the method timeout if there is an expectation\nthat it could take a long time.\n\nFor the conventional connect call (not the \"bssid\" debug variant) let\nthem pass their own callback handlers. This is useful if we don\u0027t\nwant to wait for the connect call to finish, but later get some\nindication that it did finish either successfully or not.\n"
    },
    {
      "commit": "2f991918b1872250eb8f2d893527cac59b340651",
      "tree": "f8cefa6233d578b1cf57308747c724be1f3e148d",
      "parents": [
        "5b5a9b60fb7dff867b9579b598fac6530f153a83"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed May 28 13:10:23 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Jun 05 10:02:02 2025 -0500"
      },
      "message": "station: include netconfig as part of the BSS retry logic\n\nA netconfig failure results in a failed connection which restarts\nautoconnect and prevents IWD from retrying the connection on any\nother BSS\u0027s within the network as a whole. When autoconnect restarts\nIWD will scan and choose the \"best\" BSS which is likely the same as\nthe prior attempt. If that BSS is somehow misconfigured as far as\nDHCP goes, it will likely fail indefinitely and in turn cause IWD to\nretry indefinitely.\n\nTo improve this netconfig has been adopted into the IWD\u0027s BSS retry\nlogic. If netconfig fails this will not result in IWD transitioning\nto a disconnected state, and instead the BSS will be network\nblacklisted and the next will be tried. Only once all BSS\u0027s have been\ntried will IWD go into a disconnected state and start autoconnect\nover.\n"
    },
    {
      "commit": "5b5a9b60fb7dff867b9579b598fac6530f153a83",
      "tree": "3be0e8459ad22584902a39ef0dd51ade5d660b91",
      "parents": [
        "52878090436eaf41990742e57f226fa6acd409a9"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed May 28 13:10:22 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Jun 05 10:01:45 2025 -0500"
      },
      "message": "station: fix DBus reply for Connect() with netconfig\n\nWhen netconfig is enabled the DBus reply was being sent in\nstation_connect_ok(), before netconfig had even started. This would\nresult in a call to Connect() succeeding from a DBus perspective but\nreally netconfig still needed to complete before IWD transitioned\nto a connected state.\n\nFixes: 72e7d3ceb83d (\"station: Handle NETCONFIG_EVENT_FAILED\")\n"
    },
    {
      "commit": "52878090436eaf41990742e57f226fa6acd409a9",
      "tree": "e3ece84f79c56db90e2aa508e17bb0d41a2a6b32",
      "parents": [
        "ea9ff2dcaf6e1d225bcd11c0ed092652707f5f64"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed May 28 13:10:21 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Jun 05 10:01:42 2025 -0500"
      },
      "message": "network: make clearing network blacklist a separate operation\n\nThis adds a new API network_clear_blacklist() and removes this\nfunctionality from network_connected(). This is done to support BSS\niteration when netconfig is enabled. Since a call to\nnetwork_connected() will happen prior to netconfig completing we\ncannot clear the blacklist until netconfig has either passed or\nfailed.\n"
    },
    {
      "commit": "ea9ff2dcaf6e1d225bcd11c0ed092652707f5f64",
      "tree": "19f743b8a33fea8b9db5300f9c955488d8e1b561",
      "parents": [
        "9dce36fe3da54f36e2219098a68cca01d1f95fe7"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed May 28 12:27:59 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Jun 05 09:59:34 2025 -0500"
      },
      "message": "sae: prevent groups 21, 25, and 26 from being used\n\nThese groups are not working reliably and until that is fixed they\nshould be disabled.\n"
    },
    {
      "commit": "9dce36fe3da54f36e2219098a68cca01d1f95fe7",
      "tree": "aa8e214b08bbe53c836f7c20a5679106d682b1b3",
      "parents": [
        "c4718a53553b8c13cbdd713d3783072589dd1620"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed May 28 12:27:58 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Thu Jun 05 09:59:16 2025 -0500"
      },
      "message": "sae: check return on sae_send_commit()\n\nIf this fails, in some cases, -EAGAIN would be returned up to netdev\nwhich would then assume a retry would be done automatically. This\nwould not in fact happen since it was an internal SAE failure which\nwould result in the connect method return to never get sent.\n\nNow if sae_send_commit() fails, return -EPROTO which will cause\nnetdev to fail the connection.\n"
    },
    {
      "commit": "c4718a53553b8c13cbdd713d3783072589dd1620",
      "tree": "71839438df4cce97350c04a3ebc24a3028fb79b3",
      "parents": [
        "c9c8790ff2d7315933865d3dcf481bdd0d8488c0"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu May 08 19:07:13 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 28 19:29:47 2025 +0200"
      },
      "message": "unit: Update precheck for WSC PBC test cases\n"
    },
    {
      "commit": "c9c8790ff2d7315933865d3dcf481bdd0d8488c0",
      "tree": "0dc17a4d7f68df5b48f9c1ee8d1e10f0b63c85e4",
      "parents": [
        "d135bfc4b88bebd135c3d6905bad4e533778ff0e"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Thu May 22 11:41:52 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed May 28 12:06:43 2025 -0500"
      },
      "message": "netdev: support handling NL80211_CMD_ASSOC_COMEBACK\n\nA BSS can temporarily reject associations and provide a delay that\nthe station should wait for before retrying. This is useful when\nsane values are used, but taking it to the extreme an AP could\npotentially request the client wait UINT32_MAX TU\u0027s which equates\nto 49 days.\n\nEither due to a bug, or worse by design, the kernel will wait for\nhowever long that timeout is. Luckily the kernel also sends an event\nto userspace with the amount of time it will be waiting. To guard\nagainst excessive timeouts IWD will now handle this event and enforce\na maximum allowed value. If the timeout exceeds this IWD will\ndeauthenticate.\n"
    },
    {
      "commit": "d135bfc4b88bebd135c3d6905bad4e533778ff0e",
      "tree": "3011707dd20b7a6267a13a222d3f0abf29186974",
      "parents": [
        "e269beadba6a42be8807ecb5b0abeef5ca9f3beb"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Thu May 22 11:41:51 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed May 28 12:06:36 2025 -0500"
      },
      "message": "nl80211util: support parsing NL80211_ATTR_TIMEOUT\n"
    },
    {
      "commit": "e269beadba6a42be8807ecb5b0abeef5ca9f3beb",
      "tree": "60345d1309e0c4da80535107011e4df5720e1ebb",
      "parents": [
        "3e55fc855a75ce32f86afbbee978515194c8fd25"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Thu May 22 11:41:50 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed May 28 12:06:28 2025 -0500"
      },
      "message": "nl80211cmd: add NL80211_CMD_ASSOC_COMEBACK\n"
    },
    {
      "commit": "3e55fc855a75ce32f86afbbee978515194c8fd25",
      "tree": "1d285333fd4564561dfcf97379e104a3d51ceb08",
      "parents": [
        "c8d9936f9d3404b2b017478ed44e14b59b5fcdb1"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon May 19 09:36:24 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Mon May 19 16:38:54 2025 -0500"
      },
      "message": "auto-t: use renamed InitialAccessPointBusyTimeout\n"
    },
    {
      "commit": "c8d9936f9d3404b2b017478ed44e14b59b5fcdb1",
      "tree": "72ac97fa31f24ece6a0f61db69fa80e8bad89a7a",
      "parents": [
        "79940956ef473d777fc2bae95b789d377cce3a0d"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon May 19 09:36:23 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Mon May 19 16:38:28 2025 -0500"
      },
      "message": "station: utilize the AP_BUSY blacklist for denied auth/assoc\n\nSpecifically for the NO_MORE_STAS reason code, add the BSS to the\n(now renamed) AP_BUSY blacklist to avoid roaming to this BSS for\nthe near future.\n\nSince we are now handling individual reason codes differently the\nwhole IS_TEMPORARY_STATUS macro was removed and replaced with a\ncase statement.\n"
    },
    {
      "commit": "79940956ef473d777fc2bae95b789d377cce3a0d",
      "tree": "20336ec3edf6760ca1ab6676079f0f9d6ef0ef62",
      "parents": [
        "9f98c6c3c8d9360248272b9238138f6b859cc445"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon May 19 09:36:22 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Mon May 19 16:38:13 2025 -0500"
      },
      "message": "docs: replace/deprecate InitialRoamRequestedTimeout\n\nThis is being replaced by InitialAccessPointBusyTimeout but will\nstill be supported until full removal.\n"
    },
    {
      "commit": "9f98c6c3c8d9360248272b9238138f6b859cc445",
      "tree": "dd8f594c72985b19709c63d198cf3173748f899a",
      "parents": [
        "93eef7b02da2c2a4da35f7fddb189a3765a46673"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon May 19 09:36:21 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Mon May 19 16:37:13 2025 -0500"
      },
      "message": "blacklist: rename ROAM_REQUESTED to AP_BUSY\n\nThe initial pass of this feature only envisioned BSS transition\nmanagement frames as the trigger to \"roam blacklist\" a BSS, hence\nthe original name. But some APs actually utilize status codes that\nalso indicate to the stations that they are busy, or not able to\nhandle more connections. This directly aligns with the original\nmotivation of the \"roam blacklist\" series and these events should\nalso trigger this type of blacklist.\n\nFirst, since we will be applying this blacklist to cases other\nthan being told to roam, rename this reason code internally to\nBLACKLIST_REASON_AP_BUSY. The config option is also being renamed\nto [Blacklist].InitialAccessPointBusyTimeout while also supporting\nthe old config option, but warning that it is deprecated.\n"
    },
    {
      "commit": "93eef7b02da2c2a4da35f7fddb189a3765a46673",
      "tree": "37741ed5b4864356f11ca74597ad048d577c1e2d",
      "parents": [
        "26ed1f8b9f42e84c269bc8c79c217538ec55b260"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Mon May 19 07:39:30 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Mon May 19 16:36:45 2025 -0500"
      },
      "message": "ap: implement pre-scanning to \"unlock\" frequencies\n\nSome drivers/hardware are more strict about limiting use of\ncertain frequencies on startup until the regulatory domain has\nbeen set. For most cards the only way to set the regulatory domain\nis to scan and see BSS\u0027s nearby that advertise the country they\nreside in.\n\nThis is particularly important for AP mode since AP\u0027s are always\nemitting radiation from beacons and will not start until the desired\nfrequency is both enabled and allows IR. To make this process\nseamless in IWD we will first check that the desired frequency is\nenabled/IR and if not issue a scan to (hopefully) get the regulatory\ndomain set.\n"
    },
    {
      "commit": "26ed1f8b9f42e84c269bc8c79c217538ec55b260",
      "tree": "0e8f72d686c644eab5c290d72b301d29d80350ad",
      "parents": [
        "243db1d256feacb1eb60544e9f3083e5bcfaa22f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 07 13:41:49 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 07 13:41:49 2025 +0200"
      },
      "message": "Release 3.8\n"
    },
    {
      "commit": "243db1d256feacb1eb60544e9f3083e5bcfaa22f",
      "tree": "43a8adc8271f4865e022ae6f944e68c1782b769f",
      "parents": [
        "5224b0b0e7a19abb0929390b76b45d754d66e03c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 07 12:47:42 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 07 12:47:42 2025 +0200"
      },
      "message": "build: Require at least version 0.77 when building with external ELL\n"
    },
    {
      "commit": "5224b0b0e7a19abb0929390b76b45d754d66e03c",
      "tree": "9e37919c5d8dae0b8cf85e8ba4de5f75b64fc687",
      "parents": [
        "3267d356d272bf40043e492478b0da121d8af483"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 07 09:54:22 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed May 07 09:54:22 2025 +0200"
      },
      "message": "unit: Use test precheck feature to check for kernel capabilities\n"
    },
    {
      "commit": "3267d356d272bf40043e492478b0da121d8af483",
      "tree": "0efcba33103efd39f2ffa6e98035d124865e6e20",
      "parents": [
        "78f4e6240e2e0605bef20e201cf4815f36c02e29"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 05 20:41:56 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 05 20:41:56 2025 +0200"
      },
      "message": "unit: The precheck function also takes test data as parameter\n"
    },
    {
      "commit": "78f4e6240e2e0605bef20e201cf4815f36c02e29",
      "tree": "27b1ae0af969973e0d9b3244dba17df7c90fdf39",
      "parents": [
        "36b1086f609c9b8674be9c36dd207a5917e2c96d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 05 19:37:34 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon May 05 19:37:34 2025 +0200"
      },
      "message": "unit: Use new precheck feature for storage encryption test\n"
    },
    {
      "commit": "36b1086f609c9b8674be9c36dd207a5917e2c96d",
      "tree": "47113bb19693a50727a8689a0190f12715c879f4",
      "parents": [
        "266eb405f2b4ae69c41e0042325ebb3a3f9e1241"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun May 04 19:34:32 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun May 04 19:34:32 2025 +0200"
      },
      "message": "Release 3.7\n"
    },
    {
      "commit": "266eb405f2b4ae69c41e0042325ebb3a3f9e1241",
      "tree": "efa5e9d090685fab9aca3c856c39ba82d153c08a",
      "parents": [
        "0a8e64623137613cad13cd74cd224c8717ecad24"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun May 04 19:34:15 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun May 04 19:34:15 2025 +0200"
      },
      "message": "build: Add test-storage to ignore list\n"
    },
    {
      "commit": "0a8e64623137613cad13cd74cd224c8717ecad24",
      "tree": "a5d0a62558c846fd06e8f1034bfca55c863e75f5",
      "parents": [
        "8ebc4780eaa021aef5f87299fd6e126e1d1b58fb"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Tue Feb 11 11:26:53 2025 -0800"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Fri May 02 12:14:37 2025 -0500"
      },
      "message": "eap: initialize vendor_id/vendor_type to zero\n\nThis fixes a compiler warning, specifically on ARM/GCC 12.2.0\n\nsrc/eap.c: In function ‘eap_rx_packet’:\nsrc/eap.c:419:57: error: ‘vendor_type’ may be used uninitialized [-Werror\u003dmaybe-uninitialized]\n  419 |         (type \u003d\u003d EAP_TYPE_EXPANDED \u0026\u0026 vendor_id \u003d\u003d (id) \u0026\u0026 vendor_type \u003d\u003d (t))\n      |                                                         ^~\nsrc/eap.c:429:18: note: ‘vendor_type’ was declared here\n  429 |         uint32_t vendor_type;\n      |                  ^~~~~~~~~~~\nsrc/eap.c:419:49: error: ‘vendor_id’ may be used uninitialized [-Werror\u003dmaybe-uninitialized]\n  419 |         (type \u003d\u003d EAP_TYPE_EXPANDED \u0026\u0026 vendor_id \u003d\u003d (id) \u0026\u0026 vendor_type \u003d\u003d (t))\n      |                                                 ^~\nsrc/eap.c:428:18: note: ‘vendor_id’ was declared here\n  428 |         uint32_t vendor_id;\n      |                  ^~~~~~~~~\n"
    },
    {
      "commit": "8ebc4780eaa021aef5f87299fd6e126e1d1b58fb",
      "tree": "ca1ef74476468c33b8b31dc0f4a378d87fc589eb",
      "parents": [
        "4ded663e68b0c1773492da21e1a156bf7f31c7c5"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Thu Apr 17 09:16:01 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Apr 23 09:42:48 2025 -0500"
      },
      "message": "station: fix setting an empty affinities list\n\nA prior patch broke this by checking the return of\nl_dbus_message_iter_next_entry. This was really subtle but the logic\nactually relied on _not_ checking that return in order to handle\nempty lists.\n\nInstead of reverting the logic was adapted/commented to make it more\nclear what the API expects from DBus. If list contains at least one\nvalue the first element path will get set, if it contains zero\nvalues \"new_path\" will be set to NULL which will then cause the\nlist to be cleared later on.\n\nThis both fixes the regression, and makes it clear that a zero\nelement list is supported and handled.\n"
    },
    {
      "commit": "4ded663e68b0c1773492da21e1a156bf7f31c7c5",
      "tree": "f726a5c8afbdcbe998727d1a718b07bc08d2d73d",
      "parents": [
        "c00bc3a065dff6fb9e94b1e3572d8974816113be"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Apr 19 22:49:53 2025 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sat Apr 19 22:49:53 2025 +0200"
      },
      "message": "unit: Fix country code assignment for test case\n\n  CC       unit/test-p2p.o\nunit/test-p2p.c:344:36: error: initializer-string for array of ‘char’ truncates NUL terminator but destination lacks ‘nonstring’ attribute (4 chars into 3 available) [-Werror\u003dunterminated-string-initialization]\n  344 |                         .country \u003d \"XX\\x04\",\n      |                                    ^~~~~~~~\n"
    },
    {
      "commit": "c00bc3a065dff6fb9e94b1e3572d8974816113be",
      "tree": "10a6422754a599bbbb01ce6ee9fcc68e9ce1444c",
      "parents": [
        "f469db8a9580f8f7c49b5a5d80b68d7ac12c9fdf"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Apr 16 10:33:45 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Apr 16 14:58:00 2025 -0500"
      },
      "message": "eap-mschapv2: Fix leak of state-\u003euser on error path\n\nFixes: 6dc5d2c3ecb6 (\"eap-mschapv2: Load credentials obtained from agent\")\n"
    },
    {
      "commit": "f469db8a9580f8f7c49b5a5d80b68d7ac12c9fdf",
      "tree": "c0b9e3428d2c5f8c1e57ed636c6732088df6ee97",
      "parents": [
        "c3a27354ff2b163d81978a62f5189dcd003035d3"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Apr 16 10:33:44 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Apr 16 14:58:00 2025 -0500"
      },
      "message": "station: check return when advancing iterator\n\nFixes: f4ec1ee509fc (\"station: add Affinities DBus property\")\n"
    },
    {
      "commit": "c3a27354ff2b163d81978a62f5189dcd003035d3",
      "tree": "a8260ca75c2acb221ddeee44ca114d275127359f",
      "parents": [
        "d927fd07c18c42f10c22ca03b51cb09220e322da"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Apr 16 10:33:43 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Apr 16 14:58:00 2025 -0500"
      },
      "message": "unit: add test-storage\n\nFor now, a single test for __storage_decrypt that ensures an\ninvalid length fails as expected.\n"
    },
    {
      "commit": "d927fd07c18c42f10c22ca03b51cb09220e322da",
      "tree": "991ac9ccf68193ae4c809d27003c7742485bbc33",
      "parents": [
        "8dff156eb69e172961f9da1080b9ae538dce0061"
      ],
      "author": {
        "name": "James Prestwood",
        "email": "prestwoj@gmail.com",
        "time": "Wed Apr 16 10:33:42 2025 -0700"
      },
      "committer": {
        "name": "Denis Kenzior",
        "email": "denkenz@gmail.com",
        "time": "Wed Apr 16 14:58:00 2025 -0500"
      },
      "message": "storage: add length check in __storage_decrypt\n\nThe length of EncryptedSecurity was assumed to be at least 16 bytes\nand anything less would underflow the length to l_malloc.\n\nFixes: 01cd8587606b (\"storage: implement network profile encryption\")\n"
    }
  ],
  "next": "8dff156eb69e172961f9da1080b9ae538dce0061"
}
