Loading ndb/tools/ndb_config.cpp +45 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ #include <my_getopt.h> #include <mysql_version.h> #include <netdb.h> #include <NdbOut.hpp> #include <mgmapi.h> #include <mgmapi_configuration.hpp> Loading Loading @@ -127,6 +129,11 @@ struct Match virtual int eval(NdbMgmHandle, const Iter&); }; struct HostMatch : public Match { virtual int eval(NdbMgmHandle, const Iter&); }; struct Apply { Apply() {} Loading Loading @@ -297,9 +304,10 @@ parse_where(Vector<Match*>& where, int &argc, char**& argv) Match m; if(g_host) { m.m_key = CFG_NODE_HOST; m.m_value.assfmt("%s", g_host); where.push_back(new Match(m)); HostMatch *m = new HostMatch; m->m_key = CFG_NODE_HOST; m->m_value.assfmt("%s", g_host); where.push_back(m); } if(g_type) Loading Loading @@ -375,6 +383,40 @@ Match::eval(NdbMgmHandle h, const Iter& iter) return 1; } int HostMatch::eval(NdbMgmHandle h, const Iter& iter) { const char* valc; if(iter.get(m_key, &valc) == 0) { struct hostent *h1, *h2; h1 = gethostbyname(m_value.c_str()); if (h1 == NULL) { return 0; } h2 = gethostbyname(valc); if (h2 == NULL) { return 0; } if (h1->h_addrtype != h2->h_addrtype) { return 0; } if (h1->h_length != h2->h_length) { return 0; } return 0 == memcmp(h1->h_addr, h2->h_addr, h1->h_length); } return 0; } int Apply::apply(NdbMgmHandle h, const Iter& iter) { Loading Loading
ndb/tools/ndb_config.cpp +45 −3 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ #include <my_getopt.h> #include <mysql_version.h> #include <netdb.h> #include <NdbOut.hpp> #include <mgmapi.h> #include <mgmapi_configuration.hpp> Loading Loading @@ -127,6 +129,11 @@ struct Match virtual int eval(NdbMgmHandle, const Iter&); }; struct HostMatch : public Match { virtual int eval(NdbMgmHandle, const Iter&); }; struct Apply { Apply() {} Loading Loading @@ -297,9 +304,10 @@ parse_where(Vector<Match*>& where, int &argc, char**& argv) Match m; if(g_host) { m.m_key = CFG_NODE_HOST; m.m_value.assfmt("%s", g_host); where.push_back(new Match(m)); HostMatch *m = new HostMatch; m->m_key = CFG_NODE_HOST; m->m_value.assfmt("%s", g_host); where.push_back(m); } if(g_type) Loading Loading @@ -375,6 +383,40 @@ Match::eval(NdbMgmHandle h, const Iter& iter) return 1; } int HostMatch::eval(NdbMgmHandle h, const Iter& iter) { const char* valc; if(iter.get(m_key, &valc) == 0) { struct hostent *h1, *h2; h1 = gethostbyname(m_value.c_str()); if (h1 == NULL) { return 0; } h2 = gethostbyname(valc); if (h2 == NULL) { return 0; } if (h1->h_addrtype != h2->h_addrtype) { return 0; } if (h1->h_length != h2->h_length) { return 0; } return 0 == memcmp(h1->h_addr, h2->h_addr, h1->h_length); } return 0; } int Apply::apply(NdbMgmHandle h, const Iter& iter) { Loading