Merge branch 'release-1.0beta-refresh' of https://github.com/skysql/MaxScale into release-1.0beta-refresh
This commit is contained in:
		@ -273,7 +273,10 @@ char            c;
 | 
				
			|||||||
		}
 | 
							}
 | 
				
			||||||
		else if (*buf)
 | 
							else if (*buf)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			sendCommand(so, buf);
 | 
								if (!sendCommand(so, buf))
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									return 0;
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@ -298,6 +301,7 @@ connectMaxScale(char *hostname, char *port)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
struct sockaddr_in	addr;
 | 
					struct sockaddr_in	addr;
 | 
				
			||||||
int			so;
 | 
					int			so;
 | 
				
			||||||
 | 
					int			keepalive = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((so = socket(AF_INET, SOCK_STREAM, 0)) < 0)
 | 
						if ((so = socket(AF_INET, SOCK_STREAM, 0)) < 0)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
@ -315,6 +319,9 @@ int			so;
 | 
				
			|||||||
				hostname, port, strerror(errno));
 | 
									hostname, port, strerror(errno));
 | 
				
			||||||
		return -1;
 | 
							return -1;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
						if (setsockopt(so, SOL_SOCKET,
 | 
				
			||||||
 | 
								SO_KEEPALIVE, &keepalive , sizeof(keepalive )))
 | 
				
			||||||
 | 
							perror("setsockopt");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return so;
 | 
						return so;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -387,11 +394,14 @@ authMaxScale(int so, char *user, char *password)
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
char	buf[20];
 | 
					char	buf[20];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	read(so, buf, 4);
 | 
						if (read(so, buf, 4) != 4)
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
	write(so, user, strlen(user));
 | 
						write(so, user, strlen(user));
 | 
				
			||||||
	read(so, buf, 8);
 | 
						if (read(so, buf, 8) != 8)
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
	write(so, password, strlen(password));
 | 
						write(so, password, strlen(password));
 | 
				
			||||||
	read(so, buf, 6);
 | 
						if (read(so, buf, 6) != 6)
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	return strncmp(buf, "FAILED", 6);
 | 
						return strncmp(buf, "FAILED", 6);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@ -412,10 +422,11 @@ sendCommand(int so, char *cmd)
 | 
				
			|||||||
char	buf[80];
 | 
					char	buf[80];
 | 
				
			||||||
