mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-08-03 10:50:54 +00:00
Change all occurances of openais to corosync.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1633 fd59a12c-fef9-0310-b244-a6a79926bd2f
This commit is contained in:
parent
0c92a5e564
commit
c4a1c7eb96
2
Doxyfile
2
Doxyfile
@ -3,7 +3,7 @@
|
||||
#---------------------------------------------------------------------------
|
||||
# General configuration options
|
||||
#---------------------------------------------------------------------------
|
||||
PROJECT_NAME = openais
|
||||
PROJECT_NAME = corosync
|
||||
PROJECT_NUMBER = 0.75
|
||||
OUTPUT_DIRECTORY = doc/api
|
||||
OUTPUT_LANGUAGE = English
|
||||
|
2
LICENSE
2
LICENSE
@ -44,7 +44,7 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
THE POSSIBILITY OF SUCH DAMAGE.
|
||||
-----------------------------------------------------------------------------
|
||||
The openais project uses software from the LibTomCrypt project
|
||||
The corosync project uses software from the LibTomCrypt project
|
||||
www.libtomcrypt.org. This software is contained the files exec/crypto.c and
|
||||
exec/crypto.h. The following license applies to the files exec/crypto.c and
|
||||
exec/crytpo.h:
|
||||
|
29
Makefile
29
Makefile
@ -175,28 +175,29 @@ install: all
|
||||
install -m 755 $(builddir)exec/corosync $(DESTDIR)$(SBINDIR)
|
||||
install -m 755 $(builddir)tools/corosync-objctl $(DESTDIR)$(SBINDIR)
|
||||
install -m 755 $(builddir)tools/corosync-cfgtool $(DESTDIR)$(SBINDIR)
|
||||
install -m 700 $(builddir)tools/corosync-keygen $(DESTDIR)$(SBINDIR)
|
||||
install -m 700 $(builddir)tools/keygen $(DESTDIR)$(SBINDIR)/corosync-keygen
|
||||
|
||||
if [ ! -f $(DESTDIR)$(ETCDIR)/penais.conf ] ; then \
|
||||
install -m 644 $(srcdir)conf/corosync.conf $(DESTDIR)$(ETCDIR) ; \
|
||||
fi
|
||||
|
||||
for aHeader in $(AIS_HEADERS); do \
|
||||
install -m 644 $(srcdir)include/corosync/$$aHeader $(DESTDIR)$(INCLUDEDIR); \
|
||||
install -m 644 $(srcdir)include/$$aHeader $(DESTDIR)$(INCLUDEDIR); \
|
||||
done
|
||||
|
||||
install -m 644 $(srcdir)include/corosync/hdb.h $(DESTDIR)$(INCLUDEDIR)
|
||||
install -m 644 $(srcdir)include/corosync/totem/coropoll.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
|
||||
install -m 644 $(srcdir)include/corosync/totem/totempg.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
|
||||
install -m 644 $(srcdir)include/corosync/totem/totem.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
|
||||
install -m 644 $(srcdir)include/corosync/totem/totemip.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
|
||||
install -m 644 $(srcdir)include/corosync/lcr/lcr_ckpt.h $(DESTDIR)$(INCLUDEDIR_LCR)
|
||||
install -m 644 $(srcdir)include/corosync/lcr/lcr_comp.h $(DESTDIR)$(INCLUDEDIR_LCR)
|
||||
install -m 644 $(srcdir)include/corosync/lcr/lcr_ifact.h $(DESTDIR)$(INCLUDEDIR_LCR)
|
||||
install -m 644 $(srcdir)include/corosync/engine/coroapi.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)include/corosync/engine/objdb.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)include/corosync/engine/logsys.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)include/corosync/engine/config.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)include/hdb.h $(DESTDIR)$(INCLUDEDIR)
|
||||
install -m 644 $(srcdir)exec/coropoll.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
|
||||
install -m 644 $(srcdir)exec/totempg.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
|
||||
install -m 644 $(srcdir)exec/totem.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
|
||||
install -m 644 $(srcdir)exec/totemip.h $(DESTDIR)$(INCLUDEDIR_TOTEM)
|
||||
install -m 644 $(srcdir)lcr/lcr_ckpt.h $(DESTDIR)$(INCLUDEDIR_LCR)
|
||||
install -m 644 $(srcdir)lcr/lcr_comp.h $(DESTDIR)$(INCLUDEDIR_LCR)
|
||||
install -m 644 $(srcdir)lcr/lcr_ifact.h $(DESTDIR)$(INCLUDEDIR_LCR)
|
||||
install -m 644 $(srcdir)include/coroapi.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)exec/objdb.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)exec/logsys.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)exec/config.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)include/swab.h $(DESTDIR)$(INCLUDEDIR_ENGINE)
|
||||
install -m 644 $(srcdir)man/*.3 $(DESTDIR)$(MANDIR)/man3
|
||||
install -m 644 $(srcdir)man/*.5 $(DESTDIR)$(MANDIR)/man5
|
||||
install -m 644 $(srcdir)man/*.8 $(DESTDIR)$(MANDIR)/man8
|
||||
|
@ -45,7 +45,7 @@ endif
|
||||
|
||||
# default CFLAGS, LDFLAGS
|
||||
#
|
||||
CFLAGS = -DLCRSODIR='"$(LCRSODIR)"'
|
||||
CFLAGS =
|
||||
LDFLAGS =
|
||||
DYFLAGS =
|
||||
|
||||
|
@ -31,14 +31,14 @@ THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
This file provides a map for developers to understand how to contribute
|
||||
to the openais project. The purpose of this document is to prepare a
|
||||
developer to write a service for openais, or understand the architecture
|
||||
of openais.
|
||||
to the corosync project. The purpose of this document is to prepare a
|
||||
developer to write a service for corosync, or understand the architecture
|
||||
of corosync.
|
||||
|
||||
The following is described in this document:
|
||||
|
||||
* all files, purpose, and dependencies
|
||||
* architecture of openais
|
||||
* architecture of corosync
|
||||
* taking advantage of virtual synchrony
|
||||
* adding libraries
|
||||
* adding services
|
||||
@ -238,7 +238,7 @@ exec/cpg.c
|
||||
Server side implementation of closed procss groups (CPG API).
|
||||
|
||||
exec/crypto.{c|h}
|
||||
Cryptography functions used by openais.
|
||||
Cryptography functions used by corosync.
|
||||
|
||||
exec/evs.c
|
||||
Server side implementation of extended virtual synchrony passthrough
|
||||
@ -248,13 +248,13 @@ exec/evt.c
|
||||
Server side implementation of Event Service (EVT API).
|
||||
|
||||
exec/ipc.{c|h}
|
||||
All IPC operations used by openais.
|
||||
All IPC operations used by corosync.
|
||||
|
||||
exec/jhash.h
|
||||
A hash routine.
|
||||
|
||||
exec/keygen.c
|
||||
Secret key generator used by openais encryption tools.
|
||||
Secret key generator used by corosync encryption tools.
|
||||
|
||||
exec/lck.c
|
||||
Server side implementation of the distributed lock service (LCK API).
|
||||
@ -274,7 +274,7 @@ exec/msg.c
|
||||
exec/objdb.{c|h}
|
||||
Object database used to configure services.
|
||||
|
||||
exec/openais-instantiate.c
|
||||
exec/corosync-instantiate.c
|
||||
instantiates a component by forking and exec'ing it and writing its
|
||||
pid to a pid file.
|
||||
|
||||
@ -319,7 +319,7 @@ exec/totemrrp.{c.h}
|
||||
Redundant ring functions for totem - between totemnet and totemsrp.
|
||||
|
||||
exec/util.{c|h}
|
||||
Utility functions used by openais executive.
|
||||
Utility functions used by corosync executive.
|
||||
|
||||
exec/version.h
|
||||
Defines build version.
|
||||
@ -338,10 +338,10 @@ loc
|
||||
Counts the lines of code in the AIS implementation.
|
||||
|
||||
-------------------------------------------------------------------------------
|
||||
architecture of openais
|
||||
architecture of corosync
|
||||
-------------------------------------------------------------------------------
|
||||
|
||||
The openais standards based cluster framework is a generic cluster plugin
|
||||
The corosync standards based cluster framework is a generic cluster plugin
|
||||
architecture used to create cluster APIs and services. Usually there are
|
||||
libraries which implement APIs and are linked into the end user application.
|
||||
The libraries request services from the aisexec process, called the AIS
|
||||
@ -355,7 +355,7 @@ response of the API is delivered once the operation has completed.
|
||||
--------------------------------------------------
|
||||
| IPC API |
|
||||
--------------------------------------------------
|
||||
| openais Executive |
|
||||
| corosync Executive |
|
||||
| |
|
||||
| +---------+ +--------+ +---------+ |
|
||||
| | Object | | AIS | | Service | |
|
||||
@ -385,9 +385,9 @@ response of the API is delivered once the operation has completed.
|
||||
| |
|
||||
-------------------------------------------------
|
||||
|
||||
Figure 1: openais Architecture
|
||||
Figure 1: corosync Architecture
|
||||
|
||||
Every application that intends to use openais links with the libais library.
|
||||
Every application that intends to use corosync links with the libais library.
|
||||
This library uses IPC, or more specifically BSD unix sockets, to communicate
|
||||
with the executive. The library is a small program responsible only for
|
||||
packaging the request into a message. This message is sent, using IPC, to
|
||||
@ -449,7 +449,7 @@ group messaging: sending a message from one sender to many receivers
|
||||
Virtual synchrony is a model for group messaging. This is often confused
|
||||
with particular implementations of virtual synchrony. Try to focus on
|
||||
what virtual syncrhony provides, not how it provides it, unless interested
|
||||
in working on the group messaging interface of openais.
|
||||
in working on the group messaging interface of corosync.
|
||||
|
||||
Virtual synchrony provides several advantages:
|
||||
|
||||
@ -468,7 +468,7 @@ to the cluster membership service (and its respective API0, but is helpful
|
||||
to other services as described later.
|
||||
|
||||
Strong membership guarantees allow a distributed application to make decisions
|
||||
based upon the configuration (membership). Every service in openais registers
|
||||
based upon the configuration (membership). Every service in corosync registers
|
||||
a configuration change function. This function is called whenever a
|
||||
configuration change occurs. The information passed is the current processors,
|
||||
the processors that have left the configuration, and the processors that have
|
||||
@ -510,7 +510,7 @@ it must be delivered by every processor unless that processor fails. If a
|
||||
particular processor fails, a configuration change occurs creating a new
|
||||
configuration under which a new set of decisions may be made. This implies
|
||||
that even unreliable networks must reliably deliver messages. The
|
||||
mplementation in openais works on unreliable as well as reliable networks.
|
||||
mplementation in corosync works on unreliable as well as reliable networks.
|
||||
|
||||
Every message sent must be delivered, unless a configuration change occurs.
|
||||
In the case of a configuration change, every message that can be recovered
|
||||
@ -522,7 +522,7 @@ of a configuration.
|
||||
|
||||
Finally virtual syncrhony takes advantage of hardware multicast to avoid
|
||||
duplicated packets and scale to large transmit rates. On 100mbit network,
|
||||
openais can approach wire speeds depending on the number of messages queued
|
||||
corosync can approach wire speeds depending on the number of messages queued
|
||||
for a particular processor.
|
||||
|
||||
What does all of this mean for the developer?
|
||||
@ -540,8 +540,8 @@ The first stage in adding a library to the system is to develop the library.
|
||||
Library code should follow these guidelines:
|
||||
|
||||
* use SA Forum coding style for SA Forum APIs to aid in debugging
|
||||
* use openais coding guidelines for APIs that are not SA Forum that
|
||||
are to be merged into the openais tree.
|
||||
* use corosync coding guidelines for APIs that are not SA Forum that
|
||||
are to be merged into the corosync tree.
|
||||
* implement all library code within one file named after the api.
|
||||
examples are ckpt.c, clm.c, amf.c.
|
||||
* use parallel structure as much as possible between different APIs
|
||||
@ -881,7 +881,7 @@ struct libais_handler {
|
||||
int (*libais_handler_fn) (void *conn, void *msg);
|
||||
int response_size;
|
||||
int response_id;
|
||||
enum openais_flow_control flow_control;
|
||||
enum corosync_flow_control flow_control;
|
||||
};
|
||||
|
||||
The response_size, response_id, and flow_control for a library handler are
|
||||
@ -894,7 +894,7 @@ OPENAIS_FLOW_CONTROL_NOT_REQUIREDin the flow control field.
|
||||
The libais_handler_fn is a function to be called when the library handler is
|
||||
requested to be executed.
|
||||
|
||||
struct openais_exec_handler {
|
||||
struct corosync_exec_handler {
|
||||
void (*exec_handler_fn) (void *msg, unsigned int nodeid);
|
||||
void (*exec_endian_convert_fn) (void *msg);
|
||||
};
|
||||
@ -908,15 +908,15 @@ format before transmit. Instead they are transmitted in either big endian or
|
||||
little endian depending on the byte order of the transmitter and converted to
|
||||
the host machine order on receipt of the message.
|
||||
|
||||
struct openais_service_handler {
|
||||
struct corosync_service_handler {
|
||||
unsigned char *name;
|
||||
unsigned short id;
|
||||
unsigned int private_data_size;
|
||||
int (*lib_init_fn) (void *conn);
|
||||
int (*lib_exit_fn) (void *conn);
|
||||
struct openais_lib_handler *lib_service;
|
||||
struct corosync_lib_handler *lib_service;
|
||||
int lib_service_count;
|
||||
struct openais_exec_handler *exec_service;
|
||||
struct corosync_exec_handler *exec_service;
|
||||
int (*exec_init_fn) (struct objdb_iface_ver0 *);
|
||||
int (*config_init_fn) (struct objdb_iface_ver0 *);
|
||||
void (*exec_dump_fn) (void);
|
||||
@ -947,12 +947,12 @@ lib_exit_fn is the function executed when a library connection is exited
|
||||
either because the application closed the file descriptor, or the OS
|
||||
closed the file descriptor.
|
||||
|
||||
lib_service is an array of openais_lib_handler data structures which define
|
||||
lib_service is an array of corosync_lib_handler data structures which define
|
||||
the library service handler.
|
||||
|
||||
lib_service_count is the number of elements in lib_service.
|
||||
|
||||
exec_service is an array of openais_exec_handler data structures which define
|
||||
exec_service is an array of corosync_exec_handler data structures which define
|
||||
the executive service handler.
|
||||
|
||||
exec_init_fn is a function used to initialize the executive service. This
|
||||
@ -998,20 +998,20 @@ used in the handler function.
|
||||
------------------------------------------------
|
||||
|
||||
The service handler needs some special magic to dynamically be linked into
|
||||
openais.
|
||||
corosync.
|
||||
|
||||
/*
|
||||
* Dynamic loader definition
|
||||
*/
|
||||
static struct openais_service_handler *clm_get_service_handler_ver0 (void);
|
||||
static struct corosync_service_handler *clm_get_service_handler_ver0 (void);
|
||||
|
||||
static struct openais_service_handler_iface_ver0 clm_service_handler_iface = {
|
||||
.openais_get_service_handler_ver0 = clm_get_service_handler_ver0
|
||||
static struct corosync_service_handler_iface_ver0 clm_service_handler_iface = {
|
||||
.corosync_get_service_handler_ver0 = clm_get_service_handler_ver0
|
||||
};
|
||||
|
||||
static struct lcr_iface openais_clm_ver0[1] = {
|
||||
static struct lcr_iface corosync_clm_ver0[1] = {
|
||||
{
|
||||
.name = "openais_clm",
|
||||
.name = "corosync_clm",
|
||||
.version = 0,
|
||||
.versions_replace = 0,
|
||||
.versions_replace_count = 0,
|
||||
@ -1025,16 +1025,16 @@ static struct lcr_iface openais_clm_ver0[1] = {
|
||||
|
||||
static struct lcr_comp clm_comp_ver0 = {
|
||||
.iface_count = 1,
|
||||
.ifaces = openais_clm_ver0
|
||||
.ifaces = corosync_clm_ver0
|
||||
};
|
||||
|
||||
static struct openais_service_handler *clm_get_service_handler_ver0 (void)
|
||||
static struct corosync_service_handler *clm_get_service_handler_ver0 (void)
|
||||
{
|
||||
return (&clm_service_handler);
|
||||
}
|
||||
|
||||
__attribute__ ((constructor)) static void clm_comp_register (void) {
|
||||
lcr_interfaces_set (&openais_clm_ver0[0], &clm_service_handler_iface);
|
||||
lcr_interfaces_set (&corosync_clm_ver0[0], &clm_service_handler_iface);
|
||||
|
||||
lcr_component_register (&clm_comp_ver0);
|
||||
}
|
||||
@ -1044,7 +1044,7 @@ the service will be loaded if its in the default services list.
|
||||
|
||||
The default service list is specified in service.c:default_services. If
|
||||
creating an external plugin, there are configuration parameters which may
|
||||
be used to add your plugin into the openais scanning of plugins.
|
||||
be used to add your plugin into the corosync scanning of plugins.
|
||||
|
||||
---------------------------------
|
||||
Connection specific information
|
||||
@ -1053,7 +1053,7 @@ Every connection may have specific connection information if private data
|
||||
is greater then zero for the service handler. This is used to allow each
|
||||
library connection to maintain private state to that connection. The private
|
||||
data for a connection can be retrieved with:
|
||||
struct service_pd service_pd = (struct service_pd *)openais_conn_private_data_get (conn);
|
||||
struct service_pd service_pd = (struct service_pd *)corosync_conn_private_data_get (conn);
|
||||
|
||||
where service is the name of the service implemented and conn is the connection
|
||||
information likely passed into the library handler or stored in a
|
||||
@ -1066,7 +1066,7 @@ message_source structure for later use by an executive handler.
|
||||
A message is sent to the library from the executive message handler using
|
||||
the function:
|
||||
|
||||
extern int openais_conn_send_response (void *conn_info, void *msg,
|
||||
extern int corosync_conn_send_response (void *conn_info, void *msg,
|
||||
int mlen);
|
||||
|
||||
conn_info is passed into the library message handler or stored in the
|
||||
@ -1076,7 +1076,7 @@ msg is the message to send
|
||||
mlen is the length of the message to send
|
||||
|
||||
Keep in mind that struct res_message should be at the beginning of the response
|
||||
message so that it follows the style used in the rest of openais.
|
||||
message so that it follows the style used in the rest of corosync.
|
||||
|
||||
--------------------------------------------
|
||||
deferring response to an executive message
|
||||
@ -1095,7 +1095,7 @@ Then the executive message handler determines if this processor is responsible
|
||||
for responding:
|
||||
|
||||
if (message_source_is_local (conn)) {
|
||||
openais_conn_send_response ();
|
||||
corosync_conn_send_response ();
|
||||
|
||||
}
|
||||
|
||||
@ -1108,9 +1108,9 @@ delivery according to virtual synchrony semantics use:
|
||||
The totempg interface supports multiple users at one time and if you need
|
||||
to use a full totempg interface (defined in totempg.h) please ask for
|
||||
assistance on the mailing list. If you simply want to use multicast
|
||||
transmissions in openais, do the following:
|
||||
transmissions in corosync, do the following:
|
||||
|
||||
assert (totempg_groups_mcast_joined (openais_group_handle, &req_exec_clm_iovec, 1, TOTEMPG_AGREED) == 0);
|
||||
assert (totempg_groups_mcast_joined (corosync_group_handle, &req_exec_clm_iovec, 1, TOTEMPG_AGREED) == 0);
|
||||
|
||||
-----------------
|
||||
library handler
|
||||
@ -1209,13 +1209,13 @@ case GDB may become your enemy.
|
||||
printf is your friend when GDB is your enemy.
|
||||
|
||||
If stuck, ask on the mailing list, send your patches. Alot of time has been
|
||||
spent designing openais, and even more time debugging it. There are people
|
||||
spent designing corosync, and even more time debugging it. There are people
|
||||
that can help you debug problems, especially around things like message
|
||||
delivery.
|
||||
|
||||
Submit patches early to get feedback, especially around things like parallel
|
||||
style. Parallel style is very important to ensure maintainability by the
|
||||
openais community.
|
||||
corosync community.
|
||||
|
||||
If this document is wrong or incomplete, complain so we can get it fixed
|
||||
for other people.
|
||||
|
@ -1,6 +1,6 @@
|
||||
SYNCHRONIZATION ALGORITHM:
|
||||
-------------------------
|
||||
The synchronization algorithm is used for every service in openais to
|
||||
The synchronization algorithm is used for every service in corosync to
|
||||
synchronize state of he system.
|
||||
|
||||
There are 4 events of the synchronization algorithm. These events are in fact
|
||||
|
22
SECURITY
22
SECURITY
@ -6,32 +6,32 @@ together with object code resulting from the compiling of publicly
|
||||
available source code, may be exported from the United States under License
|
||||
Exception TSU prsuant to 15 C.F.R Section 740.13(e).
|
||||
***
|
||||
Security Design of openais
|
||||
Security Design of corosync
|
||||
|
||||
The openais project intends to mitigate the following threats:
|
||||
The corosync project intends to mitigate the following threats:
|
||||
|
||||
1. forged group messaging messages which are intended to fault the openais
|
||||
1. forged group messaging messages which are intended to fault the corosync
|
||||
executive
|
||||
2. forged group messaging messages which are intended to fault applications
|
||||
using openais apis
|
||||
using corosync apis
|
||||
3. monitoring of network data to capture sensitive information
|
||||
|
||||
The openais project does not intend to mitigate the following threats:
|
||||
The corosync project does not intend to mitigate the following threats:
|
||||
|
||||
1. physical access to the hardware which could expose the private key
|
||||
2. privledged access to the operating system which could expose the private key
|
||||
or be used to inject errors into the ais executive.
|
||||
3. library user creates requests which are intended to fault the openais
|
||||
3. library user creates requests which are intended to fault the corosync
|
||||
executive
|
||||
|
||||
The openais project mitigates the threats using two mechanisms:
|
||||
The corosync project mitigates the threats using two mechanisms:
|
||||
|
||||
1. Authentication
|
||||
2. Secrecy
|
||||
|
||||
Library Interface
|
||||
-----------------
|
||||
The openais executive authenticates every library user. The library is only
|
||||
The corosync executive authenticates every library user. The library is only
|
||||
allowed to access services if it's GID is ais or 0. Unauthorized library
|
||||
users are rejected.
|
||||
|
||||
@ -42,9 +42,9 @@ fault.
|
||||
|
||||
Group Messaging Interface
|
||||
-------------------------
|
||||
Group messaging uses UDP/IP to communicate with other openais executives using
|
||||
Group messaging uses UDP/IP to communicate with other corosync executives using
|
||||
messages. It is possible without authentication of every packet that an
|
||||
attacker could forge messages. These forged messages could fault the openais
|
||||
attacker could forge messages. These forged messages could fault the corosync
|
||||
executive distributed state machines. It would also be possible to corrupt
|
||||
end applications by forging changes.
|
||||
|
||||
@ -123,4 +123,4 @@ is randomly unique (within the 2^128 search space of the input to sober) to
|
||||
ensure that keys are never reused, nonce's are never reused, and hmac's are
|
||||
never reused.
|
||||
|
||||
Comments welcome mailto:openais@lists.osdl.org
|
||||
Comments welcome mailto:corosync@lists.osdl.org
|
||||
|
2
TODO
2
TODO
@ -1,4 +1,4 @@
|
||||
The openais standards based cluster framework TODO list
|
||||
The corosync standards based cluster framework TODO list
|
||||
Last Updated: May 26, 2006
|
||||
|
||||
P1 items are to be implemented before Wilson release. P2 items may be
|
||||
|
@ -1,4 +1,4 @@
|
||||
# Please read the openais.conf.5 manual page
|
||||
# Please read the corosync.conf.5 manual page
|
||||
totem {
|
||||
version: 2
|
||||
secauth: off
|
||||
@ -16,7 +16,7 @@ logging {
|
||||
to_stderr: yes
|
||||
to_file: yes
|
||||
to_syslog: yes
|
||||
logfile: /tmp/openais.log
|
||||
logfile: /tmp/corosync.log
|
||||
debug: off
|
||||
timestamp: on
|
||||
logger {
|
||||
|
@ -10,7 +10,7 @@ available source code, may be exported from the United States under License
|
||||
Exception TSU prsuant to 15 C.F.R Section 740.13(e).
|
||||
***
|
||||
|
||||
This openais package is broken into four parts. The exec directory contains
|
||||
This corosync package is broken into four parts. The exec directory contains
|
||||
all of the code responsible for serving the APIs. The lib directory contains
|
||||
APIs the to which the user may link. The test directory contains some simple
|
||||
test programs which exercise the APIs. The directory conf contains example
|
||||
@ -22,12 +22,12 @@ Management Framework (AMF), Checkpointing (CKPT), and Eventing (EVT).
|
||||
The API also contains an extended virtual synchrony API which can be used
|
||||
in distributed applications.
|
||||
|
||||
Configuring the openais executive:
|
||||
Configuring the corosync executive:
|
||||
---------------------------------
|
||||
The openais executive will automatically determine cluster membership by
|
||||
The corosync executive will automatically determine cluster membership by
|
||||
communicating on a specified multicast address and port.
|
||||
|
||||
The directory conf contains the file openais.conf
|
||||
The directory conf contains the file corosync.conf
|
||||
|
||||
totem {
|
||||
bindnetaddr: 192.168.1.0
|
||||
@ -57,9 +57,9 @@ timeout {
|
||||
}
|
||||
|
||||
The totem section contains three values. All three values must be set
|
||||
or the openais executive wll exit with an error.
|
||||
or the corosync executive wll exit with an error.
|
||||
|
||||
bindnetaddr specifies the address which the openais Executive should bind to.
|
||||
bindnetaddr specifies the address which the corosync Executive should bind to.
|
||||
This address should always end in zero. If the local interface taffic
|
||||
should routed over is 192.168.5.92, set bindnetaddr to 192.168.5.0.
|
||||
|
||||
@ -68,7 +68,7 @@ a different network configuration. Avoid 224.x.x.x because this is a "config"
|
||||
multicast address.
|
||||
|
||||
mcastport specifies the UDP port number. It is possible to use the same
|
||||
multicast address on a network with the openais services configured for different
|
||||
multicast address on a network with the corosync services configured for different
|
||||
UDP ports.
|
||||
|
||||
The logging section contains values. These values do not have to be set in which
|
||||
@ -76,7 +76,7 @@ case the system defaults to logging to syslog and stderr with timestamping and d
|
||||
|
||||
It is possible to select 3 destinations for logs: files, stderr, and syslog. One or
|
||||
more may be selected at the same time. If file is selected as a destination, the file
|
||||
name must be specified via the logfile option or the openais executive will exit.
|
||||
name must be specified via the logfile option or the corosync executive will exit.
|
||||
|
||||
The debug option prints out internal debugging information during runtime which may
|
||||
be helpful for developers.
|
||||
@ -107,20 +107,20 @@ A few notes about the config files:
|
||||
file parser. We are working on fixing these bugs, but for the moment, it is
|
||||
easy to simply avoid them.
|
||||
|
||||
Building openais
|
||||
Building corosync
|
||||
----------------
|
||||
openais requires GCC, LD, and a Linux 2.4/2.6 kernel. openais has been tested on
|
||||
corosync requires GCC, LD, and a Linux 2.4/2.6 kernel. corosync has been tested on
|
||||
Debian Sarge(i386), Redhat 9(i386), Fedora Core 2(i386), Fedora Core
|
||||
4(i386,x86_64) and MontaVista Carrier Grade Edition 3.1(i386, x86_64,
|
||||
classic ppc, ppc970, xscale).
|
||||
|
||||
Compile openais by running make in the root directory. Make can also be run
|
||||
Compile corosync by running make in the root directory. Make can also be run
|
||||
in the individual directories. Nothing is installed by make. If install
|
||||
is desired, the files must be copied manually.
|
||||
|
||||
Configure Host
|
||||
--------------
|
||||
For security reasons, the openais only allows a process that had the EGID/GID
|
||||
For security reasons, the corosync only allows a process that had the EGID/GID
|
||||
of "ais" to connect to it. To make development easier, it is recommended to
|
||||
create an "ais" user with the "ais" group.
|
||||
|
||||
@ -136,16 +136,16 @@ passwd: all authentication tokens updated successfully.
|
||||
|
||||
Generate a private key
|
||||
----------------------
|
||||
openais uses cryptographic techniques to ensure authenticity and privacy of
|
||||
corosync uses cryptographic techniques to ensure authenticity and privacy of
|
||||
messages. A private key must be generated and shared by all processors for
|
||||
correct operation.
|
||||
|
||||
First generate the key on one of the nodes:
|
||||
|
||||
unix# exec/keygen
|
||||
Openopenais Authentication key generator.
|
||||
Opencorosync Authentication key generator.
|
||||
Gathering 1024 bits for key from /dev/random.
|
||||
Writing openais key to /etc/ais/authkey.
|
||||
Writing corosync key to /etc/ais/authkey.
|
||||
|
||||
|
||||
After this is complete, a private key will be in the file /etc/ais/authkey.
|
||||
@ -160,14 +160,14 @@ unix# install -D --group=0 --owner=0 --mode=0400 /path_to_authkey/authkey /etc/a
|
||||
|
||||
If the message invalid digest appears, the keys are not the same on each node.
|
||||
|
||||
Run the openais executive
|
||||
Run the corosync executive
|
||||
-------------------------
|
||||
Get one or more nodes and run the openais executive on each node. A list of
|
||||
Get one or more nodes and run the corosync executive on each node. A list of
|
||||
node IPs should be logged when the nodes join a configuration. Run the
|
||||
aisexec program after following the previous directions.
|
||||
|
||||
A final note on permissions:
|
||||
It is not absolutely required that openais executive runs as root. If
|
||||
It is not absolutely required that corosync executive runs as root. If
|
||||
it runs as root, it schedules at the highest round robin realtime
|
||||
priority and locks all of it's pages into ram in case a swap would cause a
|
||||
delay in the real-time nature of the protocol. The warning "not
|
||||
@ -178,12 +178,12 @@ The ais user/group is required because applications are authenticated
|
||||
against the ais user and group. If an application(/library) is not root
|
||||
or ais, then the application cannot connect to the ais executive.
|
||||
|
||||
please read SECURITY to understand the threat model assumed by openais
|
||||
and the techniques openais use to overcome these threats.
|
||||
please read SECURITY to understand the threat model assumed by corosync
|
||||
and the techniques corosync use to overcome these threats.
|
||||
|
||||
Before running any of the test programs
|
||||
---------------------------------------
|
||||
The openais executive will ensure security by only allowing the ais group (or
|
||||
The corosync executive will ensure security by only allowing the ais group (or
|
||||
uid root) to connect to the service. Switch to the ais group before
|
||||
running any applications linked to the ais apis, or the applications will
|
||||
not be authenticated and won't be able to access services.
|
||||
@ -193,7 +193,7 @@ Password:
|
||||
[ais@slickdeal sdake]$ id
|
||||
uid=501(ais) gid=502(ais) groups=502(ais)
|
||||
|
||||
Try out the openais CLM functionality
|
||||
Try out the corosync CLM functionality
|
||||
-------------------------------------
|
||||
After aisexec is running
|
||||
|
||||
@ -209,7 +209,7 @@ aisexec on other nodes.
|
||||
Killing aisexec on the node the testclm is connected will cause the
|
||||
API to return error codes indicating the system has failed.
|
||||
|
||||
Try out the openais AMF functionality
|
||||
Try out the corosync AMF functionality
|
||||
-------------------------------------
|
||||
After aisexec is running
|
||||
|
||||
@ -221,14 +221,14 @@ SU #3 consists of testamf5, testamf6. The active and backup directives
|
||||
in amf.conf define how many SU's become active and how many
|
||||
become standby in the service group (SG).
|
||||
|
||||
To test the openais AMF, run testamf3 and testamf4 on one node. Both
|
||||
To test the corosync AMF, run testamf3 and testamf4 on one node. Both
|
||||
components become in service and active. Then run testamf1. Nothing
|
||||
appears to happen, because testamf1 is not placed in service (and made
|
||||
standby) until testamf2 is registered. Running testamf2 will show
|
||||
a variety of state changes. testamf1 will match these state changes.
|
||||
testamf2 is special because is reports an error, and later cancels
|
||||
the error, causing the entire SU to go out of service, then back in
|
||||
service. This behavior is expected by the openais specification and the
|
||||
service. This behavior is expected by the corosync specification and the
|
||||
code in testamf2.c can be read for a clearer understanding of what
|
||||
is happening.
|
||||
|
||||
@ -238,7 +238,7 @@ out of service. If ctrl-z is pressed on the active SU, the standby
|
||||
SU will become active. CTRL-C on these tests behaves the same way.
|
||||
A crash behaves the same way.
|
||||
|
||||
Try out the openais CKPT functionality
|
||||
Try out the corosync CKPT functionality
|
||||
--------------------------------------
|
||||
su to ais user
|
||||
|
||||
@ -256,13 +256,13 @@ Two node clusters should approach 8.5 MB/sec on 100 mbit networks for
|
||||
larger checkpoint sizes with encryption and authentication. If you are not
|
||||
seeing these results, please report to the mailing list.
|
||||
|
||||
Try out the openais EVT functionality
|
||||
Try out the corosync EVT functionality
|
||||
-------------------------------------
|
||||
su to ais user
|
||||
|
||||
run testevt. This will execute various eventing API operations.
|
||||
|
||||
Try out the openais EVS functionality
|
||||
Try out the corosync EVS functionality
|
||||
-------------------------------------
|
||||
su to ais user
|
||||
run testevs. This will generate multicast messages and self deliver them
|
||||
|
@ -36,7 +36,7 @@ subdir ?= exec/
|
||||
|
||||
include $(srcdir)Makefile.inc
|
||||
|
||||
override LDFLAGS += -L./ ${DYFLAGS}
|
||||
LDFLAGS += -L./
|
||||
|
||||
ifeq (${BUILD_DYNAMIC}, 1)
|
||||
override LDFLAGS += ${DYFLAGS}
|
||||
@ -60,7 +60,7 @@ EXEC_LIBS = libtotem_pg.a liblogsys.a
|
||||
|
||||
# LCR objects
|
||||
LCR_SRC = vsf_ykd.c objdb.c coroparse.c
|
||||
LCR_OBJS = vsf_ykd.o objdb.o coroparse.o
|
||||
LCR_OBJS =aisparser.o vsf_ykd.o objdb.o coroparse.o
|
||||
|
||||
# main executive objects
|
||||
MAIN_SRC = main.c mempool.c util.c sync.c apidef.c service.c ipc.c flow.c \
|
||||
@ -74,7 +74,7 @@ EXEC_OBJS = $(MAIN_OBJS)
|
||||
override CFLAGS += -fPIC
|
||||
|
||||
all:libtotem_pg.a libtotem_pg.so.2.0.0 liblogsys.a liblogsys.so.2.0.0 \
|
||||
../lcr/lcr_ifact.o corosync_ \
|
||||
../lcr/lcr_ifact.o corosync \
|
||||
objdb.lcrso vsf_ykd.lcrso coroparse.lcrso
|
||||
else
|
||||
EXEC_OBJS = $(MAIN_OBJS) $(LCR_OBJS)
|
||||
@ -105,7 +105,7 @@ coroparse.lcrso: coroparse.o
|
||||
$(CC) -shared -Wl,-soname,coroparse.lcrso coroparse.o -o $@
|
||||
endif
|
||||
|
||||
corosync_: $(EXEC_OBJS) $(EXEC_LIBS)
|
||||
corosync: $(EXEC_OBJS) $(EXEC_LIBS)
|
||||
$(CC) $(EXEC_OBJS) $(EXEC_LIBS) -o corosync $(LDFLAGS)
|
||||
|
||||
libtotem_pg.a: $(TOTEM_OBJS)
|
||||
@ -140,7 +140,7 @@ depend:
|
||||
|
||||
# - fPIC rules required for service handler shared objects
|
||||
../lcr/lcr_ifact.o: $(srcdir)lcr/lcr_ifact.c
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -DPREFIX='"$(PREFIX)"' -c -o $@ $<
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -DPREFIX='"$(PREFIX)"' -DLCRSODIR='"$(LCRSODIR)"' -I../lcr -c -o $@ $<
|
||||
|
||||
vsf_ykd.o: vsf_ykd.c
|
||||
$(CC) $(CFLAGS) $(CPPFLAGS) -c -o $@ $<
|
||||
|
@ -36,46 +36,37 @@
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/totem/totem.h>
|
||||
#include "swab.h"
|
||||
#include "totem.h"
|
||||
#include "util.h"
|
||||
#include <corosync/engine/logsys.h>
|
||||
#include "logsys.h"
|
||||
#include "timer.h"
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/totem/totemip.h>
|
||||
#include "totempg.h"
|
||||
#include "totemip.h"
|
||||
#include "main.h"
|
||||
#include "ipc.h"
|
||||
#include <corosync/engine/coroapi.h>
|
||||
#include "../include/coroapi.h"
|
||||
#include "service.h"
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include "../lcr/lcr_ifact.h"
|
||||
|
||||
LOGSYS_DECLARE_SUBSYS ("APIDEF", LOG_INFO);
|
||||
|
||||
/*
|
||||
* Remove compile warnings about type name changes
|
||||
*/
|
||||
typedef int (*typedef_tpg_join) (corosync_tpg_handle, struct corosync_tpg_group *, int);
|
||||
typedef int (*typedef_tpg_leave) (corosync_tpg_handle, struct corosync_tpg_group *, int);
|
||||
typedef int (*typedef_tpg_groups_mcast) (corosync_tpg_handle, int, struct corosync_tpg_group *, int groups_cnt, struct iovec *, int);
|
||||
typedef int (*typedef_tpg_groups_send_ok) (corosync_tpg_handle, struct corosync_tpg_group *, int groups_cnt, struct iovec *, int);
|
||||
|
||||
|
||||
static struct corosync_api_v1 apidef_corosync_api_v1 = {
|
||||
.timer_add_duration = openais_timer_add_duration,
|
||||
.timer_add_absolute = openais_timer_add_absolute,
|
||||
.timer_delete = openais_timer_delete,
|
||||
.timer_add_duration = corosync_timer_add_duration,
|
||||
.timer_add_absolute = corosync_timer_add_absolute,
|
||||
.timer_delete = corosync_timer_delete,
|
||||
.timer_time_get = NULL,
|
||||
.ipc_source_set = message_source_set,
|
||||
.ipc_source_is_local = message_source_is_local,
|
||||
.ipc_private_data_get = openais_conn_private_data_get,
|
||||
.ipc_private_data_get = corosync_conn_private_data_get,
|
||||
.ipc_response_send = NULL,
|
||||
.ipc_dispatch_send = NULL,
|
||||
.ipc_conn_send_response = openais_conn_send_response,
|
||||
.ipc_conn_partner_get = openais_conn_partner_get,
|
||||
.ipc_refcnt_inc = openais_ipc_flow_control_local_increment,
|
||||
.ipc_refcnt_dec = openais_ipc_flow_control_local_decrement,
|
||||
.ipc_fc_create = openais_ipc_flow_control_create,
|
||||
.ipc_fc_destroy = openais_ipc_flow_control_destroy,
|
||||
.ipc_conn_send_response = corosync_conn_send_response,
|
||||
.ipc_conn_partner_get = corosync_conn_partner_get,
|
||||
.ipc_refcnt_inc = corosync_ipc_flow_control_local_increment,
|
||||
.ipc_refcnt_dec = corosync_ipc_flow_control_local_decrement,
|
||||
.ipc_fc_create = corosync_ipc_flow_control_create,
|
||||
.ipc_fc_destroy = corosync_ipc_flow_control_destroy,
|
||||
.totem_nodeid_get = totempg_my_nodeid_get,
|
||||
.totem_family_get = totempg_my_family_get,
|
||||
.totem_ring_reenable = totempg_ring_reenable,
|
||||
@ -84,16 +75,8 @@ static struct corosync_api_v1 apidef_corosync_api_v1 = {
|
||||
.totem_ifaces_get = totempg_ifaces_get,
|
||||
.totem_ifaces_print = totempg_ifaces_print,
|
||||
.totem_ip_print = totemip_print,
|
||||
.tpg_init = totempg_groups_initialize,
|
||||
.tpg_exit = NULL, /* missing from totempg api */
|
||||
.tpg_join = (typedef_tpg_join)totempg_groups_join,
|
||||
.tpg_leave = (typedef_tpg_leave)totempg_groups_leave,
|
||||
.tpg_joined_mcast = totempg_groups_mcast_joined,
|
||||
.tpg_joined_send_ok = totempg_groups_send_ok_joined,
|
||||
.tpg_groups_mcast = (typedef_tpg_groups_mcast)totempg_groups_mcast_groups,
|
||||
.tpg_groups_send_ok = (typedef_tpg_groups_send_ok)totempg_groups_send_ok_groups,
|
||||
.service_link_and_init = openais_service_link_and_init,
|
||||
.service_unlink_and_exit = openais_service_unlink_and_exit,
|
||||
.service_link_and_init = corosync_service_link_and_init,
|
||||
.service_unlink_and_exit = corosync_service_unlink_and_exit,
|
||||
.plugin_interface_reference = lcr_ifact_reference,
|
||||
.plugin_interface_release = lcr_ifact_release,
|
||||
.error_memory_failure = NULL
|
||||
@ -124,7 +107,6 @@ void apidef_init (struct objdb_iface_ver0 *objdb) {
|
||||
apidef_corosync_api_v1.object_track_start = objdb->object_track_start;
|
||||
apidef_corosync_api_v1.object_track_stop = objdb->object_track_stop;
|
||||
apidef_corosync_api_v1.object_write_config = objdb->object_write_config;
|
||||
apidef_corosync_api_v1.object_reload_config = objdb->object_reload_config;
|
||||
}
|
||||
|
||||
struct corosync_api_v1 *apidef_get (void)
|
||||
|
@ -35,8 +35,8 @@
|
||||
#ifndef APIDEF_H_DEFINED
|
||||
#define APIDEF_H_DEFINED
|
||||
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/coroapi.h>
|
||||
#include "objdb.h"
|
||||
#include "../include/coroapi.h"
|
||||
|
||||
void apidef_init (struct objdb_iface_ver0 *objdb);
|
||||
|
||||
|
@ -45,10 +45,9 @@
|
||||
#include <signal.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <corosync/lcr/lcr_comp.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/config.h>
|
||||
|
||||
#include "../lcr/lcr_comp.h"
|
||||
#include "objdb.h"
|
||||
#include "config.h"
|
||||
#include "mempool.h"
|
||||
#include "util.h"
|
||||
|
||||
@ -190,7 +189,7 @@ struct config_iface_ver0 aisparser_iface_ver0 = {
|
||||
.config_readconfig = aisparser_readconfig
|
||||
};
|
||||
|
||||
struct lcr_iface openais_aisparser_ver0[1] = {
|
||||
struct lcr_iface corosync_aisparser_ver0[1] = {
|
||||
{
|
||||
.name = "corosync_parser",
|
||||
.version = 0,
|
||||
@ -204,16 +203,16 @@ struct lcr_iface openais_aisparser_ver0[1] = {
|
||||
}
|
||||
};
|
||||
|
||||
struct openais_service_handler *aisparser_get_handler_ver0 (void);
|
||||
struct corosync_service_handler *aisparser_get_handler_ver0 (void);
|
||||
|
||||
struct lcr_comp aisparser_comp_ver0 = {
|
||||
.iface_count = 1,
|
||||
.ifaces = openais_aisparser_ver0
|
||||
.ifaces = corosync_aisparser_ver0
|
||||
};
|
||||
|
||||
|
||||
__attribute__ ((constructor)) static void aisparser_comp_register (void) {
|
||||
lcr_interfaces_set (&openais_aisparser_ver0[0], &aisparser_iface_ver0);
|
||||
lcr_interfaces_set (&corosync_aisparser_ver0[0], &aisparser_iface_ver0);
|
||||
lcr_component_register (&aisparser_comp_ver0);
|
||||
}
|
||||
|
||||
|
@ -39,9 +39,9 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/hdb.h>
|
||||
#include "coropoll.h"
|
||||
#include "../include/list.h"
|
||||
#include "../include/hdb.h"
|
||||
#include "tlist.h"
|
||||
|
||||
typedef int (*dispatch_fn_t) (poll_handle poll_handle, int fd, int revents, void *data);
|
||||
|
27
exec/flow.c
27
exec/flow.c
@ -46,14 +46,13 @@
|
||||
#include <assert.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/hdb.h>
|
||||
#include <corosync/totem/totem.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
|
||||
#include "swab.h"
|
||||
#include "flow.h"
|
||||
#include "totem.h"
|
||||
#include "totempg.h"
|
||||
#include "logsys.h"
|
||||
#include "hdb.h"
|
||||
#include "../include/list.h"
|
||||
|
||||
LOGSYS_DECLARE_SUBSYS ("FLOW", LOG_INFO);
|
||||
|
||||
@ -244,7 +243,7 @@ static void flow_control_confchg_fn (
|
||||
/*
|
||||
* External API
|
||||
*/
|
||||
unsigned int openais_flow_control_initialize (void)
|
||||
unsigned int corosync_flow_control_initialize (void)
|
||||
{
|
||||
unsigned int res;
|
||||
|
||||
@ -271,7 +270,7 @@ unsigned int openais_flow_control_initialize (void)
|
||||
return (0);
|
||||
}
|
||||
|
||||
unsigned int openais_flow_control_ipc_init (
|
||||
unsigned int corosync_flow_control_ipc_init (
|
||||
unsigned int *flow_control_handle,
|
||||
unsigned int service)
|
||||
{
|
||||
@ -301,14 +300,14 @@ error_exit:
|
||||
|
||||
}
|
||||
|
||||
unsigned int openais_flow_control_ipc_exit (
|
||||
unsigned int corosync_flow_control_ipc_exit (
|
||||
unsigned int flow_control_handle)
|
||||
{
|
||||
hdb_handle_destroy (&flow_control_hdb, flow_control_handle);
|
||||
return (0);
|
||||
}
|
||||
|
||||
unsigned int openais_flow_control_create (
|
||||
unsigned int corosync_flow_control_create (
|
||||
unsigned int flow_control_handle,
|
||||
unsigned int service,
|
||||
void *id,
|
||||
@ -363,7 +362,7 @@ error_exit:
|
||||
return (res);
|
||||
}
|
||||
|
||||
unsigned int openais_flow_control_destroy (
|
||||
unsigned int corosync_flow_control_destroy (
|
||||
unsigned int flow_control_identifier,
|
||||
unsigned int service,
|
||||
unsigned char *id,
|
||||
@ -406,7 +405,7 @@ error_exit:
|
||||
* Disable the ability for new messages to be sent for this service
|
||||
* with the handle id of length id_len
|
||||
*/
|
||||
unsigned int openais_flow_control_disable (
|
||||
unsigned int corosync_flow_control_disable (
|
||||
unsigned int flow_control_handle)
|
||||
{
|
||||
struct flow_control_instance *instance;
|
||||
@ -438,7 +437,7 @@ error_exit:
|
||||
* Enable the ability for new messagess to be sent for this service
|
||||
* with the handle id of length id_len
|
||||
*/
|
||||
unsigned int openais_flow_control_enable (
|
||||
unsigned int corosync_flow_control_enable (
|
||||
unsigned int flow_control_handle)
|
||||
{
|
||||
struct flow_control_instance *instance;
|
||||
|
14
exec/flow.h
14
exec/flow.h
@ -42,16 +42,16 @@ enum corosync_flow_control_state {
|
||||
COROSYNC_FLOW_CONTROL_STATE_ENABLED
|
||||
};
|
||||
|
||||
unsigned int openais_flow_control_initialize (void);
|
||||
unsigned int corosync_flow_control_initialize (void);
|
||||
|
||||
unsigned int openais_flow_control_ipc_init (
|
||||
unsigned int corosync_flow_control_ipc_init (
|
||||
unsigned int *flow_control_identifier,
|
||||
unsigned int service);
|
||||
|
||||
unsigned int openais_flow_control_ipc_exit (
|
||||
unsigned int corosync_flow_control_ipc_exit (
|
||||
unsigned int flow_control_identifier);
|
||||
|
||||
unsigned int openais_flow_control_create (
|
||||
unsigned int corosync_flow_control_create (
|
||||
unsigned int flow_control_handle,
|
||||
unsigned int service,
|
||||
void *id,
|
||||
@ -59,16 +59,16 @@ unsigned int openais_flow_control_create (
|
||||
void (*flow_control_state_set_fn) (void *context, enum corosync_flow_control_state flow_control_state),
|
||||
void *context);
|
||||
|
||||
unsigned int openais_flow_control_destroy (
|
||||
unsigned int corosync_flow_control_destroy (
|
||||
unsigned int flow_control_identifier,
|
||||
unsigned int service,
|
||||
unsigned char *id,
|
||||
unsigned int id_len);
|
||||
|
||||
unsigned int openais_flow_control_disable (
|
||||
unsigned int corosync_flow_control_disable (
|
||||
unsigned int flow_control_identifier);
|
||||
|
||||
unsigned int openais_flow_control_enable (
|
||||
unsigned int corosync_flow_control_enable (
|
||||
unsigned int flow_control_identifier);
|
||||
|
||||
#endif /* FLOW_H_DEFINED */
|
||||
|
68
exec/ipc.c
68
exec/ipc.c
@ -61,18 +61,13 @@
|
||||
#include <ucred.h>
|
||||
#endif
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/queue.h>
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/config.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
|
||||
#include "swab.h"
|
||||
#include "../include/saAis.h"
|
||||
#include "../include/list.h"
|
||||
#include "../include/queue.h"
|
||||
#include "../lcr/lcr_ifact.h"
|
||||
#include "poll.h"
|
||||
#include "totempg.h"
|
||||
#include "totemsrp.h"
|
||||
#include "mempool.h"
|
||||
#include "mainconfig.h"
|
||||
@ -83,7 +78,12 @@
|
||||
#include "ipc.h"
|
||||
#include "flow.h"
|
||||
#include "sync.h"
|
||||
#include <corosync/engine/coroapi.h>
|
||||
#include "swab.h"
|
||||
#include "objdb.h"
|
||||
#include "config.h"
|
||||
#include "tlist.h"
|
||||
#include "logsys.h"
|
||||
#include "coroapi.h"
|
||||
#include "service.h"
|
||||
|
||||
#include "util.h"
|
||||
@ -203,7 +203,7 @@ static int response_init_send_response (
|
||||
res_lib_response_init.header.error = error;
|
||||
res_lib_response_init.conn_info = (mar_uint64_t)cinfo;
|
||||
|
||||
openais_conn_send_response (
|
||||
corosync_conn_send_response (
|
||||
conn_info,
|
||||
&res_lib_response_init,
|
||||
sizeof (res_lib_response_init));
|
||||
@ -272,7 +272,7 @@ static int dispatch_init_send_response (
|
||||
res_lib_dispatch_init.header.id = MESSAGE_RES_INIT;
|
||||
res_lib_dispatch_init.header.error = error;
|
||||
|
||||
openais_conn_send_response (
|
||||
corosync_conn_send_response (
|
||||
conn_info,
|
||||
&res_lib_dispatch_init,
|
||||
sizeof (res_lib_dispatch_init));
|
||||
@ -293,7 +293,7 @@ static int dispatch_init_send_response (
|
||||
conn_info->flow_control = ais_service[conn_info->service]->flow_control;
|
||||
conn_info->conn_info_partner->flow_control = ais_service[conn_info->service]->flow_control;
|
||||
if (ais_service[conn_info->service]->flow_control == COROSYNC_LIB_FLOW_CONTROL_REQUIRED) {
|
||||
openais_flow_control_ipc_init (
|
||||
corosync_flow_control_ipc_init (
|
||||
&conn_info->flow_control_handle,
|
||||
conn_info->service);
|
||||
|
||||
@ -444,7 +444,7 @@ static int libais_disconnect (struct conn_info *conn_info)
|
||||
conn_info->state = CONN_STATE_DISCONNECTED;
|
||||
conn_info->conn_info_partner->state = CONN_STATE_DISCONNECTED;
|
||||
if (conn_info->flow_control_enabled == 1) {
|
||||
openais_flow_control_disable (conn_info->flow_control_handle);
|
||||
corosync_flow_control_disable (conn_info->flow_control_handle);
|
||||
}
|
||||
return (0);
|
||||
}
|
||||
@ -636,7 +636,7 @@ static void ipc_flow_control (struct conn_info *conn_info)
|
||||
log_printf (LOG_LEVEL_NOTICE, "Enabling flow control [%d/%d] - [%d].\n",
|
||||
entries_usedhw, SIZEQUEUE,
|
||||
flow_control_local_count);
|
||||
openais_flow_control_enable (conn_info->flow_control_handle);
|
||||
corosync_flow_control_enable (conn_info->flow_control_handle);
|
||||
conn_info->flow_control_enabled = 1;
|
||||
conn_info->conn_info_partner->flow_control_enabled = 1;
|
||||
}
|
||||
@ -647,7 +647,7 @@ static void ipc_flow_control (struct conn_info *conn_info)
|
||||
log_printf (LOG_LEVEL_NOTICE, "Disabling flow control [%d/%d] - [%d].\n",
|
||||
entries_usedhw, SIZEQUEUE,
|
||||
flow_control_local_count);
|
||||
openais_flow_control_disable (conn_info->flow_control_handle);
|
||||
corosync_flow_control_disable (conn_info->flow_control_handle);
|
||||
conn_info->flow_control_enabled = 0;
|
||||
conn_info->conn_info_partner->flow_control_enabled = 0;
|
||||
}
|
||||
@ -883,13 +883,13 @@ retry_recv:
|
||||
|
||||
/*
|
||||
* If flow control is required of the library handle, determine that
|
||||
* openais is not in synchronization and that totempg has room available
|
||||
* corosync is not in synchronization and that totempg has room available
|
||||
* to queue a message, otherwise tell the library we are busy and to
|
||||
* try again later
|
||||
*/
|
||||
send_ok_joined_iovec.iov_base = (char *)header;
|
||||
send_ok_joined_iovec.iov_len = header->size;
|
||||
send_ok_joined = totempg_groups_send_ok_joined (openais_group_handle,
|
||||
send_ok_joined = totempg_groups_send_ok_joined (corosync_group_handle,
|
||||
&send_ok_joined_iovec, 1);
|
||||
|
||||
send_ok =
|
||||
@ -911,7 +911,7 @@ retry_recv:
|
||||
res_overlay.header.id =
|
||||
ais_service[service]->lib_engine[header->id].response_id;
|
||||
res_overlay.header.error = SA_AIS_ERR_TRY_AGAIN;
|
||||
openais_conn_send_response (
|
||||
corosync_conn_send_response (
|
||||
conn_info,
|
||||
&res_overlay,
|
||||
res_overlay.header.size);
|
||||
@ -1026,7 +1026,7 @@ static void ipc_confchg_fn (
|
||||
{
|
||||
}
|
||||
|
||||
void openais_ipc_init (
|
||||
void corosync_ipc_init (
|
||||
void (*serialize_lock_fn) (void),
|
||||
void (*serialize_unlock_fn) (void),
|
||||
unsigned int gid_valid)
|
||||
@ -1045,14 +1045,14 @@ void openais_ipc_init (
|
||||
libais_server_fd = socket (PF_UNIX, SOCK_STREAM, 0);
|
||||
if (libais_server_fd == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR ,"Cannot create libais client connections socket.\n");
|
||||
openais_exit_error (AIS_DONE_LIBAIS_SOCKET);
|
||||
corosync_exit_error (AIS_DONE_LIBAIS_SOCKET);
|
||||
};
|
||||
|
||||
totemip_nosigpipe(libais_server_fd);
|
||||
res = fcntl (libais_server_fd, F_SETFL, O_NONBLOCK);
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, "Could not set non-blocking operation on server socket: %s\n", strerror (errno));
|
||||
openais_exit_error (AIS_DONE_LIBAIS_SOCKET);
|
||||
corosync_exit_error (AIS_DONE_LIBAIS_SOCKET);
|
||||
}
|
||||
|
||||
#if !defined(OPENAIS_LINUX)
|
||||
@ -1072,7 +1072,7 @@ void openais_ipc_init (
|
||||
res = bind (libais_server_fd, (struct sockaddr *)&un_addr, AIS_SUN_LEN(&un_addr));
|
||||
if (res) {
|
||||
log_printf (LOG_LEVEL_ERROR, "ERROR: Could not bind AF_UNIX: %s.\n", strerror (errno));
|
||||
openais_exit_error (AIS_DONE_LIBAIS_BIND);
|
||||
corosync_exit_error (AIS_DONE_LIBAIS_BIND);
|
||||
}
|
||||
listen (libais_server_fd, SERVER_BACKLOG);
|
||||
|
||||
@ -1098,7 +1098,7 @@ void openais_ipc_init (
|
||||
/*
|
||||
* Get the conn info private data
|
||||
*/
|
||||
void *openais_conn_private_data_get (void *conn)
|
||||
void *corosync_conn_private_data_get (void *conn)
|
||||
{
|
||||
struct conn_info *conn_info = (struct conn_info *)conn;
|
||||
|
||||
@ -1112,7 +1112,7 @@ void *openais_conn_private_data_get (void *conn)
|
||||
/*
|
||||
* Get the conn info partner connection
|
||||
*/
|
||||
void *openais_conn_partner_get (void *conn)
|
||||
void *corosync_conn_partner_get (void *conn)
|
||||
{
|
||||
struct conn_info *conn_info = (struct conn_info *)conn;
|
||||
|
||||
@ -1123,7 +1123,7 @@ void *openais_conn_partner_get (void *conn)
|
||||
}
|
||||
}
|
||||
|
||||
int openais_conn_send_response (
|
||||
int corosync_conn_send_response (
|
||||
void *conn,
|
||||
void *msg,
|
||||
int mlen)
|
||||
@ -1265,7 +1265,7 @@ retry_sendmsg_two:
|
||||
return (0);
|
||||
}
|
||||
|
||||
void openais_ipc_flow_control_create (
|
||||
void corosync_ipc_flow_control_create (
|
||||
void *conn,
|
||||
unsigned int service,
|
||||
char *id,
|
||||
@ -1275,7 +1275,7 @@ void openais_ipc_flow_control_create (
|
||||
{
|
||||
struct conn_info *conn_info = (struct conn_info *)conn;
|
||||
|
||||
openais_flow_control_create (
|
||||
corosync_flow_control_create (
|
||||
conn_info->flow_control_handle,
|
||||
service,
|
||||
id,
|
||||
@ -1285,7 +1285,7 @@ void openais_ipc_flow_control_create (
|
||||
conn_info->conn_info_partner->flow_control_handle = conn_info->flow_control_handle;
|
||||
}
|
||||
|
||||
void openais_ipc_flow_control_destroy (
|
||||
void corosync_ipc_flow_control_destroy (
|
||||
void *conn,
|
||||
unsigned int service,
|
||||
unsigned char *id,
|
||||
@ -1293,14 +1293,14 @@ void openais_ipc_flow_control_destroy (
|
||||
{
|
||||
struct conn_info *conn_info = (struct conn_info *)conn;
|
||||
|
||||
openais_flow_control_destroy (
|
||||
corosync_flow_control_destroy (
|
||||
conn_info->flow_control_handle,
|
||||
service,
|
||||
id,
|
||||
id_len);
|
||||
}
|
||||
|
||||
void openais_ipc_flow_control_local_increment (
|
||||
void corosync_ipc_flow_control_local_increment (
|
||||
void *conn)
|
||||
{
|
||||
struct conn_info *conn_info = (struct conn_info *)conn;
|
||||
@ -1312,7 +1312,7 @@ void openais_ipc_flow_control_local_increment (
|
||||
pthread_mutex_unlock (&conn_info->flow_control_mutex);
|
||||
}
|
||||
|
||||
void openais_ipc_flow_control_local_decrement (
|
||||
void corosync_ipc_flow_control_local_decrement (
|
||||
void *conn)
|
||||
{
|
||||
struct conn_info *conn_info = (struct conn_info *)conn;
|
||||
|
22
exec/ipc.h
22
exec/ipc.h
@ -46,33 +46,33 @@ extern void message_source_set (mar_message_source_t *source, void *conn);
|
||||
|
||||
extern int message_source_is_local (mar_message_source_t *source);
|
||||
|
||||
extern void *openais_conn_partner_get (void *conn);
|
||||
extern void *corosync_conn_partner_get (void *conn);
|
||||
|
||||
extern void *openais_conn_private_data_get (void *conn);
|
||||
extern void *corosync_conn_private_data_get (void *conn);
|
||||
|
||||
extern int openais_conn_send_response (void *conn, void *msg, int mlen);
|
||||
extern int corosync_conn_send_response (void *conn, void *msg, int mlen);
|
||||
|
||||
extern void openais_ipc_init (
|
||||
extern void corosync_ipc_init (
|
||||
void (*serialize_lock_fn) (void),
|
||||
void (*serialize_unlock_fn) (void),
|
||||
unsigned int gid_valid);
|
||||
|
||||
extern int openais_ipc_timer_add (
|
||||
extern int corosync_ipc_timer_add (
|
||||
void *conn,
|
||||
void (*timer_fn) (void *data),
|
||||
void *data,
|
||||
unsigned int msec_in_future,
|
||||
timer_handle *handle);
|
||||
|
||||
extern void openais_ipc_timer_del (
|
||||
extern void corosync_ipc_timer_del (
|
||||
void *conn,
|
||||
timer_handle timer_handle);
|
||||
|
||||
extern void openais_ipc_timer_del_data (
|
||||
extern void corosync_ipc_timer_del_data (
|
||||
void *conn,
|
||||
timer_handle timer_handle);
|
||||
|
||||
extern void openais_ipc_flow_control_create (
|
||||
extern void corosync_ipc_flow_control_create (
|
||||
void *conn,
|
||||
unsigned int service,
|
||||
char *id,
|
||||
@ -80,16 +80,16 @@ extern void openais_ipc_flow_control_create (
|
||||
void (*flow_control_state_set_fn) (void *context, enum corosync_flow_control_state flow_control_state_set),
|
||||
void *context);
|
||||
|
||||
extern void openais_ipc_flow_control_destroy (
|
||||
extern void corosync_ipc_flow_control_destroy (
|
||||
void *conn,
|
||||
unsigned int service,
|
||||
unsigned char *id,
|
||||
int id_len);
|
||||
|
||||
extern void openais_ipc_flow_control_local_increment (
|
||||
extern void corosync_ipc_flow_control_local_increment (
|
||||
void *conn);
|
||||
|
||||
extern void openais_ipc_flow_control_local_decrement (
|
||||
extern void corosync_ipc_flow_control_local_decrement (
|
||||
void *conn);
|
||||
|
||||
#endif /* IPC_H_DEFINED */
|
||||
|
@ -53,7 +53,7 @@
|
||||
#include <stdlib.h>
|
||||
#include <pthread.h>
|
||||
|
||||
#include <corosync/engine/logsys.h>
|
||||
#include "logsys.h"
|
||||
#include "wthread.h"
|
||||
|
||||
/*
|
||||
@ -136,7 +136,7 @@ int logsys_facility_id_get (const char *name)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
const char *logsys_facility_name_get (unsigned int facility)
|
||||
char *logsys_facility_name_get (unsigned int facility)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
@ -160,7 +160,7 @@ int logsys_priority_id_get (const char *name)
|
||||
return (-1);
|
||||
}
|
||||
|
||||
const char *logsys_priority_name_get (unsigned int priority)
|
||||
char *logsys_priority_name_get (unsigned int priority)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
@ -326,7 +326,7 @@ static void _log_printf (
|
||||
(logsys_mode & LOG_MODE_DISPLAY_TIMESTAMP)) {
|
||||
gettimeofday (&tv, NULL);
|
||||
strftime (char_time, sizeof (char_time), "%b %e %k:%M:%S",
|
||||
localtime ((time_t *)&tv.tv_sec));
|
||||
localtime (&tv.tv_sec));
|
||||
i = sprintf (newstring, "%s.%06ld ", char_time, (long)tv.tv_usec);
|
||||
}
|
||||
|
||||
@ -352,7 +352,7 @@ static void _log_printf (
|
||||
newstring[strlen (newstring) - 1] = '\0';
|
||||
}
|
||||
len = sprintf (log_string,
|
||||
"%s - prior to this log entry, openais logger dropped '%d' messages because of overflow.", newstring, dropped_log_entries + 1);
|
||||
"%s - prior to this log entry, corosync logger dropped '%d' messages because of overflow.", newstring, dropped_log_entries + 1);
|
||||
} else {
|
||||
len = vsprintf (log_string, newstring, ap);
|
||||
}
|
||||
|
85
exec/main.c
85
exec/main.c
@ -55,29 +55,30 @@
|
||||
#include <sched.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/queue.h>
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/config.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
|
||||
#include "swab.h"
|
||||
#include "../include/saAis.h"
|
||||
#include "../include/list.h"
|
||||
#include "../include/queue.h"
|
||||
#include "../lcr/lcr_ifact.h"
|
||||
#include "coropoll.h"
|
||||
#include "totempg.h"
|
||||
#include "totemsrp.h"
|
||||
#include "mempool.h"
|
||||
#include "mainconfig.h"
|
||||
#include "totemconfig.h"
|
||||
#include "main.h"
|
||||
#include "sync.h"
|
||||
#include "swab.h"
|
||||
#include "objdb.h"
|
||||
#include "config.h"
|
||||
#include "tlist.h"
|
||||
#include "flow.h"
|
||||
#include "ipc.h"
|
||||
#include "timer.h"
|
||||
#include "logsys.h"
|
||||
#include "util.h"
|
||||
#include "flow.h"
|
||||
#include "coroapi.h"
|
||||
#include "apidef.h"
|
||||
#include "service.h"
|
||||
#include "version.h"
|
||||
@ -127,7 +128,7 @@ static void sigusr2_handler (int num)
|
||||
static void *aisexec_exit (void *arg)
|
||||
{
|
||||
if (api) {
|
||||
openais_service_unlink_all (api);
|
||||
corosync_service_unlink_all (api);
|
||||
}
|
||||
|
||||
#ifdef DEBUG_MEMPOOL
|
||||
@ -147,7 +148,7 @@ static void *aisexec_exit (void *arg)
|
||||
totempg_finalize ();
|
||||
logsys_flush ();
|
||||
|
||||
openais_exit_error (AIS_DONE_EXIT);
|
||||
corosync_exit_error (AIS_DONE_EXIT);
|
||||
|
||||
/* never reached */
|
||||
return NULL;
|
||||
@ -184,9 +185,9 @@ static void sigabrt_handler (int num)
|
||||
|
||||
#define LOCALHOST_IP inet_addr("127.0.0.1")
|
||||
|
||||
totempg_groups_handle openais_group_handle;
|
||||
totempg_groups_handle corosync_group_handle;
|
||||
|
||||
struct totempg_group openais_group = {
|
||||
struct totempg_group corosync_group = {
|
||||
.group = "a",
|
||||
.group_len = 1
|
||||
};
|
||||
@ -212,11 +213,11 @@ void serialize_mutex_unlock (void)
|
||||
}
|
||||
|
||||
|
||||
static void openais_sync_completed (void)
|
||||
static void corosync_sync_completed (void)
|
||||
{
|
||||
}
|
||||
|
||||
static int openais_sync_callbacks_retrieve (int sync_id,
|
||||
static int corosync_sync_callbacks_retrieve (int sync_id,
|
||||
struct sync_callbacks *callbacks)
|
||||
{
|
||||
unsigned int ais_service_index;
|
||||
@ -278,7 +279,7 @@ static void aisexec_uid_determine (struct main_config *main_config)
|
||||
passwd = getpwnam(main_config->user);
|
||||
if (passwd == 0) {
|
||||
log_printf (LOG_LEVEL_ERROR, "ERROR: The '%s' user is not found in /etc/passwd, please read the documentation.\n", main_config->user);
|
||||
openais_exit_error (AIS_DONE_UID_DETERMINE);
|
||||
corosync_exit_error (AIS_DONE_UID_DETERMINE);
|
||||
}
|
||||
ais_uid = passwd->pw_uid;
|
||||
endpwent ();
|
||||
@ -290,7 +291,7 @@ static void aisexec_gid_determine (struct main_config *main_config)
|
||||
group = getgrnam (main_config->group);
|
||||
if (group == 0) {
|
||||
log_printf (LOG_LEVEL_ERROR, "ERROR: The '%s' group is not found in /etc/group, please read the documentation.\n", group->gr_name);
|
||||
openais_exit_error (AIS_DONE_GID_DETERMINE);
|
||||
corosync_exit_error (AIS_DONE_GID_DETERMINE);
|
||||
}
|
||||
gid_valid = group->gr_gid;
|
||||
endgrent ();
|
||||
@ -310,7 +311,7 @@ static void aisexec_mempool_init (void)
|
||||
res = mempool_init (pool_sizes);
|
||||
if (res == ENOMEM) {
|
||||
log_printf (LOG_LEVEL_ERROR, "Couldn't allocate memory pools, not enough memory");
|
||||
openais_exit_error (AIS_DONE_MEMPOOL_INIT);
|
||||
corosync_exit_error (AIS_DONE_MEMPOOL_INIT);
|
||||
}
|
||||
}
|
||||
|
||||
@ -324,7 +325,7 @@ static void aisexec_tty_detach (void)
|
||||
|
||||
switch (fork ()) {
|
||||
case -1:
|
||||
openais_exit_error (AIS_DONE_FORK);
|
||||
corosync_exit_error (AIS_DONE_FORK);
|
||||
break;
|
||||
case 0:
|
||||
/*
|
||||
@ -469,14 +470,14 @@ int main_mcast (
|
||||
int iov_len,
|
||||
unsigned int guarantee)
|
||||
{
|
||||
return (totempg_groups_mcast_joined (openais_group_handle, iovec, iov_len, guarantee));
|
||||
return (totempg_groups_mcast_joined (corosync_group_handle, iovec, iov_len, guarantee));
|
||||
}
|
||||
|
||||
extern int main_send_ok (
|
||||
struct iovec *iovec,
|
||||
int iov_len)
|
||||
{
|
||||
return (totempg_groups_send_ok_joined (openais_group_handle, iovec, iov_len));
|
||||
return (totempg_groups_send_ok_joined (corosync_group_handle, iovec, iov_len));
|
||||
}
|
||||
|
||||
int main (int argc, char **argv)
|
||||
@ -533,7 +534,7 @@ int main (int argc, char **argv)
|
||||
signal (SIGABRT, sigabrt_handler);
|
||||
signal (SIGQUIT, sigquit_handler);
|
||||
|
||||
openais_timer_init (
|
||||
corosync_timer_init (
|
||||
serialize_mutex_lock,
|
||||
serialize_mutex_unlock);
|
||||
|
||||
@ -554,7 +555,7 @@ int main (int argc, char **argv)
|
||||
0);
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, "Corosync Executive couldn't open configuration object database component.\n");
|
||||
openais_exit_error (AIS_DONE_OBJDB);
|
||||
corosync_exit_error (AIS_DONE_OBJDB);
|
||||
}
|
||||
|
||||
objdb = (struct objdb_iface_ver0 *)objdb_p;
|
||||
@ -571,7 +572,7 @@ int main (int argc, char **argv)
|
||||
|
||||
/*
|
||||
* Bootstrap in the default configuration parser or use
|
||||
* the openais default built in parser if the configuration parser
|
||||
* the corosync default built in parser if the configuration parser
|
||||
* isn't overridden
|
||||
*/
|
||||
config_iface = getenv("COROSYNC_DEFAULT_CONFIG_IFACE");
|
||||
@ -595,13 +596,13 @@ int main (int argc, char **argv)
|
||||
config = (struct config_iface_ver0 *)config_p;
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, "Corosync Executive couldn't open configuration component '%s'\n", iface);
|
||||
openais_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
corosync_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
}
|
||||
|
||||
res = config->config_readconfig(objdb, &error_string);
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, error_string);
|
||||
openais_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
corosync_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
}
|
||||
log_printf (LOG_LEVEL_NOTICE, error_string);
|
||||
config_modules[num_config_modules++] = config;
|
||||
@ -611,31 +612,31 @@ int main (int argc, char **argv)
|
||||
if (config_iface)
|
||||
free(config_iface);
|
||||
|
||||
res = openais_main_config_read (objdb, &error_string, &main_config);
|
||||
res = corosync_main_config_read (objdb, &error_string, &main_config);
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, error_string);
|
||||
openais_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
corosync_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
}
|
||||
|
||||
res = totem_config_read (objdb, &totem_config, &error_string);
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, error_string);
|
||||
openais_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
corosync_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
}
|
||||
|
||||
res = totem_config_keyread (objdb, &totem_config, &error_string);
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, error_string);
|
||||
openais_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
corosync_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
}
|
||||
|
||||
res = totem_config_validate (&totem_config, &error_string);
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, error_string);
|
||||
openais_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
corosync_exit_error (AIS_DONE_MAINCONFIGREAD);
|
||||
}
|
||||
|
||||
logsys_config_facility_set ("openais", main_config.syslog_facility);
|
||||
logsys_config_facility_set ("corosync", main_config.syslog_facility);
|
||||
logsys_config_mode_set (main_config.logmode);
|
||||
logsys_config_file_set (&error_string, main_config.logfile);
|
||||
|
||||
@ -685,30 +686,30 @@ int main (int argc, char **argv)
|
||||
&totem_config);
|
||||
|
||||
totempg_groups_initialize (
|
||||
&openais_group_handle,
|
||||
&corosync_group_handle,
|
||||
deliver_fn,
|
||||
confchg_fn);
|
||||
|
||||
totempg_groups_join (
|
||||
openais_group_handle,
|
||||
&openais_group,
|
||||
corosync_group_handle,
|
||||
&corosync_group,
|
||||
1);
|
||||
|
||||
/*
|
||||
* This must occur after totempg is initialized because "this_ip" must be set
|
||||
*/
|
||||
res = openais_service_defaults_link_and_init (api);
|
||||
res = corosync_service_defaults_link_and_init (api);
|
||||
if (res == -1) {
|
||||
log_printf (LOG_LEVEL_ERROR, "Could not initialize default services\n");
|
||||
openais_exit_error (AIS_DONE_INIT_SERVICES);
|
||||
corosync_exit_error (AIS_DONE_INIT_SERVICES);
|
||||
}
|
||||
|
||||
|
||||
sync_register (openais_sync_callbacks_retrieve, openais_sync_completed,
|
||||
sync_register (corosync_sync_callbacks_retrieve, corosync_sync_completed,
|
||||
totem_config.vsf_type);
|
||||
|
||||
|
||||
res = openais_flow_control_initialize ();
|
||||
res = corosync_flow_control_initialize ();
|
||||
|
||||
/*
|
||||
* Drop root privleges to user 'ais'
|
||||
@ -722,7 +723,7 @@ int main (int argc, char **argv)
|
||||
|
||||
aisexec_mempool_init ();
|
||||
|
||||
openais_ipc_init (
|
||||
corosync_ipc_init (
|
||||
serialize_mutex_lock,
|
||||
serialize_mutex_unlock,
|
||||
gid_valid);
|
||||
|
21
exec/main.h
21
exec/main.h
@ -32,17 +32,18 @@
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#ifndef AIS_EXEC_H_DEFINED
|
||||
#define AIS_EXEC_H_DEFINED
|
||||
|
||||
#define TRUE 1
|
||||
#define FALSE 0
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/ipc_gen.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/config.h>
|
||||
#include "../include/saAis.h"
|
||||
#include "../include/ipc_gen.h"
|
||||
#include "coropoll.h"
|
||||
#include "objdb.h"
|
||||
#include "config.h"
|
||||
#include "totempg.h"
|
||||
|
||||
#ifndef AIS_EXEC_H_DEFINED
|
||||
#define AIS_EXEC_H_DEFINED
|
||||
|
||||
/*
|
||||
* Size of the queue (entries) for I/O's to the API over socket IPC.
|
||||
@ -54,9 +55,9 @@
|
||||
|
||||
#define SIZEINB MESSAGE_SIZE_MAX
|
||||
|
||||
extern struct totempg_group openais_group;
|
||||
extern struct totempg_group corosync_group;
|
||||
|
||||
extern totempg_groups_handle openais_group_handle;
|
||||
extern totempg_groups_handle corosync_group_handle;
|
||||
|
||||
poll_handle aisexec_poll_handle;
|
||||
|
||||
|
@ -41,14 +41,13 @@
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/totem/totem.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
|
||||
#include "../include/saAis.h"
|
||||
#include "../include/list.h"
|
||||
#include "util.h"
|
||||
#include "mainconfig.h"
|
||||
#include "mempool.h"
|
||||
#include "logsys.h"
|
||||
#include "totem.h"
|
||||
|
||||
static char error_string_response[512];
|
||||
|
||||
@ -98,7 +97,7 @@ static struct logsys_config_struct {
|
||||
unsigned int tags;
|
||||
} logsys_logger;
|
||||
|
||||
int openais_main_config_read (
|
||||
int corosync_main_config_read (
|
||||
struct objdb_iface_ver0 *objdb,
|
||||
char **error_string,
|
||||
struct main_config *main_config)
|
||||
|
@ -32,12 +32,12 @@
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#include "objdb.h"
|
||||
#include "logsys.h"
|
||||
|
||||
#ifndef MAINCONFIG_H_DEFINED
|
||||
#define MAINCONFIG_H_DEFINED
|
||||
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
|
||||
/*
|
||||
* All service handlers in the AIS
|
||||
*/
|
||||
@ -65,7 +65,7 @@ struct main_config {
|
||||
char *group;
|
||||
};
|
||||
|
||||
extern int openais_main_config_read (
|
||||
extern int corosync_main_config_read (
|
||||
struct objdb_iface_ver0 *objdb,
|
||||
char **error_string,
|
||||
struct main_config *main_config);
|
||||
|
@ -36,7 +36,7 @@
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <corosync/list.h>
|
||||
#include "../include/list.h"
|
||||
#include "mempool.h"
|
||||
|
||||
int mempool_bytes = 0;
|
||||
|
@ -32,7 +32,7 @@
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#include <corosync/list.h>
|
||||
#include "../include/list.h"
|
||||
|
||||
#ifndef MEMPOOL_H_DEFINED
|
||||
#define MEMPOOL_H_DEFINED
|
||||
|
36
exec/objdb.c
36
exec/objdb.c
@ -35,14 +35,12 @@
|
||||
|
||||
#include <stdio.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/hdb.h>
|
||||
#include <corosync/lcr/lcr_comp.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/config.h>
|
||||
|
||||
#include "objdb.h"
|
||||
#include "config.h"
|
||||
#include "main.h"
|
||||
#include "../lcr/lcr_comp.h"
|
||||
#include "../include/hdb.h"
|
||||
#include "../include/list.h"
|
||||
|
||||
struct object_key {
|
||||
void *key_name;
|
||||
@ -362,7 +360,7 @@ static int object_create (
|
||||
|
||||
object_instance->object_name_len = object_name_len;
|
||||
|
||||
list_add_tail (&object_instance->child_list, &parent_instance->child_head);
|
||||
list_add (&object_instance->child_list, &parent_instance->child_head);
|
||||
|
||||
object_instance->object_handle = *object_handle;
|
||||
object_instance->find_child_list = &object_instance->child_head;
|
||||
@ -490,7 +488,7 @@ static int object_key_create (
|
||||
object_key->value_len = value_len;
|
||||
|
||||
list_init (&object_key->list);
|
||||
list_add_tail (&object_key->list, &instance->key_head);
|
||||
list_add (&object_key->list, &instance->key_head);
|
||||
object_key_changed_notification(object_handle, key_name, key_len,
|
||||
value, value_len, OBJECT_KEY_CREATED);
|
||||
|
||||
@ -1417,25 +1415,6 @@ static int object_write_config(char **error_string)
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int object_reload_config(int flush, char **error_string)
|
||||
{
|
||||
struct config_iface_ver0 **modules;
|
||||
int num_modules;
|
||||
int i;
|
||||
int res;
|
||||
|
||||
main_get_config_modules(&modules, &num_modules);
|
||||
|
||||
for (i=0; i<num_modules; i++) {
|
||||
if (modules[i]->config_reloadconfig) {
|
||||
res = modules[i]->config_reloadconfig(&objdb_iface, flush, error_string);
|
||||
if (res)
|
||||
return res;
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct objdb_iface_ver0 objdb_iface = {
|
||||
.objdb_init = objdb_init,
|
||||
.object_create = object_create,
|
||||
@ -1463,7 +1442,6 @@ struct objdb_iface_ver0 objdb_iface = {
|
||||
.object_track_stop = object_track_stop,
|
||||
.object_dump = object_dump,
|
||||
.object_write_config = object_write_config,
|
||||
.object_reload_config = object_reload_config,
|
||||
};
|
||||
|
||||
struct lcr_iface objdb_iface_ver0[1] = {
|
||||
|
@ -37,20 +37,19 @@
|
||||
#include <string.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/totem/totem.h>
|
||||
|
||||
#include "../lcr/lcr_ifact.h"
|
||||
#include "swab.h"
|
||||
#include "totem.h"
|
||||
#include "mainconfig.h"
|
||||
#include "util.h"
|
||||
#include <corosync/engine/logsys.h>
|
||||
#include "logsys.h"
|
||||
|
||||
#include "timer.h"
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/totem/totemip.h>
|
||||
#include "totempg.h"
|
||||
#include "totemip.h"
|
||||
#include "main.h"
|
||||
#include "ipc.h"
|
||||
#include <corosync/engine/coroapi.h>
|
||||
#include "../include/coroapi.h"
|
||||
#include "service.h"
|
||||
|
||||
|
||||
@ -121,7 +120,7 @@ static unsigned int default_services_requested (struct corosync_api_v1 *corosync
|
||||
return (-1);
|
||||
}
|
||||
|
||||
unsigned int openais_service_link_and_init (
|
||||
unsigned int corosync_service_link_and_init (
|
||||
struct corosync_api_v1 *corosync_api,
|
||||
char *service_name,
|
||||
unsigned int service_ver)
|
||||
@ -202,7 +201,7 @@ unsigned int openais_service_link_and_init (
|
||||
return (res);
|
||||
}
|
||||
|
||||
static int openais_service_unlink_common (
|
||||
static int corosync_service_unlink_common (
|
||||
struct corosync_api_v1 *corosync_api,
|
||||
unsigned int object_service_handle,
|
||||
const char *service_name,
|
||||
@ -224,7 +223,7 @@ static int openais_service_unlink_common (
|
||||
(void *)&service_id,
|
||||
NULL);
|
||||
|
||||
log_printf(LOG_LEVEL_NOTICE, "Unloading openais component: %s v%u\n",
|
||||
log_printf(LOG_LEVEL_NOTICE, "Unloading corosync component: %s v%u\n",
|
||||
service_name, service_version);
|
||||
|
||||
if (ais_service[*service_id]->exec_exit_fn) {
|
||||
@ -235,7 +234,7 @@ static int openais_service_unlink_common (
|
||||
return lcr_ifact_release (*found_service_handle);
|
||||
}
|
||||
|
||||
extern unsigned int openais_service_unlink_and_exit (
|
||||
extern unsigned int corosync_service_unlink_and_exit (
|
||||
struct corosync_api_v1 *corosync_api,
|
||||
char *service_name,
|
||||
unsigned int service_ver)
|
||||
@ -267,14 +266,14 @@ extern unsigned int openais_service_unlink_and_exit (
|
||||
strlen ("ver"),
|
||||
(void *)&found_service_ver,
|
||||
NULL);
|
||||
|
||||
|
||||
/*
|
||||
* If service found and linked exit it
|
||||
*/
|
||||
if ((strcmp (service_name, found_service_name) == 0) &&
|
||||
(service_ver == *found_service_ver)) {
|
||||
|
||||
res = openais_service_unlink_common (
|
||||
res = corosync_service_unlink_common (
|
||||
corosync_api, object_service_handle,
|
||||
service_name, service_ver);
|
||||
|
||||
@ -288,39 +287,41 @@ extern unsigned int openais_service_unlink_and_exit (
|
||||
return (-1);
|
||||
}
|
||||
|
||||
extern unsigned int openais_service_unlink_all (
|
||||
extern unsigned int corosync_service_unlink_all (
|
||||
struct corosync_api_v1 *corosync_api)
|
||||
{
|
||||
char *service_name;
|
||||
unsigned int *service_ver;
|
||||
unsigned int object_service_handle;
|
||||
unsigned int object_find_handle;
|
||||
int found;
|
||||
|
||||
log_printf(LOG_LEVEL_NOTICE, "Unloading all openais components\n");
|
||||
unsigned int res;
|
||||
|
||||
log_printf(LOG_LEVEL_NOTICE, "Unloading all corosync components\n");
|
||||
|
||||
res = 0;
|
||||
/*
|
||||
* TODO
|
||||
* Deleting of keys not supported during iteration at this time
|
||||
* hence this ugly hack
|
||||
*/
|
||||
while(corosync_api->object_find_create (
|
||||
for (;;) {
|
||||
corosync_api->object_find_create (
|
||||
object_internal_configuration_handle,
|
||||
"service",
|
||||
strlen ("service"),
|
||||
&object_find_handle) == 0)
|
||||
{
|
||||
&object_find_handle);
|
||||
|
||||
found = 0;
|
||||
|
||||
while(corosync_api->object_find_next (
|
||||
res = corosync_api->object_find_next (
|
||||
object_find_handle,
|
||||
&object_service_handle) == 0)
|
||||
found = 1;
|
||||
&object_service_handle);
|
||||
|
||||
if(!found)
|
||||
/*
|
||||
* Exit from unloading
|
||||
*/
|
||||
if (res == -1) {
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
corosync_api->object_key_get (
|
||||
object_service_handle,
|
||||
"name",
|
||||
@ -334,8 +335,8 @@ extern unsigned int openais_service_unlink_all (
|
||||
strlen ("ver"),
|
||||
(void *)&service_ver,
|
||||
NULL);
|
||||
|
||||
openais_service_unlink_common (
|
||||
|
||||
corosync_service_unlink_common (
|
||||
corosync_api, object_service_handle,
|
||||
service_name, *service_ver);
|
||||
|
||||
@ -351,7 +352,7 @@ extern unsigned int openais_service_unlink_all (
|
||||
/*
|
||||
* Links default services into the executive
|
||||
*/
|
||||
unsigned int openais_service_defaults_link_and_init (struct corosync_api_v1 *corosync_api)
|
||||
unsigned int corosync_service_defaults_link_and_init (struct corosync_api_v1 *corosync_api)
|
||||
{
|
||||
unsigned int i;
|
||||
|
||||
@ -390,7 +391,7 @@ unsigned int openais_service_defaults_link_and_init (struct corosync_api_v1 *cor
|
||||
|
||||
found_service_ver_atoi = atoi (found_service_ver);
|
||||
|
||||
openais_service_link_and_init (
|
||||
corosync_service_link_and_init (
|
||||
corosync_api,
|
||||
found_service_name,
|
||||
found_service_ver_atoi);
|
||||
@ -405,7 +406,7 @@ unsigned int openais_service_defaults_link_and_init (struct corosync_api_v1 *cor
|
||||
for (i = 0;
|
||||
i < sizeof (default_services) / sizeof (struct default_service); i++) {
|
||||
|
||||
openais_service_link_and_init (
|
||||
corosync_service_link_and_init (
|
||||
corosync_api,
|
||||
default_services[i].name,
|
||||
default_services[i].ver);
|
||||
|
@ -38,7 +38,7 @@
|
||||
/*
|
||||
* Link and initialize a service
|
||||
*/
|
||||
extern unsigned int openais_service_link_and_init (
|
||||
extern unsigned int corosync_service_link_and_init (
|
||||
struct corosync_api_v1 *objdb,
|
||||
char *service_name,
|
||||
unsigned int service_ver);
|
||||
@ -46,21 +46,21 @@ extern unsigned int openais_service_link_and_init (
|
||||
/*
|
||||
* Unlink and exit a service
|
||||
*/
|
||||
extern unsigned int openais_service_unlink_and_exit (
|
||||
extern unsigned int corosync_service_unlink_and_exit (
|
||||
struct corosync_api_v1 *objdb,
|
||||
char *service_name,
|
||||
unsigned int service_ver);
|
||||
|
||||
/*
|
||||
* Unlink and exit all openais services
|
||||
* Unlink and exit all corosync services
|
||||
*/
|
||||
extern unsigned int openais_service_unlink_all (
|
||||
extern unsigned int corosync_service_unlink_all (
|
||||
struct corosync_api_v1 *objdb);
|
||||
|
||||
/*
|
||||
* Load all of the default services
|
||||
*/
|
||||
extern unsigned int openais_service_defaults_link_and_init (
|
||||
extern unsigned int corosync_service_defaults_link_and_init (
|
||||
struct corosync_api_v1 *objdb);
|
||||
|
||||
extern struct corosync_service_engine *ais_service[];
|
||||
|
25
exec/sync.c
25
exec/sync.c
@ -49,16 +49,15 @@
|
||||
#include <netinet/in.h>
|
||||
#include <arpa/inet.h>
|
||||
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/totem/totem.h>
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
|
||||
#include "../include/saAis.h"
|
||||
#include "main.h"
|
||||
#include "sync.h"
|
||||
#include "totempg.h"
|
||||
#include "totem.h"
|
||||
#include "vsf.h"
|
||||
#include "swab.h"
|
||||
#include "../lcr/lcr_ifact.h"
|
||||
#include "logsys.h"
|
||||
|
||||
LOGSYS_DECLARE_SUBSYS ("SYNC", LOG_INFO);
|
||||
|
||||
@ -91,7 +90,7 @@ static int barrier_data_confchg_entries;
|
||||
|
||||
static struct barrier_data barrier_data_process[PROCESSOR_COUNT_MAX];
|
||||
|
||||
static struct openais_vsf_iface_ver0 *vsf_iface;
|
||||
static struct corosync_vsf_iface_ver0 *vsf_iface;
|
||||
|
||||
static int sync_barrier_send (struct memb_ring_id *ring_id);
|
||||
|
||||
@ -255,7 +254,7 @@ int sync_register (
|
||||
unsigned int res;
|
||||
unsigned int vsf_handle;
|
||||
void *vsf_iface_p;
|
||||
char openais_vsf_type[1024];
|
||||
char corosync_vsf_type[1024];
|
||||
|
||||
res = totempg_groups_initialize (
|
||||
&sync_group_handle,
|
||||
@ -283,10 +282,10 @@ int sync_register (
|
||||
} else {
|
||||
vsf_none = 0;
|
||||
|
||||
sprintf (openais_vsf_type, "openais_vsf_%s", vsf_type);
|
||||
sprintf (corosync_vsf_type, "corosync_vsf_%s", vsf_type);
|
||||
res = lcr_ifact_reference (
|
||||
&vsf_handle,
|
||||
openais_vsf_type,
|
||||
corosync_vsf_type,
|
||||
0,
|
||||
&vsf_iface_p,
|
||||
0);
|
||||
@ -299,9 +298,9 @@ int sync_register (
|
||||
}
|
||||
|
||||
log_printf (LOG_LEVEL_NOTICE,
|
||||
"Using virtual synchrony filter %s\n", openais_vsf_type);
|
||||
"Using virtual synchrony filter %s\n", corosync_vsf_type);
|
||||
|
||||
vsf_iface = (struct openais_vsf_iface_ver0 *)vsf_iface_p;
|
||||
vsf_iface = (struct corosync_vsf_iface_ver0 *)vsf_iface_p;
|
||||
vsf_iface->init (sync_primary_callback_fn);
|
||||
}
|
||||
|
||||
|
@ -36,7 +36,7 @@
|
||||
#define SYNC_H_DEFINED
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include "totempg.h"
|
||||
#include "totemsrp.h"
|
||||
|
||||
struct sync_callbacks {
|
||||
|
36
exec/timer.c
36
exec/timer.c
@ -55,26 +55,26 @@
|
||||
#include <sched.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/queue.h>
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/config.h>
|
||||
#define LOG_SERVICE LOG_SERVICE_IPC
|
||||
#include <corosync/engine/logsys.h>
|
||||
|
||||
#include "swab.h"
|
||||
#include "../include/saAis.h"
|
||||
#include "../include/list.h"
|
||||
#include "../include/queue.h"
|
||||
#include "../lcr/lcr_ifact.h"
|
||||
#include "poll.h"
|
||||
#include "totempg.h"
|
||||
#include "totemsrp.h"
|
||||
#include "mempool.h"
|
||||
#include "mainconfig.h"
|
||||
#include "totemconfig.h"
|
||||
#include "main.h"
|
||||
#include "sync.h"
|
||||
#include "swab.h"
|
||||
#include "objdb.h"
|
||||
#include "config.h"
|
||||
#include "tlist.h"
|
||||
#define LOG_SERVICE LOG_SERVICE_IPC
|
||||
#include "logsys.h"
|
||||
|
||||
#include "util.h"
|
||||
|
||||
#define SERVER_BACKLOG 5
|
||||
@ -143,7 +143,7 @@ static void sigusr1_handler (int num) {
|
||||
#endif
|
||||
}
|
||||
|
||||
int openais_timer_init (
|
||||
int corosync_timer_init (
|
||||
void (*serialize_lock_fn) (void),
|
||||
void (*serialize_unlock_fn) (void))
|
||||
{
|
||||
@ -166,7 +166,7 @@ int openais_timer_init (
|
||||
return (res);
|
||||
}
|
||||
|
||||
int openais_timer_add_absolute (
|
||||
int corosync_timer_add_absolute (
|
||||
unsigned long long nanosec_from_epoch,
|
||||
void *data,
|
||||
void (*timer_fn) (void *data),
|
||||
@ -198,7 +198,7 @@ int openais_timer_add_absolute (
|
||||
return (res);
|
||||
}
|
||||
|
||||
int openais_timer_add_duration (
|
||||
int corosync_timer_add_duration (
|
||||
unsigned long long nanosec_duration,
|
||||
void *data,
|
||||
void (*timer_fn) (void *data),
|
||||
@ -230,7 +230,7 @@ int openais_timer_add_duration (
|
||||
return (res);
|
||||
}
|
||||
|
||||
void openais_timer_delete (
|
||||
void corosync_timer_delete (
|
||||
timer_handle timer_handle)
|
||||
{
|
||||
int unlock;
|
||||
@ -253,12 +253,12 @@ void openais_timer_delete (
|
||||
}
|
||||
}
|
||||
|
||||
void openais_timer_lock (void)
|
||||
void corosync_timer_lock (void)
|
||||
{
|
||||
pthread_mutex_lock (&timer_mutex);
|
||||
}
|
||||
|
||||
void openais_timer_unlock (void)
|
||||
void corosync_timer_unlock (void)
|
||||
{
|
||||
pthread_mutex_unlock (&timer_mutex);
|
||||
}
|
||||
|
20
exec/timer.h
20
exec/timer.h
@ -35,30 +35,30 @@
|
||||
#ifndef TIMER_H_DEFINED
|
||||
#define TIMER_H_DEFINED
|
||||
|
||||
typedef void * openais_timer_handle;
|
||||
typedef void * corosync_timer_handle;
|
||||
|
||||
extern void openais_timer_init (
|
||||
extern void corosync_timer_init (
|
||||
void (*serialize_lock) (void),
|
||||
void (*serialize_unlock) (void));
|
||||
|
||||
extern int openais_timer_add_duration (
|
||||
extern int corosync_timer_add_duration (
|
||||
unsigned long long nanoseconds_in_future,
|
||||
void *data,
|
||||
void (*timer_fn) (void *data),
|
||||
openais_timer_handle *handle);
|
||||
corosync_timer_handle *handle);
|
||||
|
||||
extern int openais_timer_add_absolute (
|
||||
extern int corosync_timer_add_absolute (
|
||||
unsigned long long nanoseconds_from_epoch,
|
||||
void *data,
|
||||
void (*timer_fn) (void *data),
|
||||
openais_timer_handle *handle);
|
||||
corosync_timer_handle *handle);
|
||||
|
||||
extern void openais_timer_delete (openais_timer_handle timer_handle);
|
||||
extern void corosync_timer_delete (corosync_timer_handle timer_handle);
|
||||
|
||||
extern void openais_timer_delete_data (openais_timer_handle timer_handle);
|
||||
extern void corosync_timer_delete_data (corosync_timer_handle timer_handle);
|
||||
|
||||
extern void openais_timer_lock (void);
|
||||
extern void corosync_timer_lock (void);
|
||||
|
||||
extern void openais_timer_unlock (void);
|
||||
extern void corosync_timer_unlock (void);
|
||||
|
||||
#endif /* TIMER_H_DEFINED */
|
||||
|
@ -43,7 +43,7 @@
|
||||
#include <string.h>
|
||||
#include <sys/param.h>
|
||||
|
||||
#include <corosync/list.h>
|
||||
#include "../include/list.h"
|
||||
|
||||
#ifndef HZ
|
||||
#define HZ 100 /* 10ms */
|
||||
|
@ -46,15 +46,13 @@
|
||||
#include <arpa/inet.h>
|
||||
#include <sys/param.h>
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/totem/totem.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/config.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
|
||||
#include "swab.h"
|
||||
#include "list.h"
|
||||
#include "util.h"
|
||||
#include "totem.h"
|
||||
#include "totemconfig.h"
|
||||
#include "logsys.h"
|
||||
#include "objdb.h"
|
||||
#include "tlist.h" /* for HZ */
|
||||
|
||||
#define TOKEN_RETRANSMITS_BEFORE_LOSS_CONST 4
|
||||
|
@ -32,18 +32,17 @@
|
||||
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#include <netinet/in.h>
|
||||
#include "../include/saAis.h"
|
||||
#include "../include/list.h"
|
||||
#include "coropoll.h"
|
||||
#include "totemsrp.h"
|
||||
#include "totempg.h"
|
||||
#include "objdb.h"
|
||||
|
||||
#ifndef TOTEMCONFIG_H_DEFINED
|
||||
#define TOTEMCONFIG_H_DEFINED
|
||||
|
||||
#include <netinet/in.h>
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
|
||||
#include "totemsrp.h"
|
||||
|
||||
extern int totem_config_read (
|
||||
struct objdb_iface_ver0 *objdb,
|
||||
struct totem_config *totem_config,
|
||||
|
@ -66,8 +66,8 @@
|
||||
#define s6_addr16 __u6_addr.__u6_addr16
|
||||
#endif
|
||||
|
||||
#include <corosync/totem/totemip.h>
|
||||
#include <corosync/swab.h>
|
||||
#include "totemip.h"
|
||||
#include "swab.h"
|
||||
|
||||
#define LOCALHOST_IPV4 "127.0.0.1"
|
||||
#define LOCALHOST_IPV6 "::1"
|
||||
@ -167,7 +167,6 @@ int totemip_compare(const void *a, const void *b)
|
||||
*/
|
||||
assert (0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* Build a localhost totem_ip_address */
|
||||
|
@ -54,10 +54,9 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/poll.h>
|
||||
|
||||
#include <corosync/totem/totem.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
|
||||
#include "totem.h"
|
||||
#include "totemsrp.h"
|
||||
#include "coropoll.h"
|
||||
|
||||
totemsrp_handle totemsrp_handle_in;
|
||||
|
||||
|
@ -35,7 +35,7 @@
|
||||
#ifndef TOTEMMRP_H_DEFINED
|
||||
#define TOTEMMRP_H_DEFINED
|
||||
|
||||
#include <corosync/totem/totem.h>
|
||||
#include "totem.h"
|
||||
|
||||
/*
|
||||
* Totem Single Ring Protocol
|
||||
|
@ -56,14 +56,14 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/poll.h>
|
||||
|
||||
#include <corosync/queue.h>
|
||||
#include <corosync/sq.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/hdb.h>
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include "coropoll.h"
|
||||
#include "totemnet.h"
|
||||
#include "wthread.h"
|
||||
#include "../include/queue.h"
|
||||
#include "../include/sq.h"
|
||||
#include "../include/list.h"
|
||||
#include "../include/hdb.h"
|
||||
#include "swab.h"
|
||||
|
||||
#include "crypto.h"
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <corosync/totem/totem.h>
|
||||
#include "totem.h"
|
||||
|
||||
typedef unsigned int totemnet_handle;
|
||||
|
||||
|
@ -91,14 +91,13 @@
|
||||
#include <pthread.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/hdb.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include <corosync/totem/totempg.h>
|
||||
|
||||
#include "../include/hdb.h"
|
||||
#include "../include/list.h"
|
||||
#include "coropoll.h"
|
||||
#include "totempg.h"
|
||||
#include "totemmrp.h"
|
||||
#include "totemsrp.h"
|
||||
#include "swab.h"
|
||||
|
||||
#define min(a,b) ((a) < (b)) ? a : b
|
||||
|
||||
|
@ -56,13 +56,12 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/poll.h>
|
||||
|
||||
#include <corosync/queue.h>
|
||||
#include <corosync/sq.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/hdb.h>
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
|
||||
#include "../include/queue.h"
|
||||
#include "../include/sq.h"
|
||||
#include "../include/list.h"
|
||||
#include "../include/hdb.h"
|
||||
#include "swab.h"
|
||||
#include "coropoll.h"
|
||||
#include "totemnet.h"
|
||||
#include "totemrrp.h"
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
#include <corosync/totem/totem.h>
|
||||
#include "totem.h"
|
||||
|
||||
typedef unsigned int totemrrp_handle;
|
||||
|
||||
|
@ -69,15 +69,15 @@
|
||||
#include <sys/time.h>
|
||||
#include <sys/poll.h>
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/queue.h>
|
||||
#include <corosync/sq.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/hdb.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include "coropoll.h"
|
||||
#include "totemsrp.h"
|
||||
#include "totemrrp.h"
|
||||
#include "wthread.h"
|
||||
#include "../include/queue.h"
|
||||
#include "../include/sq.h"
|
||||
#include "../include/list.h"
|
||||
#include "../include/hdb.h"
|
||||
#include "swab.h"
|
||||
|
||||
#include "crypto.h"
|
||||
|
||||
@ -691,7 +691,7 @@ int totemsrp_initialize (
|
||||
|
||||
rundir = getenv ("OPENAIS_RUN_DIR");
|
||||
if (rundir == NULL) {
|
||||
rundir = "/var/lib/openais";
|
||||
rundir = "/var/lib/corosync";
|
||||
}
|
||||
|
||||
res = mkdir (rundir, 0700);
|
||||
|
@ -35,8 +35,8 @@
|
||||
#ifndef TOTEMSRP_H_DEFINED
|
||||
#define TOTEMSRP_H_DEFINED
|
||||
|
||||
#include <corosync/totem/totem.h>
|
||||
#include <corosync/totem/coropoll.h>
|
||||
#include "totem.h"
|
||||
#include "coropoll.h"
|
||||
|
||||
typedef unsigned int totemsrp_handle;
|
||||
|
||||
|
@ -39,10 +39,10 @@
|
||||
#include <errno.h>
|
||||
#include <sys/time.h>
|
||||
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/list.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
#include "../include/saAis.h"
|
||||
#include "../include/list.h"
|
||||
#include "util.h"
|
||||
#include "logsys.h"
|
||||
|
||||
LOGSYS_DECLARE_SUBSYS ("MAIN", LOG_INFO);
|
||||
|
||||
@ -77,7 +77,7 @@ SaTimeT clust_time_now(void)
|
||||
}
|
||||
|
||||
|
||||
void _openais_exit_error (
|
||||
void _corosync_exit_error (
|
||||
enum e_ais_done err, const char *file, unsigned int line)
|
||||
{
|
||||
log_printf (LOG_LEVEL_ERROR, "AIS Executive exiting "
|
||||
|
@ -34,10 +34,9 @@
|
||||
*/
|
||||
#ifndef UTIL_H_DEFINED
|
||||
#define UTIL_H_DEFINED
|
||||
|
||||
#include <sys/time.h>
|
||||
#include <corosync/mar_gen.h>
|
||||
#include <corosync/saAis.h>
|
||||
#include "../include/mar_gen.h"
|
||||
#include "../include/saAis.h"
|
||||
|
||||
/*
|
||||
* Get the time of day and convert to nanoseconds
|
||||
@ -68,8 +67,8 @@ enum e_ais_done {
|
||||
*/
|
||||
extern int name_match(SaNameT *name1, SaNameT *name2);
|
||||
extern int mar_name_match(mar_name_t *name1, mar_name_t *name2);
|
||||
#define openais_exit_error(err) _openais_exit_error ((err), __FILE__, __LINE__)
|
||||
extern void _openais_exit_error (
|
||||
#define corosync_exit_error(err) _corosync_exit_error ((err), __FILE__, __LINE__)
|
||||
extern void _corosync_exit_error (
|
||||
enum e_ais_done err, const char *file, unsigned int line);
|
||||
extern char *getSaNameT (SaNameT *name);
|
||||
extern char *strstr_rs (const char *haystack, const char *needle);
|
||||
|
@ -34,7 +34,7 @@
|
||||
#ifndef VSF_H_DEFINED
|
||||
#define VSF_H_DEFINED
|
||||
|
||||
struct openais_vsf_iface_ver0 {
|
||||
struct corosync_vsf_iface_ver0 {
|
||||
|
||||
/*
|
||||
* Executes a callback whenever component changes
|
||||
|
@ -55,12 +55,11 @@
|
||||
#include <sched.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <corosync/engine/logsys.h>
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/lcr/lcr_comp.h>
|
||||
|
||||
#include "main.h"
|
||||
#include "logsys.h"
|
||||
#include "swab.h"
|
||||
#include "vsf.h"
|
||||
#include "../lcr/lcr_comp.h"
|
||||
|
||||
LOGSYS_DECLARE_SUBSYS ("YKD", LOG_INFO);
|
||||
|
||||
@ -532,14 +531,14 @@ static int ykd_primary (void) {
|
||||
/*
|
||||
* lcrso object definition
|
||||
*/
|
||||
static struct openais_vsf_iface_ver0 vsf_ykd_iface_ver0 = {
|
||||
static struct corosync_vsf_iface_ver0 vsf_ykd_iface_ver0 = {
|
||||
.init = ykd_init,
|
||||
.primary = ykd_primary
|
||||
};
|
||||
|
||||
static struct lcr_iface openais_vsf_ykd_ver0[1] = {
|
||||
static struct lcr_iface corosync_vsf_ykd_ver0[1] = {
|
||||
{
|
||||
.name = "openais_vsf_ykd",
|
||||
.name = "corosync_vsf_ykd",
|
||||
.version = 0,
|
||||
.versions_replace = 0,
|
||||
.versions_replace_count = 0,
|
||||
@ -553,7 +552,7 @@ static struct lcr_iface openais_vsf_ykd_ver0[1] = {
|
||||
|
||||
static struct lcr_comp vsf_ykd_comp_ver0 = {
|
||||
.iface_count = 1,
|
||||
.ifaces = openais_vsf_ykd_ver0
|
||||
.ifaces = corosync_vsf_ykd_ver0
|
||||
};
|
||||
|
||||
__attribute__ ((constructor)) static void vsf_ykd_comp_register (void) {
|
||||
|
@ -40,9 +40,8 @@
|
||||
#include <stdlib.h>
|
||||
#include <pthread.h>
|
||||
#include <errno.h>
|
||||
#include <corosync/queue.h>
|
||||
|
||||
#include "wthread.h"
|
||||
#include "../include/queue.h"
|
||||
|
||||
struct thread_data {
|
||||
void *thread_state;
|
||||
|
@ -1,6 +1,6 @@
|
||||
#!/bin/sh
|
||||
#
|
||||
# openais Start the openais cluster service
|
||||
# corosync Start the corosync cluster service
|
||||
#
|
||||
# Author: Andrew Beekhof <abeekhof@suse.de>
|
||||
# License: Revised BSD
|
||||
@ -10,10 +10,10 @@
|
||||
# description: OpenAIS daemon
|
||||
#
|
||||
### BEGIN INIT INFO
|
||||
# Description: openais....
|
||||
# Description: corosync....
|
||||
#
|
||||
# Short-Description: openais cluster services.
|
||||
# Provides: openais
|
||||
# Short-Description: corosync cluster services.
|
||||
# Provides: corosync
|
||||
# Required-Start: $network
|
||||
# Should-Start: $syslog
|
||||
# Required-Stop: $network
|
||||
|
@ -26,6 +26,7 @@
|
||||
#
|
||||
include ../Makefile.inc
|
||||
|
||||
override CFLAGS += -I../include -DLCRSODIR='"$(LCRSODIR)"'
|
||||
override LDFLAGS += -L./ ${DYFLAGS}
|
||||
|
||||
ifeq (${OPENAIS_COMPAT}, LINUX)
|
||||
|
@ -4,7 +4,7 @@ All software is composed of components, which contain multiple software classes.
|
||||
Components generally depend upon other components and sometimes classes from
|
||||
other components.
|
||||
|
||||
Some components of openais are the evt service, the ckpt service, the clm
|
||||
Some components of corosync are the evt service, the ckpt service, the clm
|
||||
service, the totem protocol, and others. If a defect is found in any of
|
||||
these components, the entire ais executive must be stopped, replaced, and
|
||||
restarted.
|
||||
|
@ -38,9 +38,9 @@
|
||||
#ifdef OPENAIS_SOLARIS
|
||||
#include <iso/limits_iso.h>
|
||||
#endif
|
||||
#include <corosync/lcr/lcr_comp.h>
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include <corosync/hdb.h>
|
||||
#include "lcr_comp.h"
|
||||
#include "lcr_ifact.h"
|
||||
#include "../include/hdb.h"
|
||||
#include <stdlib.h>
|
||||
|
||||
struct lcr_component_instance {
|
||||
|
@ -28,7 +28,7 @@
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <corosync/lcr/lcr_comp.h>
|
||||
#include "lcr_comp.h"
|
||||
|
||||
/*
|
||||
* Version 0 of the interface
|
||||
|
@ -28,7 +28,7 @@
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <corosync/lcr/lcr_comp.h>
|
||||
#include "lcr_comp.h"
|
||||
|
||||
/*
|
||||
* Version 0 of the interface
|
||||
|
@ -29,7 +29,7 @@
|
||||
*/
|
||||
#include <assert.h>
|
||||
#include <unistd.h>
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include "lcr_ifact.h"
|
||||
|
||||
struct iface {
|
||||
void (*func1) (void);
|
||||
|
@ -35,6 +35,7 @@ subdir ?= lib/
|
||||
|
||||
include $(srcdir)Makefile.inc
|
||||
|
||||
|
||||
override LDFLAGS += -L./
|
||||
|
||||
all: libcpg.a libcpg.so.2.0.0 \
|
||||
@ -58,7 +59,7 @@ libevs.so.2.0.0: util.o evs.o
|
||||
libcpg.so.2.0.0: util.o cpg.o
|
||||
$(CC) $(DARWIN_OPTS) util.o cpg.o -o $@
|
||||
|
||||
libconfdb.so.2.0.0: util.o confdb.o sa-confdb.o
|
||||
libconfdb.so.2.0.0: util.o confdb.o sa-confdb.o ../lcr/lcr_ifact.o
|
||||
$(CC) $(LDFLAGS) $(DARWIN_OPTS) util.o confdb.o sa-confdb.o ../lcr/lcr_ifact.o -o $@
|
||||
|
||||
libcfg.so.2.0.0: util.o cfg.o
|
||||
@ -78,7 +79,7 @@ libevs.so.2.0.0: util.o evs.o
|
||||
libcpg.so.2.0.0: util.o cpg.o
|
||||
$(CC) -shared -Wl,-soname,libcpg.so.2,-version-script=$(srcdir)$(subdir)libcpg.versions util.o cpg.o -o $@
|
||||
|
||||
libconfdb.so.2.0.0: util.o confdb.o sa-confdb.o
|
||||
libconfdb.so.2.0.0: util.o confdb.o sa-confdb.o ../lcr/lcr_ifact.o
|
||||
$(CC) $(LDFLAGS) -shared -Wl,-soname,libconfdb.so.2,-version-script=$(srcdir)$(subdir)libconfdb.versions util.o confdb.o sa-confdb.o ../lcr/lcr_ifact.o -o $@
|
||||
|
||||
libcfg.so.2.0.0: util.o cfg.o
|
||||
|
68
lib/cfg.c
68
lib/cfg.c
@ -45,12 +45,12 @@
|
||||
#include <sys/select.h>
|
||||
#include <sys/un.h>
|
||||
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/cfg.h>
|
||||
#include <corosync/mar_gen.h>
|
||||
#include <corosync/ipc_gen.h>
|
||||
#include <corosync/ipc_cfg.h>
|
||||
#include <corosync/ais_util.h>
|
||||
#include <saAis.h>
|
||||
#include <cfg.h>
|
||||
#include <mar_gen.h>
|
||||
#include <ipc_gen.h>
|
||||
#include <ipc_cfg.h>
|
||||
#include <ais_util.h>
|
||||
|
||||
struct res_overlay {
|
||||
mar_res_header_t header;
|
||||
@ -95,8 +95,8 @@ void cfg_handleInstanceDestructor (void *instance)
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_initialize (
|
||||
openais_cfg_handle_t *cfg_handle,
|
||||
corosync_cfg_initialize (
|
||||
corosync_cfg_handle_t *cfg_handle,
|
||||
const OpenaisCfgCallbacksT *cfgCallbacks)
|
||||
{
|
||||
struct cfg_instance *cfg_instance;
|
||||
@ -143,8 +143,8 @@ error_no_destroy:
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_fd_get (
|
||||
openais_cfg_handle_t cfg_handle,
|
||||
corosync_cfg_fd_get (
|
||||
corosync_cfg_handle_t cfg_handle,
|
||||
SaSelectionObjectT *selectionObject)
|
||||
{
|
||||
struct cfg_instance *cfg_instance;
|
||||
@ -162,8 +162,8 @@ openais_cfg_fd_get (
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_dispatch (
|
||||
openais_cfg_handle_t cfg_handle,
|
||||
corosync_cfg_dispatch (
|
||||
corosync_cfg_handle_t cfg_handle,
|
||||
SaDispatchFlagsT dispatchFlags)
|
||||
{
|
||||
struct pollfd ufds;
|
||||
@ -173,10 +173,10 @@ openais_cfg_dispatch (
|
||||
int dispatch_avail;
|
||||
struct cfg_instance *cfg_instance;
|
||||
#ifdef COMPILE_OUT
|
||||
struct res_lib_openais_healthcheckcallback *res_lib_openais_healthcheckcallback;
|
||||
struct res_lib_openais_readinessstatesetcallback *res_lib_openais_readinessstatesetcallback;
|
||||
struct res_lib_openais_csisetcallback *res_lib_openais_csisetcallback;
|
||||
struct res_lib_openais_csiremovecallback *res_lib_openais_csiremovecallback;
|
||||
struct res_lib_corosync_healthcheckcallback *res_lib_corosync_healthcheckcallback;
|
||||
struct res_lib_corosync_readinessstatesetcallback *res_lib_corosync_readinessstatesetcallback;
|
||||
struct res_lib_corosync_csisetcallback *res_lib_corosync_csisetcallback;
|
||||
struct res_lib_corosync_csiremovecallback *res_lib_corosync_csiremovecallback;
|
||||
struct res_lib_cfg_statetrackcallback *res_lib_cfg_statetrackcallback;
|
||||
#endif
|
||||
OpenaisCfgCallbacksT callbacks;
|
||||
@ -295,8 +295,8 @@ error_nounlock:
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_finalize (
|
||||
openais_cfg_handle_t cfg_handle)
|
||||
corosync_cfg_finalize (
|
||||
corosync_cfg_handle_t cfg_handle)
|
||||
{
|
||||
struct cfg_instance *cfg_instance;
|
||||
SaAisErrorT error;
|
||||
@ -347,8 +347,8 @@ openais_cfg_finalize (
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_ring_status_get (
|
||||
openais_cfg_handle_t cfg_handle,
|
||||
corosync_cfg_ring_status_get (
|
||||
corosync_cfg_handle_t cfg_handle,
|
||||
char ***interface_names,
|
||||
char ***status,
|
||||
unsigned int *interface_count)
|
||||
@ -427,8 +427,8 @@ no_error:
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_ring_reenable (
|
||||
openais_cfg_handle_t cfg_handle)
|
||||
corosync_cfg_ring_reenable (
|
||||
corosync_cfg_handle_t cfg_handle)
|
||||
{
|
||||
struct cfg_instance *cfg_instance;
|
||||
struct req_lib_cfg_ringreenable req_lib_cfg_ringreenable;
|
||||
@ -458,8 +458,8 @@ openais_cfg_ring_reenable (
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_service_load (
|
||||
openais_cfg_handle_t cfg_handle,
|
||||
corosync_cfg_service_load (
|
||||
corosync_cfg_handle_t cfg_handle,
|
||||
char *service_name,
|
||||
unsigned int service_ver)
|
||||
{
|
||||
@ -496,8 +496,8 @@ openais_cfg_service_load (
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_service_unload (
|
||||
openais_cfg_handle_t cfg_handle,
|
||||
corosync_cfg_service_unload (
|
||||
corosync_cfg_handle_t cfg_handle,
|
||||
char *service_name,
|
||||
unsigned int service_ver)
|
||||
{
|
||||
@ -533,8 +533,8 @@ openais_cfg_service_unload (
|
||||
return (error);
|
||||
}
|
||||
SaAisErrorT
|
||||
openais_cfg_state_track (
|
||||
openais_cfg_handle_t cfg_handle,
|
||||
corosync_cfg_state_track (
|
||||
corosync_cfg_handle_t cfg_handle,
|
||||
SaUint8T trackFlags,
|
||||
const OpenaisCfgStateNotificationT *notificationBuffer)
|
||||
{
|
||||
@ -570,8 +570,8 @@ openais_cfg_state_track (
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_state_track_stop (
|
||||
openais_cfg_handle_t cfg_handle)
|
||||
corosync_cfg_state_track_stop (
|
||||
corosync_cfg_handle_t cfg_handle)
|
||||
{
|
||||
struct cfg_instance *cfg_instance;
|
||||
struct req_lib_cfg_statetrackstop req_lib_cfg_statetrackstop;
|
||||
@ -603,8 +603,8 @@ openais_cfg_state_track_stop (
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_admin_state_get (
|
||||
openais_cfg_handle_t cfg_handle,
|
||||
corosync_cfg_admin_state_get (
|
||||
corosync_cfg_handle_t cfg_handle,
|
||||
OpenaisCfgAdministrativeTargetT administrativeTarget,
|
||||
OpenaisCfgAdministrativeStateT *administrativeState)
|
||||
{
|
||||
@ -639,8 +639,8 @@ openais_cfg_admin_state_get (
|
||||
}
|
||||
|
||||
SaAisErrorT
|
||||
openais_cfg_admin_state_set (
|
||||
openais_cfg_handle_t cfg_handle,
|
||||
corosync_cfg_admin_state_set (
|
||||
corosync_cfg_handle_t cfg_handle,
|
||||
OpenaisCfgAdministrativeTargetT administrativeTarget,
|
||||
OpenaisCfgAdministrativeStateT administrativeState)
|
||||
{
|
||||
|
70
lib/confdb.c
70
lib/confdb.c
@ -32,7 +32,7 @@
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*
|
||||
* Provides access to data in the openais object database
|
||||
* Provides access to data in the corosync object database
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
@ -42,12 +42,12 @@
|
||||
#include <sys/types.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/confdb.h>
|
||||
#include <corosync/ipc_confdb.h>
|
||||
#include <corosync/mar_gen.h>
|
||||
#include <corosync/ais_util.h>
|
||||
#include <corosync/list.h>
|
||||
#include <saAis.h>
|
||||
#include <confdb.h>
|
||||
#include <ipc_confdb.h>
|
||||
#include <mar_gen.h>
|
||||
#include <ais_util.h>
|
||||
#include <list.h>
|
||||
|
||||
#include "sa-confdb.h"
|
||||
|
||||
@ -125,8 +125,8 @@ static struct iter_context *find_iter_context(struct list_head *list, unsigned i
|
||||
}
|
||||
|
||||
/**
|
||||
* @defgroup confdb_openais
|
||||
* @ingroup openais
|
||||
* @defgroup confdb_corosync
|
||||
* @ingroup corosync
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
@ -1219,58 +1219,6 @@ error_exit:
|
||||
return (error);
|
||||
}
|
||||
|
||||
confdb_error_t confdb_reload (
|
||||
confdb_handle_t handle,
|
||||
int flush,
|
||||
char *error_text)
|
||||
{
|
||||
confdb_error_t error;
|
||||
struct confdb_inst *confdb_inst;
|
||||
struct iovec iov[2];
|
||||
struct res_lib_confdb_reload res_lib_confdb_reload;
|
||||
struct req_lib_confdb_reload req_lib_confdb_reload;
|
||||
|
||||
error = saHandleInstanceGet (&confdb_handle_t_db, handle, (void *)&confdb_inst);
|
||||
if (error != SA_AIS_OK) {
|
||||
return (error);
|
||||
}
|
||||
|
||||
if (confdb_inst->standalone) {
|
||||
error = SA_AIS_OK;
|
||||
|
||||
if (confdb_sa_reload(flush, error_text))
|
||||
error = SA_AIS_ERR_ACCESS;
|
||||
goto error_exit;
|
||||
}
|
||||
|
||||
req_lib_confdb_reload.header.size = sizeof (req_lib_confdb_reload);
|
||||
req_lib_confdb_reload.header.id = MESSAGE_REQ_CONFDB_RELOAD;
|
||||
req_lib_confdb_reload.flush = flush;
|
||||
|
||||
iov[0].iov_base = (char *)&req_lib_confdb_reload;
|
||||
iov[0].iov_len = sizeof (req_lib_confdb_reload);
|
||||
|
||||
pthread_mutex_lock (&confdb_inst->response_mutex);
|
||||
|
||||
error = saSendMsgReceiveReply (confdb_inst->response_fd, iov, 1,
|
||||
&res_lib_confdb_reload, sizeof (struct res_lib_confdb_reload));
|
||||
|
||||
pthread_mutex_unlock (&confdb_inst->response_mutex);
|
||||
|
||||
if (error != SA_AIS_OK) {
|
||||
goto error_exit;
|
||||
}
|
||||
|
||||
error = res_lib_confdb_reload.header.error;
|
||||
if(res_lib_confdb_reload.error.length)
|
||||
memcpy(error_text, res_lib_confdb_reload.error.value, res_lib_confdb_reload.error.length);
|
||||
|
||||
error_exit:
|
||||
saHandleInstancePut (&confdb_handle_t_db, handle);
|
||||
|
||||
return (error);
|
||||
}
|
||||
|
||||
confdb_error_t confdb_track_changes (
|
||||
confdb_handle_t handle,
|
||||
unsigned int object_handle,
|
||||
|
16
lib/cpg.c
16
lib/cpg.c
@ -34,7 +34,7 @@
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*
|
||||
* Provides a closed process group API using the openais executive
|
||||
* Provides a closed process group API using the corosync executive
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
@ -45,11 +45,11 @@
|
||||
#include <sys/socket.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/cpg.h>
|
||||
#include <corosync/ipc_cpg.h>
|
||||
#include <corosync/mar_cpg.h>
|
||||
#include <corosync/ais_util.h>
|
||||
#include <saAis.h>
|
||||
#include <cpg.h>
|
||||
#include <ipc_cpg.h>
|
||||
#include <mar_cpg.h>
|
||||
#include <ais_util.h>
|
||||
|
||||
struct cpg_inst {
|
||||
int response_fd;
|
||||
@ -84,8 +84,8 @@ static void cpg_instance_destructor (void *instance)
|
||||
|
||||
|
||||
/**
|
||||
* @defgroup cpg_openais The closed process group API
|
||||
* @ingroup openais
|
||||
* @defgroup cpg_corosync The closed process group API
|
||||
* @ingroup corosync
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
18
lib/evs.c
18
lib/evs.c
@ -35,7 +35,7 @@
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*
|
||||
* Provides an extended virtual synchrony API using the openais executive
|
||||
* Provides an extended virtual synchrony API using the corosync executive
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
@ -46,12 +46,12 @@
|
||||
#include <sys/socket.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <corosync/swab.h>
|
||||
#include <corosync/totem/totem.h>
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/evs.h>
|
||||
#include <corosync/ipc_evs.h>
|
||||
#include <corosync/ais_util.h>
|
||||
#include <swab.h>
|
||||
#include "../exec/totem.h"
|
||||
#include <saAis.h>
|
||||
#include <evs.h>
|
||||
#include <ipc_evs.h>
|
||||
#include <ais_util.h>
|
||||
|
||||
struct evs_inst {
|
||||
int response_fd;
|
||||
@ -89,8 +89,8 @@ static void evs_instance_destructor (void *instance)
|
||||
|
||||
|
||||
/**
|
||||
* @defgroup evs_openais The extended virtual synchrony passthrough API
|
||||
* @ingroup openais
|
||||
* @defgroup evs_corosync The extended virtual synchrony passthrough API
|
||||
* @ingroup corosync
|
||||
*
|
||||
* @{
|
||||
*/
|
||||
|
@ -2,18 +2,18 @@
|
||||
|
||||
OPENAIS_CFG_0.82 {
|
||||
global:
|
||||
openais_cfg_initialize;
|
||||
openais_cfg_fd_get;
|
||||
openais_cfg_dispatch;
|
||||
openais_cfg_finalize;
|
||||
openais_cfg_administrative_state_get;
|
||||
openais_cfg_administrative_state_set;
|
||||
openais_cfg_track;
|
||||
openais_cfg_track_stop;
|
||||
openais_cfg_ring_status_get;
|
||||
openais_cfg_ring_reenable;
|
||||
openais_cfg_service_load;
|
||||
openais_cfg_service_unload;
|
||||
corosync_cfg_initialize;
|
||||
corosync_cfg_fd_get;
|
||||
corosync_cfg_dispatch;
|
||||
corosync_cfg_finalize;
|
||||
corosync_cfg_administrative_state_get;
|
||||
corosync_cfg_administrative_state_set;
|
||||
corosync_cfg_track;
|
||||
corosync_cfg_track_stop;
|
||||
corosync_cfg_ring_status_get;
|
||||
corosync_cfg_ring_reenable;
|
||||
corosync_cfg_service_load;
|
||||
corosync_cfg_service_unload;
|
||||
|
||||
|
||||
local:
|
||||
|
@ -32,7 +32,7 @@
|
||||
* THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*/
|
||||
/*
|
||||
* Provides stand-alone access to data in the openais object database
|
||||
* Provides stand-alone access to data in the corosync object database
|
||||
* when aisexec is not running.
|
||||
*/
|
||||
|
||||
@ -43,13 +43,13 @@
|
||||
#include <sys/types.h>
|
||||
#include <errno.h>
|
||||
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/ais_util.h>
|
||||
#include <corosync/engine/objdb.h>
|
||||
#include <corosync/engine/config.h>
|
||||
#include <corosync/engine/logsys.h>
|
||||
#include <corosync/lcr/lcr_comp.h>
|
||||
#include <corosync/lcr/lcr_ifact.h>
|
||||
#include <saAis.h>
|
||||
#include <ais_util.h>
|
||||
#include "../exec/objdb.h"
|
||||
#include "../exec/config.h"
|
||||
#include "../lcr/lcr_comp.h"
|
||||
#include "../lcr/lcr_ifact.h"
|
||||
#include "../exec/logsys.h"
|
||||
|
||||
static struct objdb_iface_ver0 *objdb;
|
||||
|
||||
@ -95,9 +95,9 @@ static int load_config()
|
||||
char *error_string;
|
||||
|
||||
/* User's bootstrap config service */
|
||||
config_iface = getenv("COROSYNC_DEFAULT_CONFIG_IFACE");
|
||||
config_iface = getenv("OPENAIS_DEFAULT_CONFIG_IFACE");
|
||||
if (!config_iface) {
|
||||
config_iface = "corosync_parser";
|
||||
config_iface = "aisparser";
|
||||
}
|
||||
|
||||
/* Make a copy so we can deface it with strtok */
|
||||
@ -296,20 +296,6 @@ int confdb_sa_write (
|
||||
return ret;
|
||||
}
|
||||
|
||||
int confdb_sa_reload (
|
||||
unsigned int parent_object_handle,
|
||||
int flush,
|
||||
char *error_text)
|
||||
{
|
||||
char *errtext;
|
||||
int ret;
|
||||
|
||||
ret = objdb->object_reload_config(flush, &errtext);
|
||||
if (!ret)
|
||||
strcpy(error_text, errtext);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
int confdb_sa_object_iter (
|
||||
unsigned int parent_object_handle,
|
||||
|
@ -44,4 +44,3 @@ extern int confdb_sa_object_find(unsigned int parent_object_handle, unsigned int
|
||||
extern int confdb_sa_object_iter(unsigned int parent_object_handle, unsigned int start_pos, unsigned int *object_handle, void *object_name, int *object_name_len);
|
||||
extern int confdb_sa_key_iter(unsigned int parent_object_handle, unsigned int start_pos, void *key_name, int *key_name_len, void *value, int *value_len);
|
||||
extern int confdb_sa_write(char *error_text);
|
||||
extern int confdb_sa_reload(int flush, char *error_text);
|
||||
|
@ -53,9 +53,9 @@
|
||||
#include <netinet/in.h>
|
||||
#include <assert.h>
|
||||
|
||||
#include <corosync/saAis.h>
|
||||
#include <corosync/ipc_gen.h>
|
||||
#include <corosync/ais_util.h>
|
||||
#include <saAis.h>
|
||||
#include <ipc_gen.h>
|
||||
#include <ais_util.h>
|
||||
|
||||
enum SA_HANDLE_STATE {
|
||||
SA_HANDLE_STATE_EMPTY,
|
||||
|
@ -33,8 +33,8 @@ all: html
|
||||
|
||||
html:
|
||||
mkdir html
|
||||
groff -mandoc -Thtml openais_overview.8 > html/openais_overview.html
|
||||
groff -mandoc -Thtml openais.conf.5 > html/openais.conf.html
|
||||
groff -mandoc -Thtml corosync_overview.8 > html/corosync_overview.html
|
||||
groff -mandoc -Thtml corosync.conf.5 > html/corosync.conf.html
|
||||
groff -mandoc -Thtml evs_overview.8 > html/evs_overview.html
|
||||
groff -mandoc -Thtml evs_initialize.3 > html/evs_initialize.html
|
||||
groff -mandoc -Thtml evs_finalize.3 > html/evs_finalize.html
|
||||
|
@ -32,15 +32,15 @@
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
|
||||
.TH AMF.CONF 5 2006-08-29 "openais Man Page"
|
||||
.TH AMF.CONF 5 2006-08-29 "corosync Man Page"
|
||||
|
||||
.SH NAME
|
||||
amf.conf - openais AMF configuration file
|
||||
amf.conf - corosync AMF configuration file
|
||||
|
||||
.SH DESCRIPTION
|
||||
.B amf.conf
|
||||
is the configuration file that determines the behaviour of the AIS Availability
|
||||
Management Framework service, AMF in the openais implementation.
|
||||
Management Framework service, AMF in the corosync implementation.
|
||||
|
||||
Entries in this file will for example determine what applications AMF will start
|
||||
and how to supervise them.
|
||||
@ -106,7 +106,7 @@ The value of the attribute 'saAmfNodeClmNode' should be the hostname (without
|
||||
domain name) as given to the host at boot time. This name is returned by the
|
||||
shell command 'hostname'.
|
||||
|
||||
Currently, AMF is enabled/disabled by an entry in the openais.conf file, see [1].
|
||||
Currently, AMF is enabled/disabled by an entry in the corosync.conf file, see [1].
|
||||
It is default disabled.
|
||||
|
||||
|
||||
@ -246,7 +246,7 @@ Multivalue
|
||||
Hans.Feldt at ericsson.com
|
||||
|
||||
.SH EXAMPLE
|
||||
For an AMF configuration file example, see the amf.conf file under the openais
|
||||
For an AMF configuration file example, see the amf.conf file under the corosync
|
||||
.B conf
|
||||
directory.
|
||||
|
||||
@ -254,12 +254,12 @@ directory.
|
||||
.TP
|
||||
/etc/ais/amf.conf
|
||||
.TP
|
||||
/etc/ais/openais.conf
|
||||
/etc/ais/corosync.conf
|
||||
|
||||
.SH "SEE ALSO"
|
||||
[1] openais_conf (5)
|
||||
[1] corosync_conf (5)
|
||||
.TP
|
||||
[2] openais_overview (8)
|
||||
[2] corosync_overview (8)
|
||||
.TP
|
||||
[3] README.amf
|
||||
.TP
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_DISPATCH 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_DISPATCH 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_dispatch \- Dispatches callbacks from the CONFDB service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "int confdb_dispatch(confdb_handle_t " handle ", confdb_dispatch_t *" dispatch_types ");"
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_FD_GET 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_FD_GET 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_fd_get \- Dispatches callbacks from the CONFDB service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "int confdb_fd_get(confdb_handle_t " handle ", int *" fd ");"
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_FINALIZE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_FINALIZE 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_finalize \- Terminate a connection to the CONFDB service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "int confdb_finalize(confdb_handle_t " handle ");"
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_INITIALIZE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_INITIALIZE 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_initialize \- Create a new connection to the ConfDb service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "int confdb_initialize(confdb_handle_t *" handle ", confdb_callbacks_t *" callbacks ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_KEY_CREATE 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_KEY_CREATE 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_key_create \- Add a new key/value pair to the Configuration Database
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_key_create(confdb_handle_t " handle ",
|
||||
.BI unsigned int " parent_object_handle ",
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_KEY_DELETE 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_KEY_DELETE 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_key_delete \- Delete a key/value pair from the Configuration Database
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_key_delete(confdb_handle_t " handle ",
|
||||
.BI unsigned int " parent_object_handle ",
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_KEY_ITER 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_KEY_ITER 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_key_iter \- Iterate through key/value pairs in the Configuration Database
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_key_iter_start(confdb_handle_t " handle ", unsigned int " parent_object_handle " ); "
|
||||
.sp
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_KEY_REPLACE 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_KEY_REPLACE 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_key_replace \- Replace a key/value pair from the Configuration Database
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_key_replace(confdb_handle_t " handle ", unsigned int " parent_object_handle ", void " *key_name ",
|
||||
.BI int " key_name_len ",
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_OBJECT_CREATE 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_OBJECT_CREATE 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_object_create \- Create a new object in the Configuration Database
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_object_create(confdb_handle_t " handle ", unsigned int " parent_object_handle ",
|
||||
.BI void " *object_name ",
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_* 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_* 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_object_destroy \- Remove an object from the Configuration Database
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_destroy(confdb_handle_t " handle ", unsigned int " object_handle ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_OBJECT_FIND 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_OBJECT_FIND 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_object_find \- Find a named object in the Configuration Database
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_object_find_start(confdb_handle_t " handle ", unsigned int " parent_object_handle " ); "
|
||||
.sp
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_OBJECT_ITER 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_OBJECT_ITER 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_object_iter \- Iterate through objects in the Configuration Database
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_object_iter_start(confdb_handle_t " handle ", unsigned int " parent_object_handle " ); "
|
||||
.sp
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_OBJECT_PARENT_GET 3 2008-04-17 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_OBJECT_PARENT_GET 3 2008-04-17 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
confdb_parent_get \- Configuration Database Object Parent
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/confdb.h>
|
||||
.B #include <corosync/confdb.h>
|
||||
.sp
|
||||
.BI "confdb_error_t confdb_object_parent_get(confdb_handle_t " handle ", unsigned int " object_handle ", unsigned int " *parent_object_handle ");"
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,10 +31,10 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CONFDB_OVERVIEW 8 2006-03-06 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CONFDB_OVERVIEW 8 2006-03-06 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH OVERVIEW
|
||||
The CONFDB library is delivered with the openais project. This library is used
|
||||
to examine manipulate the configuratin databser used by openais.
|
||||
The CONFDB library is delivered with the corosync project. This library is used
|
||||
to examine manipulate the configuratin databser used by corosync.
|
||||
.PP
|
||||
The library provides a mechanism to:
|
||||
* Create new objects
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_CONTEXT_GET 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_CONTEXT_GET 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_context_get \- Gets the context variable for a CPG instance
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_context_get(cpg_handle_t " handle ", void **" context ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_CONTEXT_SET 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_CONTEXT_SET 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_context_set \- Sets the context variable for a CPG instance
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_context_set(cpg_handle_t " handle ", void *" context ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_DISPATCH 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_DISPATCH 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_dispatch \- Dispatches callbacks from the CPG service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_dispatch(cpg_handle_t " handle ", cpg_dispatch_t *" dispatch_types ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_FD_GET 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_FD_GET 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_fd_get \- Dispatches callbacks from the CPG service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_fd_get(cpg_handle_t " handle ", int *" fd ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_FINALIZE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_FINALIZE 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_finalize \- Terminate a connection to the CPG service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_finalize(cpg_handle_t " handle ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_INITIALIZE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_INITIALIZE 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_initialize \- Create a new connection to the CPG service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_initialize(cpg_handle_t *" handle ", cpg_callbacks_t *" callbacks ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_JOIN 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_JOIN 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_join \- Joins one or more groups in the CPG library
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_join(cpg_handle_t " handle ", struct cpg_name *" group ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_LEAVE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_LEAVE 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_leave \- Leave a group in the CPG library
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_leave(cpg_handle_t " handle ", struct cpg_name *" group ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_LOCAL_GET 3 2007-06-12 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_LOCAL_GET 3 2007-06-12 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_local_get \- Returns the local processor id
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_local_get(cpg_handle_t " handle ", unsigned int *" local_nodeid ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,12 +31,12 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_MCAST_JOINED 3 3004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_MCAST_JOINED 3 3004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_mcast_joined \- Multicasts to all groups joined to a handle
|
||||
.SH SYNOPSIS
|
||||
.B #include <sys/uio.h>
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_mcast_joined(cpg_handle_t " handle ", cpg_gurantee_t " guarantee ", struct iovec *" iovec ", int " iov_len ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_MEMBERSHIP_GET 3 2006-02-06 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_MEMBERSHIP_GET 3 2006-02-06 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
cpg_membership_get \- Returns a list of members of a CPG library group
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/cpg.h>
|
||||
.B #include <corosync/cpg.h>
|
||||
.sp
|
||||
.BI "int cpg_membership_get(cpg_handle_t " handle ", struct cpg_name *" groupName ", struct cpg_address *" member_list ", int *" member_list_entries ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,9 +31,9 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH CPG_OVERVIEW 8 2006-03-06 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH CPG_OVERVIEW 8 2006-03-06 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH OVERVIEW
|
||||
The CPG library is delivered with the openais project. This library is used
|
||||
The CPG library is delivered with the corosync project. This library is used
|
||||
to create distributed applications that operate properly during partitions, merges,
|
||||
and faults.
|
||||
.PP
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH EVS_DISPATCH 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH EVS_DISPATCH 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_dispatch \- Dispatches callbacks from the EVS service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.B #include <corosync/evs.h>
|
||||
.sp
|
||||
.BI "int evs_dispatch(evs_handle_t " handle ", evs_dispatch_t *" dispatch_types ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH EVS_FD_GET 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH EVS_FD_GET 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_fd_get \- Dispatches callbacks from the EVS service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.B #include <corosync/evs.h>
|
||||
.sp
|
||||
.BI "int evs_fd_get(evs_handle_t " handle ", int *" fd ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH EVS_FINALIZE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH EVS_FINALIZE 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_finalize \- Terminate a connection to the EVS service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.B #include <corosync/evs.h>
|
||||
.sp
|
||||
.BI "int evs_finalize(evs_handle_t " handle ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH EVS_INITIALIZE 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH EVS_INITIALIZE 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_initialize \- Create a new connection to the EVS service
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.B #include <corosync/evs.h>
|
||||
.sp
|
||||
.BI "int evs_initialize(evs_handle_t *" handle ", evs_callbacks_t *" callbacks ");
|
||||
.SH DESCRIPTION
|
||||
|
@ -31,11 +31,11 @@
|
||||
.\" * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
|
||||
.\" * THE POSSIBILITY OF SUCH DAMAGE.
|
||||
.\" */
|
||||
.TH EVS_JOIN 3 2004-08-31 "openais Man Page" "Openais Programmer's Manual"
|
||||
.TH EVS_JOIN 3 2004-08-31 "corosync Man Page" "Openais Programmer's Manual"
|
||||
.SH NAME
|
||||
evs_join \- Joins one or more groups in the EVS library
|
||||
.SH SYNOPSIS
|
||||
.B #include <openais/evs.h>
|
||||
.B #include <corosync/evs.h>
|
||||
.sp
|
||||
.BI "int evs_join(evs_handle_t " handle ", evs_group_t *" groups ", int " group_entries ");
|
||||
.SH DESCRIPTION
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user