return e->name || e->message || e->need_free;
}
-void sd_bus_error_free(sd_bus_error *e) {
+_public_ void sd_bus_error_free(sd_bus_error *e) {
if (!e)
return;
e->need_free = false;
}
-int sd_bus_error_set(sd_bus_error *e, const char *name, const char *message) {
+_public_ int sd_bus_error_set(sd_bus_error *e, const char *name, const char *message) {
char *n, *m = NULL;
if (!e)
return 0;
}
-int sd_bus_error_setf(sd_bus_error *e, const char *name, const char *format, ...) {
+_public_ int sd_bus_error_setf(sd_bus_error *e, const char *name, const char *format, ...) {
if (format) {
int r;
return sd_bus_error_set(e, name, NULL);
}
-int sd_bus_error_copy(sd_bus_error *dest, const sd_bus_error *e) {
+_public_ int sd_bus_error_copy(sd_bus_error *dest, const sd_bus_error *e) {
char *x, *y = NULL;
if (!dest)
return 0;
}
-int sd_bus_error_set_const(sd_bus_error *e, const char *name, const char *message) {
+_public_ int sd_bus_error_set_const(sd_bus_error *e, const char *name, const char *message) {
if (!e)
return 0;
return 0;
}
-int sd_bus_error_is_set(const sd_bus_error *e) {
+_public_ int sd_bus_error_is_set(const sd_bus_error *e) {
if (!e)
return 0;
return !!e->name;
}
-int sd_bus_error_has_name(const sd_bus_error *e, const char *name) {
+_public_ int sd_bus_error_has_name(const sd_bus_error *e, const char *name) {
if (!e)
return 0;
return streq_ptr(e->name, name);
}
-int sd_bus_error_get_errno(const sd_bus_error* e) {
+_public_ int sd_bus_error_get_errno(const sd_bus_error* e) {
/* Better replce this with a gperf table */
return SD_BUS_ERROR_MAKE(SD_BUS_ERROR_FAILED, "Operation failed");
}
-int sd_bus_error_set_errno(sd_bus_error *e, int error) {
+_public_ int sd_bus_error_set_errno(sd_bus_error *e, int error) {
sd_bus_error x;
x = map_from_errno(error);
return bus_error_set_strerror_or_const(e, x.name, error, x.message);
}
-int sd_bus_error_set_errnof(sd_bus_error *e, int error, const char *format, ...) {
+_public_ int sd_bus_error_set_errnof(sd_bus_error *e, int error, const char *format, ...) {
int r;
if (!e)
const char *bus_error_message(const sd_bus_error *e, int error) {
+ if (e) {
+ /* Sometimes the D-Bus server is a little bit too verbose with
+ * its error messages, so let's override them here */
+ if (sd_bus_error_has_name(e, SD_BUS_ERROR_ACCESS_DENIED))
+ return "Access denied";
+
+ if (e->message)
+ return e->message;
+ }
+
if (error < 0)
error = -error;
- if (e && e->message)
- return e->message;
-
return strerror(error);
}