int	i, j, newline = 1;
 | 
					int	i, j, newline = 1;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	write(so, cmd, strlen(cmd));
 | 
						if (write(so, cmd, strlen(cmd)) == -1)
 | 
				
			||||||
 | 
							return 0;
 | 
				
			||||||
	while (1)
 | 
						while (1)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if ((i = read(so, buf, 80)) == -1)
 | 
							if ((i = read(so, buf, 80)) <= 0)
 | 
				
			||||||
			return 0;
 | 
								return 0;
 | 
				
			||||||
		for (j = 0; j < i; j++)
 | 
							for (j = 0; j < i; j++)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
 | 
				
			|||||||
							
								
								
									
										189
									
								
								client/test/maxadmin_test.sh
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										189
									
								
								client/test/maxadmin_test.sh
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,189 @@
 | 
				
			|||||||
 | 
					#!/bin/sh
 | 
				
			||||||
 | 
					failure=0
 | 
				
			||||||
 | 
					passed=0
 | 
				
			||||||
 | 
					maxadmin -pskysql help >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Auth test (correct password):		Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Auth test (correct password):		Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					maxadmin -pwrongpasswd help >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "0" ]; then
 | 
				
			||||||
 | 
						echo "Auth test (wrong password):		Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Auth test (wrong password):		Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					maxadmin --password=skysql help >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Auth test (long option):			Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Auth test (long option):			Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maxadmin -pskysql enable log debug >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Enable debug log:				Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Enable debug log:				Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maxadmin -pskysql enable log trace >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Enable trace log:				Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Enable trace log:				Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maxadmin -pskysql disable log debug >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Disable debug log:				Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Disable debug log:				Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maxadmin -pskysql disable log trace >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Disable trace log:				Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Disable trace log:				Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for cmd in clients dcbs filters listeners modules monitors services servers sessions threads
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
						maxadmin -pskysql list $cmd | grep -s '-' >& /dev/null
 | 
				
			||||||
 | 
						if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
							echo "list command ($cmd):			Failed"
 | 
				
			||||||
 | 
							failure=`expr $failure + 1`
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							passed=`expr $passed + 1`
 | 
				
			||||||
 | 
							echo "list command ($cmd):			Passed"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for cmd in dcbs dbusers epoll filters modules monitors services servers sessions threads users
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
						maxadmin -pskysql show $cmd | grep -s ' ' >& /dev/null
 | 
				
			||||||
 | 
						if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
							echo "show command ($cmd):			Failed"
 | 
				
			||||||
 | 
							failure=`expr $failure + 1`
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							passed=`expr $passed + 1`
 | 
				
			||||||
 | 
							echo "show command ($cmd):			Passed"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					master=`maxadmin -pskysql list servers | awk  '/Master/ { print $1; }'`
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Extract master server:			Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Extract master server:			Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					if [ "$master" = "" ]; then
 | 
				
			||||||
 | 
						echo "Get master server:			Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Get master server:			Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					maxadmin -pskysql show server $master | grep -s 'Master' >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "show server master:			Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "show server master:			Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					maxadmin -pskysql set server $master maint >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "set server:				Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "set server:				Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					maxadmin -pskysql list servers | grep $master | grep -s Maint >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "set maintenance mode:			Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "set maintenance mode:			Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					maxadmin -pskysql clear server $master maint >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "clear server:				Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "clear server:				Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					maxadmin -pskysql list servers | grep $master | grep -s Maint >& /dev/null
 | 
				
			||||||
 | 
					if [ $? -eq "0" ]; then
 | 
				
			||||||
 | 
						echo "clear maintenance mode:			Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "clear maintenance mode:			Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dcbs=`maxadmin -pskysql list dcbs | awk -F\| '/listening/ { if ( NF > 1 )  print $1 }'`
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Get dcb listeners:			Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Get dcb listeners:			Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for i in $dcbs
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
						maxadmin -pskysql show dcb $i | grep -s 'listening' >& /dev/null
 | 
				
			||||||
 | 
						if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
							echo "show dcb listeners:			Failed"
 | 
				
			||||||
 | 
							failure=`expr $failure + 1`
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							passed=`expr $passed + 1`
 | 
				
			||||||
 | 
							echo "show dcb listeners:			Passed"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sessions=`maxadmin -pskysql list sessions | awk -F\| '/Listener/ { if ( NF > 1 )  print $1 }'`
 | 
				
			||||||
 | 
					if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
						echo "Get listener sessions:			Failed"
 | 
				
			||||||
 | 
						failure=`expr $failure + 1`
 | 
				
			||||||
 | 
					else
 | 
				
			||||||
 | 
						passed=`expr $passed + 1`
 | 
				
			||||||
 | 
						echo "Get listener sessions:			Passed"
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					for i in $sessions
 | 
				
			||||||
 | 
					do
 | 
				
			||||||
 | 
						maxadmin -pskysql show session $i | grep -s 'Listener' >& /dev/null
 | 
				
			||||||
 | 
						if [ $? -eq "1" ]; then
 | 
				
			||||||
 | 
							echo "show session listeners:			Failed"
 | 
				
			||||||
 | 
							failure=`expr $failure + 1`
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							passed=`expr $passed + 1`
 | 
				
			||||||
 | 
							echo "show session listeners:			Passed"
 | 
				
			||||||
 | 
						fi
 | 
				
			||||||
 | 
					done
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "Test run complete. $passed passes, $failure failures"
 | 
				
			||||||
 | 
					exit $failure
 | 
				
			||||||
@ -279,6 +279,7 @@ int	n_connect = 0;
 | 
				
			|||||||
			client_dcb->session =
 | 
								client_dcb->session =
 | 
				
			||||||
                                session_alloc(dcb->session->service, client_dcb);
 | 
					                                session_alloc(dcb->session->service, client_dcb);
 | 
				
			||||||
                        maxscaled_pr = (MAXSCALED *)malloc(sizeof(MAXSCALED));
 | 
					                        maxscaled_pr = (MAXSCALED *)malloc(sizeof(MAXSCALED));
 | 
				
			||||||
 | 
								maxscaled_pr->username = NULL;
 | 
				
			||||||
                        client_dcb->protocol = (void *)maxscaled_pr;
 | 
					                        client_dcb->protocol = (void *)maxscaled_pr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                        if (maxscaled_pr == NULL)
 | 
					                        if (maxscaled_pr == NULL)
 | 
				
			||||||
@ -294,7 +295,6 @@ int	n_connect = 0;
 | 
				
			|||||||
			}
 | 
								}
 | 
				
			||||||
			n_connect++;
 | 
								n_connect++;
 | 
				
			||||||
			maxscaled_pr->state = MAXSCALED_STATE_LOGIN;
 | 
								maxscaled_pr->state = MAXSCALED_STATE_LOGIN;
 | 
				
			||||||
			maxscaled_pr->username = NULL;
 | 
					 | 
				
			||||||
			dcb_printf(client_dcb, "USER");
 | 
								dcb_printf(client_dcb, "USER");
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user