mirror of
https://github.com/zerotier/ZeroTierOne.git
synced 2025-01-31 00:23:58 +00:00
Remove some deprecated stuff in controller -- not done yet.
This commit is contained in:
parent
82635ce606
commit
9898066b47
@ -260,11 +260,6 @@ SqliteNetworkController::SqliteNetworkController(Node *node,const char *dbPath,c
|
||||
||(sqlite3_prepare_v2(_db,"DELETE FROM Member WHERE networkId = ? AND nodeId = ?",-1,&_sDeleteMember,(const char **)0) != SQLITE_OK)
|
||||
||(sqlite3_prepare_v2(_db,"DELETE FROM Member WHERE networkId = ?",-1,&_sDeleteAllNetworkMembers,(const char **)0) != SQLITE_OK)
|
||||
|
||||
/* Gateway */
|
||||
||(sqlite3_prepare_v2(_db,"SELECT \"ip\",ipVersion,metric FROM Gateway WHERE networkId = ? ORDER BY metric ASC",-1,&_sGetGateways,(const char **)0) != SQLITE_OK)
|
||||
||(sqlite3_prepare_v2(_db,"DELETE FROM Gateway WHERE networkId = ?",-1,&_sDeleteGateways,(const char **)0) != SQLITE_OK)
|
||||
||(sqlite3_prepare_v2(_db,"INSERT INTO Gateway (networkId,\"ip\",ipVersion,metric) VALUES (?,?,?,?)",-1,&_sCreateGateway,(const char **)0) != SQLITE_OK)
|
||||
|
||||
/* Config */
|
||||
||(sqlite3_prepare_v2(_db,"SELECT \"v\" FROM \"Config\" WHERE \"k\" = ?",-1,&_sGetConfig,(const char **)0) != SQLITE_OK)
|
||||
||(sqlite3_prepare_v2(_db,"INSERT OR REPLACE INTO \"Config\" (\"k\",\"v\") VALUES (?,?)",-1,&_sSetConfig,(const char **)0) != SQLITE_OK)
|
||||
@ -348,9 +343,6 @@ SqliteNetworkController::~SqliteNetworkController()
|
||||
sqlite3_finalize(_sDeleteMember);
|
||||
sqlite3_finalize(_sDeleteAllNetworkMembers);
|
||||
sqlite3_finalize(_sDeleteNetwork);
|
||||
sqlite3_finalize(_sGetGateways);
|
||||
sqlite3_finalize(_sDeleteGateways);
|
||||
sqlite3_finalize(_sCreateGateway);
|
||||
sqlite3_finalize(_sIncrementMemberRevisionCounter);
|
||||
sqlite3_finalize(_sGetConfig);
|
||||
sqlite3_finalize(_sSetConfig);
|
||||
@ -480,7 +472,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST(
|
||||
sqlite3_reset(_sDeleteIpAllocations);
|
||||
sqlite3_bind_text(_sDeleteIpAllocations,1,nwids,16,SQLITE_STATIC);
|
||||
sqlite3_bind_text(_sDeleteIpAllocations,2,addrs,10,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sDeleteIpAllocations,3,(int)ZT_IP_ASSIGNMENT_TYPE_ADDRESS);
|
||||
sqlite3_bind_int(_sDeleteIpAllocations,3,(int)0 /*ZT_IP_ASSIGNMENT_TYPE_ADDRESS*/);
|
||||
if (sqlite3_step(_sDeleteIpAllocations) != SQLITE_DONE)
|
||||
return 500;
|
||||
for(unsigned int kk=0;kk<j->u.object.values[k].value->u.array.length;++kk) {
|
||||
@ -508,7 +500,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST(
|
||||
sqlite3_reset(_sAllocateIp);
|
||||
sqlite3_bind_text(_sAllocateIp,1,nwids,16,SQLITE_STATIC);
|
||||
sqlite3_bind_text(_sAllocateIp,2,addrs,10,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sAllocateIp,3,(int)ZT_IP_ASSIGNMENT_TYPE_ADDRESS);
|
||||
sqlite3_bind_int(_sAllocateIp,3,(int)0 /*ZT_IP_ASSIGNMENT_TYPE_ADDRESS*/);
|
||||
sqlite3_bind_blob(_sAllocateIp,4,(const void *)ipBlob,16,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sAllocateIp,5,(int)a.netmaskBits());
|
||||
sqlite3_bind_int(_sAllocateIp,6,ipVersion);
|
||||
@ -739,6 +731,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST(
|
||||
}
|
||||
}
|
||||
} else if (!strcmp(j->u.object.values[k].name,"gateways")) {
|
||||
/* deprecated
|
||||
sqlite3_reset(_sDeleteGateways);
|
||||
sqlite3_bind_text(_sDeleteGateways,1,nwids,16,SQLITE_STATIC);
|
||||
sqlite3_step(_sDeleteGateways);
|
||||
@ -765,7 +758,9 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST(
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
} else if (!strcmp(j->u.object.values[k].name,"ipLocalRoutes")) {
|
||||
/* deprecated
|
||||
sqlite3_reset(_sDeleteLocalRoutes);
|
||||
sqlite3_bind_text(_sDeleteLocalRoutes,1,nwids,16,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sDeleteLocalRoutes,2,(int)ZT_IP_ASSIGNMENT_TYPE_NETWORK);
|
||||
@ -800,6 +795,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpPOST(
|
||||
}
|
||||
}
|
||||
}
|
||||
*/
|
||||
} else if (!strcmp(j->u.object.values[k].name,"ipAssignmentPools")) {
|
||||
if (j->u.object.values[k].value->type == json_array) {
|
||||
std::vector< std::pair<InetAddress,InetAddress> > pools;
|
||||
@ -1029,7 +1025,7 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpDELETE(
|
||||
sqlite3_reset(_sDeleteIpAllocations);
|
||||
sqlite3_bind_text(_sDeleteIpAllocations,1,nwids,16,SQLITE_STATIC);
|
||||
sqlite3_bind_text(_sDeleteIpAllocations,2,addrs,10,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sDeleteIpAllocations,3,(int)ZT_IP_ASSIGNMENT_TYPE_ADDRESS);
|
||||
sqlite3_bind_int(_sDeleteIpAllocations,3,(int)0 /*ZT_IP_ASSIGNMENT_TYPE_ADDRESS*/);
|
||||
if (sqlite3_step(_sDeleteIpAllocations) == SQLITE_DONE) {
|
||||
sqlite3_reset(_sDeleteMember);
|
||||
sqlite3_bind_text(_sDeleteMember,1,nwids,16,SQLITE_STATIC);
|
||||
@ -1242,7 +1238,7 @@ unsigned int SqliteNetworkController::_doCPGet(
|
||||
sqlite3_reset(_sGetIpAssignmentsForNode2);
|
||||
sqlite3_bind_text(_sGetIpAssignmentsForNode2,1,nwids,16,SQLITE_STATIC);
|
||||
sqlite3_bind_text(_sGetIpAssignmentsForNode2,2,addrs,10,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sGetIpAssignmentsForNode2,3,(int)ZT_IP_ASSIGNMENT_TYPE_ADDRESS);
|
||||
sqlite3_bind_int(_sGetIpAssignmentsForNode2,3,(int)0 /*ZT_IP_ASSIGNMENT_TYPE_ADDRESS*/);
|
||||
bool firstIp = true;
|
||||
while (sqlite3_step(_sGetIpAssignmentsForNode2) == SQLITE_ROW) {
|
||||
int ipversion = sqlite3_column_int(_sGetIpAssignmentsForNode2,2);
|
||||
@ -1423,8 +1419,8 @@ unsigned int SqliteNetworkController::_doCPGet(
|
||||
responseBody.append("\"}");
|
||||
}
|
||||
|
||||
/* deprecated
|
||||
responseBody.append("],\n\t\"gateways\": [");
|
||||
|
||||
sqlite3_reset(_sGetGateways);
|
||||
sqlite3_bind_text(_sGetGateways,1,nwids,16,SQLITE_STATIC);
|
||||
bool firstGateway = true;
|
||||
@ -1466,7 +1462,9 @@ unsigned int SqliteNetworkController::_doCPGet(
|
||||
responseBody.append(tmp);
|
||||
firstGateway = false;
|
||||
}
|
||||
*/
|
||||
|
||||
/* deprecated
|
||||
responseBody.append("],\n\t\"ipLocalRoutes\": [");
|
||||
|
||||
sqlite3_reset(_sGetLocalRoutes);
|
||||
@ -1511,6 +1509,7 @@ unsigned int SqliteNetworkController::_doCPGet(
|
||||
responseBody.append(tmp);
|
||||
firstLocalRoute = false;
|
||||
}
|
||||
*/
|
||||
|
||||
responseBody.append("],\n\t\"ipAssignmentPools\": [");
|
||||
|
||||
@ -1808,6 +1807,7 @@ NetworkController::ResultCode SqliteNetworkController::_doNetworkConfigRequest(c
|
||||
Dictionary legacy;
|
||||
NetworkConfig nc;
|
||||
|
||||
// New network config structure
|
||||
nc.networkId = Utils::hexStrToU64(network.id);
|
||||
nc.type = network.isPrivate ? ZT_NETWORK_TYPE_PRIVATE : ZT_NETWORK_TYPE_PUBLIC;
|
||||
nc.timestamp = now;
|
||||
@ -1817,6 +1817,7 @@ NetworkController::ResultCode SqliteNetworkController::_doNetworkConfigRequest(c
|
||||
if (network.allowPassiveBridging) nc.flags |= ZT_NETWORKCONFIG_FLAG_ALLOW_PASSIVE_BRIDGING;
|
||||
memcpy(nc.name,network.name,std::min((unsigned int)ZT_MAX_NETWORK_SHORT_NAME_LENGTH,(unsigned int)strlen(network.name)));
|
||||
|
||||
// Legacy dictionary -- will go away eventually
|
||||
char tss[24],rs[24];
|
||||
Utils::snprintf(tss,sizeof(tss),"%.16llx",(unsigned long long)now);
|
||||
Utils::snprintf(rs,sizeof(rs),"%.16llx",(unsigned long long)network.revision);
|
||||
@ -1991,7 +1992,6 @@ NetworkController::ResultCode SqliteNetworkController::_doNetworkConfigRequest(c
|
||||
|
||||
if ((network.v4AssignMode)&&(!strcmp(network.v4AssignMode,"zt"))) {
|
||||
std::string v4s;
|
||||
std::vector< std::pair<uint32_t,int> > routedNetworks;
|
||||
bool haveStaticIpAssignment = false;
|
||||
|
||||
sqlite3_reset(_sGetIpAssignmentsForNode);
|
||||
@ -2009,28 +2009,11 @@ NetworkController::ResultCode SqliteNetworkController::_doNetworkConfigRequest(c
|
||||
char ips[32];
|
||||
Utils::snprintf(ips,sizeof(ips),"%d.%d.%d.%d/%d",(int)ip[12],(int)ip[13],(int)ip[14],(int)ip[15],ipNetmaskBits);
|
||||
|
||||
const IpAssignmentType ipt = (IpAssignmentType)sqlite3_column_int(_sGetIpAssignmentsForNode,0);
|
||||
switch(ipt) {
|
||||
case ZT_IP_ASSIGNMENT_TYPE_ADDRESS:
|
||||
haveStaticIpAssignment = true;
|
||||
break;
|
||||
case ZT_IP_ASSIGNMENT_TYPE_NETWORK:
|
||||
routedNetworks.push_back(std::pair<uint32_t,int>(Utils::ntoh(*(reinterpret_cast<const uint32_t *>(ip + 12))),ipNetmaskBits));
|
||||
break;
|
||||
default:
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((ipt == ZT_IP_ASSIGNMENT_TYPE_ADDRESS)&&(nc.staticIpCount < ZT_MAX_ZT_ASSIGNED_ADDRESSES)) {
|
||||
if (sqlite3_column_int(_sGetIpAssignmentsForNode,0) == 0 /*ZT_IP_ASSIGNMENT_TYPE_ADDRESS*/) {
|
||||
haveStaticIpAssignment = true;
|
||||
InetAddress tmp2(ips);
|
||||
if (tmp2)
|
||||
nc.staticIps[nc.staticIpCount++] = tmp2;
|
||||
}
|
||||
// TODO: add routed networks to nc
|
||||
|
||||
// 1.0.4 or newer clients support network routes in addition to IPs.
|
||||
// Older clients only support IP address / netmask entries.
|
||||
if ((clientIs104)||(ipt == ZT_IP_ASSIGNMENT_TYPE_ADDRESS)) {
|
||||
if (v4s.length())
|
||||
v4s.push_back(',');
|
||||
v4s.append(ips);
|
||||
@ -2075,13 +2058,13 @@ NetworkController::ResultCode SqliteNetworkController::_doNetworkConfigRequest(c
|
||||
sqlite3_bind_text(_sCheckIfIpIsAllocated,1,network.id,16,SQLITE_STATIC);
|
||||
sqlite3_bind_blob(_sCheckIfIpIsAllocated,2,(const void *)ipBlob,16,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sCheckIfIpIsAllocated,3,4); // 4 == IPv4
|
||||
sqlite3_bind_int(_sCheckIfIpIsAllocated,4,(int)ZT_IP_ASSIGNMENT_TYPE_ADDRESS);
|
||||
sqlite3_bind_int(_sCheckIfIpIsAllocated,4,(int)0 /*ZT_IP_ASSIGNMENT_TYPE_ADDRESS*/);
|
||||
if (sqlite3_step(_sCheckIfIpIsAllocated) != SQLITE_ROW) {
|
||||
// No rows returned, so the IP is available
|
||||
sqlite3_reset(_sAllocateIp);
|
||||
sqlite3_bind_text(_sAllocateIp,1,network.id,16,SQLITE_STATIC);
|
||||
sqlite3_bind_text(_sAllocateIp,2,member.nodeId,10,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sAllocateIp,3,(int)ZT_IP_ASSIGNMENT_TYPE_ADDRESS);
|
||||
sqlite3_bind_int(_sAllocateIp,3,(int)0 /*ZT_IP_ASSIGNMENT_TYPE_ADDRESS*/);
|
||||
sqlite3_bind_blob(_sAllocateIp,4,(const void *)ipBlob,16,SQLITE_STATIC);
|
||||
sqlite3_bind_int(_sAllocateIp,5,r->second); // IP netmask bits from matching route
|
||||
sqlite3_bind_int(_sAllocateIp,6,4); // 4 == IPv4
|
||||
|
@ -92,12 +92,14 @@ public:
|
||||
throw();
|
||||
|
||||
private:
|
||||
/* deprecated
|
||||
enum IpAssignmentType {
|
||||
// IP assignment is a static IP address
|
||||
ZT_IP_ASSIGNMENT_TYPE_ADDRESS = 0,
|
||||
// IP assignment is a network -- a route via this interface, not an address
|
||||
ZT_IP_ASSIGNMENT_TYPE_NETWORK = 1
|
||||
};
|
||||
*/
|
||||
|
||||
unsigned int _doCPGet(
|
||||
const std::vector<std::string> &path,
|
||||
@ -176,9 +178,6 @@ private:
|
||||
sqlite3_stmt *_sDeleteMember;
|
||||
sqlite3_stmt *_sDeleteAllNetworkMembers;
|
||||
sqlite3_stmt *_sDeleteNetwork;
|
||||
sqlite3_stmt *_sGetGateways;
|
||||
sqlite3_stmt *_sDeleteGateways;
|
||||
sqlite3_stmt *_sCreateGateway;
|
||||
sqlite3_stmt *_sIncrementMemberRevisionCounter;
|
||||
sqlite3_stmt *_sGetConfig;
|
||||
sqlite3_stmt *_sSetConfig;
|
||||
|
Loading…
x
Reference in New Issue
Block a user