From: Lon Hohberger <lhh@redhat.com>
To: cluster-devel.redhat.com
Subject: [Cluster-devel] [PATCH 1/2] ccs: Allow ccs_tool to use alternate base ports
Date: Mon, 14 Feb 2011 13:58:39 -0500 [thread overview]
Message-ID: <1297709920-3810-1-git-send-email-lhh@redhat.com> (raw)
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.\n");
exit(EXIT_FAILURE);
}
- if(update(argv[optind+1])){
+ if(update2(argc-1, argv+1)){
fprintf(stderr, "\nFailed to update config file.\n");
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.\n"
+ "Try '-h' for help.\n");
+ 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.\n");
+ error = -EINVAL;
+ goto fail;
+ }
+ cluster_base_port = ret;
+ printf("Set cluster base port to %d\n", 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
next reply other threads:[~2011-02-14 18:58 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-14 18:58 Lon Hohberger [this message]
2011-02-14 18:58 ` [Cluster-devel] [PATCH 2/2] ccs: Update manual page for ccs_tool Lon Hohberger
2011-02-15 5:17 ` [Cluster-devel] [PATCH 1/2] ccs: Allow ccs_tool to use alternate base ports Fabio M. Di Nitto
2011-02-15 16:00 ` Lon Hohberger
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1297709920-3810-1-git-send-email-lhh@redhat.com \
--to=lhh@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).