mirror of https://github.com/sysown/proxysql
Agent-Logs-Url: https://github.com/sysown/proxysql/sessions/7d0ebed6-886c-4e06-add5-d74b44eced4a Co-authored-by: renecannao <3645227+renecannao@users.noreply.github.com>pull/5554/head
parent
3f1c17778c
commit
4a93861c6c
@ -0,0 +1,34 @@
|
||||
#ifndef MYSQL_RESOLUTION_H
|
||||
#define MYSQL_RESOLUTION_H
|
||||
|
||||
#include <strings.h>
|
||||
#include <sys/socket.h>
|
||||
|
||||
inline bool mysql_resolution_family_is_valid(const char* value) {
|
||||
return value &&
|
||||
(strcasecmp(value, "system") == 0 ||
|
||||
strcasecmp(value, "ipv4") == 0 ||
|
||||
strcasecmp(value, "ipv6") == 0);
|
||||
}
|
||||
|
||||
inline const char* mysql_resolution_family_normalize(const char* value) {
|
||||
if (value && strcasecmp(value, "ipv4") == 0) {
|
||||
return "ipv4";
|
||||
}
|
||||
if (value && strcasecmp(value, "ipv6") == 0) {
|
||||
return "ipv6";
|
||||
}
|
||||
return "system";
|
||||
}
|
||||
|
||||
inline int mysql_resolution_family_to_ai_family(const char* value) {
|
||||
if (value && strcasecmp(value, "ipv4") == 0) {
|
||||
return AF_INET;
|
||||
}
|
||||
if (value && strcasecmp(value, "ipv6") == 0) {
|
||||
return AF_INET6;
|
||||
}
|
||||
return AF_UNSPEC;
|
||||
}
|
||||
|
||||
#endif // MYSQL_RESOLUTION_H
|
||||
@ -0,0 +1,23 @@
|
||||
#include "tap.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
#include "MySQL_Resolution.h"
|
||||
|
||||
int main() {
|
||||
plan(9);
|
||||
|
||||
ok(mysql_resolution_family_is_valid("system"), "system is accepted");
|
||||
ok(mysql_resolution_family_is_valid("ipv4"), "ipv4 is accepted");
|
||||
ok(mysql_resolution_family_is_valid("ipv6"), "ipv6 is accepted");
|
||||
ok(!mysql_resolution_family_is_valid("invalid"), "invalid value is rejected");
|
||||
|
||||
ok(strcmp(mysql_resolution_family_normalize("IPv4"), "ipv4") == 0, "ipv4 values are normalized");
|
||||
ok(strcmp(mysql_resolution_family_normalize("IPv6"), "ipv6") == 0, "ipv6 values are normalized");
|
||||
ok(strcmp(mysql_resolution_family_normalize("SYSTEM"), "system") == 0, "system values are normalized");
|
||||
|
||||
ok(mysql_resolution_family_to_ai_family("ipv4") == AF_INET, "ipv4 maps to AF_INET");
|
||||
ok(mysql_resolution_family_to_ai_family("invalid") == AF_UNSPEC, "invalid values fall back to AF_UNSPEC");
|
||||
|
||||
return exit_status();
|
||||
}
|
||||
Loading…
Reference in new issue