Angus Salkeld
e0cce2c907
CPG: make sure coroipcc_service_disconnect() is always called.
...
This prevents a shared mem leak if corosync dies while clients
are connected.
Calling cpg_finalize() did not release the shared mem as
coroipcc_msg_send_reply_receive() returned an error and
thus coroipcc_service_disconnect() did not get called.
Signed-off-by: Angus Salkeld <asalkeld@redhat.com>
Reviewed-by: Steven Dake <sdake@redhat.com>
2011-01-03 21:29:01 +11:00
Steven Dake
0e9f0bfeb4
Make cpg_membership_get() functional.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2855 fd59a12c-fef9-0310-b244-a6a79926bd2f
2010-05-19 05:03:52 +00:00
Jan Friesse
e8b143595c
CPG model_initialize and ringid + members callback
...
Patch adds new function to initialize cpg, cpg_model_initialize. Model
is set of callbacks. With this function, future addions of models
should be possible without changing the ABI.
Patch also contains callback in CPG_MODEL_V1 for notification about
Totem membership changes.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2770 fd59a12c-fef9-0310-b244-a6a79926bd2f
2010-04-20 12:40:48 +00:00
Steven Dake
5408399b23
Remove problem where NULL dispatch handler functions would result in lockup
...
of the dispatch if they were sent by a service engine.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2754 fd59a12c-fef9-0310-b244-a6a79926bd2f
2010-04-02 00:10:43 +00:00
Jan Friesse
009dfc090e
Support for lib_cpg_finalize
...
Add support for MESSAGE_REQ_CPG_FINALIZE message. This will allow us
remove cpg_pd from list of active connections, and remove problem, when
cpg_finalize + cpg_initialize + cpg_join can result in CPG_ERR_EXIST
error.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2676 fd59a12c-fef9-0310-b244-a6a79926bd2f
2010-03-04 12:17:47 +00:00
Angus Salkeld
3848fc2069
COVERITY 4: remove dead code in XYZ_dispatch().
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2549 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-11-23 00:32:31 +00:00
Angus Salkeld
870e4549df
COVERITY 11: remove dead code from cpg_iteration_next().
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2545 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-11-22 06:29:46 +00:00
Steven Dake
f170a431ce
Fix error with revision 2415.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2416 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-09-14 20:27:45 +00:00
Steven Dake
c14c130df5
Fix dispatch returning TRY_AGAIN when using DISPATCH_ALL parameter because of
...
regression caused by revision 2046:lib/coroipcc.c.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2415 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-09-14 18:58:08 +00:00
Jan Friesse
db87fb8f56
Implementation of cpg_iteration functions
...
This functions allows iterate available cpg groups
and their members. API is modelled like ckpt iteration
functions.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2399 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-08-31 09:23:16 +00:00
Jan Friesse
8eeeccbf00
Handle NULL callbacks in cpg, evs and confdb lib
...
Attached patches handle NULL callbacks in *_initialize
and *_dispatch. Handling is same as in quorum service. Now, when
callback is NULL -> no memcpy -> instance callbacks will have all
items set to NULL and in *_dispatch function is not called.
It changes cfg so now we are using continue instead of exit.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2392 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-08-20 10:50:11 +00:00
Steven Dake
b8e3951ca1
Add (void *) casts for iovector assignments to remove compile warnings.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2270 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-19 20:43:12 +00:00
Jan Friesse
204026fa0d
*Dispatch returns CS_ERR_BAD_HANDLE only on first hdb_get
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2197 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-05-20 13:11:23 +00:00
Steven Dake
bf624c727d
Implement thread saftey in corosync trunk.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2165 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-29 07:21:21 +00:00
Steven Dake
51ef3b5c00
Include file cleanups.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2134 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-23 17:03:21 +00:00
Steven Dake
1beb0c1fbd
Remove saHandleXXX and friends and use hdb instead.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2125 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 17:43:54 +00:00
Jan Friesse
058f50314c
Rewrite of CPG. It solves problems with double delete.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2124 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 13:39:28 +00:00
Steven Dake
8126cf7458
Reworking of include file dependencies.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2119 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 09:01:30 +00:00
Steven Dake
cee464489f
Change shared memory to use mmap() system calls.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2115 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 05:41:30 +00:00
Steven Dake
75c4bc0d71
Zero copy feature for IPC transmits. Also integrated into CPG library
...
service.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2114 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-21 23:37:49 +00:00
Steven Dake
cd154d63e6
Use spinlocks in library handle references.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2099 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-20 18:03:10 +00:00
Steven Dake
0969721db3
Rework how dispatch functions so service engines work properly.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2079 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-18 07:06:14 +00:00
Jim Meyering
270e9da193
change a few "int msg_len" to "size_t msg_len"; adjust docs
...
* lib/cpg.c (cpg_mcast_joined):
* lib/evs.c (evs_mcast_joined, evs_mcast_groups):
* man/cpg_initialize.3:
* man/evs_initialize.3:
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2060 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-15 06:52:16 +00:00
Jim Meyering
8ef14f11eb
cpg.h, objdb.h, coroaph.h: more const/size_t
...
* include/corosync/cpg.h (cpg_callbacks_t):
* include/corosync/mar_cpg.h (marshall_to_mar_cpg_name_t):
* lib/cpg.c (cpg_join, cpg_leave):
* lib/cpg.c (cpg_mcast_joined): make iovec const.
* include/corosync/cpg.h (cpg_mcast_joined): update prototype
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2048 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-09 20:53:03 +00:00
Jim Meyering
36eefbadef
Convert all "int iov_len" decls to "unsigned int iov_len".
...
Used this command:
git grep -l 'int iov_len' \
| xargs perl -pi -e 's/((?:^|,)\s*)(int iov_len)/${1}unsigned $2/'
Here's an approximate (autogenerated by vc-chlog) list of affected
file names and functions/macros:
* README.devmap:
* exec/coroipcs.c (sending_allowed_private_data)
(coroipcs_response_iov_send, msg_send, msg_send_or_queue)
(coroipcs_dispatch_iov_send):
* exec/coroipcs.h (handler_fn_get):
* exec/main.c (deliver_fn, main_mcast):
* exec/main.h (FALSE):
* exec/sync.c (vsf_iface, sync_deliver_fn):
* exec/totemmrp.c (totemsrp_handle_in, pg_deliver_fn)
(totemmrp_deliver_fn, totemmrp_initialize, totemmrp_mcast):
* exec/totemmrp.h (TOTEMMRP_H_DEFINED):
* exec/totemnet.c (iov_len, encrypt_and_sign_worker)
(ucast_sendmsg, mcast_sendmsg, totemnet_token_send):
* exec/totemnet.h (TOTEMNET_FLUSH):
* exec/totempg.c (deliver_fn, totempg_deliver_fn, mcast_msg)
(totempg_groups_initialize, totempg_groups_mcast_joined)
(totempg_groups_joined_reserve):
* exec/totemsrp.c (iov_len, totemsrp_recv, totemsrp_deliver_fn)
(totemsrp_initialize, totemsrp_mcast, token_send):
* exec/totemsrp.h (TOTEMSRP_H_DEFINED):
* exec/vsf_ykd.c (ykd_deliver_fn):
* include/corosync/coroipcc.h (handleInstanceDestructor):
* include/corosync/cpg.h (cpg_callbacks_t):
* include/corosync/engine/coroapi.h (ipc_response_iov_send)
(ipc_dispatch_iov_send, totem_mcast, tpg_init, tpg_joined_mcast)
(tpg_joined_reserve, tpg_groups_mcast, tpg_groups_reserve):
* include/corosync/totem/totempg.h (TOTEMPG_SAFE):
* lib/coroipcc.c (coroipcc_msg_send)
(coroipcc_msg_send_reply_receive)
(coroipcc_msg_send_reply_receive_in_buf):
* lib/cpg.c (cpg_mcast_joined):
* lib/util.h (versionsSupported):
* services/pload.c (send_message):
* services/votequorum.c (conn, quorum_deliver_fn):
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2031 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-08 07:56:45 +00:00
Jim Meyering
514159407f
coroipcc. h (coroipcc_dispatch_recv): Add a buflen parameter.
...
* lib/coroipcc.c (coroipcc_dispatch_recv): Update definition, and...
(memcpy_swrap): ... add a parameter here, too.
* include/corosync/coroipcc.h (coroipcc_dispatch_recv):
* lib/cfg.c (corosync_cfg_dispatch):
* lib/confdb.c (confdb_dispatch):
* lib/cpg.c (cpg_dispatch, cpg_flow_control_state_get):
* lib/evs.c (evs_dispatch):
* lib/quorum.c (quorum_dispatch):
* lib/votequorum.c (votequorum_dispatch):
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1995 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-03 18:35:04 +00:00
Steven Dake
c5fc824d7f
Abstracted Shared Memory IPC library
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1885 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-22 15:28:54 +00:00
Fabio M. Di Nitto
031c02f589
- Every .c file should include "config.h" to get the right defines...
...
- services/Makefile.am: add include search paths for config.h
- include/corosync/cs_config.h.in exports LCRSODIR and SOCKETDIR
- tools/Makefile.am: drop -D defines for dirs that are now in
cs_config.h or config.h
- configure.ac: sanitize prefix and exec_prefix paths. Export DIRS in
*config.h
- lib/Makefile.am: : drop -D defines for dirs that are now in
cs_config.h or config.h. Add rule to build lcr_ifact.o or building from
lib/ fails miserably
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1877 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-19 12:58:53 +00:00
Steven Dake
c077255702
Whitetank IPC Forward Port.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1766 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-02-19 02:23:58 +00:00
Steven Dake
db71709ada
Patch to allow cpg_membership_get to work properly.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1721 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-01-08 06:29:16 +00:00
Angus Salkeld
c049f8bf21
Fix coverity bug ID 4: remove unused code & fix compile error
...
In evs_dispatch() the local ignore_dispatch is not used.
So I have removed this code.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1717 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-12-28 09:25:17 +00:00
Angus Salkeld
efb280c511
LINT: rename the overlay struct so they are uniq.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1694 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-11-11 17:26:58 +00:00
Angus Salkeld
fd25950970
LINT: fix or ignore unchecked return values.
...
If we don't care about the return value then typecase the return
value to void.
Else do something useful with the return value.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1693 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-11-11 17:25:22 +00:00
Angus Salkeld
56eaee9561
cleanup the last of the SAF headers and types
...
This includes the rename of identifiers from corosync to cs.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1689 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-11-06 21:49:07 +00:00
Angus Salkeld
f9609f3217
Propagate the flow control state between AIS exec and library
...
This patch causes the flow control state in the library to be set
properly when the flow control is turned off (disabled). Then it can be
read properly by the flow control apis.
This also fixes the case where the application is no longer sending
messages and it has already dispatched all its received messages
before flow control is disabled.
Also, CPG response messages with a TRY_AGAIN error did NOT contain
a valid flow control state value. This meant the library could get
stuck with flow control enabled (flow control was never enabled
for the EXEC, so no disable event occurred).
This case was hit when a new node was joining - sync_in_process()
resulted in a TRY_AGAIN for error cpg_mcast_joined).
Also, in message_handler_req_exec_cpg_mcast() the state passed
back to the library defaulted to disabled for messages received
from another node (even if flow control was still enabled)
- this meant if multiple nodes were sending CPG messages,
then the library flow control state flip-flopped between
enabled and disabled.
Author: Steven Dake <sdake@redhat.com> &
Tim Beale <tim.beale@alliedtelesis.co.nz>
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1667 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-09-17 19:15:00 +00:00
Steven Dake
dd3991c0bb
Proper rename of openais usage to corosync throughout tree.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1637 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-14 16:54:46 +00:00
Steven Dake
e1f531380a
Revert patch 1633 which breaks build.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1636 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-14 16:44:26 +00:00
Steven Dake
c4a1c7eb96
Change all occurances of openais to corosync.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1633 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-14 16:04:01 +00:00
Fabien Thomas
0c92a5e564
reorganize include file to match installed tree to build openais without installing corosync; correct some warnings and error under FreeBSD and Darwin
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1632 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-14 14:59:50 +00:00
Steven Dake
617dbdf2f0
Split openais and corosync tree into two seperate repositories.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1622 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-05 13:23:46 +00:00
Steven Dake
46babc95ad
Initial move of corosync and openais trees into seperate directories.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1582 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-07-21 07:59:08 +00:00
Patrick Caulfield
a53b222341
Add cpg_groups_get call to libcpg.
...
This call causes a complete list of active groups and their
membership lists to be sent to a callback function.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1571 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-07-02 07:19:50 +00:00
Steven Dake
e132bc580c
Expose utils to the user
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1442 fd59a12c-fef9-0310-b244-a6a79926bd2f
2007-09-09 06:58:41 +00:00
Steven Dake
adb37f5d49
Now that -l is set correclt yuse #include <header.h> instead of using quotes.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1441 fd59a12c-fef9-0310-b244-a6a79926bd2f
2007-09-09 06:57:41 +00:00
Steven Dake
9d27cc2f35
Fix minor leaks caused by not calling pthread_mutex_destroy throughout the tree.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1412 fd59a12c-fef9-0310-b244-a6a79926bd2f
2007-08-07 23:52:21 +00:00
Steven Dake
39b3f0d5a6
Add cpg_local_get api to cpg service
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1391 fd59a12c-fef9-0310-b244-a6a79926bd2f
2007-06-25 03:04:35 +00:00
Patrick Caulfield
7c4ee5b91d
Add get/set context API calls to the cpg service.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1377 fd59a12c-fef9-0310-b244-a6a79926bd2f
2007-05-31 09:41:37 +00:00
Steven Dake
cb154572a2
Patch from Renaud to report some broken Solaris porting from past.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1353 fd59a12c-fef9-0310-b244-a6a79926bd2f
2007-03-06 16:18:44 +00:00
Steven Dake
336dc17daa
Forward port of flow control work from whitetank branch.
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1289 fd59a12c-fef9-0310-b244-a6a79926bd2f
2006-11-04 22:29:14 +00:00
Steven Dake
90ccff6bbc
Solaris port for openais
...
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1175 fd59a12c-fef9-0310-b244-a6a79926bd2f
2006-08-05 02:22:12 +00:00