FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 02-14-2011, 05:58 PM
Lon Hohberger
 
Default ccs: Allow ccs_tool to use alternate base ports

Patch only for RHEL5 branch.

Resolves: rhbz#656427

Signed-off-by: Lon Hohberger <lhh@redhat.com>
---
ccs/ccs_tool/ccs_tool.c | 2 +-
ccs/ccs_tool/update.c | 64 ++++++++++++++++++++++++++++++++++++++++++++++-
ccs/ccs_tool/update.h | 1 +
3 files changed, 65 insertions(+), 2 deletions(-)

diff --git a/ccs/ccs_tool/ccs_tool.c b/ccs/ccs_tool/ccs_tool.c
index dc54146..5fcd667 100644
--- a/ccs/ccs_tool/ccs_tool.c
+++ b/ccs/ccs_tool/ccs_tool.c
@@ -36,7 +36,7 @@ int main(int argc, char *argv[])
"Try 'ccs_tool help' for help.
");
exit(EXIT_FAILURE);
}
- if(update(argv[optind+1])){
+ if(update2(argc-1, argv+1)){
fprintf(stderr, "
Failed to update config file.
");
exit(EXIT_FAILURE);
}
diff --git a/ccs/ccs_tool/update.c b/ccs/ccs_tool/update.c
index 1defdaf..3af779b 100644
--- a/ccs/ccs_tool/update.c
+++ b/ccs/ccs_tool/update.c
@@ -113,11 +113,70 @@ fail:
}


-int update(char *location)
+static int parse_args(int argc, char **argv, char **loc)
+{
+ int c, error, ret;
+
+ while ((c = getopt(argc, argv, "P:")) != EOF) {
+ switch(c) {
+ case 'P':
+ if(optarg[1] != ':'){
+ fprintf(stderr, "Bad argument to '-P' option.
"
+ "Try '-h' for help.
");
+ error = -EINVAL;
+ goto fail;
+ }
+ switch(optarg[0]){
+ case 'b': /* backend port number */
+ /* Not used by ccs_tool */
+ break;
+ case 'c': /* cluster base port number */
+ ret = atoi(optarg+2);
+ if(ret < 1024){
+ fprintf(stderr, "Bad cluster base port number.
");
+ error = -EINVAL;
+ goto fail;
+ }
+ cluster_base_port = ret;
+ printf("Set cluster base port to %d
", cluster_base_port);
+ break;
+ case 'f': /* frontend port number */
+ /* Not used by ccs_tool */
+ break;
+ }
+ break;
+ default:
+ goto fail;
+ }
+ }
+
+ *loc = argv[optind];
+
+ return 0;
+fail:
+ return error;
+}
+
+int update(const char *location)
+{
+ char *args[3];
+ char **argv;
+
+ args[0] = "update";
+ args[1] = location;
+ args[2] = NULL;
+
+ argv = args;
+
+ return update2(2, argv);
+}
+
+int update2(int argc, char **argv)
{
int error = 0;
int i, fd;
int cluster_fd = -1;
+ char *location = NULL;
char true_location[256];
xmlDocPtr doc = NULL;
xmlChar *mem_doc;
@@ -132,6 +191,9 @@ int update(char *location)

struct timeval tv;

+ if (parse_args(argc, argv, &location))
+ return -1;
+
if (location[0] != '/') {
memset(true_location, 0, 256);
if (!getcwd(true_location, 256)) {
diff --git a/ccs/ccs_tool/update.h b/ccs/ccs_tool/update.h
index 19fd7cb..f706963 100644
--- a/ccs/ccs_tool/update.h
+++ b/ccs/ccs_tool/update.h
@@ -14,5 +14,6 @@
#define __UPDATE_DOT_H__

int update(char *location);
+int update2(int argc, char **argv);

#endif /* __UPDATE_DOT_H__ */
--
1.7.2.3
 

Thread Tools




All times are GMT. The time now is 03:28 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org