Send connman mailing list submissions to
        connman@lists.01.org

To subscribe or unsubscribe via the World Wide Web, visit
        https://lists.01.org/mailman/listinfo/connman
or, via email, send a message with subject or body 'help' to
        connman-requ...@lists.01.org

You can reach the person managing the list at
        connman-ow...@lists.01.org

When replying, please edit your Subject line so it is more specific
than "Re: Contents of connman digest..."


Today's Topics:

   1. [PATCH] notifier: constify vtables (Slava Monich)


----------------------------------------------------------------------

Message: 1
Date: Sat, 20 Oct 2018 02:05:50 +0300
From: Slava Monich <slava.mon...@jolla.com>
To: connman@lists.01.org
Subject: [PATCH] notifier: constify vtables
Message-ID: <1539990350-18621-1-git-send-email-slava.mon...@jolla.com>

connman_notifier vtables are read-only structures. Declaring them const
at compile time allows the compiler to actually make them read-only at
runtime.
---
 include/notifier.h    |  4 ++--
 plugins/iospm.c       |  2 +-
 plugins/nmcompat.c    |  2 +-
 plugins/pacrunner.c   |  2 +-
 plugins/vpn.c         |  2 +-
 src/dnsproxy.c        |  4 ++--
 src/ipv6pd.c          |  2 +-
 src/manager.c         |  2 +-
 src/nat.c             |  2 +-
 src/notifier.c        | 22 +++++++++++-----------
 src/provider.c        |  2 +-
 src/session.c         |  2 +-
 src/timeserver.c      |  2 +-
 tools/iptables-unit.c |  6 +++---
 14 files changed, 28 insertions(+), 28 deletions(-)

diff --git a/include/notifier.h b/include/notifier.h
index 50b5fb4..9c0909c 100644
--- a/include/notifier.h
+++ b/include/notifier.h
@@ -57,8 +57,8 @@ struct connman_notifier {
        void (*idle_state) (bool idle);
 };
 
-int connman_notifier_register(struct connman_notifier *notifier);
-void connman_notifier_unregister(struct connman_notifier *notifier);
+int connman_notifier_register(const struct connman_notifier *notifier);
+void connman_notifier_unregister(const struct connman_notifier *notifier);
 
 #ifdef __cplusplus
 }
diff --git a/plugins/iospm.c b/plugins/iospm.c
index fcb4cea..cded9e0 100644
--- a/plugins/iospm.c
+++ b/plugins/iospm.c
@@ -86,7 +86,7 @@ static void iospm_offline_mode(bool enabled)
        send_indication(IOSPM_FLIGHT_MODE, enabled);
 }
 
