| 35 | namespace sdbus |
| 36 | { |
| 37 | Error createError(int errNo, std::string customMsg) |
| 38 | { |
| 39 | sd_bus_error sdbusError = SD_BUS_ERROR_NULL; |
| 40 | sd_bus_error_set_errno(&sdbusError, errNo); |
| 41 | SCOPE_EXIT{ sd_bus_error_free(&sdbusError); }; |
| 42 | |
| 43 | Error::Name name(sd_bus_error_is_set(&sdbusError) != 0 ? sdbusError.name : ""); |
| 44 | std::string message(std::move(customMsg)); |
| 45 | if (!message.empty() && sdbusError.message != nullptr) |
| 46 | { |
| 47 | message.append(" ("); |
| 48 | message.append(sdbusError.message); |
| 49 | message.append(")"); |
| 50 | } |
| 51 | else if (sdbusError.message != nullptr) |
| 52 | { |
| 53 | message = sdbusError.message; |
| 54 | } |
| 55 | |
| 56 | return {std::move(name), std::move(message)}; |
| 57 | } |
| 58 | } // namespace sdbus |
no outgoing calls