chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
80a46c7
)
bus: introduce bus_error_is_dirty() independently of sd_bus_error_is_set()
author
Lennart Poettering
<lennart@poettering.net>
Wed, 20 Mar 2013 12:10:12 +0000
(13:10 +0100)
committer
Lennart Poettering
<lennart@poettering.net>
Wed, 20 Mar 2013 22:00:10 +0000
(23:00 +0100)
src/libsystemd-bus/bus-error.c
patch
|
blob
|
history
src/libsystemd-bus/bus-error.h
patch
|
blob
|
history
src/libsystemd-bus/bus-message.c
patch
|
blob
|
history
src/libsystemd-bus/sd-bus.c
patch
|
blob
|
history
src/libsystemd-bus/sd-bus.h
patch
|
blob
|
history
diff --git
a/src/libsystemd-bus/bus-error.c
b/src/libsystemd-bus/bus-error.c
index 0832022ee914508be1919044d276bd2945a230a0..015fae70adebb8212582463ad3a0bdb5d03ce540 100644
(file)
--- a/
src/libsystemd-bus/bus-error.c
+++ b/
src/libsystemd-bus/bus-error.c
@@
-31,6
+31,13
@@
#include "sd-bus.h"
#include "bus-error.h"
#include "sd-bus.h"
#include "bus-error.h"
+bool bus_error_is_dirty(sd_bus_error *e) {
+ if (!e)
+ return 0;
+
+ return e->name || e->message || e->need_free;
+}
+
void sd_bus_error_free(sd_bus_error *e) {
if (!e)
return;
void sd_bus_error_free(sd_bus_error *e) {
if (!e)
return;
@@
-51,7
+58,7
@@
int sd_bus_error_set(sd_bus_error *e, const char *name, const char *format, ...)
if (!e)
return 0;
if (!e)
return 0;
- if (
sd_bus_error_is_set
(e))
+ if (
bus_error_is_dirty
(e))
return -EINVAL;
if (!name)
return -EINVAL;
return -EINVAL;
if (!name)
return -EINVAL;
@@
-81,7
+88,7
@@
int sd_bus_error_set(sd_bus_error *e, const char *name, const char *format, ...)
int sd_bus_error_copy(sd_bus_error *dest, const sd_bus_error *e) {
if (!dest)
return 0;
int sd_bus_error_copy(sd_bus_error *dest, const sd_bus_error *e) {
if (!dest)
return 0;
- if (
sd_bus_error_is_set
(dest))
+ if (
bus_error_is_dirty
(dest))
return -EINVAL;
if (!sd_bus_error_is_set(e))
return 0;
return -EINVAL;
if (!sd_bus_error_is_set(e))
return 0;
@@
-113,18
+120,19
@@
int sd_bus_error_copy(sd_bus_error *dest, const sd_bus_error *e) {
void sd_bus_error_set_const(sd_bus_error *e, const char *name, const char *message) {
if (!e)
return;
void sd_bus_error_set_const(sd_bus_error *e, const char *name, const char *message) {
if (!e)
return;
- if (
sd_bus_error_is_set
(e))
+ if (
bus_error_is_dirty
(e))
return;
e->name = name;
e->message = message;
return;
e->name = name;
e->message = message;
+ e->need_free = false;
}
int sd_bus_error_is_set(const sd_bus_error *e) {
if (!e)
return 0;
}
int sd_bus_error_is_set(const sd_bus_error *e) {
if (!e)
return 0;
- return
e->name || e->message || e->need_fre
e;
+ return
!!e->nam
e;
}
int sd_bus_error_has_name(const sd_bus_error *e, const char *name) {
}
int sd_bus_error_has_name(const sd_bus_error *e, const char *name) {
diff --git
a/src/libsystemd-bus/bus-error.h
b/src/libsystemd-bus/bus-error.h
index f49e6c73985ad9a115dc5bb1dc6d077dc5b94187..c6e072eab4913e65fa53ce7d78188f67db85700f 100644
(file)
--- a/
src/libsystemd-bus/bus-error.h
+++ b/
src/libsystemd-bus/bus-error.h
@@
-25,3
+25,5
@@
int bus_error_to_errno(const sd_bus_error *e);
int bus_error_from_errno(sd_bus_error *e, int error);
int bus_error_to_errno(const sd_bus_error *e);
int bus_error_from_errno(sd_bus_error *e, int error);
+
+bool bus_error_is_dirty(sd_bus_error *e);
diff --git
a/src/libsystemd-bus/bus-message.c
b/src/libsystemd-bus/bus-message.c
index a1bae4d1a76d75d467028c35e83f76eb19dfc893..5f3dbdb75de8a55d2a41076b045b7de9af0b9507 100644
(file)
--- a/
src/libsystemd-bus/bus-message.c
+++ b/
src/libsystemd-bus/bus-message.c
@@
-447,9
+447,7
@@
int sd_bus_message_new_method_error(
sd_bus_message *t;
int r;
sd_bus_message *t;
int r;
- if (!e)
- return -EINVAL;
- if (!e->name)
+ if (!sd_bus_error_is_set(e))
return -EINVAL;
if (!m)
return -EINVAL;
return -EINVAL;
if (!m)
return -EINVAL;
diff --git
a/src/libsystemd-bus/sd-bus.c
b/src/libsystemd-bus/sd-bus.c
index 70288ee1310378858b4aaa75982bc2711ec5f9bd..c5cbb5682d8cc370dac7f55d08b56c7ba1fc68fd 100644
(file)
--- a/
src/libsystemd-bus/sd-bus.c
+++ b/
src/libsystemd-bus/sd-bus.c
@@
-1131,7
+1131,7
@@
int sd_bus_send_with_reply_and_block(
return -EINVAL;
if (!m->header->type != SD_BUS_MESSAGE_TYPE_METHOD_CALL)
return -EINVAL;
return -EINVAL;
if (!m->header->type != SD_BUS_MESSAGE_TYPE_METHOD_CALL)
return -EINVAL;
- if (sd_bus_error_is_
set
(error))
+ if (sd_bus_error_is_
dirty
(error))
return -EINVAL;
r = sd_bus_send(bus, m, &serial);
return -EINVAL;
r = sd_bus_send(bus, m, &serial);
diff --git
a/src/libsystemd-bus/sd-bus.h
b/src/libsystemd-bus/sd-bus.h
index d655f05dc3d308779a52ce8e50cf3f42608009de..d892562b5f6362cd1db04fe809b8afbc207e7b21 100644
(file)
--- a/
src/libsystemd-bus/sd-bus.h
+++ b/
src/libsystemd-bus/sd-bus.h
@@
-131,9
+131,9
@@
int sd_bus_get_owner_pid(sd_bus *bus, const char *name, pid_t *pid);
int sd_bus_add_match(sd_bus *bus, const char *match);
int sd_bus_remove_match(sd_bus *bus, const char *match);
int sd_bus_add_match(sd_bus *bus, const char *match);
int sd_bus_remove_match(sd_bus *bus, const char *match);
-/* Error
object
s */
+/* Error
structure
s */
-#define SD_BUS_ERROR_INIT (NULL, NULL,
false
)
+#define SD_BUS_ERROR_INIT (NULL, NULL,
0
)
void sd_bus_error_free(sd_bus_error *e);
int sd_bus_error_set(sd_bus_error *e, const char *name, const char *format, ...);
void sd_bus_error_free(sd_bus_error *e);
int sd_bus_error_set(sd_bus_error *e, const char *name, const char *format, ...);