From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1435 invoked by alias); 9 Jul 2009 07:32:34 -0000 Received: (qmail 1424 invoked by alias); 9 Jul 2009 07:32:34 -0000 X-SWARE-Spam-Status: No, hits=0.3 required=5.0 tests=AWL,BAYES_05,J_CHICKENPOX_55,J_CHICKENPOX_63,J_CHICKENPOX_64,J_CHICKENPOX_66,J_CHICKENPOX_75,SPF_HELO_PASS X-Spam-Status: No, hits=0.3 required=5.0 tests=AWL,BAYES_05,J_CHICKENPOX_55,J_CHICKENPOX_63,J_CHICKENPOX_64,J_CHICKENPOX_66,J_CHICKENPOX_75,SPF_HELO_PASS X-Spam-Check-By: sourceware.org X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on bastion2.fedora.phx.redhat.com Subject: rgmanager: master - drop obsoleted tools To: cluster-cvs-relay@redhat.com X-Project: Cluster Project X-Git-Module: rgmanager.git X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: b97a67f6ea847cfd1bc9d346869eca5f72bf90e9 X-Git-Newrev: ac4e2e66d202d9cfc0071e44a32f7d27281a4449 From: "Fabio M. Di Nitto" Message-Id: <20090709073126.E660B120373@lists.fedorahosted.org> Date: Thu, 09 Jul 2009 07:32:00 -0000 X-Scanned-By: MIMEDefang 2.58 on 172.16.52.254 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: 2009-q3/txt/msg00028.txt.bz2 Gitweb: http://git.fedorahosted.org/git/rgmanager.git?p=rgmanager.git;a=commitdiff;h=ac4e2e66d202d9cfc0071e44a32f7d27281a4449 Commit: ac4e2e66d202d9cfc0071e44a32f7d27281a4449 Parent: b97a67f6ea847cfd1bc9d346869eca5f72bf90e9 Author: Fabio M. Di Nitto AuthorDate: Thu Jul 9 09:31:11 2009 +0200 Committer: Fabio M. Di Nitto CommitterDate: Thu Jul 9 09:31:11 2009 +0200 drop obsoleted tools Signed-off-by: Fabio M. Di Nitto --- doc/COPYRIGHT | 4 - rgmanager/man/Makefile.am | 3 - rgmanager/man/cluarp.8 | 15 --- rgmanager/man/clunfsops.8 | 14 --- rgmanager/src/utils/Makefile.am | 6 +- rgmanager/src/utils/cluarp.c | 159 --------------------------- rgmanager/src/utils/clunfsops.c | 225 --------------------------------------- rgmanager/src/utils/syscall.h | 165 ---------------------------- 8 files changed, 1 insertions(+), 590 deletions(-) diff --git a/doc/COPYRIGHT b/doc/COPYRIGHT index a4ba954..b95cc7e 100644 --- a/doc/COPYRIGHT +++ b/doc/COPYRIGHT @@ -56,10 +56,6 @@ rgmanager/src/daemons/main.c: Copyright (C) 2000 Mission Critical Linux Copyright (C) 2002-2009 Red Hat, Inc. All rights reserved. -rgmanager/src/utils/cluarp.c: - Copyright (C) 2000 Mission Critical Linux - Copyright (C) 2002-2009 Red Hat, Inc. All rights reserved. - rgmanager/src/utils/clubufflush.c: Copyright (C) 2000 Mission Critical Linux Copyright (C) 2002-2009 Red Hat, Inc. All rights reserved. diff --git a/rgmanager/man/Makefile.am b/rgmanager/man/Makefile.am index 63ffcdd..b53b7c4 100644 --- a/rgmanager/man/Makefile.am +++ b/rgmanager/man/Makefile.am @@ -1,8 +1,5 @@ MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = cluarp.8 \ - clunfsops.8 - dist_man_MANS = clubufflush.8 \ clufindhostname.8 \ clulog.8 \ diff --git a/rgmanager/man/cluarp.8 b/rgmanager/man/cluarp.8 deleted file mode 100644 index 5bc912e..0000000 --- a/rgmanager/man/cluarp.8 +++ /dev/null @@ -1,15 +0,0 @@ -.TH "cluarp" "8" "Jan 2005" "" "Red Hat Cluster Suite Internal Commands" -.SH "NAME" -cluarp \- Send a gratuitous ARP -.SH "WARNING" -Use of this command can cause the cluster to malfunction. Do not run this -without instructions from Red Hat Support. -.SH "DESCRIPTION" -.PP -The -.B cluarp -command is an internal command used to broadcast new ARP information when -a service IP address is configured by the Service Manager. - -.SH "SEE ALSO" -arp(8) diff --git a/rgmanager/man/clunfsops.8 b/rgmanager/man/clunfsops.8 deleted file mode 100644 index ba768e4..0000000 --- a/rgmanager/man/clunfsops.8 +++ /dev/null @@ -1,14 +0,0 @@ -.TH "clunfsops" "8" "Jan 2005" "" "Red Hat Cluster Suite Internal Commands" -.SH "NAME" -clunfsops \- Manipulate NFS -.SH "WARNING" -Use of this command can cause the cluster to malfunction. Do not run this -without instructions from Red Hat Support. -.SH "DESCRIPTION" -.PP -The -.B clunfsops -command is an internal command used to manipulate clustered NFS services. - -.SH "SEE ALSO" -nfs(5), rpc.nfsd(8) diff --git a/rgmanager/src/utils/Makefile.am b/rgmanager/src/utils/Makefile.am index 268b6f1..5af2fcd 100644 --- a/rgmanager/src/utils/Makefile.am +++ b/rgmanager/src/utils/Makefile.am @@ -1,10 +1,6 @@ MAINTAINERCLEANFILES = Makefile.in -EXTRA_DIST = cluarp.c \ - clunfsops.c \ - clunfslock - -noinst_HEADER = syscall.h +EXTRA_DIST = clunfslock sbin_PROGRAMS = clubufflush \ clufindhostname \ diff --git a/rgmanager/src/utils/cluarp.c b/rgmanager/src/utils/cluarp.c deleted file mode 100644 index f22fa60..0000000 --- a/rgmanager/src/utils/cluarp.c +++ /dev/null @@ -1,159 +0,0 @@ -/** @file - * Utility to generate a gratuitous ARP request on a given interface. - */ -#include "clusterautoconfig.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#define IP_ADDR_LEN 4 -#define DEFAULT_DEVICE "eth0" -#define SA_DATA_LEN 14 /* Taken from include/linux/socket.h */ - -/** - * ARP frame structure. - */ -struct arp_frame { - u_char ether_dest_hw_addr[ETH_ALEN]; - u_char ether_src_hw_addr[ETH_ALEN]; - u_short ether_packet_type; - u_short arp_hw_type; - u_short arp_proto_type; - u_char arp_hlen; - u_char arp_plen; - u_short op; - u_char arp_sender_ha[ETH_ALEN]; - u_char arp_sender_ip[IP_ADDR_LEN]; - u_char arp_target_ha[ETH_ALEN]; - u_char arp_target_ip[IP_ADDR_LEN]; - u_char padding[18]; -}; - - -/** - * Display usage information. - */ -void usage(void) -{ - fprintf(stdout, - "myarp [device]\n"); -} - - -/** - * Change a hardware ethernet address into an array of characters. - * Warning: Unchecked bounds in copy_to. - * - * @param addr_string NULL-terminated string in the format: - * "aa:bb:cc:dd:ee:ff" - * @param copy_to Pre-allocated array of at least 6 bytes, - * preferrably set to 0. - */ -void -parse_hw_addr(char *addr_string, u_char *copy_to) -{ - char *c = addr_string, p, result=' '; - int i; - - for (i = 0; i < ETH_ALEN; i++) { - /* first digit */ - if (*c == ':') - c++; - p = tolower(*c++); - if (isdigit(p)) - result = p - '0'; - else if (p >= 'a' && p <= 'z') - result = p - 'a' + 10; - *copy_to = result << 4; - /* second digit */ - if (*c == ':') - c++; - p = tolower(*c++); - if (isdigit(p)) - result = p - '0'; - else if (p >= 'a' && p <= 'z') - result = p - 'a' + 10; - *copy_to++ |= result; - } - return; -} - - -/** - * Change an IP address into an array of characters. - * Warning: Unchecked bounds in copy_to. - * - * @param addr_string NULL-terminated string in the format: - * "10.1.2.3" (standard IPv4 dotted-quad). - * @param copy_to Pre-allocated array of at least 4 bytes, - * preferrably set to 0. - */ -void -parse_ip_addr(char *addr_string, u_char *copy_to) -{ - unsigned long inaddr; - - inaddr = inet_addr(addr_string); - memcpy(copy_to, &inaddr, IP_ADDR_LEN); - -} - - -/** - * Driver for cluarp. - * - * @return 0 on success, 1 on any failure. - */ -int -main(int argc, char **argv) -{ - - int s; - struct arp_frame arp_packet; - struct sockaddr sockaddr; -/* unsigned long inaddr; */ - - if ((argc != 5) && (argc != 6)) { - usage(); - exit(1); - } - - bzero(&arp_packet, sizeof(struct arp_frame)); - - parse_ip_addr(argv[1], arp_packet.arp_sender_ip); - parse_hw_addr(argv[2], arp_packet.ether_src_hw_addr); - parse_hw_addr(argv[2], arp_packet.arp_sender_ha); - parse_ip_addr(argv[3], arp_packet.arp_target_ip); - parse_hw_addr(argv[4], arp_packet.ether_dest_hw_addr); - parse_hw_addr(argv[4], arp_packet.arp_target_ha); - - arp_packet.ether_packet_type = htons(ETH_P_ARP); - arp_packet.arp_hw_type = htons(ETH_P_802_3); - arp_packet.arp_proto_type = htons(ETH_P_IP); - arp_packet.arp_hlen = ETH_ALEN; - arp_packet.arp_plen = IP_ADDR_LEN; - arp_packet.op = htons(ARPOP_REPLY); - - s = socket(AF_PACKET,SOCK_PACKET,htons(ETH_P_RARP)); - - if (argc == 5) - strncpy(sockaddr.sa_data, DEFAULT_DEVICE, SA_DATA_LEN); - else - strncpy(sockaddr.sa_data, argv[5], SA_DATA_LEN); - - if (sendto(s, &arp_packet, sizeof(struct arp_frame), 0, - &sockaddr, sizeof(struct sockaddr)) < 0) { - perror("sendto"); - exit(1); - } - exit(0); -} - - diff --git a/rgmanager/src/utils/clunfsops.c b/rgmanager/src/utils/clunfsops.c deleted file mode 100644 index 27d8042..0000000 --- a/rgmanager/src/utils/clunfsops.c +++ /dev/null @@ -1,225 +0,0 @@ -/** @file - * This program simply parses command line args and then calls the - * corresponding system call. - * These operations are for NFS failover semantics in an attempt to - * shield clients from unnecessary stale file handle errors. - * - * File Origin - this command was reverse-engineered by starting with the - * GPL syscall interfaces defined in . - */ -#include "clusterautoconfig.h" - -#ifdef X86_64 -#define __ASM_SYSTEM_H -#define __ASM_X86_64_PROCESSOR_H -#endif - - -#define _LVM_H_INCLUDE /* XXX */ -#include -#include -#undef _LVM_H_INCLUDE -#include -#include - -#ifdef S390 -#define __ssize_t_defined -#endif - -#include -/* - * lhh - someone thought it would be cute to remove the #ifdef __KERNEL__ - * around some of the system includes. Now we have to fudge the #inclusion - * of linux/types.h _AS_ sys/types.h just to compile. - */ -#define _SYS_TYPES_H -#include -#include -#include -#include -#include -#include -#include -#include -#include - -/* XXX - should be this file, -#include - */ -/* - * But, temporarily include this file to simplify the build on - * systems which aren't yet installed and therefore don't have the - * header file w/ updated defines for new nfs syscalls. - */ -#include "syscall.h" - -/* - * Cluster include - */ -#include - - -/* Forward routine declarations. */ -static void usage(const char * cmd); -int validateDevice(char *name); -int nfsctl(int cmd, struct nfsctl_arg * argp, void * resp); - -/* Program Globals */ -static int verbose = 0; -static char *cmdname; - -static void -usage(const char * cmd) -{ - fprintf(stderr, "\n"); - fprintf(stderr, "usage: %s [-ehsv] " - "[-d deviceName] " - "\n", cmd); - fprintf(stderr, "Options:\n"); - fprintf(stderr, "-e\t\tInitiate flush of pending requests.\n"); - fprintf(stderr, "-h\t\tPrints this help message.\n"); - fprintf(stderr, "-s\t\tCancel pending flush of pending requests.\n"); - fprintf(stderr, "-v\t\tIncreases verbose debugging level.\n"); - fprintf(stderr, "\n"); - fprintf(stderr, "NOTE: this command will only successfully run\n"); - fprintf(stderr, " if the correspoinding NFS kernel patches\n"); - fprintf(stderr, " are built into the kernel.\n"); - fprintf(stderr, "\n"); - exit(1); -} - -int -main(int argc, char** argv) -{ - extern char * optarg; - extern int optind, opterr, optopt; - int errors = 0; - int errno_save = 0; - int nfsSyscallNum = 0; - char *nfsSyscallString = "BOGUS"; - char *deviceName = NULL; - int c; - struct nfsctl_arg nfsctlarg; - int retval; - - if (geteuid() != (uid_t)0) { - logt_print_and_print(LOG_ERR, "%s must be run as the root user.\n", - argv[0]); - exit(1); - } - if ((cmdname = strrchr(argv[0], '/')) == NULL) { - cmdname = argv[0]; - } - else{ - ++cmdname; - } - - while ((c = getopt(argc, argv, "d:ehsv")) != -1) { - switch(c) { - case 'd': deviceName = optarg; - break; - case 'e': - nfsSyscallNum = NFSCTL_FODROP; - nfsSyscallString = "NFSCTL_FODROP"; - break; - case 'h': usage(cmdname); - break; - case 's': - nfsSyscallNum = NFSCTL_STOPFODROP; - nfsSyscallString = "NFSCTL_STOPFODROP"; - break; - case 'v': ++verbose; - break; - default: ++errors; - break; - } - } - if (nfsSyscallNum == 0) { - logt_print_and_print(LOG_ERR, "%s: No NFS syscall has been " - "specified.\n",cmdname); - ++errors; - } - if (deviceName == NULL) { - logt_print_and_print(LOG_ERR, "%s: No device name has been " - "specified.\n", cmdname); - ++errors; - } - if (validateDevice(deviceName)) { - ++errors; - } - if (errors) { - usage(cmdname); - } - if (verbose) { - printf("Calling: nfsSyscall = %s, deviceName = %s.\n", - nfsSyscallString, deviceName); - } - /* - * Setup the data structure expected by the kernel. - */ - memset(&nfsctlarg, 0, sizeof(struct nfsctl_arg)); - nfsctlarg.ca_version = NFSCTL_VERSION; - strncpy(nfsctlarg.ca_fodrop.fo_dev, deviceName, - sizeof(nfsctlarg.ca_fodrop.fo_dev)); - nfsctlarg.ca_fodrop.fo_timeout = 1000; /* range 600-1200 */ - /* - * Jump into the kernel syscall. - */ - retval = nfsctl(nfsSyscallNum, &nfsctlarg, NULL); - if (retval != 0) { - /* logt_print_and_print calls syslog(), which modifies errno */ - errno_save = errno; - logt_print_and_print(LOG_WARNING, "#72: %s: NFS syscall %s failed: " - "%s.\n", cmdname, nfsSyscallString, - strerror(errno_save)); - if (errno_save == EINVAL) { - logt_print_and_print(LOG_WARNING, - "#73: %s: Kernel may not " - "have NFS failover enhancements.\n", - cmdname); - } - exit(errno_save); - } - else { - if (verbose) { - printf("SUCCESS: nfsSyscall = %s, deviceName = %s.\n", - nfsSyscallString, deviceName); - } - } - exit(0); -} - -/* - * Validate the device parameter. Make sure it refers to a block - * device special file. - * Returns: 0=success, nonzero=error. - */ -int -validateDevice(char *name) { - struct stat stat_st, *stat_ptr; - stat_ptr = &stat_st; - - if (stat(name, stat_ptr) < 0) { - logt_print_and_print(LOG_ERR, "%s: Unable to stat %s.\n", cmdname, name); - return(1); - } - /* - * Verify that its a block or character special file. - */ - if (S_ISBLK(stat_st.st_mode) == 0) { - logt_print_and_print(LOG_ERR, "%s: %s is not a block special file.\n", cmdname, name); - return(1); - } - return(0); // success -} - -/* - * Routine to format make appropriate NFS syscall. - * Leveraged from nfs-utils. - */ -int -nfsctl(int cmd, struct nfsctl_arg * argp, void * resp) -{ - return syscall (__NR_nfsservctl, cmd, argp, resp); -} - diff --git a/rgmanager/src/utils/syscall.h b/rgmanager/src/utils/syscall.h deleted file mode 100644 index 4c2541e..0000000 --- a/rgmanager/src/utils/syscall.h +++ /dev/null @@ -1,165 +0,0 @@ -/** @file - * Taken from: /usr/include/linux/nfsd/syscall.h (we hope). - * - * This file holds all declarations for the knfsd syscall interface. - */ - -#ifndef NFSD_SYSCALL_H -#define NFSD_SYSCALL_H - -#include -# include -# include -# include -#include -#include -#include -// TIMXXX - took out to pacify user level compilation. -//#include -#include - -/* - * Version of the syscall interface - */ -#define NFSCTL_VERSION 0x0201 - -/* - * These are the commands understood by nfsctl(). - */ -#define NFSCTL_SVC 0 /* This is a server process. */ -#define NFSCTL_ADDCLIENT 1 /* Add an NFS client. */ -#define NFSCTL_DELCLIENT 2 /* Remove an NFS client. */ -#define NFSCTL_EXPORT 3 /* export a file system. */ -#define NFSCTL_UNEXPORT 4 /* unexport a file system. */ -#define NFSCTL_UGIDUPDATE 5 /* update a client's uid/gid map. */ -#define NFSCTL_GETFH 6 /* get an fh by ino (used by mountd) */ -#define NFSCTL_GETFD 7 /* get an fh by path (used by mountd) */ -#define NFSCTL_GETFS 8 /* get an fh by path with max FH len */ -#define NFSCTL_FODROP 50 /* drop requests during failover */ -#define NFSCTL_STOPFODROP 51 /* stop dropping requests */ -#define NFSCTL_FOLOCKS 52 /* drop locks for failover */ -#define NFSCTL_FOGRACE 53 /* set grace period for failover */ -#define NFSCTL_FOSERV 54 /* remove service mon for failover */ -#define NFSCTL_FO_MIN NFSCTL_FODROP -#define NFSCTL_FO_MAX NFSCTL_FOSERV - -/* SVC */ -struct nfsctl_svc { - unsigned short svc_port; - int svc_nthreads; -}; - -/* ADDCLIENT/DELCLIENT */ -struct nfsctl_client { - char cl_ident[NFSCLNT_IDMAX+1]; - int cl_naddr; - struct in_addr cl_addrlist[NFSCLNT_ADDRMAX]; - int cl_fhkeytype; - int cl_fhkeylen; - unsigned char cl_fhkey[NFSCLNT_KEYMAX]; -}; - -/* EXPORT/UNEXPORT */ -struct nfsctl_export { - char ex_client[NFSCLNT_IDMAX+1]; - char ex_path[NFS_MAXPATHLEN+1]; - __kernel_dev_t ex_dev; - __kernel_ino_t ex_ino; - int ex_flags; - __kernel_uid_t ex_anon_uid; - __kernel_gid_t ex_anon_gid; -}; - -/* UGIDUPDATE */ -struct nfsctl_uidmap { - char * ug_ident; - __kernel_uid_t ug_uidbase; - int ug_uidlen; - __kernel_uid_t * ug_udimap; - __kernel_gid_t ug_gidbase; - int ug_gidlen; - __kernel_gid_t * ug_gdimap; -}; - -/* GETFH */ -struct nfsctl_fhparm { - struct sockaddr gf_addr; - __kernel_dev_t gf_dev; - __kernel_ino_t gf_ino; - int gf_version; -}; - -/* GETFD */ -struct nfsctl_fdparm { - struct sockaddr gd_addr; - char gd_path[NFS_MAXPATHLEN+1]; - int gd_version; -}; - -/* GETFS - GET Filehandle with Size */ -struct nfsctl_fsparm { - struct sockaddr gd_addr; - char gd_path[NFS_MAXPATHLEN+1]; - int gd_maxlen; -}; - -/* FODROP/STOPFODROP */ -struct nfsctl_fodrop { - char fo_dev[NFS_MAXPATHLEN+1]; - __u32 fo_timeout; -}; - -/* - * This is the argument union. - */ -struct nfsctl_arg { - int ca_version; /* safeguard */ - union { - struct nfsctl_svc u_svc; - struct nfsctl_client u_client; - struct nfsctl_export u_export; - struct nfsctl_uidmap u_umap; - struct nfsctl_fhparm u_getfh; - struct nfsctl_fdparm u_getfd; - struct nfsctl_fsparm u_getfs; - struct nfsctl_fodrop u_fodrop; - } u; -#define ca_svc u.u_svc -#define ca_client u.u_client -#define ca_export u.u_export -#define ca_umap u.u_umap -#define ca_getfh u.u_getfh -#define ca_getfd u.u_getfd -#define ca_getfs u.u_getfs -#define ca_authd u.u_authd -#define ca_fodrop u.u_fodrop -}; - -// TIMXXX - took out to pacify user level compilation. -//union nfsctl_res { - //__u8 cr_getfh[NFS_FHSIZE]; - //struct knfsd_fh cr_getfs; -//}; - -#ifdef __KERNEL__ -/* - * Kernel syscall implementation. - */ -#if defined(CONFIG_NFSD) || defined(CONFIG_NFSD_MODULE) -extern asmlinkage long sys_nfsservctl(int, void *, void *); -#else -#define sys_nfsservctl sys_ni_syscall -#endif -extern int exp_addclient(struct nfsctl_client *ncp); -extern int exp_delclient(struct nfsctl_client *ncp); -extern int exp_export(struct nfsctl_export *nxp); -extern int exp_unexport(struct nfsctl_export *nxp); -extern int exp_fodrop(struct nfsctl_fodrop *nfp); -extern int exp_stopfodrop(struct nfsctl_fodrop *nfp); -extern int nfsd_lockd_founlock(struct nfsctl_fodrop *nfp); -extern int nfsd_lockd_fograce(struct nfsctl_fodrop *nfp); -extern int nfsd_lockd_foservice(struct nfsctl_fodrop *nfp); - -#endif /* __KERNEL__ */ - -#endif /* NFSD_SYSCALL_H */