115 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			115 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * This file is distributed as part of 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 2014
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 *
 | 
						|
 * @verbatim
 | 
						|
 * Revision History
 | 
						|
 *
 | 
						|
 * Date         Who                     Description
 | 
						|
 * 09-03-2015   Markus Mäkelä         Initial implementation
 | 
						|
 * 10-03-2015   Massimiliano Pinto      Added http_check
 | 
						|
 *
 | 
						|
 * @endverbatim
 | 
						|
 */
 | 
						|
 | 
						|
#define FAILTEST(s) printf("TEST FAILED: " s "\n");return 1;
 | 
						|
#include <my_config.h>
 | 
						|
#include <mysql.h>
 | 
						|
#include <stdio.h>
 | 
						|
#include <notification.h>
 | 
						|
#include <stdint.h>
 | 
						|
#include <stdbool.h>
 | 
						|
#include <string.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <housekeeper.h>
 | 
						|
#include <buffer.h>
 | 
						|
#include <regex.h>
 | 
						|
#include <modules.h>
 | 
						|
 | 
						|
static char* server_options[] = {
 | 
						|
    "MariaDB Corporation MaxScale",
 | 
						|
    "--no-defaults",
 | 
						|
    "--datadir=.",
 | 
						|
    "--language=.",
 | 
						|
    "--skip-innodb",
 | 
						|
    "--default-storage-engine=myisam",
 | 
						|
    NULL
 | 
						|
};
 | 
						|
 | 
						|
const int num_elements = (sizeof(server_options) / sizeof(char *)) - 1;
 | 
						|
 | 
						|
static char* server_groups[] = {
 | 
						|
    "embedded",
 | 
						|
    "server",
 | 
						|
    "server",
 | 
						|
    "embedded",
 | 
						|
    "server",
 | 
						|
    "server",
 | 
						|
    NULL
 | 
						|
};
 | 
						|
 | 
						|
int config_load(char *);
 | 
						|
int module_create_feedback_report(GWBUF **buffer, MODULES *modules, FEEDBACK_CONF *cfg);
 | 
						|
int do_http_post(GWBUF *buffer, void *cfg);
 | 
						|
 | 
						|
int main(int argc, char** argv)
 | 
						|
{
 | 
						|
    FEEDBACK_CONF* fc;
 | 
						|
    GWBUF* buf;
 | 
						|
    regex_t re;
 | 
						|
    char* home;
 | 
						|
    char* cnf;
 | 
						|
 | 
						|
    hkinit();
 | 
						|
 | 
						|
    cnf = strdup("/etc/MaxScale.cnf");
 | 
						|
 | 
						|
    printf("Config: %s\n",cnf);
 | 
						|
 | 
						|
 | 
						|
       if(mysql_library_init(num_elements, server_options, server_groups))
 | 
						|
       {
 | 
						|
	   FAILTEST("Failed to initialize embedded library.");
 | 
						|
       }
 | 
						|
 | 
						|
    config_load(cnf);
 | 
						|
 | 
						|
    if ((fc = config_get_feedback_data()) == NULL)
 | 
						|
    {
 | 
						|
        FAILTEST("Configuration for Feedback was NULL.");
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
    regcomp(&re,fc->feedback_user_info,0);
 | 
						|
 | 
						|
    module_create_feedback_report(&buf,NULL,fc);
 | 
						|
 | 
						|
    if(regexec(&re,(char*)buf->start,0,NULL,0))
 | 
						|
    {
 | 
						|
        FAILTEST("Regex match of 'user_info' failed.");
 | 
						|
    }
 | 
						|
 | 
						|
        if (do_http_post(buf, fc) != 0)
 | 
						|
        {
 | 
						|
                FAILTEST("Http send failed\n");
 | 
						|
        }
 | 
						|
    mysql_library_end();
 | 
						|
    return 0;
 | 
						|
}
 |