Commit e9e48115 authored by unknown's avatar unknown
Browse files

bug#5617

allow blank lines in Ndb.cfg files

parent 76f06e4a
Loading
Loading
Loading
Loading
+24 −22
Original line number Diff line number Diff line
@@ -229,7 +229,7 @@ LocalConfig::parseString(const char * connectString, char *line){

bool LocalConfig::readFile(const char * filename, bool &fopenError)
{
  char line[150], line2[150];
  char line[1024];
  
  fopenError = false;
  
@@ -241,31 +241,33 @@ bool LocalConfig::readFile(const char * filename, bool &fopenError)
    return false;
  }

  unsigned int sz = 1024;
  char* theString = (char*)NdbMem_Allocate(sz);
  theString[0] = 0;
  BaseString theString;

  fgets(theString, sz, file);
  while (fgets(line+1, 100, file)) {
    line[0] = ';';
    while (strlen(theString) + strlen(line) >= sz) {
      sz = sz*2;
      char *newString = (char*)NdbMem_Allocate(sz);
      strcpy(newString, theString);
      free(theString);
      theString = newString;
  while(fgets(line, 1024, file)){
    BaseString tmp(line);
    tmp.trim(" \t\n\r");
    if(tmp.length() > 0 && tmp.c_str()[0] != '#'){
      theString.append(tmp);
      break;
    }
  }
  while (fgets(line, 1024, file)) {
    BaseString tmp(line);
    tmp.trim(" \t\n\r");
    if(tmp.length() > 0 && tmp.c_str()[0] != '#'){
      theString.append(";");
      theString.append(tmp);
    }
    strcat(theString, line);
  }
  
  bool return_value = parseString(theString, line);
  bool return_value = parseString(theString.c_str(), line);

  if (!return_value) {
    snprintf(line2, 150, "Reading %s: %s", filename, line);
    setError(0,line2);
    BaseString tmp;
    tmp.assfmt("Reading %s: %s", filename, line);
    setError(0, tmp.c_str());
  }

  free(theString);
  fclose(file);
  return return_value;
}