Summary: Resource policy framework
Name: murphy
Version: 0.0.75
-Release: 21
+Release: 22
License: BSD-3-Clause
Group: System/Service
URL: http://01.org/murphy/
#define DEFAULT_PROMPT "murphy"
#define DEFAULT_ADDRESS "unxs:@murphy-console"
+#define DEFAULT_CONTAINER_ADDRESS DEFAULT_ADDRESS"-container"
/*
}
+static bool is_in_container(void)
+{
+ return access("/run/systemd/container", F_OK) == 0;
+}
+
+
static void client_set_defaults(client_t *c)
{
mrp_clear(c);
c->seqno = 1;
- c->server = DEFAULT_ADDRESS;
+ c->server = is_in_container() ? DEFAULT_CONTAINER_ADDRESS : DEFAULT_ADDRESS;
c->log_mask = MRP_LOG_UPTO(MRP_LOG_INFO);
c->log_target = MRP_LOG_TO_STDERR;
}
#include <murphy/plugins/console-protocol.h>
#define DEFAULT_ADDRESS "unxs:@murphy-console" /* default console address */
+#define DEFAULT_CONTAINER_ADDRESS DEFAULT_ADDRESS"-container" /* default container console address */
#ifdef MURPHY_DATADIR /* default content dir */
# define DEFAULT_HTTPDIR MURPHY_DATADIR"/webconsole"
};
+static bool is_in_container(void)
+{
+ return access("/run/systemd/container", F_OK) == 0;
+}
+
static int console_init(mrp_plugin_t *plugin)
{
mrp_list_init(&data->clients);
data->ctx = plugin->ctx;
- data->address = plugin->args[ARG_ADDRESS].str;
+ data->address = is_in_container() ? DEFAULT_CONTAINER_ADDRESS : plugin->args[ARG_ADDRESS].str;
data->httpdir = plugin->args[ARG_HTTPDIR].str;
data->sslcert = plugin->args[ARG_SSLCERT].str;
data->sslpkey = plugin->args[ARG_SSLPKEY].str;
MRP_CDECL_BEGIN
#define MRP_DEFAULT_DOMCTL_ADDRESS "unxs:@murphy-domctrl"
+#define MRP_DEFAULT_CONTAINER_DOMCTL_ADDRESS MRP_DEFAULT_DOMCTL_ADDRESS"-container"
/*
#include "client.h"
#define DEFAULT_EXTADDR MRP_DEFAULT_DOMCTL_ADDRESS
+#define DEFAULT_CONTAINER_EXTADDR MRP_DEFAULT_CONTAINER_DOMCTL_ADDRESS
+
#define NO_ADDR NULL
#ifdef MURPHY_DATADIR
};
+static bool is_in_container(void)
+{
+ return access("/run/systemd/container", F_OK) == 0;
+}
+
+
static int plugin_init(mrp_plugin_t *plugin)
{
- const char *extaddr = plugin->args[ARG_EXTADDR].str;
+ const char *extaddr = is_in_container() ?
+ DEFAULT_CONTAINER_EXTADDR : plugin->args[ARG_EXTADDR].str;
const char *intaddr = plugin->args[ARG_INTADDR].str;
const char *wrtaddr = plugin->args[ARG_WRTADDR].str;
const char *httpdir = plugin->args[ARG_HTTPDIR].str;
}
+static bool is_in_container(void)
+{
+ return access("/run/systemd/container", F_OK) == 0;
+}
+
+
static void client_set_defaults(client_t *c)
{
mrp_clear(c);
- c->addrstr = MRP_DEFAULT_DOMCTL_ADDRESS;
+ c->addrstr = is_in_container() ?
+ MRP_DEFAULT_CONTAINER_DOMCTL_ADDRESS : MRP_DEFAULT_DOMCTL_ADDRESS;
c->zone = FALSE;
c->verbose = FALSE;
c->audio = FALSE;
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
+#include <fcntl.h>
#include <murphy/common/msg.h>
#define RESPROTO_DEFAULT_ADDRESS "unxs:@murphy-resource-native"
+#define RESPROTO_DEFAULT_CONTAINER_ADDRESS RESPROTO_DEFAULT_ADDRESS"-container"
#define RESPROTO_DEFAULT_ADDRVAR "MURPHY_RESOURCE_ADDRESS"
} mrp_resproto_state_t;
+static bool is_in_container(void)
+{
+ return access("/run/systemd/container", F_OK) == 0;
+}
+
+
static inline const char *mrp_resource_get_default_address(void)
{
- const char *addr;
+ const char *addr = getenv(RESPROTO_DEFAULT_ADDRVAR);
- if ((addr = getenv(RESPROTO_DEFAULT_ADDRVAR)) == NULL)
- return RESPROTO_DEFAULT_ADDRESS;
- else
+ if (addr)
return addr;
+
+ return is_in_container() ?
+ RESPROTO_DEFAULT_CONTAINER_ADDRESS : RESPROTO_DEFAULT_ADDRESS;
}
#endif /* __MURPHY_RESOURCE_PROTOCOL_H__ */