summaryrefslogtreecommitdiff
path: root/redfish-core
AgeCommit message (Collapse)AuthorFilesLines
2024-04-11Add nullptr checkEd Tanous2-4/+13
Change-Id: If511f1210cca7bd1da3a8c5152688487d3036e2f Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-11Fix file removalEd Tanous1-2/+11
This code used std::remove, which is a mechanism for removing characters from strings. Clearly it meant std::filesystem::remove(), which removes files from the filesystem. Correct it. Change-Id: I030966203c1682a11c723c596accdf34637dd1ba Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-11Remove logically dead codeEd Tanous1-6/+0
This code path is subtle, but given that slotPresent is only set to true if totalCores is incremented, there's no way to actually hit this section of code. Looking for input on if this is the right behavior. Change-Id: Ie6dadd2c7a0ca6b8402148ddd9b8a369a4a38b2e Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-11Remove logically dead codeEd Tanous1-6/+1
Stage::T is never set, so it can never happen. Remove it entirely. Found using static analysis. Tested: Unit tests pass, good coverage here Change-Id: I0dfb1aad5bef3ab4451df5e81794e56074f6e939 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-11Give static analysis some hintsEd Tanous1-12/+21
Static analysis tools complain that for certain template types, these comparisons do nothing. Doing nothing is what they're intended to do, as we have other checks. Add some constexpr if hints so static analysis tools don't complain. Change-Id: I60297d094626936d021382ccdc11e4c8b698e3d8 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-11Fix large copies with url_view and segments_viewEd Tanous6-63/+82
Despite these objects being called "view" they are still relatively large, as clang-tidy correctly flags, and we ignore. Change all function uses to capture by: const boost::urls::url_view_base& Which is the base class of all boost URL types, and any class (url, url_view, etc) is convertible to that base. Change-Id: I8ee2ea3f4cfba38331303a7e4eb520a2b6f8ba92 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-11Fix object type in json utilsEd Tanous1-6/+4
This code accidentally makes a copy, given that getJsonObject returns a std::optional<nlohmann::json::object_t> which is then loaded into a std::optional<nlohmann::json>. Because nlohmann::json is implicitly constructible from an object_t, this code works and compiles, but we shouldn't need the intermediate object at all. Change the code to simply load the value as object_t. Tested: Unit tests pass. Good coverage. Change-Id: Ic57953e66958e69a1233e18a5bbd980405cac58e Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-11Pull in all registriesGunnar Mills15-0/+4317
Before Redfish put all messages in Base, but as the Messages became more specific Redfish started creating new registries. Redfish might have went a little registry happy. HeartbeatEvent just has 1 message and all these new ones registries each just have a handful of messages. Add the remaining 15 registries: composition, environmental, ethernetfabric, fabric, heartbeat_event, job_event, license, logservice, networkdevice, platform, power, sensor_event, storage_device, telemetry, update. Some of these are wanted for both current development and future development but it is hard to decide which ones so just added them all. power, fabric, telemetry, update are all things we support today. Having a UpdateInProgress or UpdateSuccessful makes a lot of sense and this enables that. Put these alphabetically. Use a new for loop to do this. Make changes to scripts/parse_registries.py and run the tool. No difference in size. Before: 66928640 Apr 10 13:32 obmc-phosphor-image-p10bmc-20240410183051.ext4.mmc.tar After: 66928640 Apr 10 13:18 obmc-phosphor-image-p10bmc-20240410181439.ext4.mmc.tar Tested: bmcweb builds. "./scripts/parse_registries.py --registries license,update" works. Change-Id: I43b4d041531cf338e9e7e621714ca7d95f6b01a5 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2024-04-10Simplify query_paramEd Tanous1-12/+4
Static analysis notes that the values in these functions are never initialized, and that a small section of the branch is no longer possible to hit, now that a default case has been added in 4da0490bc07a458ad3fc7d586c7eabf6053c572f Remove the dead code and initialize variables where appropriate. Tested: Unit tests pass. Decent coverage here. Change-Id: I42ec4678672fea5b21f98aaae05dfca0629652e7 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-10Fix account serviceEd Tanous1-2/+2
Session might not be initialized, and might be nullptr. This line was accessing the session BEFORE the nullptr check. Move it to after. Found using static analysis. Change-Id: I966c642aee7c76a29c7d0d57d3b78f5f7bef7d62 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-10Move run and redfish to compile unitsEd Tanous2-233/+229
Meson supports unity builds[1] natively. There's no reason to continue with the pseudo unity build we've been using by putting implementations in header files. This commit is the first in a long series of starting to break this up into smaller compile units, in the hopes of dropping incremental compile times for developers, and reduce the total per-core memory usage that gcc requires. This commit breaks out the run() function from main() and the constructor of RedfishService from redfish.hpp into their own compile units. According to tracing, even after broken out, these are still by far the two longest to compile units in the build. Tested: Code compiles. Debug build on a 24 core build server results in a decrease in compile time for compiling just bmcweb from 1m38s to 1m22s. [1] https://mesonbuild.com/Unity-builds.html Change-Id: Ibf352e8aba61d64c9a41a7a76e94ab3b5a0dde4b Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-09Move to Redfish Action specific setProperty callAsmitha Karunanithi5-28/+127
This commit will migrate all the setProperty calls initiated by a redfish"Action" to "setDbusProperty" method in Redfish namespace that handles all DBuserrors in a consistent manner. This method will determine if a setProperty is called during redfish "Action" or just setting of a dbus property and internally call appropriate methods that handles different set of errors. All the Redfish action specific errors are defined in error_messages.hpp file. This specific change moves setProperty call in hypervisor_system.hpp and covers errors in the mentioned file only. Tested-By: <Yet to test this usecase> Change-Id: I3da48fbeabcdcf088c4481021232f08a44797c86 Signed-off-by: Asmitha Karunanithi <asmitk01@in.ibm.com> Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-07Fix moves/forwardEd Tanous10-30/+31
Clang has new checks for std::move/std::forward correctness, which catches quite a few "wrong" things where we were making copies of callback handlers. Unfortunately, the lambda syntax of callback{std::forward<Callback>(callback)} in a capture confuses it, so change usages to callback = std::forward<Callback>(callback) to be consistent. Tested: Redfish service validator passes. Change-Id: I7a111ec00cf78ecb7d5f5b102c786c1c14d74384 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-07Remove redundant static modifierEd Tanous2-17/+15
"inline static void func()" Doesn't make sense when put in a header file. Find all instances, and make them inline like we do everywhere else. Tested: Code compiles. Change-Id: I7da5821b1e372941680f82939627af39fdc2a4eb Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-07Fix undefined behavior in getUniqueEntryIDEd Tanous1-33/+30
Changing static bool getUniqueEntryID to inline bool getUniqueEntryID Exposes the fact that there's some undefined behavior here, and unit tests start failing, likely due to stack being reused where it previously wasn't. This commit cleans up the code to simplify it, and remove the problem. Tested: Unit tests pass. Good coverage. Change-Id: I5b9b8e8bb83c656560193e680d246c8513ed6c02 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-04Remove redfish-health-populateGunnar Mills9-375/+3
The redfish-health-populate option was scheduled to be removed in 1Q 2024. It is now 2Q, so remove the option. No upstream layers enabled it and did not find a downstream layer that did either. This was always limited to a few resources. Overall this design was only half done. A future "HealthRollup" can be proposed. Some discord discussion: [1]: https://discord.com/channels/775381525260664832/855566794994221117/1110728560819327069 Commit disabling this (merged 10 months ago): [2]: https://github.com/openbmc/bmcweb/commit/6f8273e49cffdd347c223b9538558edfb05e818a Tested: Code compiles Change-Id: I4d33c1e674ecdb0fd256df62f3795073454ae7a1 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2024-04-04Clean up Ethernet to use readJsonEd Tanous1-102/+74
Today, patching ethernet ip address arrays can use several styles. IpAddresses: [{}, {value: value}, null] All 3 of those elements are legal. Today, we unpack values like that with nlohmann::json, then iterate and unpack further. This leads to problems where: IpAddresses: [{}, {value: value}, 1.0] would have the same behavior as the prior, given that we check for "is_object()" to determine the null state. This is messy at best, and not typesafe at worst. Changing this code to use the new class NullOr<> allows the readJson parser to fail the second example. Change-Id: Id91f48bb64271dd568041a7c0b1ad285b59d5674 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-04Clean up Account Service to use readJsonEd Tanous1-151/+78
Use multiple level direct read. Tested: Visual only. Need help if anyone wants to test. Change-Id: I67c77bdd42a05a42f9cd1b40dc74517dceebdaad Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-04Clean up hypervisor to use readJsonEd Tanous1-116/+69
Use multiple level direct read. Tested: Visual only. Need help if anyone wants to test. Change-Id: Ifcf716a2ba93fd565bbf134d4132532e60e3b4f0 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-04Allow parsing null or value classesEd Tanous1-1/+77
In Redfish schema, just about all values can be a type (string, EDM.Numeric, etc) or null. Most APIs don't allow explicitly setting null, but there are a few cases where it is useful, namely in lists, where an an empty object {} keeps the value the same, and null deletes the value from the list. Previously we handled this by unpacking as nlohmann::json, but this allowed things like [1.0, {}] to pass the check for an array of string values. We'd ideally like to reject the 1.0 at the first stage, as well as reduce the number of tiered readJson calls that we make. This commit introducess support for unpacking std::variant types, that allows unpacking a known type, or explicitly allowing null, by unpacking std::nullptr_t. Tested: Unit tests pass. Change-Id: Ic7451877c824ac743faf1951cc2b5d9f8df8019c Signed-off-by: Ed Tanous <edtanous@google.com>
2024-04-03Call dump() lessEd Tanous1-15/+9
nlohmann::json::dump() is not an easy function to get the call parameters correct on. We should limit the places we use it. Luckily, both logging and redfish::messages support printing json values directly. Use them where appropriate. Tested: Error logging and out of range calls only of heavily used messages and logging calls. Inspection only. Change-Id: I57521d8791dd95250c93e8e3b2d4a959740ac713 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-03log_services: Move to setProperty dbus util methodAsmitha Karunanithi1-12/+4
This commit changes sdbusplus setProperty calls in log_services.hpp file to "setDbusProperty" method in Redfish namespace that handles all DBus errors in a consistent manner. Change-Id: Icd9b0f0326c75a1421756d515408b303bdd738e3 Signed-off-by: Asmitha Karunanithi <asmitk01@in.ibm.com>
2024-04-02Remove redfish-enable-proccessor-memory-statusGunnar Mills1-88/+4
The redfish-enable-proccessor-memory-status option was scheduled to be removed in 1Q 2024. It is now 2Q, so remove the option. No upstream layers enabled it and I could not find a downstream layer that did either. Redfish deprecated the Processor/Memory Summary Status (state, health, healthrollup) attributes. Discussion on discord, when disabling: [1]: https://discord.com/channels/775381525260664832/855566794994221117/1093939076710793296 Commit disabling this (merged 10 months ago): [2]: https://github.com/openbmc/bmcweb/commit/5fd0aafb0f14fb3011970e8575647bb608688c7c Tested: Code builds. Change-Id: I539cd5f384633afa7badf1cecfc6c7a87062f672 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2024-04-02Reduce multi-level calls of req.req membersMyung Bae1-4/+4
Several places access the members of `req` indirectly like `req.req.method()`. This can be simplified as `req.method()` . This would also make the code clearer. Tested: - Compiles - Redfish service validator passes Change-Id: Ie129564ff907cdea7ac224b1e3d80cc0dedfbd7b Signed-off-by: Myung Bae <myungbae@us.ibm.com>
2024-04-01Move where appropriateEd Tanous1-1/+2
Clang-tidy-18 has new checks that can find more cases where we've missed an opportunity to std::move. Fix them. Tested: Logging works, unit tests pass. Change-Id: I0cf58204ce7265828693b787a7b3a16484c3d5e5 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-01Enable readability checkEd Tanous1-3/+11
readability-avoid-nested-conditional-operator With one exception, we already pass this check. Update the log services code to make it pass, and update it to use the generated enums. Tested: Code inspection only. Change-Id: Ic80a7382beb0f541de4916d7b51e42ed5d5dc542 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-01hypervisor: Move to setProperty dbus util methodAsmitha Karunanithi1-81/+39
This commit changes sdbusplus setProperty calls in hypervisor_system.hpp file to "setDbusProperty" method in Redfish namespace that handles all DBus errors in a consistent manner. Change-Id: Iebca5eb4e28159d61cd4b13c0343b78efd0f1f39 Signed-off-by: Asmitha Karunanithi <asmitk01@in.ibm.com>
2024-04-01Remove duplicated includeEd Tanous1-1/+0
This include exists above. Tested: code compiles. Change-Id: I8e5d7bce292486d2f534da1b539212113c1e8d56 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-01Fix redundant inline operatorsEd Tanous1-1/+1
inline is not required on member methods. Clang-tidy has a check for this. Enable the check and fix the two bad usages. Tested: Code compiles. Change-Id: I3115b7c0c4005e1082e0005b818fbe6569511f49 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-01Use no-switch-default on clangEd Tanous2-1/+3
clang-18 improves this check so that we can actually use it. Enable it and fix all violations. Change-Id: Ibe4ce19c423d447a4cbe593d1abba948362426af Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-01Fix SSE socketsEd Tanous1-0/+5
Redfish protocol validatator has SSE tests that expose some bad coding practies in SSE handlers, namely, that there are several cases where we don't check for nullptr. Fix them. This appears to have been introduced in: https://gerrit.openbmc.org/c/openbmc/bmcweb/+/41319 Tested: Redfish service validator passes more tests. Change-Id: Id980725f007d044b7d120dbe0f4b625865cab6ba Signed-off-by: Ed Tanous <ed@tanous.net>
2024-04-01Cable: Fix Logging Level ErrorGunnar Mills1-1/+1
When we have an internal error, having the D-Bus response is really helpful. Follow our guide and have these be a Logging Level Error. Tested: None. Inspection only. Change-Id: Ie1d9f364c3af7f2a8839d878d68c82c10ddc0429 Signed-off-by: Gunnar Mills <gmills@us.ibm.com>
2024-03-28ethernet: Move to setProperty dbus utility methodAsmitha Karunanithi1-35/+16
This commit changes sdbusplus setProperty calls in ethernet.hpp file to "setDbusProperty" method in Redfish namespace that handles all DBus errors in a consistent manner. Tested By: Tested a few PATCH operations on the redfish endpoints defined in this file and verified that bmcweb returns appropriate Redfish errors. Change-Id: Ie456db75d59dc247cdce5dd5cc0b2f6894f5265f Signed-off-by: Asmitha Karunanithi <asmitk01@in.ibm.com>
2024-03-28Create Redfish specific setProperty callEd Tanous8-558/+252
There are currently 78 sdbusplus::asio::setProperty calls in redfish-core. The error handler for nearly all of them looks something like: ``` if (ec) { const sd_bus_error* dbusError = msg.get_error(); if ((dbusError != nullptr) && (dbusError->name == std::string_view( "xyz.openbmc_project.Common.Error.InvalidArgument"))) { BMCWEB_LOG_WARNING("DBUS response error: {}", ec); messages::propertyValueIncorrect(asyncResp->res, "<PropertyName>", <PropertyValue>); return; } messages::internalError(asyncResp->res); return; } messages::success(asyncResp->res); ``` In some cases there are more errors handled that translate to more error messages, but the vast majority only handle InvalidArgument. Many of these, like the ones in account_service.hpp, do the error handling in a lambda, which causes readability problems. This commit starts to make things more consistent, and easier for trivial property sets. This commit invents a setDbusProperty method in the redfish namespace that tries to handle all DBus errors in a consistent manner. Looking for input on whether this will work before changing over the other 73 calls. Overall this is less code, fewer inline lambdas, and defaults that should work for MOST use cases of calling an OpenBMC daemon, and fall back to more generic errors when calling a "normal" dbus daemon. As part of this, I've ported over several examples. Some things that might be up in the air: 1. Do we always return 204 no_content on property sets? Today there's a mix of 200, with a Base::Success message, and 204, with an empty body. 2. Do all DBus response codes map to the same error? A majority are covered by xyz.openbmc_project.Common.Error.InvalidArgument, but there are likely differences. If we allow any daemon to return any return code, does that cause compatibility problems later? Tested: ``` curl -k --user "root:0penBmc" -H "Content-Type: application/json" -X PATCH -d '{"HostName":"openbmc@#"}' https://192.168.7.2/redfish/v1/Managers/bmc/EthernetInterfaces/eth0 ``` Returns the appropriate error in the response Base.1.16.0.PropertyValueIncorrect Change-Id: If033a1112ba516792c9386c997d090c8f9094f3a Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-28Add misc-include-cleanerEd Tanous4-1/+10
And fix the includes that are wrong. Note, there is a very large ignore list included in the .clang-tidy configcfile. These are things that clang-tidy doesn't yet handle well, like knowing about a details include. Change-Id: Ie3744f2c8cba68a8700b406449d6c2018a736952 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-28Fix clang-formatting in ethernetEd Tanous1-4/+4
Current code has //clang-format on When it should have // clang-format on The difference is subtle, but disables formatting for this whole file. Re-enable and fix the couple of problems. Tested: Whitespace only. Change-Id: Ia155226327d4d611eb2c0f5232274459866e81cc Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-27Check optionals in tidyEd Tanous2-33/+22
clang-tidy-18 makes this feature stable enough for us to use in general. Enable the check, and fix the couple of regressions that have snuck in since we last ran the check. Tidy seems to not be able to understand that ASSERT will not continue, so if we ASSERT a std::optional, it's not a bug. Add explicit checks to keep tidy happy. Tested: clang-tidy passes. Change-Id: I0986453851da5471056a7b47b8ad57a9801df259 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-27Fix unused variable warning in LDAPEd Tanous1-19/+28
It's not clear how this came to be the way it is, but tidy now warns that this variable is unused (which it is). Refactor the LDAP code to not use the variable, and to use concrete object_t and array_t Tested: Redfish service validator passes. Change-Id: I0c106d10594a396d506bf9865cb29d4a10a372a1 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-27Update indicator LED verificationGeorge Liu1-2/+4
Extend the hasIndicatorLed array and add xyz.openbmc_project.Inventory.Item.Chassis interface. Tested: ``` curl -k https://$bmc/redfish/v1/Chassis/chassis { "@odata.id": "/redfish/v1/Chassis/chassis", "@odata.type": "#Chassis.v1_22_0.Chassis", "Actions": { "#Chassis.Reset": { "@Redfish.ActionInfo": "/redfish/v1/Chassis/chassis/ResetActionInfo", "target": "/redfish/v1/Chassis/chassis/Actions/Chassis.Reset" } }, "ChassisType": "RackMount", "Id": "chassis", "Links": { "ComputerSystems": [ { "@odata.id": "/redfish/v1/Systems/system" } ], "ManagedBy": [ { "@odata.id": "/redfish/v1/Managers/bmc" } ] }, "Location": { "PartLocation": { "ServiceLabel": "U78DA.ND0.WZS004K" } }, "IndicatorLED": "Off", "LocationIndicatorActive": false, "Manufacturer": "", "Model": "23", "Name": "chassis", "PCIeDevices": { "@odata.id": "/redfish/v1/Systems/system/PCIeDevices" }, "PartNumber": "", "Power": { "@odata.id": "/redfish/v1/Chassis/chassis/Power" }, "PowerState": "Off", "Sensors": { "@odata.id": "/redfish/v1/Chassis/chassis/Sensors" }, "SerialNumber": "", "Status": { "Health": "OK", "HealthRollup": "OK", "State": "StandbyOffline" }, "Thermal": { "@odata.id": "/redfish/v1/Chassis/chassis/Thermal" } } ``` Signed-off-by: George Liu <liuxiwei@ieisystem.com> Change-Id: I02e77d56e555f9aee3f76015baeebbf1f4a292ab
2024-03-25Fix redundant init issuesEd Tanous3-10/+13
clang-tidy-18 must've fixed their checking for these in headers. Resolve as the robot commands. Tested: Noop changes made by tidy. Code compiles. Change-Id: I1de7686c597deffb0df91c30dae1a29f9ba7900e Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-21Clean up event service to use readJsonEd Tanous1-31/+32
Use multiple level direct read. Tested: Visual only. Need help if anyone wants to test. Change-Id: I8655e74d39edcbab43fcd2a8379b085e91ed00eb Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-21Clean up triggers to use readJsonEd Tanous1-109/+123
Use multiple level direct read Tested: Visual only. Need help if anyone wants to test. Change-Id: I2595a7024f1d02e02874310d1911cd4855b867be Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-21Clean up Manager to use readJsonEd Tanous1-107/+86
Change-Id: If4237a21aa0c5f414e20cd9e7eee2f1188097e14 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-21Clean up metric report definition to use readJsonObjectEd Tanous1-46/+29
Change-Id: I29a9ecbdc9011b6513dc6bfccd28e7e7158fed9b Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-21Clean up processor to use readJsonEd Tanous1-11/+6
Change-Id: I2e72f01821e931a8d6eeb812c314de9d1c52df78 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-21Clean up power/thermal to use readJsonObjectEd Tanous3-24/+17
Change-Id: I69ed29472b209e8782be63c3f0f2e8ca63dc14a4 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-21Clean up Certificate Service to use readJsonEd Tanous1-27/+12
Use multiple level direct read to simplify code. Tested: Visual only. Need help if anyone wants to test. Change-Id: Ib7c34daefbe2bb835cbe420b40861f27442d05b1 Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-21Use readJson to simplify updateEd Tanous1-32/+24
Similar to other places where we've ported the depth-based readJson support forward, this commit ports the UpdateService handler to simplify the code. Signed-off-by: Ed Tanous <edtanous@google.com> Change-Id: Ia9841a10b4414f81205d3f9b49ec8aab8f9d491d
2024-03-19Make readJson accept object_tEd Tanous1-18/+66
Redfish supports several type systems for json. This makes parsing into proper types a challenge. Nlohmann supports 3 core data types, nlohmann::json, which supports all json types (float, int, array, object). Nlohmann::json::object_t, which is a specific typedef of std::map, and nlohmann::json::array_t, which is a specific typedef of std::map. Redfish allows reading our arrays of complex objects, similar to NtpServers: [null, {}, "string"] Which makes it a challenge to support. This commit allows parsing out objects as a nlohmann::object_t, which gives the ability to later use it in a type safe manner, without having to call get_ptr<nlohmann::json::object_t later>. Tested: Unit tests pass. Change-Id: I4134338951ce27c2f56841a45b56bc64ad1753db Signed-off-by: Ed Tanous <ed@tanous.net>
2024-03-19Rename FileBody to HttpBodyEd Tanous1-9/+9
Now that our custom body type does things more than files, it makes sense to rename it. This commit renames the header itself, then all instances of the class. Tested: Basic GET requests succeed. Change-Id: If4361ac8992fc7c268f48a336707f96e68d3576c Signed-off-by: Ed Tanous <ed@tanous.net>