[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