X Tutup
Skip to content

Commit f7f53e9

Browse files
committed
sd-event: allow naming event sources
1 parent 5968b1c commit f7f53e9

File tree

3 files changed

+33
-0
lines changed

3 files changed

+33
-0
lines changed

src/libsystemd/libsystemd.sym.m4

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -382,6 +382,8 @@ global:
382382
sd_event_get_watchdog;
383383
sd_event_source_ref;
384384
sd_event_source_unref;
385+
sd_event_source_set_name;
386+
sd_event_source_get_name;
385387
sd_event_source_set_prepare;
386388
sd_event_source_get_pending;
387389
sd_event_source_get_priority;

src/libsystemd/sd-event/sd-event.c

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ struct sd_event_source {
6666
void *userdata;
6767
sd_event_handler_t prepare;
6868

69+
char *name;
70+
6971
EventSourceType type:5;
7072
int enabled:3;
7173
bool pending:1;
@@ -685,6 +687,7 @@ static void source_free(sd_event_source *s) {
685687
assert(s);
686688

687689
source_disconnect(s);
690+
free(s->name);
688691
free(s);
689692
}
690693

@@ -1223,6 +1226,32 @@ _public_ sd_event_source* sd_event_source_unref(sd_event_source *s) {
12231226
return NULL;
12241227
}
12251228

1229+
_public_ int sd_event_source_set_name(sd_event_source *s, const char *name) {
1230+
char *new_name = NULL;
1231+
1232+
assert_return(s, -EINVAL);
1233+
1234+
if (name) {
1235+
new_name = strdup(name);
1236+
if (!new_name)
1237+
return -ENOMEM;
1238+
}
1239+
1240+
free(s->name);
1241+
s->name = new_name;
1242+
1243+
return 0;
1244+
}
1245+
1246+
_public_ int sd_event_source_get_name(sd_event_source *s, const char **name) {
1247+
assert_return(s, -EINVAL);
1248+
assert_return(name, -EINVAL);
1249+
1250+
*name = s->name;
1251+
1252+
return 0;
1253+
}
1254+
12261255
_public_ sd_event *sd_event_source_get_event(sd_event_source *s) {
12271256
assert_return(s, NULL);
12281257

src/systemd/sd-event.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,6 +109,8 @@ sd_event *sd_event_source_get_event(sd_event_source *s);
109109
void* sd_event_source_get_userdata(sd_event_source *s);
110110
void* sd_event_source_set_userdata(sd_event_source *s, void *userdata);
111111

112+
int sd_event_source_set_name(sd_event_source *s, const char *name);
113+
int sd_event_source_get_name(sd_event_source *s, const char **name);
112114
int sd_event_source_set_prepare(sd_event_source *s, sd_event_handler_t callback);
113115
int sd_event_source_get_pending(sd_event_source *s);
114116
int sd_event_source_get_priority(sd_event_source *s, int64_t *priority);

0 commit comments

Comments
 (0)
X Tutup