-static struct connman_notifier iospm_notifier = {
+static const struct connman_notifier iospm_notifier = {
        .name           = "iospm",
        .priority       = CONNMAN_NOTIFIER_PRIORITY_DEFAULT,
        .service_enabled= iospm_service_enabled,
diff --git a/plugins/nmcompat.c b/plugins/nmcompat.c
index 883ce9b..274baab 100644
--- a/plugins/nmcompat.c
+++ b/plugins/nmcompat.c
@@ -173,7 +173,7 @@ static void offline_mode(bool enabled)
        current_service = NULL;
 }
 
-static struct connman_notifier notifier = {
+static const struct connman_notifier notifier = {
        .name                   = "nmcompat",
        .priority               = CONNMAN_NOTIFIER_PRIORITY_DEFAULT,
        .default_changed        = default_changed,
diff --git a/plugins/pacrunner.c b/plugins/pacrunner.c
index d2464a5..9c652f3 100644
--- a/plugins/pacrunner.c
+++ b/plugins/pacrunner.c
@@ -277,7 +277,7 @@ static void proxy_changed(struct connman_service *service)
        create_proxy_configuration();
 }
 
-static struct connman_notifier pacrunner_notifier = {
+static const struct connman_notifier pacrunner_notifier = {
        .name                   = "pacrunner",
        .default_changed        = default_service_changed,
        .proxy_changed          = proxy_changed,
diff --git a/plugins/vpn.c b/plugins/vpn.c
index 22d69a3..11bab15 100644
--- a/plugins/vpn.c
+++ b/plugins/vpn.c
@@ -1947,7 +1947,7 @@ static void vpn_service_state_changed(struct 
connman_service *service,
        vpn_disconnect_check();
 }
 
-static struct connman_notifier vpn_notifier = {
+static const struct connman_notifier vpn_notifier = {
        .name                   = "vpn",
        .priority               = CONNMAN_NOTIFIER_PRIORITY_DEFAULT,
        .default_changed        = vpn_service_list_changed,
diff --git a/src/dnsproxy.c b/src/dnsproxy.c
index 951f2cb..2dc7340 100644
--- a/src/dnsproxy.c
+++ b/src/dnsproxy.c
@@ -2912,13 +2912,13 @@ static void dnsproxy_default_changed(struct 
connman_service *service)
        cache_refresh();
 }
 
-static struct connman_notifier dnsproxy_notifier = {
+static const struct connman_notifier dnsproxy_notifier = {
        .name                   = "dnsproxy",
        .default_changed        = dnsproxy_default_changed,
        .offline_mode           = dnsproxy_offline_mode,
 };
 
-static unsigned char opt_edns0_type[2] = { 0x00, 0x29 };
+static const unsigned char opt_edns0_type[2] = { 0x00, 0x29 };
 
 static int parse_request(unsigned char *buf, size_t len,
                                        char *name, unsigned int size)
diff --git a/src/ipv6pd.c b/src/ipv6pd.c
index a70de3f..8cd2a33 100644
--- a/src/ipv6pd.c
+++ b/src/ipv6pd.c
@@ -295,7 +295,7 @@ static void update_ipconfig(struct connman_service *service,
        }
 }
 
-static struct connman_notifier pd_notifier = {
+static const struct connman_notifier pd_notifier = {
        .name                   = "IPv6 prefix delegation",
        .default_changed        = update_default_interface,
        .ipconfig_changed       = update_ipconfig,
diff --git a/src/manager.c b/src/manager.c
index d15ce20..dc2e062 100644
--- a/src/manager.c
+++ b/src/manager.c
@@ -169,7 +169,7 @@ static void idle_state(bool idle)
                return;
 }
 
-static struct connman_notifier technology_notifier = {
+static const struct connman_notifier technology_notifier = {
        .name           = "manager",
        .priority       = CONNMAN_NOTIFIER_PRIORITY_HIGH,
        .idle_state     = idle_state,
diff --git a/src/nat.c b/src/nat.c
index 2aac60d..681acb2 100644
--- a/src/nat.c
+++ b/src/nat.c
@@ -203,7 +203,7 @@ static void cleanup_nat(gpointer data)
        g_free(nat);
 }
 
-static struct connman_notifier nat_notifier = {
+static const struct connman_notifier nat_notifier = {
        .name                   = "nat",
        .default_changed        = update_default_interface,
 };
diff --git a/src/notifier.c b/src/notifier.c
index 5ba5324..47eb72f 100644
--- a/src/notifier.c
+++ b/src/notifier.c
@@ -50,11 +50,11 @@ static gint compare_priority(gconstpointer a, gconstpointer 
b)
  *
  * Returns: %0 on success
  */
-int connman_notifier_register(struct connman_notifier *notifier)
+int connman_notifier_register(const struct connman_notifier *notifier)
 {
        DBG("notifier %p name %s", notifier, notifier->name);
 
-       notifier_list = g_slist_insert_sorted(notifier_list, notifier,
+       notifier_list = g_slist_insert_sorted(notifier_list, (void*)notifier,
                                                        compare_priority);
 
        return 0;
@@ -66,7 +66,7 @@ int connman_notifier_register(struct connman_notifier 
*notifier)
  *
  * Remove a previously registered notifier module
  */
-void connman_notifier_unregister(struct connman_notifier *notifier)
+void connman_notifier_unregister(const struct connman_notifier *notifier)
 {
        DBG("notifier %p name %s", notifier, notifier->name);
 
@@ -215,7 +215,7 @@ void __connman_notifier_default_changed(struct 
connman_service *service)
        GSList *list;
 
        for (list = notifier_list; list; list = list->next) {
-               struct connman_notifier *notifier = list->data;
+               const struct connman_notifier *notifier = list->data;
 
                if (notifier->default_changed)
                        notifier->default_changed(service);
@@ -228,7 +228,7 @@ void __connman_notifier_service_add(struct connman_service 
*service,
        GSList *list;
 
        for (list = notifier_list; list; list = list->next) {
-               struct connman_notifier *notifier = list->data;
+               const struct connman_notifier *notifier = list->data;
 
                if (notifier->service_add)
                        notifier->service_add(service, name);
@@ -251,7 +251,7 @@ void __connman_notifier_service_remove(struct 
connman_service *service)
        }
 
        for (list = notifier_list; list; list = list->next) {
-               struct connman_notifier *notifier = list->data;
+               const struct connman_notifier *notifier = list->data;
 
                if (notifier->service_remove)
                        notifier->service_remove(service);
@@ -263,7 +263,7 @@ void __connman_notifier_proxy_changed(struct 
connman_service *service)
        GSList *list;
 
        for (list = notifier_list; list; list = list->next) {
-               struct connman_notifier *notifier = list->data;
+               const struct connman_notifier *notifier = list->data;
 
                if (notifier->proxy_changed)
                        notifier->proxy_changed(service);
@@ -289,7 +289,7 @@ void __connman_notifier_offlinemode(bool enabled)
        state_changed();
 
        for (list = notifier_list; list; list = list->next) {
-               struct connman_notifier *notifier = list->data;
+               const struct connman_notifier *notifier = list->data;
 
                if (notifier->offline_mode)
                        notifier->offline_mode(enabled);
@@ -303,7 +303,7 @@ static void notify_idle_state(bool idle)
        DBG("idle %d", idle);
 
        for (list = notifier_list; list; list = list->next) {
-               struct connman_notifier *notifier = list->data;
+               const struct connman_notifier *notifier = list->data;
 
                if (notifier->idle_state)
                        notifier->idle_state(idle);
@@ -318,7 +318,7 @@ void __connman_notifier_service_state_changed(struct 
connman_service *service,
        bool found;
 
        for (list = notifier_list; list; list = list->next) {
-               struct connman_notifier *notifier = list->data;
+               const struct connman_notifier *notifier = list->data;
 
                if (notifier->service_state_changed)
                        notifier->service_state_changed(service, state);
@@ -361,7 +361,7 @@ void __connman_notifier_ipconfig_changed(struct 
connman_service *service,
        GSList *list;
 
        for (list = notifier_list; list; list = list->next) {
-               struct connman_notifier *notifier = list->data;
+               const struct connman_notifier *notifier = list->data;
 
                if (notifier->ipconfig_changed)
                        notifier->ipconfig_changed(service, ipconfig);
diff --git a/src/provider.c b/src/provider.c
index 5f57ba9..9d9741e 100644
--- a/src/provider.c
+++ b/src/provider.c
@@ -747,7 +747,7 @@ static void provider_service_changed(struct connman_service 
*service,
        connman_provider_disconnect(provider);
 }
 
-static struct connman_notifier provider_notifier = {
+static const struct connman_notifier provider_notifier = {
        .name                   = "provider",
        .offline_mode           = provider_offline_mode,
        .service_state_changed  = provider_service_changed,
diff --git a/src/session.c b/src/session.c
index 3ef7bf5..2a1dd9a 100644
--- a/src/session.c
+++ b/src/session.c
@@ -2001,7 +2001,7 @@ static void ipconfig_changed(struct connman_service 
*service,
        }
 }
 
-static struct connman_notifier session_notifier = {
+static const struct connman_notifier session_notifier = {
        .name                   = "session",
        .service_state_changed  = service_state_changed,
        .ipconfig_changed       = ipconfig_changed,
diff --git a/src/timeserver.c b/src/timeserver.c
index 48f026c..657b782 100644
--- a/src/timeserver.c
+++ b/src/timeserver.c
@@ -500,7 +500,7 @@ static void default_changed(struct connman_service 
*default_service)
                timeserver_stop();
 }
 
-static struct connman_notifier timeserver_notifier = {
+static const struct connman_notifier timeserver_notifier = {
        .name                   = "timeserver",
        .default_changed        = default_changed,
 };
diff --git a/tools/iptables-unit.c b/tools/iptables-unit.c
index 426631a..0ab4249 100644
--- a/tools/iptables-unit.c
+++ b/tools/iptables-unit.c
@@ -318,7 +318,7 @@ static void test_iptables_target0(void)
        assert_rule_not_exists("filter", "-A INPUT -m mark --mark 0x2");
 }
 
-struct connman_notifier *nat_notifier;
+const struct connman_notifier *nat_notifier;
 
 struct connman_service {
        char *dummy;
@@ -329,14 +329,14 @@ char *connman_service_get_interface(struct 
connman_service *service)
        return "eth0";
 }
 
-int connman_notifier_register(struct connman_notifier *notifier)
+int connman_notifier_register(const struct connman_notifier *notifier)
 {
        nat_notifier = notifier;
 
        return 0;
 }
 
-void connman_notifier_unregister(struct connman_notifier *notifier)
+void connman_notifier_unregister(const struct connman_notifier *notifier)
 {
        nat_notifier = NULL;
 }
-- 
1.9.1



------------------------------

Subject: Digest Footer

_______________________________________________
connman mailing list
connman@lists.01.org
https://lists.01.org/mailman/listinfo/connman


------------------------------

End of connman Digest, Vol 36, Issue 19
***************************************

Reply via email to