With LCR patch everything seems working, so we can say goodbye openaisparser.
Regards, Honza
commit 2c03e74d87038cf2ebd0b73228f8153986131b6f Author: Jan Friesse <[email protected]> Date: Thu May 14 16:02:33 2009 +0200 Support for corosync parser only diff --git a/trunk/Makefile.am b/trunk/Makefile.am index 851961b..ad7c39b 100644 --- a/trunk/Makefile.am +++ b/trunk/Makefile.am @@ -30,7 +30,6 @@ # THE POSSIBILITY OF SUCH DAMAGE. EXTRA_DIST = autogen.sh \ - conf/openais.conf.example \ conf/amf.conf.example AUTOMAKE_OPTIONS = foreign @@ -41,8 +40,7 @@ MAINTAINERCLEANFILES = Makefile.in aclocal.m4 configure depcomp \ dist_doc_DATA = LICENSE README.amf AUTHORS -sysconf_DATA = conf/openais.conf.example \ - conf/amf.conf.example +sysconf_DATA = conf/amf.conf.example SUBDIRS = include lib services test pkgconfig man # init diff --git a/trunk/configure.ac b/trunk/configure.ac index 02bd770..5246d2d 100644 --- a/trunk/configure.ac +++ b/trunk/configure.ac @@ -24,7 +24,7 @@ if test "$prefix" = "NONE"; then fi dnl Fix "sysconfdir" variable if not specified if test "$sysconfdir" = "\${prefix}/etc"; then - sysconfdir="/etc/ais" + sysconfdir="/etc/corosync" fi dnl Fix "libdir" variable if not specified if test "$libdir" = "\${exec_prefix}/lib"; then diff --git a/trunk/services/Makefile.am b/trunk/services/Makefile.am index fd438ce..eab3219 100644 --- a/trunk/services/Makefile.am +++ b/trunk/services/Makefile.am @@ -39,11 +39,11 @@ src = amfapp.c amfcluster.c amfnode.c amfsi.c amfutil.c \ SERVICE_LCRSO = clm ckpt evt lck msg tmr -REGULAR_LCRSO = openaisserviceenable openaisparser +REGULAR_LCRSO = openaisserviceenable AMF_OBJECTS = $(src:%.c=%.o) -SOURCES = $(SERVICE_LCRSO:%=%.c) $(src) openaisserviceenable.c openaisparser.c +SOURCES = $(SERVICE_LCRSO:%=%.c) $(src) openaisserviceenable.c EXTRA_DIST = $(SOURCES) aisexec diff --git a/trunk/services/aisexec b/trunk/services/aisexec index 7bf102e..87421db 100755 --- a/trunk/services/aisexec +++ b/trunk/services/aisexec @@ -1,3 +1,3 @@ #!/bin/sh -export COROSYNC_DEFAULT_CONFIG_IFACE="openaisserviceenable:openaisparser" +export COROSYNC_DEFAULT_CONFIG_IFACE="openaisserviceenable:corosync_parser" corosync "$@" diff --git a/trunk/services/openaisparser.c b/trunk/services/openaisparser.c deleted file mode 100644 index 7226f1b..0000000 --- a/trunk/services/openaisparser.c +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright (c) 2006 Red Hat, Inc. - * - * All rights reserved. - * - * Author: Patrick Caulfield ([email protected]) - * - * This software licensed under BSD license, the text of which follows: - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * - Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * - Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - Neither the name of the MontaVista Software, Inc. nor the names of its - * contributors may be used to endorse or promote products derived from this - * software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE - * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR - * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - * 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. - */ -#include <sys/types.h> -#include <sys/uio.h> -#include <sys/socket.h> -#include <sys/un.h> -#include <netinet/in.h> -#include <arpa/inet.h> -#include <unistd.h> -#include <fcntl.h> -#include <stdlib.h> -#include <stdio.h> -#include <errno.h> -#include <signal.h> -#include <string.h> - -#include <corosync/lcr/lcr_comp.h> -#include <corosync/engine/objdb.h> -#include <corosync/engine/config.h> - -static int read_config_file_into_objdb( - struct objdb_iface_ver0 *objdb, - const char **error_string); -static char error_string_response[512]; - -static char *strstr_rs (const char *haystack, const char *needle) -{ - char *end_address; - char *new_needle; - - new_needle = (char *)strdup (needle); - new_needle[strlen (new_needle) - 1] = '\0'; - - end_address = strstr (haystack, new_needle); - if (end_address) { - end_address += strlen (new_needle); - end_address = strstr (end_address, needle + strlen (new_needle)); - } - if (end_address) { - end_address += 1; /* skip past { or = */ - do { - if (*end_address == '\t' || *end_address == ' ') { - end_address++; - } else { - break; - } - } while (*end_address != '\0'); - } - - free (new_needle); - return (end_address); -} - -static int aisparser_readconfig ( - struct objdb_iface_ver0 *objdb, - const char **error_string) -{ - if (read_config_file_into_objdb(objdb, error_string)) { - return -1; - } - - return 0; -} - - -static char *remove_whitespace(char *string) -{ - char *start = string+strspn(string, " \t"); - char *end = start+(strlen(start))-1; - - while ((*end == ' ' || *end == '\t' || *end == ':' || *end == '{') && end > start) - end--; - if (end != start) - *(end+1) = '\0'; - - return start; -} - -static int parse_section(FILE *fp, - struct objdb_iface_ver0 *objdb, - hdb_handle_t parent_handle, - const char **error_string) -{ - char line[512]; - int i; - char *loc; - - while (fgets (line, 255, fp)) { - line[strlen(line) - 1] = '\0'; - /* - * Clear out white space and tabs - */ - for (i = strlen (line) - 1; i > -1; i--) { - if (line[i] == '\t' || line[i] == ' ') { - line[i] = '\0'; - } else { - break; - } - } - /* - * Clear out comments and empty lines - */ - if (line[0] == '#' || line[0] == '\0') { - continue; - } - - /* New section ? */ - if ((loc = strstr_rs (line, "{"))) { - hdb_handle_t new_parent; - char *section = remove_whitespace(line); - - loc--; - *loc = '\0'; - objdb->object_create (parent_handle, &new_parent, - section, strlen (section)); - if (parse_section(fp, objdb, new_parent, error_string)) - return -1; - } - - /* New key/value */ - if ((loc = strstr_rs (line, ":"))) { - char *key; - char *value; - - *(loc-1) = '\0'; - key = remove_whitespace(line); - value = remove_whitespace(loc); - objdb->object_key_create (parent_handle, key, - strlen (key), - value, strlen (value) + 1); - } - - if ((loc = strstr_rs (line, "}"))) { - return 0; - } - } - - if (parent_handle != OBJECT_PARENT_HANDLE) { - *error_string = "Missing closing brace"; - return -1; - } - - return 0; -} - - - -/* Read config file and load into objdb */ -static int read_config_file_into_objdb( - struct objdb_iface_ver0 *objdb, - const char **error_string) -{ - FILE *fp; - const char *filename = "/etc/ais/openais.conf"; - char *error_reason = error_string_response; - int res; - - fp = fopen (filename, "r"); - if (fp == 0) { - sprintf (error_reason, "Can't read file %s reason = (%s)\n", - filename, strerror (errno)); - *error_string = error_reason; - return -1; - } - - res = parse_section(fp, objdb, OBJECT_PARENT_HANDLE, error_string); - - fclose(fp); - - sprintf (error_reason, "Successfully read main configuration file '%s'.\n", filename); - *error_string = error_reason; - - return res; -} - -/* - * Dynamic Loader definition - */ - -struct config_iface_ver0 aisparser_iface_ver0 = { - .config_readconfig = aisparser_readconfig, - .config_writeconfig = NULL -}; - -struct lcr_iface openais_aisparser_ver0[1] = { - { - .name = "openaisparser", - .version = 0, - .versions_replace = 0, - .versions_replace_count = 0, - .dependencies = 0, - .dependency_count = 0, - .constructor = NULL, - .destructor = NULL, - .interfaces = NULL, - } -}; - -struct openais_service_handler *aisparser_get_handler_ver0 (void); - -struct lcr_comp aisparser_comp_ver0 = { - .iface_count = 1, - .ifaces = openais_aisparser_ver0 -}; - - -__attribute__ ((constructor)) static void aisparser_comp_register (void) { - lcr_interfaces_set (&openais_aisparser_ver0[0], &aisparser_iface_ver0); - lcr_component_register (&aisparser_comp_ver0); -}
commit 60ae864b665714b740a0debce04bc826f820d90c Author: Jan Friesse <[email protected]> Date: Mon May 18 15:44:18 2009 +0200 Support for configuration in /etc/corosync diff --git a/trunk/configure.ac b/trunk/configure.ac index d540611..0472283 100644 --- a/trunk/configure.ac +++ b/trunk/configure.ac @@ -24,7 +24,7 @@ if test "$prefix" = "NONE"; then fi dnl Fix "sysconfdir" variable if not specified if test "$sysconfdir" = "\${prefix}/etc"; then - sysconfdir="/etc" + sysconfdir="/etc/corosync" fi dnl Fix "libdir" variable if not specified if test "$libdir" = "\${exec_prefix}/lib"; then diff --git a/trunk/exec/coroparse.c b/trunk/exec/coroparse.c index 261c722..7d4f258 100644 --- a/trunk/exec/coroparse.c +++ b/trunk/exec/coroparse.c @@ -217,7 +217,7 @@ static int read_uidgid_files_into_objdb( char filename[PATH_MAX + NAME_MAX + 1]; int res = 0; - dirname = SYSCONFDIR "/ais/uidgid.d"; + dirname = SYSCONFDIR "/uidgid.d"; dp = opendir (dirname); if (dp == NULL) diff --git a/trunk/exec/totemconfig.c b/trunk/exec/totemconfig.c index 4bf016e..759e7e3 100644 --- a/trunk/exec/totemconfig.c +++ b/trunk/exec/totemconfig.c @@ -745,7 +745,7 @@ int totem_config_keyread ( if (!got_key) { const char *filename = getenv("COROSYNC_TOTEM_AUTHKEY_FILE"); if (!filename) - filename = SYSCONFDIR "/ais/authkey"; + filename = SYSCONFDIR "/authkey"; res = read_keyfile(filename, totem_config, error_string); if (res) goto key_error; diff --git a/trunk/tools/corosync-keygen.c b/trunk/tools/corosync-keygen.c index b4e0f24..2fac409 100644 --- a/trunk/tools/corosync-keygen.c +++ b/trunk/tools/corosync-keygen.c @@ -43,7 +43,7 @@ #include <netinet/in.h> -#define KEYFILE SYSCONFDIR "/ais/authkey" +#define KEYFILE SYSCONFDIR "/authkey" int main (void) { int authkey_fd; @@ -56,8 +56,8 @@ int main (void) { printf ("Error: Authorization key must be generated as root user.\n"); exit (1); } - if (mkdir (SYSCONFDIR "/ais", 0700)) { - perror ("Failed to create directory: " SYSCONFDIR "/ais"); + if (mkdir (SYSCONFDIR, 0700)) { + perror ("Failed to create directory: " SYSCONFDIR); exit (1); }
_______________________________________________ Openais mailing list [email protected] https://lists.linux-foundation.org/mailman/listinfo/openais
