Here's a big const-adding change that doesn't touch APIs much.
However, it's important for internal consistency.

There is one snag, though, which means this patch isn't quite
committable:

The first clue was a prototype mismatch for
message_handler_memb_merge_detect.  It seemed like
it should be like the 5 other handlers here:
[this is in totemsrp.c]

struct message_handlers {
        int count;
        int (*handler_functions[6]) (
                struct totemsrp_instance *instance,
                const void *msg,
                size_t msg_len,
                int endian_conversion_needed);
};

struct message_handlers totemsrp_message_handlers = {
        6,
        {
                message_handler_orf_token,
                message_handler_mcast,
                message_handler_memb_merge_detect,
                message_handler_memb_join,
                message_handler_memb_commit_token,
                message_handler_token_hold_cancel
        }
};

and have a "const" "msg" parameter.
However, currently it calls memb_merge_detect_endian_convert (msg,
msg) which modifies *msg, which implies its "msg" can't be "const".
Yet nothing else in that function uses the modified "msg".  Maybe the
caller requires that *msg be modified?

There are two solutions:

  - if it really does need to modify *msg, change the sole
    use of totemsrp_message_handlers.handler_functions to treat
    the merge_detect case differently from the others.

  - if it doesn't need to, remove the memb_merge_detect_endian_convert call

Let me know and I'll adjust.

>From 8a10c661510738bb59bd9685debd9e0162158814 Mon Sep 17 00:00:00 2001
From: Jim Meyering <[email protected]>
Date: Fri, 10 Apr 2009 10:37:29 +0200
Subject: [PATCH] totemrrp.h, totemsrp.h, totemnet.h: const+size_t

* exec/totemrrp.c (totemrrp_initialize):
* exec/totemrrp.h (totemrrp_initialize):
* exec/totemsrp.c (handler_functions, main_deliver_fn):
(main_iface_change_fn):
* exec/totemnet.c (totemnet_deliver_fn, totemnet_iface_change_fn):
(encrypt_and_sign_worker, ucast_sendmsg, mcast_sendmsg):
(totemnet_mcast_worker_fn, totemnet_initialize):
(totemnet_token_send, totemnet_mcast_flush_send):
(totemnet_mcast_noflush_send, totemnet_token_target_set):
* exec/totemnet.h (TOTEMNET_FLUSH):
* exec/totemrrp.c (totemrrp_deliver_fn, totemrrp_iface_change_fn):
(totemrrp_token_seqid_get, rrp_deliver_fn, rrp_iface_change_fn):
* exec/totemsrp.c (handler_functions, main_token_seqid_get):
(srp_addr_copy_endian_convert, message_handler_orf_token):
(message_handler_mcast, message_handler_memb_merge_detect):
(memb_join_endian_convert, memb_commit_token_endian_convert):
(orf_token_endian_convert, mcast_endian_convert):
(memb_merge_detect_endian_convert, message_handler_memb_join):
(message_handler_memb_commit_token):
(message_handler_token_hold_cancel, main_deliver_fn):
---
 exec/main.c                       |    2 +-
 exec/sync.c                       |    4 +-
 exec/totemmrp.c                   |    8 +-
 exec/totemmrp.h                   |    4 +-
 exec/totemnet.c                   |   56 ++++++++--------
 exec/totemnet.h                   |   16 ++--
 exec/totempg.c                    |   10 ++--
 exec/totemrrp.c                   |  134 ++++++++++++++++++------------------
 exec/totemrrp.h                   |   18 +++---
 exec/totemsrp.c                   |   94 +++++++++++++-------------
 exec/totemsrp.h                   |    2 +-
 exec/vsf_ykd.c                    |    2 +-
 include/corosync/engine/coroapi.h |    2 +-
 include/corosync/totem/totempg.h  |   10 ++--
 services/votequorum.c             |    6 +-
 15 files changed, 185 insertions(+), 183 deletions(-)

