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.
This commit is contained in:
unknown 2007-02-20 21:28:30 +03:00
parent bae98cc8a6
commit ad9cd3a5fc
4 changed files with 59 additions and 39 deletions

View file

@ -17,19 +17,16 @@
#include "angel.h" #include "angel.h"
#include <signal.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <sys/wait.h> #include <sys/wait.h>
/* /*
Include my_global.h right after system includes so that we can change sys/wait.h is needed for waitpid(). Unfortunately, there is no MySQL
system defines if needed. 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_global.h"
#include "my_alarm.h"
#include "my_sys.h"
/* Include other IM files. */ /* Include other IM files. */

View file

@ -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. Main manager function.
@ -201,9 +248,7 @@ void Manager::stop_all_threads()
int Manager::main() int Manager::main()
{ {
int err_code;
int rc= 1; int rc= 1;
const char *err_msg;
bool shutdown_complete= FALSE; bool shutdown_complete= FALSE;
pid_t manager_pid= getpid(); pid_t manager_pid= getpid();
@ -258,33 +303,10 @@ int Manager::main()
return 1; return 1;
} }
/* Initialize user map and load password file. */ /* Initialize user db. */
if (user_map.init()) if (init_user_map(&user_map))
{ return 1; /* logging has been already done. */
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.
*/
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;
}
}
/* Write Instance Manager pid file. */ /* Write Instance Manager pid file. */

View file

@ -51,6 +51,7 @@ public:
private: private:
static void stop_all_threads(); static void stop_all_threads();
static bool init_user_map(User_map *user_map);
private: private:
static Guardian *p_guardian; static Guardian *p_guardian;

View file

@ -62,7 +62,7 @@
mysql subsystem. mysql subsystem.
*/ */
static int im_main(int argc, char *argv[]); static int main_impl(int argc, char *argv[]);
#ifndef __WIN__ #ifndef __WIN__
static struct passwd *check_user(); static struct passwd *check_user();
@ -90,7 +90,7 @@ int main(int argc, char *argv[])
log_info("IM: started."); log_info("IM: started.");
return_value= im_main(argc, argv); return_value= main_impl(argc, argv);
log_info("IM: finished."); log_info("IM: finished.");
@ -108,7 +108,7 @@ int main(int argc, char *argv[])
Instance Manager main functionality. Instance Manager main functionality.
*************************************************************************/ *************************************************************************/
int im_main(int argc, char *argv[]) int main_impl(int argc, char *argv[])
{ {
int rc; int rc;