Code Review
/
src
/
app-framework-binder.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
afs-supervisor: Add verb for running discovery
[src/app-framework-binder.git]
/
src
/
afs-supervisor.c
diff --git
a/src/afs-supervisor.c
b/src/afs-supervisor.c
index
8cf21cb
..
35a3f3e
100644
(file)
--- a/
src/afs-supervisor.c
+++ b/
src/afs-supervisor.c
@@
-277,13
+277,17
@@
static void discovered_cb(void *closure, pid_t pid)
struct supervised *s;
s = supervised_of_pid(pid);
struct supervised *s;
s = supervised_of_pid(pid);
- if (!s)
+ if (!s) {
+ (*(int*)closure)++;
kill(pid, SIGHUP);
kill(pid, SIGHUP);
+ }
}
}
-static
void
discover_supervised()
+static
int
discover_supervised()
{
{
- afs_discover("afb-daemon", discovered_cb, NULL);
+ int n = 0;
+ afs_discover("afb-daemon", discovered_cb, &n);
+ return n;
}
/**
}
/**
@@
-411,6
+415,12
@@
static void f_list(struct afb_req req)
afb_req_success(req, resu, NULL);
}
afb_req_success(req, resu, NULL);
}
+static void f_discover(struct afb_req req)
+{
+ discover_supervised();
+ afb_req_success(req, NULL, NULL);
+}
+
static void propagate(struct afb_req req, const char *verb)
{
struct afb_xreq *xreq;
static void propagate(struct afb_req req, const char *verb)
{
struct afb_xreq *xreq;
@@
-555,6
+565,13
@@
static const struct afb_verb_v2 _afb_verbs_v2_supervision[] = {
.info = NULL,
.session = AFB_SESSION_NONE_V2
},
.info = NULL,
.session = AFB_SESSION_NONE_V2
},
+ {
+ .verb = "discover",
+ .callback = f_discover,
+ .auth = &_afb_auths_v2_supervision[0],
+ .info = NULL,
+ .session = AFB_SESSION_NONE_V2
+ },
{ .verb = NULL }
};
{ .verb = NULL }
};