diff options
author | unknown <petr@mysql.com> | 2004-10-25 14:23:31 +0400 |
---|---|---|
committer | unknown <petr@mysql.com> | 2004-10-25 14:23:31 +0400 |
commit | a3d9a1eb066d7cca01bef104d065864f2a7c65ec (patch) | |
tree | 77663399ce764850ff52e544fe7dad6f7ae2fdd4 /server-tools | |
parent | a5435ea78ab3d62223fd94ebd7c730f8ded30f1b (diff) | |
download | mariadb-git-a3d9a1eb066d7cca01bef104d065864f2a7c65ec.tar.gz |
minor post review fixes
server-tools/instance-manager/buffer.cc:
function renames
server-tools/instance-manager/buffer.h:
function renames
server-tools/instance-manager/command.cc:
unecessary headers removed
server-tools/instance-manager/command.h:
cleanup
server-tools/instance-manager/commands.cc:
cleanup
server-tools/instance-manager/commands.h:
cleanup
server-tools/instance-manager/guardian.cc:
cleanup
server-tools/instance-manager/instance.cc:
cleanup
server-tools/instance-manager/instance_options.cc:
cleanup
server-tools/instance-manager/instance_options.h:
cleanup
server-tools/instance-manager/listener.cc:
cleanup
server-tools/instance-manager/manager.cc:
cleanup
server-tools/instance-manager/protocol.cc:
cleanup
Diffstat (limited to 'server-tools')
-rw-r--r-- | server-tools/instance-manager/buffer.cc | 20 | ||||
-rw-r--r-- | server-tools/instance-manager/buffer.h | 4 | ||||
-rw-r--r-- | server-tools/instance-manager/command.cc | 10 | ||||
-rw-r--r-- | server-tools/instance-manager/command.h | 4 | ||||
-rw-r--r-- | server-tools/instance-manager/commands.cc | 12 | ||||
-rw-r--r-- | server-tools/instance-manager/commands.h | 3 | ||||
-rw-r--r-- | server-tools/instance-manager/guardian.cc | 39 | ||||
-rw-r--r-- | server-tools/instance-manager/instance.cc | 4 | ||||
-rw-r--r-- | server-tools/instance-manager/instance_options.cc | 2 | ||||
-rw-r--r-- | server-tools/instance-manager/instance_options.h | 9 | ||||
-rw-r--r-- | server-tools/instance-manager/listener.cc | 11 | ||||
-rw-r--r-- | server-tools/instance-manager/manager.cc | 37 | ||||
-rw-r--r-- | server-tools/instance-manager/protocol.cc | 6 |
13 files changed, 77 insertions, 84 deletions
diff --git a/server-tools/instance-manager/buffer.cc b/server-tools/instance-manager/buffer.cc index 39e255300cf..66267e4af18 100644 --- a/server-tools/instance-manager/buffer.cc +++ b/server-tools/instance-manager/buffer.cc @@ -26,15 +26,15 @@ Puts the given string to the buffer. SYNOPSYS - put_to_buffer() - start_pos start position in the buffer + append() + position start position in the buffer string string to be put in the buffer len_arg the length of the string. This way we can avoid some strlens. DESCRIPTION - The method puts a string into the buffer, starting from start_pos . + The method puts a string into the buffer, starting from position . In the case when the buffer is too small it reallocs the buffer. The total size of the buffer is restricted with 16. @@ -43,12 +43,12 @@ 1 - The buffer came to 16Mb barrier */ -int Buffer::put_to_buffer(char *start_pos, const char *string, uint len_arg) +int Buffer::append(char *position, const char *string, uint len_arg) { - if (check_and_add(start_pos - buffer, len_arg)) + if (reserve(position - buffer, len_arg)) return 1; - strnmov(start_pos, string, len_arg); + strnmov(position, string, len_arg); return 0; } @@ -58,7 +58,7 @@ int Buffer::put_to_buffer(char *start_pos, const char *string, uint len_arg) "len_arg" starting from "position" and reallocs it if no. SYNOPSYS - check_and_add() + reserve() position the number starting byte on the buffer to store a buffer len_arg the length of the string. @@ -74,7 +74,7 @@ int Buffer::put_to_buffer(char *start_pos, const char *string, uint len_arg) 1 - The buffer came to 16Mb barrier */ -int Buffer::check_and_add(uint position, uint len_arg) +int Buffer::reserve(uint position, uint len_arg) { if (position + len_arg >= MAX_BUFFER_SIZE) return 1; @@ -83,9 +83,9 @@ int Buffer::check_and_add(uint position, uint len_arg) { buffer= (char *) realloc(buffer, min(MAX_BUFFER_SIZE, - max((uint) buffer_size*1.5, + max((uint) (buffer_size*1.5), position + len_arg))); - buffer_size= (uint) buffer_size*1.5; + buffer_size= (uint) (buffer_size*1.5); } return 0; } diff --git a/server-tools/instance-manager/buffer.h b/server-tools/instance-manager/buffer.h index 8781abebd71..dbf72e34bf0 100644 --- a/server-tools/instance-manager/buffer.h +++ b/server-tools/instance-manager/buffer.h @@ -50,8 +50,8 @@ public: public: char *buffer; - int put_to_buffer(char *start_pos, const char *string, uint len_arg); - int check_and_add(uint position, uint len_arg); + int append(char *start_pos, const char *string, uint len_arg); + int reserve(uint position, uint len_arg); }; #endif /* INCLUDES_MYSQL_INSTANCE_MANAGER_BUFFER_H */ diff --git a/server-tools/instance-manager/command.cc b/server-tools/instance-manager/command.cc index 71415a038f0..87260f9e17b 100644 --- a/server-tools/instance-manager/command.cc +++ b/server-tools/instance-manager/command.cc @@ -20,16 +20,6 @@ #include "command.h" -#include <my_global.h> -#include <my_sys.h> -#include <m_ctype.h> -#include <m_string.h> -#include <mysql_com.h> -#include <mysqld_error.h> - -#include "log.h" -#include "protocol.h" -#include "instance_map.h" Command::Command(Command_factory *factory_arg) :factory(factory_arg) diff --git a/server-tools/instance-manager/command.h b/server-tools/instance-manager/command.h index 25b418ca8fe..9b981ecd163 100644 --- a/server-tools/instance-manager/command.h +++ b/server-tools/instance-manager/command.h @@ -22,7 +22,7 @@ #include <my_global.h> -/* Class responsible for allocation and deallocation of im classes. */ +/* Class responsible for allocation of im commands. */ class Command_factory; @@ -44,6 +44,4 @@ protected: Command_factory *factory; }; -#define CONST_STR(a) String(a,sizeof(a),&my_charset_latin1) - #endif /* INCLUDES_MYSQL_INSTANCE_MANAGER_COMMAND_H */ diff --git a/server-tools/instance-manager/commands.cc b/server-tools/instance-manager/commands.cc index e990f04216d..30d8f0794a0 100644 --- a/server-tools/instance-manager/commands.cc +++ b/server-tools/instance-manager/commands.cc @@ -54,11 +54,12 @@ Show_instance_status::Show_instance_status(Command_factory *factory, Instance *instance; /* we make a search here, since we don't want t store the name */ - if (instance= (factory->instance_map).find(name, len)) + if (instance= factory->instance_map.find(name, len)) { instance_name= instance->options.instance_name; } - else instance_name= NULL; + else + instance_name= NULL; } @@ -90,7 +91,8 @@ Show_instance_options::Show_instance_options(Command_factory *factory, { instance_name= instance->options.instance_name; } - else instance_name= NULL; + else + instance_name= NULL; } @@ -116,7 +118,7 @@ Start_instance::Start_instance(Command_factory *factory, :Command(factory) { /* we make a search here, since we don't want t store the name */ - if (instance= (factory->instance_map).find(name, len)) + if (instance= factory->instance_map.find(name, len)) instance_name= instance->options.instance_name; } @@ -150,7 +152,7 @@ Stop_instance::Stop_instance(Command_factory *factory, :Command(factory) { /* we make a search here, since we don't want t store the name */ - if (instance= (factory->instance_map).find(name, len)) + if (instance= factory->instance_map.find(name, len)) instance_name= instance->options.instance_name; } diff --git a/server-tools/instance-manager/commands.h b/server-tools/instance-manager/commands.h index bab61f04b17..09df4fc9260 100644 --- a/server-tools/instance-manager/commands.h +++ b/server-tools/instance-manager/commands.h @@ -120,9 +120,6 @@ public: class Syntax_error : public Command { public: - Syntax_error() - {} - int execute(struct st_net *net, ulong connection_id); }; diff --git a/server-tools/instance-manager/guardian.cc b/server-tools/instance-manager/guardian.cc index ebc59d67906..f13b98cbf20 100644 --- a/server-tools/instance-manager/guardian.cc +++ b/server-tools/instance-manager/guardian.cc @@ -70,16 +70,13 @@ Guardian_thread::~Guardian_thread() Check for all guarded instances and restart them if needed. If everything is fine go and sleep for some time. - - RETURN - The function return no value */ void Guardian_thread::run() { Instance *instance; LIST *loop; - int i=0; + int i= 0; my_thread_init(); @@ -90,11 +87,8 @@ void Guardian_thread::run() while (loop != NULL) { instance= (Instance *) loop->data; - if (instance != NULL) - { - if (!instance->is_running()) - instance->start(); - } + /* instance-> start already checks whether instance is running */ + instance->start(); loop= loop->next; } pthread_mutex_unlock(&LOCK_guardian); @@ -124,17 +118,18 @@ void Guardian_thread::run() int Guardian_thread::guard(const char *instance_name, uint name_len) { - LIST *lst; + LIST *node; Instance *instance; - lst= (LIST *) alloc_root(&alloc, sizeof(LIST)); - if (lst == NULL) return 1; + node= (LIST *) alloc_root(&alloc, sizeof(LIST)); + if (node == NULL) + return 1; instance= instance_map->find(instance_name, name_len); /* we store the pointers to instances from the instance_map's MEM_ROOT */ - lst->data= (void *) instance; + node->data= (void *) instance; pthread_mutex_lock(&LOCK_guardian); - guarded_instances= list_add(guarded_instances, lst); + guarded_instances= list_add(guarded_instances, node); pthread_mutex_unlock(&LOCK_guardian); return 0; @@ -150,28 +145,28 @@ int Guardian_thread::guard(const char *instance_name, uint name_len) int Guardian_thread::stop_guard(const char *instance_name, uint name_len) { - LIST *lst; + LIST *node; Instance *instance; instance= instance_map->find(instance_name, name_len); - lst= guarded_instances; - if (lst == NULL) return 1; - pthread_mutex_lock(&LOCK_guardian); - while (lst != NULL) + node= guarded_instances; + + while (node != NULL) { /* We compare only pointers, as we always use pointers from the instance_map's MEM_ROOT. */ - if ((Instance *) lst->data == instance) + if ((Instance *) node->data == instance) { - guarded_instances= list_delete(guarded_instances, lst); + guarded_instances= list_delete(guarded_instances, node); pthread_mutex_unlock(&LOCK_guardian); return 0; } - else lst= lst->next; + else + node= node->next; } pthread_mutex_unlock(&LOCK_guardian); /* if there is nothing to delete it is also fine */ diff --git a/server-tools/instance-manager/instance.cc b/server-tools/instance-manager/instance.cc index 32e77429572..689cea2d786 100644 --- a/server-tools/instance-manager/instance.cc +++ b/server-tools/instance-manager/instance.cc @@ -49,8 +49,8 @@ int Instance::start() exit(0); /* parent goes bye-bye */ else { - execv(options.mysqld_path, options.argv); - exit(1); + execv(options.mysqld_path, options.argv); + exit(1); } case -1: return ER_CANNOT_START_INSTANCE; diff --git a/server-tools/instance-manager/instance_options.cc b/server-tools/instance-manager/instance_options.cc index 7586566de9d..8311e4f7bc0 100644 --- a/server-tools/instance-manager/instance_options.cc +++ b/server-tools/instance-manager/instance_options.cc @@ -172,7 +172,7 @@ err: int Instance_options::add_to_argv(const char* option) { - DBUG_ASSERT(filled_default_options < (MAX_NUMBER_OF_DEFAULT_OPTIONS + 1)); + DBUG_ASSERT(filled_default_options < MAX_NUMBER_OF_DEFAULT_OPTIONS); if (option != NULL) argv[filled_default_options++]= (char *) option; diff --git a/server-tools/instance-manager/instance_options.h b/server-tools/instance-manager/instance_options.h index 5034e775cd0..5bc46497d2a 100644 --- a/server-tools/instance-manager/instance_options.h +++ b/server-tools/instance-manager/instance_options.h @@ -36,9 +36,10 @@ class Instance_options { public: - Instance_options() : mysqld_socket(0), mysqld_datadir(0), - mysqld_bind_address(0), mysqld_pid_file(0), mysqld_port(0), mysqld_path(0), - mysqld_user(0), mysqld_password(0), is_guarded(0), filled_default_options(0) + Instance_options() : + mysqld_socket(0), mysqld_datadir(0), mysqld_bind_address(0), + mysqld_pid_file(0), mysqld_port(0), mysqld_path(0), mysqld_user(0), + mysqld_password(0), is_guarded(0), filled_default_options(0) {} ~Instance_options(); /* fills in argv */ @@ -50,7 +51,7 @@ public: int init(const char *instance_name_arg); public: - enum { MAX_NUMBER_OF_DEFAULT_OPTIONS= 3 }; + enum { MAX_NUMBER_OF_DEFAULT_OPTIONS= 1 }; enum { MEM_ROOT_BLOCK_SIZE= 512 }; char **argv; /* We need the some options, so we store them as a separate pointers */ diff --git a/server-tools/instance-manager/listener.cc b/server-tools/instance-manager/listener.cc index 749a31ea525..ddd03726917 100644 --- a/server-tools/instance-manager/listener.cc +++ b/server-tools/instance-manager/listener.cc @@ -78,9 +78,9 @@ Listener_thread::~Listener_thread() void Listener_thread::run() { - enum { LISTEN_BACK_LOG_SIZE = 5 }; // standard backlog size + enum { LISTEN_BACK_LOG_SIZE = 5 }; // standard backlog size int flags; - int arg= 1; /* value to be set by setsockopt */ + int arg= 1; /* value to be set by setsockopt */ /* I. prepare 'listen' sockets */ int ip_socket= socket(AF_INET, SOCK_STREAM, 0); @@ -93,7 +93,7 @@ void Listener_thread::run() } struct sockaddr_in ip_socket_address; - memset(&ip_socket_address, 0, sizeof(ip_socket_address)); + bzero(&ip_socket_address, sizeof(ip_socket_address)); ulong im_bind_addr; if (options.bind_address != 0) @@ -101,7 +101,8 @@ void Listener_thread::run() if ((im_bind_addr= (ulong) inet_addr(options.bind_address)) == INADDR_NONE) im_bind_addr= htonl(INADDR_ANY); } - else im_bind_addr= htonl(INADDR_ANY); + else + im_bind_addr= htonl(INADDR_ANY); uint im_port= options.port_number; ip_socket_address.sin_family= AF_INET; @@ -144,7 +145,7 @@ void Listener_thread::run() } struct sockaddr_un unix_socket_address; - memset(&unix_socket_address, 0, sizeof(unix_socket_address)); + bzero(&unix_socket_address, sizeof(unix_socket_address)); unix_socket_address.sun_family= AF_UNIX; strmake(unix_socket_address.sun_path, options.socket_file_name, diff --git a/server-tools/instance-manager/manager.cc b/server-tools/instance-manager/manager.cc index cb51197d52a..11a3289adbf 100644 --- a/server-tools/instance-manager/manager.cc +++ b/server-tools/instance-manager/manager.cc @@ -30,6 +30,23 @@ #include "log.h" #include "guardian.h" +static int create_pid_file(const char *pid_file_name) +{ + if (FILE *pid_file= my_fopen(pid_file_name, + O_WRONLY | O_CREAT | O_BINARY, MYF(0))) + { + fprintf(pid_file, "%d\n", (int) getpid()); + my_fclose(pid_file, MYF(0)); + } + else + { + log_error("can't create pid file %s: errno=%d, %s", + pid_file_name, errno, strerror(errno)); + return 1; + } + return 0; +} + /* manager - entry point to the main instance manager process: start @@ -53,32 +70,24 @@ void manager(const Options &options) &instance_map, options.monitoring_interval); + Listener_thread_args listener_args(thread_registry, options, user_map, + instance_map); + instance_map.mysqld_path= options.default_mysqld_path; instance_map.user= options.default_admin_user; instance_map.password= options.default_admin_password; instance_map.guardian= &guardian_thread; - instance_map.load(); - Listener_thread_args listener_args(thread_registry, options, user_map, - instance_map); + if (instance_map.load()) + return; if (user_map.load(options.password_file_name)) return; /* write pid file */ - if (FILE *pid_file= my_fopen(options.pid_file_name, - O_WRONLY | O_CREAT | O_BINARY, MYF(0))) - { - fprintf(pid_file, "%d\n", (int) getpid()); - my_fclose(pid_file, MYF(0)); - } - else - { - log_error("can't create pid file %s: errno=%d, %s", - options.pid_file_name, errno, strerror(errno)); + if (create_pid_file(options.pid_file_name)) return; - } /* block signals */ sigset_t mask; diff --git a/server-tools/instance-manager/protocol.cc b/server-tools/instance-manager/protocol.cc index 6bb6c6d2fa0..f32d8558fbf 100644 --- a/server-tools/instance-manager/protocol.cc +++ b/server-tools/instance-manager/protocol.cc @@ -105,9 +105,9 @@ void store_to_string(Buffer *buf, const char *string, uint *position) uint string_len; string_len= strlen(string); - buf->check_and_add(*position, 2); + buf->reserve(*position, 2); currpos= net_store_length(buf->buffer + *position, string_len); - buf->put_to_buffer(currpos, string, string_len); + buf->append(currpos, string, string_len); *position= *position + string_len + (currpos - buf->buffer - *position); } @@ -147,7 +147,7 @@ int send_fields(struct st_net *net, LIST *fields) store_to_string(&send_buff, (char *) "", &position); /* table name alias */ store_to_string(&send_buff, field->name, &position); /* column name */ store_to_string(&send_buff, field->name, &position); /* column name alias */ - send_buff.check_and_add(position, 12); + send_buff.reserve(position, 12); send_buff.buffer[position++]= 12; int2store(send_buff.buffer + position, 1); /* charsetnr */ int4store(send_buff.buffer + position + 2, field->length); /* field length */ |