From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 9892 invoked by alias); 19 Mar 2008 19:45:16 -0000 Received: (qmail 9852 invoked by uid 9476); 19 Mar 2008 19:45:15 -0000 Date: Wed, 19 Mar 2008 19:45:00 -0000 Message-ID: <20080319194515.9836.qmail@sourceware.org> From: lhh@sourceware.org To: cluster-cvs@sources.redhat.com, cluster-devel@redhat.com Subject: Cluster Project branch, RHEL5, updated. cmirror_1_1_15-13-g1acab71 X-Git-Refname: refs/heads/RHEL5 X-Git-Reftype: branch X-Git-Oldrev: 14e702986f37607300cafdf68886daf15c10be38 X-Git-Newrev: 1acab71f585b845992e6070d6616644690f4e444 Mailing-List: contact cluster-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: cluster-cvs-owner@sourceware.org X-SW-Source: 2008-q1/txt/msg00341.txt.bz2 This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "Cluster Project". http://sources.redhat.com/git/gitweb.cgi?p=cluster.git;a=commitdiff;h=1acab71f585b845992e6070d6616644690f4e444 The branch, RHEL5 has been updated via 1acab71f585b845992e6070d6616644690f4e444 (commit) via 4cbc5a146009d8fe648c1817641ad04633478c37 (commit) via 8db6a0907ab1c443e9f3c2799ef98a1c069ec41d (commit) via e651985b0fc5741396f65845df2d17be05328034 (commit) via f667470748a1968963e0c17f325aadfcbb5c7415 (commit) from 14e702986f37607300cafdf68886daf15c10be38 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 1acab71f585b845992e6070d6616644690f4e444 Author: Lon Hohberger Date: Wed Mar 19 15:15:11 2008 -0400 [rgmanager] Update changelog for rhel5 branch commit 4cbc5a146009d8fe648c1817641ad04633478c37 Author: Lon Hohberger Date: Wed Mar 19 15:14:19 2008 -0400 [rgmanager] Fix #432998 Fix a bug causing incorrect return codes during service stop operations commit 8db6a0907ab1c443e9f3c2799ef98a1c069ec41d Merge: e651985b0fc5741396f65845df2d17be05328034 14e702986f37607300cafdf68886daf15c10be38 Author: Lon Hohberger Date: Wed Mar 19 13:55:21 2008 -0400 Merge branch 'RHEL5' of ssh://sources.redhat.com/git/cluster into rhel5 commit e651985b0fc5741396f65845df2d17be05328034 Merge: f667470748a1968963e0c17f325aadfcbb5c7415 b70ad6fe5a5795a699ad208ab009a4c952e9078f Author: Lon Hohberger Date: Tue Mar 11 14:53:04 2008 -0400 Merge branch 'RHEL5' of ssh://sources.redhat.com/git/cluster into rhel5 commit f667470748a1968963e0c17f325aadfcbb5c7415 Author: Lon Hohberger Date: Tue Mar 4 17:24:15 2008 -0500 [fence] Make fence_xvmd support reloading of key files on the fly. ----------------------------------------------------------------------- Summary of changes: fence/agents/xvm/fence_xvm.c | 2 +- fence/agents/xvm/fence_xvmd.c | 31 +++++++++++++++++++++++++++++-- fence/agents/xvm/simple_auth.c | 2 ++ fence/agents/xvm/xvm.h | 1 + rgmanager/ChangeLog | 3 +++ rgmanager/src/daemons/restree.c | 2 +- 6 files changed, 37 insertions(+), 4 deletions(-) diff --git a/fence/agents/xvm/fence_xvm.c b/fence/agents/xvm/fence_xvm.c index bd1eba9..898a55f 100644 --- a/fence/agents/xvm/fence_xvm.c +++ b/fence/agents/xvm/fence_xvm.c @@ -217,7 +217,7 @@ int fence_xen_domain(fence_xvm_args_t *args) { ip_list_t ipl; - char key[4096]; + char key[MAX_KEY_LEN]; int lfd, key_len = 0, fd; int attempts = 0; diff --git a/fence/agents/xvm/fence_xvmd.c b/fence/agents/xvm/fence_xvmd.c index 47d59fd..d7d25ca 100644 --- a/fence/agents/xvm/fence_xvmd.c +++ b/fence/agents/xvm/fence_xvmd.c @@ -55,6 +55,7 @@ #include "debug.h" static int running = 1; +static int reload_key; int cleanup_xml(char *xmldesc, char **ret, size_t *retsz); @@ -596,6 +597,27 @@ xvmd_loop(cman_handle_t ch, void *h, int fd, fence_xvm_args_t *args, virConnectClose(vp); vp = NULL; } + + if (reload_key) { + char temp_key[MAX_KEY_LEN]; + int ret; + + reload_key = 0; + + ret = read_key_file(args->key_file, temp_key, sizeof(temp_key)); + if (ret < 0) { + printf("Could not read %s; not updating key", + args->key_file); + } else { + memcpy(key, temp_key, MAX_KEY_LEN); + key_len = (size_t) ret; + + if (args->auth == AUTH_NONE) + args->auth = AUTH_SHA256; + if (args->hash == HASH_NONE) + args->hash = HASH_SHA256; + } + } n = select(fd+1, &rfds, NULL, NULL, &tv); if (n < 0) @@ -701,6 +723,11 @@ sigint_handler(int sig) running = 0; } +void +sighup_handler(int sig) +{ + reload_key = 1; +} void malloc_dump_table(void); @@ -710,7 +737,7 @@ main(int argc, char **argv) { fence_xvm_args_t args; int mc_sock; - char key[4096]; + char key[MAX_KEY_LEN]; int key_len = 0, x; char *my_options = "dfi:a:p:C:c:k:u?hLXV"; cman_handle_t ch = NULL; @@ -803,7 +830,6 @@ main(int argc, char **argv) if (x) printf("Checkpoint initialized\n"); } - if (args.family == PF_INET) mc_sock = ipv4_recv_sk(args.addr, args.port); else @@ -814,6 +840,7 @@ main(int argc, char **argv) } + signal(SIGHUP, sighup_handler); signal(SIGINT, sigint_handler); signal(SIGTERM, sigint_handler); signal(SIGQUIT, sigint_handler); diff --git a/fence/agents/xvm/simple_auth.c b/fence/agents/xvm/simple_auth.c index 0064e5c..7eb26ee 100644 --- a/fence/agents/xvm/simple_auth.c +++ b/fence/agents/xvm/simple_auth.c @@ -390,6 +390,8 @@ read_key_file(char *file, char *key, size_t max_len) while (remain) { nread = read(fd, p, remain); if (nread < 0) { + if (errno == EINTR) + continue; dbg_printf(2, "Error from read: %s\n", strerror(errno)); close(fd); return -1; diff --git a/fence/agents/xvm/xvm.h b/fence/agents/xvm/xvm.h index a423e67..b035d24 100644 --- a/fence/agents/xvm/xvm.h +++ b/fence/agents/xvm/xvm.h @@ -57,6 +57,7 @@ typedef enum { } fence_cmd_t; #define MAX_HASH_LENGTH SHA512_LENGTH +#define MAX_KEY_LEN 4096 typedef struct __attribute__ ((packed)) _fence_req { uint8_t request; /* Fence request */ diff --git a/rgmanager/ChangeLog b/rgmanager/ChangeLog index 49cd4a0..b28e23e 100644 --- a/rgmanager/ChangeLog +++ b/rgmanager/ChangeLog @@ -1,3 +1,6 @@ +2008-03-19 Lon Hohberger + * src/daemons/restree.c: Fix #432998 + 2008-03-04 Lon Hohberger * src/resources/Makefile, ASEHAagent.sh: Add support for Sybase ASE failover, #435795 diff --git a/rgmanager/src/daemons/restree.c b/rgmanager/src/daemons/restree.c index fc9cde1..d08bdb0 100644 --- a/rgmanager/src/daemons/restree.c +++ b/rgmanager/src/daemons/restree.c @@ -1315,7 +1315,7 @@ _res_op_internal(resource_node_t **tree, resource_t *first, /* Stop should occur after children have stopped */ if (me && (op == RS_STOP)) { node->rn_flags &= ~RF_NEEDSTOP; - rv = res_exec(node, op, NULL, 0); + rv |= res_exec(node, op, NULL, 0); if (rv != 0) { node->rn_state = RES_FAILED; hooks/post-receive -- Cluster Project