Fri Oct 15 23:11:41 PDT 2004
- Previous message: [Slony1-commit] By cbbrowne: Added documentation for SET_MOVE_TABLE and
- Next message: [Slony1-commit] By darcyb: Don't step past the end of the passed in conn_info
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Log Message:
-----------
Don't step past the end of the passed in conn_info
Modified Files:
--------------
slony1-engine/src/slon:
slon.c (r1.33 -> r1.34)
-------------- next part --------------
Index: slon.c
===================================================================
RCS file: /usr/local/cvsroot/slony1/slony1-engine/src/slon/slon.c,v
retrieving revision 1.33
retrieving revision 1.34
diff -Lsrc/slon/slon.c -Lsrc/slon/slon.c -u -w -r1.33 -r1.34
--- src/slon/slon.c
+++ src/slon/slon.c
@@ -61,6 +61,7 @@
{
char *cp1;
char *cp2;
+ char *scratch;
SlonDString query;
PGresult *res;
int i, n;
@@ -117,35 +118,6 @@
break;
}
}
-#if 0
- fprintf(stderr, "config: vac_frequency %d\n"
- " sync_group_maxsize %d\n"
- " sync_interval_timeout %d\n"
- " sync_interval %d\n"
- " slon_log_level %d\n"
- " log_pid %d\n"
- " log_timestamp %d\n",
- vac_frequency, sync_group_maxsize, sync_interval_timeout,
- sync_interval, slon_log_level, logpid, logtimestamp);
- fflush(NULL);
-#endif
- if (argc - optind != 2)
- errors++;
-
- if (errors != 0)
- {
- fprintf(stderr, "usage: %s [options] clustername conninfo\n", argv[0]);
- fprintf(stderr, "\n");
- fprintf(stderr, "Options:\n");
- fprintf(stderr, " -d <debuglevel> verbosity of logging (1..4)\n");
- fprintf(stderr, " -s <milliseconds> SYNC check interval (default 10000)\n");
- fprintf(stderr, " -t <milliseconds> SYNC interval timeout (default 60000)\n");
- fprintf(stderr, " -g <num> maximum SYNC group size (default 6)\n");
- fprintf(stderr, " -c <num> how often to vaccum in cleanup cycles\n");
- fprintf(stderr, " -p <filename> slon pid file\n");
- fprintf(stderr, " -f <filename> slon configuration file\n");
- return 1;
- }
/*
* Make sure the sync interval isn't too small.
*/
@@ -157,12 +129,20 @@
* identifier
*/
slon_pid = getpid();
- rtcfg_cluster_name = (char *)argv[optind];
- rtcfg_namespace = malloc(strlen(argv[optind]) * 2 + 4);
+
+ if ((char *)argv[optind])
+ {
+ set_config_option("cluster_name", (char *)argv[optind]);
+ set_config_option("conn_info", (char *)argv[++optind]);
+ }
+
+ if (rtcfg_cluster_name != NULL)
+ {
+ rtcfg_namespace = malloc(strlen(rtcfg_cluster_name) * 2 + 4);
cp2 = rtcfg_namespace;
*cp2++ = '"';
*cp2++ = '_';
- for (cp1 = (char *)argv[optind]; *cp1; cp1++)
+ for (cp1 = (char *)rtcfg_cluster_name; *cp1; cp1++)
{
if (*cp1 == '"')
*cp2++ = '"';
@@ -170,6 +150,11 @@
}
*cp2++ = '"';
*cp2 = '\0';
+ }
+ else
+ {
+ errors++;
+ }
slon_log(SLON_CONFIG, "main: slon version %s starting up\n",
SLONY_I_VERSION_STRING);
@@ -177,12 +162,34 @@
/*
* Remember the connection information for the local node.
*/
- rtcfg_conninfo = (char *)argv[++optind];
+
+ if (rtcfg_conninfo == NULL)
+ {
+ errors++;
+ }
+
+ if (errors != 0)
+ {
+ fprintf(stderr, "usage: %s [options] clustername conninfo\n", argv[0]);
+ fprintf(stderr, "\n");
+ fprintf(stderr, "Options:\n");
+ fprintf(stderr, " -d <debuglevel> verbosity of logging (1..4)\n");
+ fprintf(stderr, " -s <milliseconds> SYNC check interval (default 10000)\n");
+ fprintf(stderr, " -t <milliseconds> SYNC interval timeout (default 60000)\n");
+ fprintf(stderr, " -g <num> maximum SYNC group size (default 6)\n");
+ fprintf(stderr, " -c <num> how often to vaccum in cleanup cycles\n");
+ fprintf(stderr, " -p <filename> slon pid file\n");
+ fprintf(stderr, " -f <filename> slon configuration file\n");
+ return 1;
+ }
+
/*
* Connect to the local database for reading the initial
* configuration
*/
+
+
startup_conn = PQconnectdb(rtcfg_conninfo);
if (startup_conn == NULL)
{
- Previous message: [Slony1-commit] By cbbrowne: Added documentation for SET_MOVE_TABLE and
- Next message: [Slony1-commit] By darcyb: Don't step past the end of the passed in conn_info
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Slony1-commit mailing list