[DRBD-cvs] r1621 - trunk/user
svn at svn.drbd.org
svn at svn.drbd.org
Fri Oct 29 13:53:49 CEST 2004
Author: lars
Date: 2004-10-29 13:53:46 +0200 (Fri, 29 Oct 2004)
New Revision: 1621
Modified:
trunk/user/Makefile
trunk/user/drbdadm.h
trunk/user/drbdadm_adjust.c
trunk/user/drbdadm_main.c
trunk/user/drbdadm_parser.y
trunk/user/drbdsetup.c
trunk/user/drbdtool_common.c
trunk/user/drbdtool_common.h
Log:
fix unresolved conflict. tztztz
fix dependencies in Makefile
Modified: trunk/user/Makefile
===================================================================
--- trunk/user/Makefile 2004-10-29 11:24:23 UTC (rev 1620)
+++ trunk/user/Makefile 2004-10-29 11:53:46 UTC (rev 1621)
@@ -40,7 +40,7 @@
drbdadm_parser.h: drbdadm_parser.y
bison -d -o drbdadm_parser.c drbdadm_parser.y
-drbdadm_parser.c: drbdadm_parser.y drbdadm.h
+drbdadm_parser.c: drbdadm_parser.y drbdadm.h drbd_limits.h drbdtool_common.h
bison -d -o drbdadm_parser.c drbdadm_parser.y
drbdsetup: $(drbdsetup-obj)
@@ -61,6 +61,7 @@
install:
install -d $(PREFIX)/sbin/
install -m 755 drbdsetup $(PREFIX)/sbin/
+ install -m 755 drbdmeta $(PREFIX)/sbin/
install -m 755 drbdadm $(PREFIX)/sbin/
uninstall:
@@ -68,7 +69,11 @@
rm -f $(PREFIX)/sbin/drbdadm
###dependencies
-drbdadm_adjust.o: drbdadm.h drbdadm_adjust.c
-drbdadm_main.o: drbdadm.h drbdadm_main.c ../drbd/linux/drbd_config.h
-drbdsetup.o: ../drbd/linux/drbd.h ../drbd/linux/drbd_config.h drbd_limits.h
-drbdadm_parser.o: drbd_limits.h
+drbdtool_common.o: drbdtool_common.h
+drbdadm_main.o: drbdtool_common.h drbdadm.h
+drbdadm_adjust.o: drbdtool_common.h drbdadm.h
+drbdadm_parser.o: drbdtool_common.h drbdadm.h drbd_limits.h
+drbdadm_scanner.o: drbdadm.h drbdadm_parser.h
+drbdsetup.o: drbdtool_common.h drbd_limits.h
+drbdsetup.o: ../drbd/linux/drbd.h ../drbd/linux/drbd_config.h
+drbdmeta.o: drbdtool_common.h drbd_endian.h
Modified: trunk/user/drbdadm.h
===================================================================
--- trunk/user/drbdadm.h 2004-10-29 11:24:23 UTC (rev 1620)
+++ trunk/user/drbdadm.h 2004-10-29 11:53:46 UTC (rev 1621)
@@ -23,10 +23,10 @@
/* for check_uniq(): Check for uniqueness of certain values...
* comment out if you want to NOT choke on the first conflict */
-#define EXIT_ON_CONFLICT
+#define EXIT_ON_CONFLICT 1
-/* for verify_ips(): make not verifyable ips fatal */
-//#define INVALID_IP_IS_INVALID_CONF
+/* for verify_ips(): are not verifyable ips fatal? */
+#define INVALID_IP_IS_INVALID_CONF 0
struct d_globals
{
Modified: trunk/user/drbdadm_adjust.c
===================================================================
--- trunk/user/drbdadm_adjust.c 2004-10-29 11:24:23 UTC (rev 1620)
+++ trunk/user/drbdadm_adjust.c 2004-10-29 11:53:46 UTC (rev 1621)
@@ -93,7 +93,7 @@
return rv;
}
-int check_opt_d(FILE *in,char* name,int dm, char* unit,struct d_option* base)
+int check_opt_d(FILE *in,char* name,char du, char* unit,struct d_option* base)
{
unsigned long ul;
struct d_option* o;
@@ -106,7 +106,7 @@
o=find_opt(base,name);
if(o) {
o->mentioned=1;
- if(m_strtol(o->value,dm) != ul) rv=1;
+ if(m_strtoll(o->value,du) != ul) rv=1;
} else {
if( uu[0] != 'd' ) rv=1;
}
@@ -119,7 +119,7 @@
int check_opt_s(FILE *in,char* name,struct d_option* base)
{
struct d_option* o;
- char scs[200];
+ char scs[200];
char value[200];
int rv=0;
@@ -264,7 +264,7 @@
rv=m_fscanf(in,"Disk options%[:]\n",uu);
if(rv==1) {
- do_resize |= check_opt_d(in,"size",1024,"KB",res->disk_options);
+ do_resize |= check_opt_d(in,"size",'K',"KB",res->disk_options);
do_attach |= check_opt_s(in,"on-io-error",res->disk_options);
// Check if every options is also present in drbdsetup show's output.
@@ -300,7 +300,7 @@
o=find_opt(res->net_options,"timeout");
if(o) {
o->mentioned=1;
- if(m_strtol(o->value,1) != ul1*10 + ul2) do_connect=1;
+ if(m_strtoll(o->value,1) != ul1*10 + ul2) do_connect=1;
} else {
if( uu[0] != 'd' ) do_connect=1;
}
@@ -317,7 +317,7 @@
rv=m_fscanf(in,"Syncer options%[:]\n",uu);
if(rv==1) {
- do_syncer |= check_opt_d(in,"rate",1024,"KB/sec",res->sync_options);
+ do_syncer |= check_opt_d(in,"rate",'K',"KB/sec",res->sync_options);
do_syncer |= check_opt_d(in,"group",1,"",res->sync_options);
do_syncer |= check_opt_d(in,"al-extents",1,"",res->sync_options);
do_syncer |= check_opt_b(in,"skip-sync",res->sync_options);
Modified: trunk/user/drbdadm_main.c
===================================================================
--- trunk/user/drbdadm_main.c 2004-10-29 11:24:23 UTC (rev 1620)
+++ trunk/user/drbdadm_main.c 2004-10-29 11:53:46 UTC (rev 1621)
@@ -348,7 +348,7 @@
path++;
}
- fprintf(stderr,"Can not find command (drbdsetup/drbdmeta)");
+ fprintf(stderr,"Can not find command (drbdsetup/drbdmeta)\n");
exit(E_exec_error);
}
@@ -882,6 +882,7 @@
/* if not verifyable, prints a message to stderr,
* and sets config_valid = 0 if INVALID_IP_IS_INVALID_CONF is defined */
+#define INVALID_IP_IS_INVALID_CONF 0
void verify_ips(struct d_resource* res)
{
char *my_ip = NULL;
@@ -922,9 +923,8 @@
fprintf(stderr, "%s:%d: in resource %s, on %s:\n\t"
"IP %s not found on this host.\n",
config_file,(int)(long)ep->data,res->name, res->me->name,my_ip);
-#ifdef INVALID_IP_IS_INVALID_CONF
- config_valid = 0;
-#endif
+ if (INVALID_IP_IS_INVALID_CONF)
+ config_valid = 0;
free(e.key);
return;
}
@@ -954,9 +954,8 @@
ep = hsearch(e, FIND);
fprintf(stderr, "%s:%d: in resource %s:\n\tNo route from me (%s) to peer (%s).\n",
config_file,(int)(long)ep->data,res->name, my_ip, his_ip);
-# ifdef INVALID_IP_IS_INVALID_CONF
- config_valid = 0;
-# endif
+ if (INVALID_IP_IS_INVALID_CONF)
+ config_valid = 0;
return;
}
#endif
@@ -988,12 +987,10 @@
if (rv < 0) { perror("vasprintf"); exit(E_thinko); }
-#ifdef EXIT_ON_CONFLICT
- if (!what) {
+ if (EXIT_ON_CONFLICT && !what) {
fprintf(stderr,"Oops, unset argument in %s:%d.\n", __FILE__ , __LINE__ );
exit(E_thinko);
}
-#endif
e.data = (void*)(long)fline;
ep = hsearch(e, FIND);
// fprintf(stderr,"%s: FIND %s: %p\n",res->name,e.key,ep);
@@ -1016,9 +1013,7 @@
}
ep = NULL;
}
-#ifdef EXIT_ON_CONFLICT
- if (ep) exit(E_config_invalid);
-#endif
+ if (EXIT_ON_CONFLICT && ep) exit(E_config_invalid);
return !ep;
}
Modified: trunk/user/drbdadm_parser.y
===================================================================
--- trunk/user/drbdadm_parser.y 2004-10-29 11:24:23 UTC (rev 1620)
+++ trunk/user/drbdadm_parser.y 2004-10-29 11:53:46 UTC (rev 1621)
@@ -6,6 +6,7 @@
#include "drbdadm.h"
#include "drbd_limits.h"
+#include "drbdtool_common.h"
extern void yyerror(char* text);
extern int yylex(void);
@@ -28,86 +29,6 @@
static char* c_hostname;
static int c_section_start, n_hosts;
-unsigned long long
-m_strtoll(const char *s, char def_unit)
-{
- unsigned long long r;
- char unit = 0;
- char dummy = 0;
- int shift, c;
-
- /*
- * paranoia
- */
- switch (def_unit)
- {
- default:
- fprintf(stderr, "%s:%d: unexpected default unit\n", __FILE__, __LINE__);
- exit(E_thinko);
- case 0:
- case 1:
- case '1':
- shift = 0;
- break;
-
- case 'K':
- case 'k':
- shift = -10;
- break;
-
- /*
- case 'M':
- case 'm':
- case 'G':
- case 'g':
- */
- }
-
- /* catched by the scanner already */
- if (!s || !*s)
- {
- fprintf(stderr, "missing number argument\n");
- exit(E_thinko);
- }
-
- c = sscanf(s, "%llu%c%c", &r, &unit, &dummy);
-
- /* catched by the scanner already */
- if (c != 1 && c != 2)
- {
- fprintf(stderr, "%s:%d: '%s' is not a valid number; %c %c\n",
- config_file, fline, s, unit, dummy);
- exit(20);
- }
-
- switch (unit)
- {
- case 0:
- return r;
- case 'K':
- case 'k':
- shift += 10;
- break;
- case 'M':
- case 'm':
- shift += 20;
- break;
- case 'G':
- case 'g':
- shift += 30;
- break;
- default:
- fprintf(stderr, "%s is not a valid number\n", s);
- exit(20);
- }
- if (r > (~0ULL >> shift))
- {
- fprintf(stderr, "%s: out of range\n", s);
- exit(20);
- }
- return r << shift;
-}
-
void
m_strtoll_range(const char *s, char def_unit,
const char *name,
Modified: trunk/user/drbdsetup.c
===================================================================
--- trunk/user/drbdsetup.c 2004-10-29 11:24:23 UTC (rev 1620)
+++ trunk/user/drbdsetup.c 2004-10-29 11:53:46 UTC (rev 1621)
@@ -204,86 +204,6 @@
return retval;
}
-<<<<<<< .working
-=======
-unsigned long long
-m_strtoll(const char *s, char def_unit)
-{
- unsigned long long r;
- char unit = 0;
- char dummy = 0;
- int shift, c;
-
- /*
- * paranoia
- */
- switch (def_unit)
- {
- default:
- fprintf(stderr, "%s:%d: unexpected default unit\n", __FILE__, __LINE__);
- exit(100);
- case 0:
- case 1:
- case '1':
- shift = 0;
- break;
-
- case 'K':
- case 'k':
- shift = -10;
- break;
-
- /*
- case 'M':
- case 'm':
- case 'G':
- case 'g':
- */
- }
-
- if (!s || !*s)
- {
- fprintf(stderr, "missing number argument\n");
- exit(100);
- }
-
- c = sscanf(s, "%llu%c%c", &r, &unit, &dummy);
-
- if (c != 1 && c != 2)
- {
- fprintf(stderr, "%s is not a valid number\n", s);
- exit(20);
- }
-
- switch (unit)
- {
- case 0:
- return r;
- case 'K':
- case 'k':
- shift += 10;
- break;
- case 'M':
- case 'm':
- shift += 20;
- break;
- case 'G':
- case 'g':
- shift += 30;
- break;
- default:
- fprintf(stderr, "%s is not a valid number\n", s);
- exit(20);
- }
- if (r > (~0ULL >> shift))
- {
- fprintf(stderr, "%s: out of range\n", s);
- exit(20);
- }
- return r << shift;
-}
-
->>>>>>> .merge-right.r1613
/* NOTE all values are _unsigned_ */
unsigned long long
m_strtoll_range(const char *s, const char def_unit, const char *name,
Modified: trunk/user/drbdtool_common.c
===================================================================
--- trunk/user/drbdtool_common.c 2004-10-29 11:24:23 UTC (rev 1620)
+++ trunk/user/drbdtool_common.c 2004-10-29 11:53:46 UTC (rev 1621)
@@ -46,29 +46,81 @@
return buffer;
}
-unsigned long m_strtol(const char* s,int def_mult)
+unsigned long long
+m_strtoll(const char *s, const char def_unit)
{
- char *e = (char*)s;
- unsigned long r;
+ unsigned long long r;
+ char unit = 0;
+ char dummy = 0;
+ int shift, c;
- r = strtol(s,&e,0);
- switch(*e)
+ /*
+ * paranoia
+ */
+ switch (def_unit)
{
+ default:
+ fprintf(stderr, "%s:%d: unexpected default unit\n", __FILE__, __LINE__);
+ exit(100);
case 0:
+ case 1:
+ case '1':
+ shift = 0;
+ break;
+
+ case 'K':
+ case 'k':
+ shift = -10;
+ break;
+
+ /*
+ case 'M':
+ case 'm':
+ case 'G':
+ case 'g':
+ */
+ }
+
+ if (!s || !*s)
+ {
+ fprintf(stderr, "missing number argument\n");
+ exit(100);
+ }
+
+ c = sscanf(s, "%llu%c%c", &r, &unit, &dummy);
+
+ if (c != 1 && c != 2)
+ {
+ fprintf(stderr, "%s is not a valid number\n", s);
+ exit(20);
+ }
+
+ switch (unit)
+ {
+ case 0:
return r;
case 'K':
case 'k':
- return r*(1024/def_mult);
+ shift += 10;
+ break;
case 'M':
case 'm':
- return r*1024*(1024/def_mult);
+ shift += 20;
+ break;
case 'G':
case 'g':
- return r*1024*1024*(1024/def_mult);
+ shift += 30;
+ break;
default:
- fprintf(stderr,"%s is not a valid number\n",s);
+ fprintf(stderr, "%s is not a valid number\n", s);
exit(20);
}
+ if (r > (~0ULL >> shift))
+ {
+ fprintf(stderr, "%s: out of range\n", s);
+ exit(20);
+ }
+ return r << shift;
}
void create_lockfile_mm(int major, int minor)
@@ -76,7 +128,7 @@
char lfname[40];
int fd,pid;
FILE* fi;
-
+
snprintf(lfname,39,"/var/lock/drbd-%d-%d.pid",major,minor);
while ( (fd = open(lfname,O_CREAT|O_EXCL|O_WRONLY,00644)) == -1 )
Modified: trunk/user/drbdtool_common.h
===================================================================
--- trunk/user/drbdtool_common.h 2004-10-29 11:24:23 UTC (rev 1620)
+++ trunk/user/drbdtool_common.h 2004-10-29 11:53:46 UTC (rev 1621)
@@ -12,7 +12,7 @@
extern void dt_release_lockfile_dev_name(const char* device);
extern int dt_open_drbd_device(const char* device,int open_may_fail);
extern int dt_close_drbd_device(int drbd_fd);
-extern unsigned long m_strtol(const char* s,int def_mult);
+extern unsigned long long m_strtoll(const char* s,const char def_unit);
const char* make_optstring(struct option *options, char startc);
char* ppsize(char* buf, size_t size);
More information about the drbd-cvs
mailing list