Skip to content

Commit

Permalink
Use IPv6
Browse files Browse the repository at this point in the history
  • Loading branch information
k0ffee committed Mar 19, 2018
1 parent 1cdef00 commit f825f01
Show file tree
Hide file tree
Showing 4 changed files with 78 additions and 46 deletions.
49 changes: 37 additions & 12 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,13 +1,17 @@
#
# This uses bmake.
#
NAME = mysql-test
CC = clang
OS != uname

CC = clang
OS != uname

UMASK = 77

.if ${OS} == Darwin
GROUP = _www
CFLAGS += -I/opt/pkg/include/mysql -L/opt/pkg/lib
# CFLAGS += -I/opt/pkg/include/mysql -L/opt/pkg/lib # pkgsrc
CFLAGS += -I/usr/local/Cellar/mysql/5.7.21/include/mysql # homebrew
CFLAGS += -L/usr/local/Cellar/mysql/5.7.21/lib # homebrew
.elif ${OS} == FreeBSD
GROUP = www
CFLAGS += -I/usr/local/include/mysql -L/usr/local/lib/mysql
Expand All @@ -17,13 +21,34 @@ UMASK = 77
CFLAGS += -I/usr/include/mysql -L/usr/lib/x86_64-linux-gnu
.endif

all: build test
LIBS = -lmysqlclient

.PHONY: all mysql galera

all: mysql-test

mysql: mysql-test

mysql-test: mysql-test.c
umask ${UMASK} && ${CC} ${CFLAGS} ${LIBS} -D__MYSQL__ -o $@ $<
chmod 600 $<
chmod 710 $@
chgrp ${GROUP} $@

galera: galera-test

galera-test: galera-test.c
umask ${UMASK} && ${CC} ${CFLAGS} ${LIBS} -D__GALERA__ -o $@ $<
chmod 600 $<
chmod 710 $@
chgrp ${GROUP} $@

.PHONY: clean clean-mysql clean-galera

clean: clean-mysql clean-galera

build:
umask ${UMASK}
${CC} ${CFLAGS} -lmysqlclient -o ${NAME} ${NAME}.c
chmod 600 ${NAME}.c
chmod 710 ${NAME}
chgrp ${GROUP} ${NAME}
clean-mysql:
rm -f mysql-test

test:
clean-galera:
rm -f galera-test
28 changes: 28 additions & 0 deletions config.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
#define PORT 8306 /* TCP listening port */
#define LISTENQ 128 /* TCP Backlog for listen() */
#define BUFSIZE 128 /* character buffer */
#define DEFAULT_HTTP_CODE 502 /* default to bad HTTP status code */

#define MYSQL_HOST "::1"
#define MYSQL_USER "haproxy"
#define MYSQL_PASSWORD ""

#ifdef __APPLE__
#define MSG_NOSIGNAL 0x0 /* send(2) */
#endif

#ifdef __MYSQL__
#define GOOD_IO_RUNNING "Yes" /* I/O thread */
#define GOOD_SQL_RUNNING "Yes" /* SQL thread */
#define GOOD_SECONDS_BEHIND 4 /* maximum acceptable lag behind master */

#define QUERY "show slave status"

#elif __GALERA__
#define GOOD_GALERA_STATUS "4" /* wsrep_local_state */
#define READ_ONLY_STATUS "OFF"

#define QUERY_WSREP_STATE "show global status where " \
"variable_name='wsrep_local_state'"
#define QUERY_READ_ONLY "show global variables like 'read_only'"
#endif
21 changes: 5 additions & 16 deletions galera-test.c
100755 → 100644
Original file line number Diff line number Diff line change
Expand Up @@ -11,21 +11,9 @@
#include <my_global.h> /* MySQL client headers */
#include <mysql.h>

#define PORT 8306 /* TCP listening port */
#define LISTENQ 1024 /* TCP Backlog for listen() */
#define BUFSIZE 1024 /* character buffer */
#define GOOD_GALERA_STATUS "4" /* wsrep_local_state */
#define READ_ONLY_STATUS "OFF"
#define DEFAULT_HTTP_CODE 502 /* default to bad HTTP status code */

#define MYSQL_HOST "localhost"
#define MYSQL_USER "haproxy"
#define MYSQL_PASSWORD ""
#define QUERY_WSREP_STATE "show global status where " \
"variable_name='wsrep_local_state'"
#define QUERY_READ_ONLY "show global variables like 'read_only'"

int main(int argc, char *argv[]) {
#include "config.h"

int main(void) {
int list_s; /* listening socket */
int conn_s; /* connection socket */
struct sockaddr_in6 servaddr; /* socket address structure */
Expand All @@ -40,6 +28,7 @@ int main(int argc, char *argv[]) {
}

memset(&servaddr, 0, sizeof(servaddr));

servaddr.sin6_family = AF_INET6;
servaddr.sin6_addr = in6addr_any;
servaddr.sin6_port = htons(port);
Expand Down Expand Up @@ -165,7 +154,7 @@ int main(int argc, char *argv[]) {
break;
}

write(conn_s, message, strlen(message));
send(conn_s, message, strlen(message), MSG_NOSIGNAL);

status = DEFAULT_HTTP_CODE; /* resetting status for next round */

Expand Down
26 changes: 8 additions & 18 deletions mysql-test.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,38 +13,28 @@
#include <my_global.h> /* MySQL client headers */
#include <mysql.h>

#define PORT 8306 /* TCP listening port */
#define LISTENQ 128 /* TCP Backlog for listen() */
#define BUFSIZE 128 /* character buffer */
#define DEFAULT_HTTP_CODE 502 /* default to bad HTTP status code */
#define GOOD_IO_RUNNING "Yes" /* I/O thread */
#define GOOD_SQL_RUNNING "Yes" /* SQL thread */
#define GOOD_SECONDS_BEHIND 4 /* maximum acceptable lag behind master */

#define MYSQL_HOST "10.4.1.43"
#define MYSQL_USER "haproxy"
#define MYSQL_PASSWORD ""
#define QUERY "show slave status"
#include "config.h"

int main(int argc, char *argv[]) {
int list_s; /* listening socket */
int conn_s; /* connection socket */
struct sockaddr_in servaddr; /* socket address structure */
struct sockaddr_in6 servaddr; /* socket address structure */
const int reuseaddr = 1; /* socket options */
const int port = PORT; /* port number */
int status = DEFAULT_HTTP_CODE; /* HTTP status code */
const int PROTOCOL_TCP = MYSQL_PROTOCOL_TCP; /* use TCP/IP */

if ((list_s = socket(AF_INET, SOCK_STREAM, 0)) < 0) {
if ((list_s = socket(AF_INET6, SOCK_STREAM, 0)) < 0) {
fprintf(stderr, "Error creating listening socket: %d\n", errno);
exit(EXIT_FAILURE);
}

bzero(&servaddr, sizeof(servaddr));
memset(&servaddr, 0, sizeof(servaddr));

servaddr.sin_family = AF_INET;
servaddr.sin_addr.s_addr = inet_addr(MYSQL_HOST);
servaddr.sin_port = htons(port);
servaddr.sin6_family = AF_INET6;
servaddr.sin6_port = htons(port);

inet_pton(servaddr.sin6_family, MYSQL_HOST, &(servaddr.sin6_addr));

if (setsockopt(list_s, SOL_SOCKET, SO_REUSEADDR,
(const void *) &reuseaddr, sizeof(int)) < 0) {
Expand Down

0 comments on commit f825f01

Please sign in to comment.