
The previous interface of skygw_logmanager_init was conceptually broken. With -o you could specify that logging should be done to stdout. However, even if you did that, the log manager still checked that the logging directory could be accessed. Unless it had been specified using -j <path> the default was /var/log/maxscale. That is, unless the program calling skygw_logmanager_init was invoked by a user that had write access to /var/log/maxscale, there would be a complaint even if nothing was ever written to that directory. In practice this meant that even if -o was used you had to provide a -j with a path that surely is writeable (e.g. "/tmp"). This has now been changed so that you explicitly must provide the log directory and the flags -j and -o are removed. bool skygw_logmanager_init(const char* logdir, int argc, char* argv[]); If /logdir/ is provided then logged messages are written to a log file in that directory. If /logdir/ is NULL then messages are logged to stdout and no checks for access to any directory is not made.
77 lines
1.9 KiB
C
77 lines
1.9 KiB
C
/*
|
|
* This file is distributed as part of the MariaDB Corporation MaxScale. It is free
|
|
* software: you can redistribute it and/or modify it under the terms of the
|
|
* GNU General Public License as published by the Free Software Foundation,
|
|
* version 2.
|
|
*
|
|
* This program is distributed in the hope that it will be useful, but WITHOUT
|
|
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
|
|
* details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along with
|
|
* this program; if not, write to the Free Software Foundation, Inc., 51
|
|
* Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*
|
|
* Copyright MariaDB Corporation Ab 2013-2014
|
|
*/
|
|
|
|
/**
|
|
* @file maxkeys.c - Create the random encryption keys for maxscale
|
|
*
|
|
* @verbatim
|
|
* Revision History
|
|
*
|
|
* Date Who Description
|
|
* 24/07/13 Mark Riddoch Initial implementation
|
|
*
|
|
* @endverbatim
|
|
*/
|
|
#include <stdio.h>
|
|
#include <secrets.h>
|
|
#include <skygw_utils.h>
|
|
#include <log_manager.h>
|
|
#include <gwdirs.h>
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
int arg_count = 1;
|
|
char *home;
|
|
char *keyfile;
|
|
char** arg_vector;
|
|
int rval = 0;
|
|
|
|
if (argc < 2)
|
|
{
|
|
keyfile = "/var/lib/maxscale/";
|
|
fprintf(stderr, "Generating .secrets file in /var/lib/maxscale/ ...\n");
|
|
}
|
|
else
|
|
{
|
|
keyfile = argv[1];
|
|
}
|
|
arg_vector = malloc(sizeof(char*) * (arg_count + 1));
|
|
|
|
if (arg_vector == NULL)
|
|
{
|
|
fprintf(stderr,"Error: Memory allocation failed.\n");
|
|
return 1;
|
|
}
|
|
|
|
arg_vector[0] = "logmanager";
|
|
arg_vector[1] = NULL;
|
|
skygw_logmanager_init(NULL, arg_count, arg_vector);
|
|
free(arg_vector);
|
|
|
|
if (secrets_writeKeys(keyfile))
|
|
{
|
|
fprintf(stderr, "Failed to encode the password\n");
|
|
rval = 1;
|
|
}
|
|
|
|
skygw_log_sync_all();
|
|
skygw_logmanager_done();
|
|
|
|
return rval;
|
|
}
|