Commit ad9cd3a5 authored by unknown's avatar unknown
Browse files

Polishing:

  1. use MySQL headers instead of system ones;
  2. move logical part of code into a separate function.


server-tools/instance-manager/angel.cc:
  Polishing: try not to use system headers.
  Use headers from include/ directory when it is possible.
server-tools/instance-manager/manager.cc:
  Polishing: move logical part of code into a separate function.
server-tools/instance-manager/manager.h:
  Polishing: move logical part of code into a separate function.
server-tools/instance-manager/mysqlmanager.cc:
  Polishing: rollback rename.
parent bae98cc8
Loading
Loading
Loading
Loading
+5 −8
Original line number Diff line number Diff line
@@ -17,19 +17,16 @@

#include "angel.h"

#include <signal.h>
#include <string.h>

#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h>

/*
  Include my_global.h right after system includes so that we can change
  system defines if needed.
  sys/wait.h is needed for waitpid(). Unfortunately, there is no MySQL
  include file, that can serve for this. Include it before MySQL system
  headers so that we can change system defines if needed.
*/

#include "my_global.h"
#include "my_alarm.h"
#include "my_sys.h"

/* Include other IM files. */

+50 −28
Original line number Diff line number Diff line
@@ -184,6 +184,53 @@ void Manager::stop_all_threads()
}


/**
  Initialize user map and load password file.

  SYNOPSIS
    init_user_map()

  RETURN
    FALSE   on success
    TRUE    on failure
*/

bool Manager::init_user_map(User_map *user_map)
{
  int err_code;
  const char *err_msg;

  if (user_map->init())
  {
    log_error("Manager: can not initialize user list: out of memory.");
    return TRUE;
  }

  err_code= user_map->load(Options::Main::password_file_name, &err_msg);

  if (!err_code)
    return FALSE;

  if (err_code == ERR_PASSWORD_FILE_DOES_NOT_EXIST &&
      Options::Main::mysqld_safe_compatible)
  {
    /*
      The password file does not exist, but we are running in
      mysqld_safe-compatible mode. Continue, but complain in log.
    */

    log_info("Warning: password file does not exist, "
             "nobody will be able to connect to Instance Manager.");

    return FALSE;
  }

  log_error("Manager: %s.", (const char *) err_msg);

  return TRUE;
}


/**
  Main manager function.

@@ -201,9 +248,7 @@ void Manager::stop_all_threads()

int Manager::main()
{
  int err_code;
  int rc= 1;
  const char *err_msg;
  bool shutdown_complete= FALSE;
  pid_t manager_pid= getpid();

@@ -258,33 +303,10 @@ int Manager::main()
    return 1;
  }

  /* Initialize user map and load password file. */

  if (user_map.init())
  {
    log_error("Manager: can not initialize user list: out of memory.");
    return 1;
  }

  if ((err_code= user_map.load(Options::Main::password_file_name, &err_msg)))
  {
    if (err_code == ERR_PASSWORD_FILE_DOES_NOT_EXIST &&
        Options::Main::mysqld_safe_compatible)
    {
      /*
        The password file does not exist, but we are running in
        mysqld_safe-compatible mode. Continue, but complain in log.
      */
  /* Initialize user db. */

      log_info("Warning: password file does not exist, "
               "nobody will be able to connect to Instance Manager.");
    }
    else
    {
      log_error("Manager: %s.", (const char *) err_msg);
      return 1;
    }
  }
  if (init_user_map(&user_map))
    return 1; /* logging has been already done. */

  /* Write Instance Manager pid file. */

+1 −0
Original line number Diff line number Diff line
@@ -51,6 +51,7 @@ class Manager

private:
  static void stop_all_threads();
  static bool init_user_map(User_map *user_map);

private:
  static Guardian *p_guardian;
+3 −3
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@
      mysql subsystem.
*/

static int im_main(int argc, char *argv[]);
static int main_impl(int argc, char *argv[]);

#ifndef __WIN__
static struct passwd *check_user();
@@ -90,7 +90,7 @@ int main(int argc, char *argv[])

  log_info("IM: started.");

  return_value= im_main(argc, argv);
  return_value= main_impl(argc, argv);

  log_info("IM: finished.");

@@ -108,7 +108,7 @@ int main(int argc, char *argv[])
  Instance Manager main functionality.
*************************************************************************/

int im_main(int argc, char *argv[])
int main_impl(int argc, char *argv[])
{
  int rc;