add "start_program" support
This allows the controlling instance (ttcn3 test case) to start
a process (shell command) within the namespace of a given tunnel
/ tun device.
The controlling instance is informed of the success/failure
of starting the process, as well as the exit code at time of
termination.
Change-Id: I94db625de9f5968e53bf67ce2f941673d9a15fbc
Depends: libosmocore.git If1431f930f72a8d6c1d102426874a11b7a2debd9
Depends: libosmocore.git If8d89dd1f6989e1cd9b9367fad954d65f91ada30
diff --git a/daemon/internal.h b/daemon/internal.h
index f0e1382..09ba52e 100644
--- a/daemon/internal.h
+++ b/daemon/internal.h
@@ -116,6 +116,9 @@
tun_device_find_or_create(struct gtp_daemon *d, const char *devname, const char *netns_name);
struct tun_device *
+tun_device_find_netns(struct gtp_daemon *d, const char *netns_name);
+
+struct tun_device *
_tun_device_find(struct gtp_daemon *d, const char *devname);
void _tun_device_deref_destroy(struct tun_device *tun);
@@ -202,11 +205,14 @@
#define UECUPS_SCTP_PORT 4268
+struct osmo_signalfd;
+
struct gtp_daemon {
/* global lists of various objects */
struct llist_head gtp_endpoints;
struct llist_head tun_devices;
struct llist_head gtp_tunnels;
+ struct llist_head subprocesses;
/* lock protecting all of the above lists */
pthread_rwlock_t rwlock;
/* main thread ID */
@@ -214,6 +220,7 @@
/* client CUPS interface */
struct llist_head cups_clients;
struct osmo_stream_srv_link *cups_link;
+ struct osmo_signalfd *signalfd;
struct {
char *cups_local_ip;