summaryrefslogtreecommitdiffstats
path: root/src/monitor
diff options
context:
space:
mode:
authorFabiano Fidêncio <fidencio@redhat.com>2016-11-16 17:32:10 +0100
committerLukas Slebodnik <lslebodn@redhat.com>2017-01-23 18:46:37 +0100
commiteaff953c64678b93e4242b715d2cee47e59f86aa (patch)
treed60006d063a1720c0b471621c6b36edcf2df0a70 /src/monitor
parent9532367820b4b17bc9df675c625141c789ed19da (diff)
downloadsssd-eaff953c64678b93e4242b715d2cee47e59f86aa.tar.gz
sssd-eaff953c64678b93e4242b715d2cee47e59f86aa.tar.xz
sssd-eaff953c64678b93e4242b715d2cee47e59f86aa.zip
MONITOR: Pass the service type to the RegisterService method
Passing the service type to the RegisterService method will help us in the future, for socket-activation, as we will need to differentiate cases where the service being registered is still not in the services' list but is a valid case and has to be added there as it was socket-activated. Related: https://fedorahosted.org/sssd/ticket/2243 Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> Reviewed-by: Pavel Březina <pbrezina@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com> Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>
Diffstat (limited to 'src/monitor')
-rw-r--r--src/monitor/monitor.c2
-rw-r--r--src/monitor/monitor_interfaces.h3
-rw-r--r--src/monitor/monitor_sbus.c6
3 files changed, 8 insertions, 3 deletions
diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index c8f0f2adf..c35aba776 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -232,6 +232,7 @@ static int client_registration(struct sbus_request *dbus_req, void *data)
struct mt_svc *svc;
DBusError dbus_error;
dbus_uint16_t svc_ver;
+ dbus_uint16_t svc_type;
char *svc_name;
dbus_bool_t dbret;
int ret;
@@ -250,6 +251,7 @@ static int client_registration(struct sbus_request *dbus_req, void *data)
dbret = dbus_message_get_args(dbus_req->message, &dbus_error,
DBUS_TYPE_STRING, &svc_name,
DBUS_TYPE_UINT16, &svc_ver,
+ DBUS_TYPE_UINT16, &svc_type,
DBUS_TYPE_INVALID);
if (!dbret) {
DEBUG(SSSDBG_CRIT_FAILURE,
diff --git a/src/monitor/monitor_interfaces.h b/src/monitor/monitor_interfaces.h
index 90048017d..986bac52f 100644
--- a/src/monitor/monitor_interfaces.h
+++ b/src/monitor/monitor_interfaces.h
@@ -42,7 +42,7 @@ enum mt_svc_type {
int monitor_get_sbus_address(TALLOC_CTX *mem_ctx, char **address);
int monitor_common_send_id(struct sbus_connection *conn,
- const char *name, uint16_t version);
+ const char *name, uint16_t version, uint16_t type);
int monitor_common_res_init(struct sbus_request *dbus_req, void *data);
errno_t sss_monitor_init(TALLOC_CTX *mem_ctx,
@@ -50,5 +50,6 @@ errno_t sss_monitor_init(TALLOC_CTX *mem_ctx,
struct mon_cli_iface *mon_iface,
const char *svc_name,
uint16_t svc_version,
+ uint16_t svc_type,
void *pvt,
struct sbus_connection **mon_conn);
diff --git a/src/monitor/monitor_sbus.c b/src/monitor/monitor_sbus.c
index cc25c404c..afd82f664 100644
--- a/src/monitor/monitor_sbus.c
+++ b/src/monitor/monitor_sbus.c
@@ -110,7 +110,7 @@ done:
}
int monitor_common_send_id(struct sbus_connection *conn,
- const char *name, uint16_t version)
+ const char *name, uint16_t version, uint16_t type)
{
DBusMessage *msg;
dbus_bool_t ret;
@@ -131,6 +131,7 @@ int monitor_common_send_id(struct sbus_connection *conn,
ret = dbus_message_append_args(msg,
DBUS_TYPE_STRING, &name,
DBUS_TYPE_UINT16, &version,
+ DBUS_TYPE_UINT16, &type,
DBUS_TYPE_INVALID);
if (!ret) {
DEBUG(SSSDBG_CRIT_FAILURE, "Failed to build message\n");
@@ -162,6 +163,7 @@ errno_t sss_monitor_init(TALLOC_CTX *mem_ctx,
struct mon_cli_iface *mon_iface,
const char *svc_name,
uint16_t svc_version,
+ uint16_t svc_type,
void *pvt,
struct sbus_connection **mon_conn)
{
@@ -191,7 +193,7 @@ errno_t sss_monitor_init(TALLOC_CTX *mem_ctx,
}
/* Identify ourselves to the monitor */
- ret = monitor_common_send_id(conn, svc_name, svc_version);
+ ret = monitor_common_send_id(conn, svc_name, svc_version, svc_type);
if (ret != EOK) {
DEBUG(SSSDBG_FATAL_FAILURE, "Failed to identify to the monitor!\n");
return ret;