[SSSD] [sssd PR#84][synchronized] Socket-activation of SSSD responders

2016-11-22 Thread fidencio
   URL: https://github.com/SSSD/sssd/pull/84
Author: fidencio
 Title: #84: Socket-activation of SSSD responders
Action: synchronized

To pull the PR as Git branch:
git remote add ghsssd https://github.com/SSSD/sssd
git fetch ghsssd pull/84/head:pr84
git checkout pr84
From 62fa380c276f820f33628fffc95f3a4f8825d535 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= 
Date: Wed, 16 Nov 2016 17:21:54 +0100
Subject: [PATCH 01/14] MONITOR: Expose the monitor's services type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Let's expose the monitor's service type so it can be passed by the
services to the RegisterService method.

It will be needed in the future, for socket-activation of the
responders, as we will need to differentiate the cases where the
service being registered is still not in the list of the services but is
still a valid case because it was just socket-activated.

Related:
https://fedorahosted.org/sssd/ticket/2243

Signed-off-by: Fabiano Fidêncio 
---
 src/monitor/monitor.c| 5 -
 src/monitor/monitor_interfaces.h | 5 +
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index 935febb..23b0f79 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -91,11 +91,6 @@ int cmdline_debug_microseconds;
 
 struct svc_spy;
 
-enum mt_svc_type {
-MT_SVC_SERVICE,
-MT_SVC_PROVIDER
-};
-
 struct mt_svc {
 struct mt_svc *prev;
 struct mt_svc *next;
diff --git a/src/monitor/monitor_interfaces.h b/src/monitor/monitor_interfaces.h
index 8a9e4fe..9004801 100644
--- a/src/monitor/monitor_interfaces.h
+++ b/src/monitor/monitor_interfaces.h
@@ -35,6 +35,11 @@
 
 #define SSSD_SERVICE_PIPE "private/sbus-monitor"
 
+enum mt_svc_type {
+MT_SVC_SERVICE,
+MT_SVC_PROVIDER
+};
+
 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);

From 629895899e861247af6c511d2fb6a4caa0b8b9db Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= 
Date: Wed, 16 Nov 2016 17:32:10 +0100
Subject: [PATCH 02/14] MONITOR: Pass the service type to the RegisterService
 method
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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 
---
 src/monitor/monitor.c   | 2 ++
 src/monitor/monitor_interfaces.h| 3 ++-
 src/monitor/monitor_sbus.c  | 6 --
 src/providers/data_provider_be.c| 2 +-
 src/responder/common/responder_common.c | 4 ++--
 5 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index 23b0f79..969b854 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -227,6 +227,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;
@@ -245,6 +246,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 9004801..986bac5 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 cc25c40..afd82f6 

[SSSD] [sssd PR#84][synchronized] Socket-activation of SSSD responders

2016-11-24 Thread fidencio
   URL: https://github.com/SSSD/sssd/pull/84
Author: fidencio
 Title: #84: Socket-activation of SSSD responders
Action: synchronized

To pull the PR as Git branch:
git remote add ghsssd https://github.com/SSSD/sssd
git fetch ghsssd pull/84/head:pr84
git checkout pr84
From 1c6a539d8a858b38414e4cf95c378ab14617ad4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= 
Date: Wed, 16 Nov 2016 17:21:54 +0100
Subject: [PATCH 01/14] MONITOR: Expose the monitor's services type
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Let's expose the monitor's service type so it can be passed by the
services to the RegisterService method.

It will be needed in the future, for socket-activation of the
responders, as we will need to differentiate the cases where the
service being registered is still not in the list of the services but is
still a valid case because it was just socket-activated.

Related:
https://fedorahosted.org/sssd/ticket/2243

Signed-off-by: Fabiano Fidêncio 
---
 src/monitor/monitor.c| 5 -
 src/monitor/monitor_interfaces.h | 5 +
 2 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index 935febb..23b0f79 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -91,11 +91,6 @@ int cmdline_debug_microseconds;
 
 struct svc_spy;
 
-enum mt_svc_type {
-MT_SVC_SERVICE,
-MT_SVC_PROVIDER
-};
-
 struct mt_svc {
 struct mt_svc *prev;
 struct mt_svc *next;
diff --git a/src/monitor/monitor_interfaces.h b/src/monitor/monitor_interfaces.h
index 8a9e4fe..9004801 100644
--- a/src/monitor/monitor_interfaces.h
+++ b/src/monitor/monitor_interfaces.h
@@ -35,6 +35,11 @@
 
 #define SSSD_SERVICE_PIPE "private/sbus-monitor"
 
+enum mt_svc_type {
+MT_SVC_SERVICE,
+MT_SVC_PROVIDER
+};
+
 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);

From 5739e4a45ddb3d3808a0a63b8f30a0bb94ab7756 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= 
Date: Wed, 16 Nov 2016 17:32:10 +0100
Subject: [PATCH 02/14] MONITOR: Pass the service type to the RegisterService
 method
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

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 
---
 src/monitor/monitor.c   | 2 ++
 src/monitor/monitor_interfaces.h| 3 ++-
 src/monitor/monitor_sbus.c  | 6 --
 src/providers/data_provider_be.c| 2 +-
 src/responder/common/responder_common.c | 4 ++--
 5 files changed, 11 insertions(+), 6 deletions(-)

diff --git a/src/monitor/monitor.c b/src/monitor/monitor.c
index 23b0f79..969b854 100644
--- a/src/monitor/monitor.c
+++ b/src/monitor/monitor.c
@@ -227,6 +227,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;
@@ -245,6 +246,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 9004801..986bac5 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 cc25c40..afd82f6