diff --git a/exec/main.c b/exec/main.c
index f88f73b..6599f8d 100644
--- a/exec/main.c
+++ b/exec/main.c
@@ -412,7 +412,7 @@ static void corosync_mlockall (void)

 static void deliver_fn (
        unsigned int nodeid,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len,
        int endian_conversion_required)
 {
diff --git a/exec/sync.c b/exec/sync.c
index 6521c84..9d2873a 100644
--- a/exec/sync.c
+++ b/exec/sync.c
@@ -102,7 +102,7 @@ static int sync_service_process (enum 
totem_callback_token_type type,

 static void sync_deliver_fn (
        unsigned int nodeid,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len,
        int endian_conversion_required);

@@ -327,7 +327,7 @@ static void sync_endian_convert (struct 
req_exec_sync_barrier_start

 static void sync_deliver_fn (
        unsigned int nodeid,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len,
        int endian_conversion_required)
 {
diff --git a/exec/totemmrp.c b/exec/totemmrp.c
index 02635ac..949756b 100644
--- a/exec/totemmrp.c
+++ b/exec/totemmrp.c
@@ -68,7 +68,7 @@ hdb_handle_t totemsrp_handle_in;

 void totemmrp_deliver_fn (
        unsigned int nodeid,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len,
        int endian_conversion_required);

@@ -81,7 +81,7 @@ void totemmrp_confchg_fn (

 void (*pg_deliver_fn) (
        unsigned int nodeid,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len,
        int endian_conversion_required) = 0;

@@ -94,7 +94,7 @@ void (*pg_confchg_fn) (

 void totemmrp_deliver_fn (
        unsigned int nodeid,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len,
        int endian_conversion_required)
 {
@@ -124,7 +124,7 @@ int totemmrp_initialize (

        void (*deliver_fn) (
                unsigned int nodeid,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len,
                int endian_conversion_required),
        void (*confchg_fn) (
diff --git a/exec/totemmrp.h b/exec/totemmrp.h
index e1e02bf..8ae9378 100644
--- a/exec/totemmrp.h
+++ b/exec/totemmrp.h
@@ -7,7 +7,7 @@
  * Author: Steven Dake ([email protected])
  *
  * This software licensed under BSD license, the text of which follows:
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  *
@@ -61,7 +61,7 @@ extern int totemmrp_initialize (

        void (*deliver_fn) (
                unsigned int nodeid,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len,
                int endian_conversion_required),
        void (*confchg_fn) (
diff --git a/exec/totemnet.c b/exec/totemnet.c
index 01338ed..6a75300 100644
--- a/exec/totemnet.c
+++ b/exec/totemnet.c
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
- * Copyright (c) 2006-2008 Red Hat, Inc.
+ * Copyright (c) 2006-2009 Red Hat, Inc.
  *
  * All rights reserved.
  *
  * Author: Steven Dake ([email protected])

  * This software licensed under BSD license, the text of which follows:
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  *
@@ -119,12 +119,12 @@ struct totemnet_instance {

        void (*totemnet_deliver_fn) (
                void *context,
-               void *msg,
-               int msg_len);
+               const void *msg,
+               size_t msg_len);

        void (*totemnet_iface_change_fn) (
                void *context,
-               struct totem_ip_address *iface_address);
+               const struct totem_ip_address *iface_address);

        /*
         * Function and data used to log messages
@@ -297,9 +297,9 @@ static int authenticate_and_decrypt (
 static void encrypt_and_sign_worker (
        struct totemnet_instance *instance,
        unsigned char *buf,
-       int *buf_len,
-       struct iovec *iovec,
-       unsigned int iov_len,
+       size_t *buf_len,
+       const struct iovec *iovec,
+       size_t iov_len,
        prng_state *prng_state_in)
 {
        int i;
@@ -310,7 +310,7 @@ static void encrypt_and_sign_worker (
        unsigned char *cipher_key = &keys[16];
        unsigned char *initial_vector = &keys[0];
        unsigned long len;
-       int outlen = 0;
+       size_t outlen = 0;
        hmac_state hmac_state;
        prng_state keygen_prng_state;
        prng_state stream_prng_state;
@@ -379,16 +379,16 @@ static void encrypt_and_sign_worker (
 static inline void ucast_sendmsg (
        struct totemnet_instance *instance,
        struct totem_ip_address *system_to,
-       struct iovec *iovec_in,
-       unsigned int iov_len_in)
+       const struct iovec *iovec_in,
+       size_t iov_len_in)
 {
        struct msghdr msg_ucast;
        int res = 0;
-       int buf_len;
+       size_t buf_len;
        unsigned char sheader[sizeof (struct security_header)];
        unsigned char encrypt_data[FRAME_SIZE_MAX];
        struct iovec iovec_encrypt[20];
-       struct iovec *iovec_sendmsg;
+       const struct iovec *iovec_sendmsg;
        struct sockaddr_storage sockaddr;
        unsigned int iov_len;
        int addrlen;
@@ -427,7 +427,7 @@ static inline void ucast_sendmsg (
                instance->totem_interface->ip_port, &sockaddr, &addrlen);
        msg_ucast.msg_name = &sockaddr;
        msg_ucast.msg_namelen = addrlen;
-       msg_ucast.msg_iov = iovec_sendmsg;
+       msg_ucast.msg_iov = (void *) iovec_sendmsg;
        msg_ucast.msg_iovlen = iov_len;
        msg_ucast.msg_control = 0;
        msg_ucast.msg_controllen = 0;
@@ -443,16 +443,16 @@ static inline void ucast_sendmsg (

 static inline void mcast_sendmsg (
        struct totemnet_instance *instance,
-       struct iovec *iovec_in,
-       unsigned int iov_len_in)
+       const struct iovec *iovec_in,
+       size_t iov_len_in)
 {
        struct msghdr msg_mcast;
        int res = 0;
-       int buf_len;
+       size_t buf_len;
        unsigned char sheader[sizeof (struct security_header)];
        unsigned char encrypt_data[FRAME_SIZE_MAX];
        struct iovec iovec_encrypt[20];
-       struct iovec *iovec_sendmsg;
+       const struct iovec *iovec_sendmsg;
        struct sockaddr_storage sockaddr;
        unsigned int iov_len;
        int addrlen;
@@ -491,7 +491,7 @@ static inline void mcast_sendmsg (
                instance->totem_interface->ip_port, &sockaddr, &addrlen);
        msg_mcast.msg_name = &sockaddr;
        msg_mcast.msg_namelen = addrlen;
-       msg_mcast.msg_iov = iovec_sendmsg;
+       msg_mcast.msg_iov = (void *) iovec_sendmsg;
        msg_mcast.msg_iovlen = iov_len;
        msg_mcast.msg_control = 0;
        msg_mcast.msg_controllen = 0;
@@ -527,7 +527,7 @@ static void totemnet_mcast_worker_fn (void *thread_state, 
void *work_item_in)
        struct msghdr msg_mcast;
        unsigned char sheader[sizeof (struct security_header)];
        int res = 0;
-       int buf_len;
+       size_t buf_len;
        struct iovec iovec_encrypted;
        struct iovec *iovec_sendmsg;
        struct sockaddr_storage sockaddr;
@@ -1157,12 +1157,12 @@ int totemnet_initialize (

        void (*deliver_fn) (
                void *context,
-               void *msg,
-               int msg_len),
+               const void *msg,
+               size_t msg_len),

        void (*iface_change_fn) (
                void *context,
-               struct totem_ip_address *iface_address))
+               const struct totem_ip_address *iface_address))
 {
        struct totemnet_instance *instance;
        unsigned int res;
@@ -1334,7 +1334,7 @@ error_exit:

 int totemnet_token_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct totemnet_instance *instance;
@@ -1356,7 +1356,7 @@ error_exit:
 }
 int totemnet_mcast_flush_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct totemnet_instance *instance;
@@ -1379,7 +1379,7 @@ error_exit:

 int totemnet_mcast_noflush_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct totemnet_instance *instance;
@@ -1481,7 +1481,7 @@ error_exit:

 int totemnet_token_target_set (
        hdb_handle_t handle,
-       struct totem_ip_address *token_target)
+       const struct totem_ip_address *token_target)
 {
        struct totemnet_instance *instance;
        unsigned int res;
@@ -1500,5 +1500,3 @@ int totemnet_token_target_set (
 error_exit:
        return (res);
 }
-
-
diff --git a/exec/totemnet.h b/exec/totemnet.h
index e7a3b8c..e3be277 100644
--- a/exec/totemnet.h
+++ b/exec/totemnet.h
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
- * Copyright (c) 2006-2007 Red Hat, Inc.
+ * Copyright (c) 2006-2007, 2009 Red Hat, Inc.
  *
  * All rights reserved.
  *
@@ -59,12 +59,12 @@ extern int totemnet_initialize (

        void (*deliver_fn) (
                void *context,
-               void *msg,
-               int msg_len),
+               const void *msg,
+               size_t msg_len),

        void (*iface_change_fn) (
                void *context,
-               struct totem_ip_address *iface_address));
+               const struct totem_ip_address *iface_address));

 extern int totemnet_processor_count_set (
        hdb_handle_t handle,
@@ -72,17 +72,17 @@ extern int totemnet_processor_count_set (

 extern int totemnet_token_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 extern int totemnet_mcast_flush_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 extern int totemnet_mcast_noflush_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 extern int totemnet_recv_flush (hdb_handle_t handle);
@@ -103,6 +103,6 @@ extern int totemnet_iface_get (

 extern int totemnet_token_target_set (
        hdb_handle_t handle,
-       struct totem_ip_address *token_target);
+       const struct totem_ip_address *token_target);

 #endif /* TOTEMNET_H_DEFINED */
diff --git a/exec/totempg.c b/exec/totempg.c
index 8ba64ce..ee4c243 100644
--- a/exec/totempg.c
+++ b/exec/totempg.c
@@ -66,7 +66,7 @@

 /*
  * ASSEMBLY AND UNPACKING ALGORITHM:
- * 
+ *
  * copy incoming packet into assembly data buffer indexed by current
  * location of end of fragment
  *
@@ -79,7 +79,7 @@
  * else
  * if msg_count = 1 and fragmented
  *     do nothing
- *     
+ *
  */

 #include <config.h>
@@ -211,7 +211,7 @@ static unsigned int totempg_max_handle = 0;
 struct totempg_group_instance {
        void (*deliver_fn) (
                unsigned int nodeid,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len,
                int endian_conversion_required);

@@ -497,7 +497,7 @@ static void totempg_confchg_fn (

 static void totempg_deliver_fn (
        unsigned int nodeid,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len,
        int endian_conversion_required)
 {
@@ -985,7 +985,7 @@ int totempg_groups_initialize (

        void (*deliver_fn) (
                unsigned int nodeid,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len,
                int endian_conversion_required),

diff --git a/exec/totemrrp.c b/exec/totemrrp.c
index ef56df0..d28dc5b 100644
--- a/exec/totemrrp.c
+++ b/exec/totemrrp.c
@@ -1,6 +1,6 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
- * Copyright (c) 2006-2008 Red Hat, Inc.
+ * Copyright (c) 2006-2009 Red Hat, Inc.
  *
  * All rights reserved.
  *
@@ -70,12 +70,12 @@

 void rrp_deliver_fn (
        void *context,
-       void *msg,
-       int msg_len);
+       const void *msg,
+       size_t msg_len);

 void rrp_iface_change_fn (
        void *context,
-       struct totem_ip_address *iface_addr);
+       const struct totem_ip_address *iface_addr);

 struct totemrrp_instance;
 struct passive_instance {
@@ -116,30 +116,30 @@ struct rrp_algo {
                struct totemrrp_instance *instance,
                unsigned int iface_no,
                void *context,
-               void *msg,
-               unsigned int msg_len);
+               const void *msg,
+               size_t msg_len);

        void (*mcast_noflush_send) (
                struct totemrrp_instance *instance,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len);

        void (*mcast_flush_send) (
                struct totemrrp_instance *instance,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len);

        void (*token_recv) (
                struct totemrrp_instance *instance,
                unsigned int iface_no,
                void *context,
-               void *msg,
-               unsigned int msg_len,
+               const void *msg,
+               size_t msg_len,
                unsigned int token_seqid);

        void (*token_send) (
                struct totemrrp_instance *instance,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len);  

        void (*recv_flush) (
@@ -177,16 +177,16 @@ struct totemrrp_instance {

        void (*totemrrp_deliver_fn) (
                void *context,
-               void *msg,
-               int msg_len);
+               const void *msg,
+               size_t msg_len);

        void (*totemrrp_iface_change_fn) (
                void *context,
-               struct totem_ip_address *iface_addr,
+               const struct totem_ip_address *iface_addr,
                unsigned int iface_no);

        void (*totemrrp_token_seqid_get) (
-               void *msg,
+               const void *msg,
                unsigned int *seqid,
                unsigned int *token_is);

@@ -233,30 +233,30 @@ static void none_mcast_recv (
        struct totemrrp_instance *instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len);
+       const void *msg,
+       size_t msg_len);

 static void none_mcast_noflush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 static void none_mcast_flush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 static void none_token_recv (
        struct totemrrp_instance *instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len,
+       const void *msg,
+       size_t msg_len,
        unsigned int token_seqid);

 static void none_token_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);  

 static void none_recv_flush (
@@ -291,30 +291,30 @@ static void passive_mcast_recv (
        struct totemrrp_instance *instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len);
+       const void *msg,
+       size_t msg_len);

 static void passive_mcast_noflush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 static void passive_mcast_flush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 static void passive_token_recv (
        struct totemrrp_instance *instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len,
+       const void *msg,
+       size_t msg_len,
        unsigned int token_seqid);

 static void passive_token_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);  

 static void passive_recv_flush (
@@ -349,30 +349,30 @@ static void active_mcast_recv (
        struct totemrrp_instance *instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len);
+       const void *msg,
+       size_t msg_len);

 static void active_mcast_noflush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 static void active_mcast_flush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 static void active_token_recv (
        struct totemrrp_instance *instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len,
+       const void *msg,
+       size_t msg_len,
        unsigned int token_seqid);

 static void active_token_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);  

 static void active_recv_flush (
@@ -485,8 +485,8 @@ static void none_mcast_recv (
        struct totemrrp_instance *rrp_instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len)
+       const void *msg,
+       size_t msg_len)
 {
        rrp_instance->totemrrp_deliver_fn (
                context,
@@ -496,7 +496,7 @@ static void none_mcast_recv (

 static void none_mcast_flush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        totemnet_mcast_flush_send (instance->net_handles[0], iovec, iov_len);
@@ -504,7 +504,7 @@ static void none_mcast_flush_send (

 static void none_mcast_noflush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        totemnet_mcast_noflush_send (instance->net_handles[0], iovec, iov_len);
@@ -514,8 +514,8 @@ static void none_token_recv (
        struct totemrrp_instance *rrp_instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len,
+       const void *msg,
+       size_t msg_len,
        unsigned int token_seq)
 {
        rrp_instance->totemrrp_deliver_fn (
@@ -526,7 +526,7 @@ static void none_token_recv (

 static void none_token_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        totemnet_token_send (
@@ -685,8 +685,8 @@ static void passive_mcast_recv (
        struct totemrrp_instance *rrp_instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len)
+       const void *msg,
+       size_t msg_len)
 {
        struct passive_instance *passive_instance = (struct passive_instance 
*)rrp_instance->rrp_algo_instance;
        unsigned int max;
@@ -740,7 +740,7 @@ static void passive_mcast_recv (

 static void passive_mcast_flush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct passive_instance *passive_instance = (struct passive_instance 
*)instance->rrp_algo_instance;
@@ -754,7 +754,7 @@ static void passive_mcast_flush_send (

 static void passive_mcast_noflush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct passive_instance *passive_instance = (struct passive_instance 
*)instance->rrp_algo_instance;
@@ -771,8 +771,8 @@ static void passive_token_recv (
        struct totemrrp_instance *rrp_instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len,
+       const void *msg,
+       size_t msg_len,
        unsigned int token_seq)
 {
        struct passive_instance *passive_instance = (struct passive_instance 
*)rrp_instance->rrp_algo_instance;
@@ -824,7 +824,7 @@ static void passive_token_recv (

 static void passive_token_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct passive_instance *passive_instance = (struct passive_instance 
*)instance->rrp_algo_instance;
@@ -1094,8 +1094,8 @@ static void active_mcast_recv (
        struct totemrrp_instance *instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len)
+       const void *msg,
+       size_t msg_len)
 {
        instance->totemrrp_deliver_fn (
                context,
@@ -1105,7 +1105,7 @@ static void active_mcast_recv (

 static void active_mcast_flush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        int i;
@@ -1120,7 +1120,7 @@ static void active_mcast_flush_send (

 static void active_mcast_noflush_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        int i;
@@ -1137,8 +1137,8 @@ static void active_token_recv (
        struct totemrrp_instance *instance,
        unsigned int iface_no,
        void *context,
-       void *msg,
-       unsigned int msg_len,
+       const void *msg,
+       size_t msg_len,
        unsigned int token_seq)
 {
        int i;
@@ -1177,7 +1177,7 @@ static void active_token_recv (

 static void active_token_send (
        struct totemrrp_instance *instance,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct active_instance *rrp_algo_instance = (struct active_instance 
*)instance->rrp_algo_instance;
@@ -1308,8 +1308,8 @@ static int totemrrp_algorithm_set (

 void rrp_deliver_fn (
        void *context,
-       void *msg,
-       int msg_len)
+       const void *msg,
+       size_t msg_len)
 {
        unsigned int token_seqid;
        unsigned int token_is;
@@ -1347,7 +1347,7 @@ void rrp_deliver_fn (

 void rrp_iface_change_fn (
        void *context,
-       struct totem_ip_address *iface_addr)
+       const struct totem_ip_address *iface_addr)
 {
        struct deliver_fn_context *deliver_fn_context = (struct 
deliver_fn_context *)context;

@@ -1397,16 +1397,16 @@ int totemrrp_initialize (

        void (*deliver_fn) (
                void *context,
-               void *msg,
-               int msg_len),
+               const void *msg,
+               size_t msg_len),

        void (*iface_change_fn) (
                void *context,
-               struct totem_ip_address *iface_addr,
+               const struct totem_ip_address *iface_addr,
                unsigned int iface_no),

        void (*token_seqid_get) (
-               void *msg,
+               const void *msg,
                unsigned int *seqid,
                unsigned int *token_is),

@@ -1589,7 +1589,7 @@ error_exit:

 int totemrrp_token_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct totemrrp_instance *instance;
@@ -1612,7 +1612,7 @@ error_exit:

 int totemrrp_mcast_flush_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct totemrrp_instance *instance;
@@ -1635,7 +1635,7 @@ error_exit:

 int totemrrp_mcast_noflush_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len)
 {
        struct totemrrp_instance *instance;
diff --git a/exec/totemrrp.h b/exec/totemrrp.h
index 20eed2f..b5926b2 100644
--- a/exec/totemrrp.h
+++ b/exec/totemrrp.h
@@ -1,13 +1,13 @@
 /*
  * Copyright (c) 2005 MontaVista Software, Inc.
- * Copyright (c) 2006-2007 Red Hat, Inc.
+ * Copyright (c) 2006-2007, 2009 Red Hat, Inc.
  *
  * All rights reserved.
  *
  * Author: Steven Dake ([email protected])
  *
  * This software licensed under BSD license, the text of which follows:
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  *
@@ -59,16 +59,16 @@ extern int totemrrp_initialize (

        void (*deliver_fn) (
                void *context,
-               void *msg,
-               int msg_len),
+               const void *msg,
+               size_t msg_len),

        void (*iface_change_fn) (
                void *context,
-               struct totem_ip_address *iface_addr,
+               const struct totem_ip_address *iface_addr,
                unsigned int iface_no),

        void (*token_seqid_get) (
-               void *msg,
+               const void *msg,
                unsigned int *seqid,
                unsigned int *token_is),

@@ -81,17 +81,17 @@ extern int totemrrp_processor_count_set (

 extern int totemrrp_token_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 extern int totemrrp_mcast_noflush_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 extern int totemrrp_mcast_flush_send (
        hdb_handle_t handle,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len);

 extern int totemrrp_recv_flush (hdb_handle_t handle);
diff --git a/exec/totemsrp.c b/exec/totemsrp.c
index d10dec0..cac4b14 100644
--- a/exec/totemsrp.c
+++ b/exec/totemsrp.c
@@ -507,8 +507,8 @@ struct message_handlers {
        int count;
        int (*handler_functions[6]) (
                struct totemsrp_instance *instance,
-               void *msg,
-               int msg_len,
+               const void *msg,
+               size_t msg_len,
                int endian_conversion_needed);
 };

@@ -517,38 +517,38 @@ struct message_handlers {
  */
 static int message_handler_orf_token (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed);

 static int message_handler_mcast (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed);

 static int message_handler_memb_merge_detect (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed);

 static int message_handler_memb_join (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed);

 static int message_handler_memb_commit_token (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed);

 static int message_handler_token_hold_cancel (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed);

 static void totemsrp_instance_initialize (struct totemsrp_instance *instance);
@@ -556,7 +556,7 @@ static void totemsrp_instance_initialize (struct 
totemsrp_instance *instance);
 static unsigned int main_msgs_missing (void);

 static void main_token_seqid_get (
-       void *msg,
+       const void *msg,
        unsigned int *seqid,
        unsigned int *token_is);

@@ -585,14 +585,14 @@ static void memb_state_commit_token_target_set (struct 
totemsrp_instance *instan
 static int memb_state_commit_token_send (struct totemsrp_instance *instance, 
struct memb_commit_token *memb_commit_token);
 static void memb_state_commit_token_create (struct totemsrp_instance 
*instance, struct memb_commit_token *commit_token);
 static int token_hold_cancel_send (struct totemsrp_instance *instance);
-static void orf_token_endian_convert (struct orf_token *in, struct orf_token 
*out);
-static void memb_commit_token_endian_convert (struct memb_commit_token *in, 
struct memb_commit_token *out);
-static void memb_join_endian_convert (struct memb_join *in, struct memb_join 
*out);
-static void mcast_endian_convert (struct mcast *in, struct mcast *out);
+static void orf_token_endian_convert (const struct orf_token *in, struct 
orf_token *out);
+static void memb_commit_token_endian_convert (const struct memb_commit_token 
*in, struct memb_commit_token *out);
+static void memb_join_endian_convert (const struct memb_join *in, struct 
memb_join *out);
+static void mcast_endian_convert (const struct mcast *in, struct mcast *out);
 static void memb_merge_detect_endian_convert (
        struct memb_merge_detect *in,
        struct memb_merge_detect *out);
-static void srp_addr_copy_endian_convert (struct srp_addr *out, struct 
srp_addr *in);
+static void srp_addr_copy_endian_convert (struct srp_addr *out, const struct 
srp_addr *in);
 static void timer_function_orf_token_timeout (void *data);
 static void timer_function_heartbeat_timeout (void *data);
 static void timer_function_token_retransmit_timeout (void *data);
@@ -601,12 +601,12 @@ static void timer_function_merge_detect_timeout (void 
*data);

 void main_deliver_fn (
        void *context,
-       void *msg,
-       int msg_len);
+       const void *msg,
+       size_t msg_len);

 void main_iface_change_fn (
        void *context,
-       struct totem_ip_address *iface_address,
+       const struct totem_ip_address *iface_address,
        unsigned int iface_no);

 /*
@@ -659,7 +659,7 @@ static void totemsrp_instance_initialize (struct 
totemsrp_instance *instance)
 }

 static void main_token_seqid_get (
-       void *msg,
+       const void *msg,
        unsigned int *seqid,
        unsigned int *token_is)
 {
@@ -689,7 +689,7 @@ int totemsrp_initialize (

        void (*deliver_fn) (
                unsigned int nodeid,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len,
                int endian_conversion_required),

@@ -1037,7 +1037,7 @@ static void srp_addr_to_nodeid (
        }
 }

-static void srp_addr_copy_endian_convert (struct srp_addr *out, struct 
srp_addr *in)
+static void srp_addr_copy_endian_convert (struct srp_addr *out, const struct 
srp_addr *in)
 {
        int i;

@@ -3188,8 +3188,8 @@ struct timeval tv_old;
  */
 static int message_handler_orf_token (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed)
 {
        char token_storage[1500];
@@ -3612,8 +3612,8 @@ static void messages_deliver_to_app (
  */
 static int message_handler_mcast (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed)
 {
        struct sort_queue_item sort_queue_item;
@@ -3734,8 +3734,8 @@ static int message_handler_mcast (

 static int message_handler_memb_merge_detect (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed)
 {
        struct memb_merge_detect *memb_merge_detect = (struct memb_merge_detect 
*)msg;
@@ -3862,7 +3862,7 @@ static int memb_join_process (
        return (0); /* gather not entered */
 }

-static void memb_join_endian_convert (struct memb_join *in, struct memb_join 
*out)
+static void memb_join_endian_convert (const struct memb_join *in, struct 
memb_join *out)
 {
        int i;
        struct srp_addr *in_proc_list;
@@ -3891,7 +3891,7 @@ static void memb_join_endian_convert (struct memb_join 
*in, struct memb_join *ou
        }
 }

-static void memb_commit_token_endian_convert (struct memb_commit_token *in, 
struct memb_commit_token *out)
+static void memb_commit_token_endian_convert (const struct memb_commit_token 
*in, struct memb_commit_token *out)
 {
        int i;
        struct srp_addr *in_addr = (struct srp_addr *)in->end_of_commit_token;
@@ -3930,7 +3930,7 @@ static void memb_commit_token_endian_convert (struct 
memb_commit_token *in, stru
        }
 }

-static void orf_token_endian_convert (struct orf_token *in, struct orf_token 
*out)
+static void orf_token_endian_convert (const struct orf_token *in, struct 
orf_token *out)
 {
        int i;

@@ -3954,7 +3954,7 @@ static void orf_token_endian_convert (struct orf_token 
*in, struct orf_token *ou
        }
 }

-static void mcast_endian_convert (struct mcast *in, struct mcast *out)
+static void mcast_endian_convert (const struct mcast *in, struct mcast *out)
 {
        out->header.type = in->header.type;
        out->header.endian_detector = ENDIAN_LOCAL;
@@ -3984,8 +3984,8 @@ static void memb_merge_detect_endian_convert (

 static int message_handler_memb_join (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed)
 {
        struct memb_join *memb_join;
@@ -4049,8 +4049,8 @@ static int message_handler_memb_join (

 static int message_handler_memb_commit_token (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed)
 {
        struct memb_commit_token *memb_commit_token_convert = alloca (msg_len);
@@ -4130,8 +4130,8 @@ static int message_handler_memb_commit_token (

 static int message_handler_token_hold_cancel (
        struct totemsrp_instance *instance,
-       void *msg,
-       int msg_len,
+       const void *msg,
+       size_t msg_len,
        int endian_conversion_needed)
 {
        struct token_hold_cancel *token_hold_cancel = (struct token_hold_cancel 
*)msg;
@@ -4149,14 +4149,16 @@ static int message_handler_token_hold_cancel (

 void main_deliver_fn (
        void *context,
-       void *msg,
-       int msg_len)
+       const void *msg,
+       size_t msg_len)
 {
        struct totemsrp_instance *instance = (struct totemsrp_instance 
*)context;
        struct message_header *message_header = (struct message_header *)msg;

        if (msg_len < sizeof (struct message_header)) {
-               log_printf (instance->totemsrp_log_level_security, "Received 
message is too short...  ignoring %d.\n", msg_len);
+               log_printf (instance->totemsrp_log_level_security,
+                           "Received message is too short...  ignoring %u.\n",
+                           (unsigned int)msg_len);
                return;
        }
        
@@ -4177,7 +4179,7 @@ void main_deliver_fn (

 void main_iface_change_fn (
        void *context,
-       struct totem_ip_address *iface_addr,
+       const struct totem_ip_address *iface_addr,
        unsigned int iface_no)
 {
        struct totemsrp_instance *instance = (struct totemsrp_instance 
*)context;
diff --git a/exec/totemsrp.h b/exec/totemsrp.h
index 09ebcb8..5f76dff 100644
--- a/exec/totemsrp.h
+++ b/exec/totemsrp.h
@@ -53,7 +53,7 @@ int totemsrp_initialize (

        void (*deliver_fn) (
                unsigned int nodeid,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len,
                int endian_conversion_required),
        void (*confchg_fn) (
diff --git a/exec/vsf_ykd.c b/exec/vsf_ykd.c
index 83353c6..091a3ae 100644
--- a/exec/vsf_ykd.c
+++ b/exec/vsf_ykd.c
@@ -341,7 +341,7 @@ static void ykd_state_endian_convert (struct ykd_state 
*ykd_state)

 static void ykd_deliver_fn (
        unsigned int nodeid,
-       struct iovec *iovec,
+       const struct iovec *iovec,
        unsigned int iov_len,
        int endian_conversion_required)
 {
diff --git a/include/corosync/engine/coroapi.h 
b/include/corosync/engine/coroapi.h
index 13e07ad..779b0c0 100644
--- a/include/corosync/engine/coroapi.h
+++ b/include/corosync/engine/coroapi.h
@@ -446,7 +446,7 @@ struct corosync_api_v1 {

                void (*deliver_fn) (
                        unsigned int nodeid,
-                       struct iovec *iovec,
+                       const struct iovec *iovec,
                        unsigned int iov_len,
                        int endian_conversion_required),

diff --git a/include/corosync/totem/totempg.h b/include/corosync/totem/totempg.h
index dffdad9..89bfd7c 100644
--- a/include/corosync/totem/totempg.h
+++ b/include/corosync/totem/totempg.h
@@ -7,7 +7,7 @@
  * Author: Steven Dake ([email protected])
  *
  * This software licensed under BSD license, the text of which follows:
- * 
+ *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions are met:
  *
@@ -80,7 +80,7 @@ extern int totempg_groups_initialize (

        void (*deliver_fn) (
                unsigned int nodeid,
-               struct iovec *iovec,
+               const struct iovec *iovec,
                unsigned int iov_len,
                int endian_conversion_required),

@@ -117,7 +117,7 @@ extern int totempg_groups_joined_reserve (

 extern int totempg_groups_joined_release (
        int msg_count);
-       
+
 extern int totempg_groups_mcast_groups (
        hdb_handle_t handle,
        int guarantee,
@@ -132,7 +132,7 @@ extern int totempg_groups_send_ok_groups (
        size_t groups_cnt,
        const struct iovec *iovec,
        unsigned int iov_len);
-       
+
 extern int totempg_ifaces_get (
        unsigned int nodeid,
         struct totem_ip_address *interfaces,
@@ -146,5 +146,5 @@ extern unsigned int totempg_my_nodeid_get (void);
 extern int totempg_my_family_get (void);

 extern int totempg_ring_reenable (void);
-       
+
 #endif /* TOTEMPG_H_DEFINED */
diff --git a/services/votequorum.c b/services/votequorum.c
index 5834ed0..9f85b46 100644
--- a/services/votequorum.c
+++ b/services/votequorum.c
@@ -178,7 +178,8 @@ static void quorum_confchg_fn (
        const unsigned int *joined_list, size_t joined_list_entries,
        const struct memb_ring_id *ring_id);

-static void quorum_deliver_fn(unsigned int nodeid, struct iovec *iovec, 
unsigned int iov_len,
+static void quorum_deliver_fn(unsigned int nodeid,
+                             const struct iovec *iovec, unsigned int iov_len,
                              int endian_conversion_required);

 static int votequorum_exec_init_fn (struct corosync_api_v1 *corosync_api);
@@ -988,7 +989,8 @@ static void exec_quorum_killnode_endian_convert (void *msg)
        killnode->nodeid = swab32(killnode->nodeid);
 }

-static void quorum_deliver_fn(unsigned int nodeid, struct iovec *iovec, 
unsigned int iov_len,
+static void quorum_deliver_fn(unsigned int nodeid,
+                             const struct iovec *iovec, unsigned int iov_len,
                              int endian_conversion_required)
 {
        struct q_protheader *header = iovec->iov_base;
-- 
1.6.2.rc1.285.gc5f54
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to