static int server_audit_init()

in plugin/server_audit/server_audit.cc [2077:2145]


static int server_audit_init(void *p __attribute__((unused)))
{
  sql_print_information("Initializing audit plugin.....");
  if (!serv_ver)
  {
    serv_ver= (const char*)find_sym("server_version");
  }

  if(!(int_mysql_data_home= (char**)find_sym("mysql_data_home")))
  {
    if(!(int_mysql_data_home= (char**)find_sym("?mysql_data_home@@3PADA")))
      int_mysql_data_home= const_cast<char **>(&default_home);
  }

  if (!serv_ver)
    return 1;

  if (gethostname(servhost, sizeof(servhost)))
    strncpy(servhost, "unknown", 7);

  servhost_len= (uint)strlen(servhost);

  logger_init_mutexes();
#ifdef HAVE_PSI_INTERFACE
  mysql_mutex_register("server_audit", mutex_key_list, array_elements(mutex_key_list));
#endif
  mysql_prlock_init(key_LOCK_operations, &lock_operations);
  flogger_mutex_init(key_LOCK_operations, &lock_atomic, MY_MUTEX_INIT_FAST);
  flogger_mutex_init(key_LOCK_operations, &lock_bigbuffer, MY_MUTEX_INIT_FAST);

  coll_init(&incl_user_coll);
  coll_init(&excl_user_coll);

  if (incl_users)
  {
    if (excl_users)
    {
      incl_users= excl_users= NULL;
      error_header();
      fprintf(stderr, "INCL_DML_USERS and EXCL_DML_USERS specified"
                      " simultaneously - both set to empty\n");
    }
    update_incl_users(NULL, NULL, NULL, &incl_users);
  }
  else if (excl_users)
  {
    update_excl_users(NULL, NULL, NULL, &excl_users);
  }

  error_header();
  fprintf(stderr, "MySQL Audit Plugin version %s%s STARTED.\n",
          PLUGIN_STR_VERSION, PLUGIN_DEBUG_VERSION);

  ci_disconnect_buffer.header= 10;
  ci_disconnect_buffer.thread_id= 0;
  ci_disconnect_buffer.query_id= 0;
  ci_disconnect_buffer.db_length= 0;
  ci_disconnect_buffer.user_length= 0;
  ci_disconnect_buffer.host_length= 0;
  ci_disconnect_buffer.ip_length= 0;
  ci_disconnect_buffer.query= empty_str;
  ci_disconnect_buffer.query_length= 0;

  if (logging)
    start_logging();

  init_done= 1;
  return 0;
}