Browse Source

Remove some deprecated stuff in controller -- not done yet.

Adam Ierymenko 9 years ago
parent
commit
9898066b47
2 changed files with 20 additions and 38 deletions
  1. 18 35
      controller/SqliteNetworkController.cpp
  2. 2 3
      controller/SqliteNetworkController.hpp

+ 18 - 35
controller/SqliteNetworkController.cpp

@@ -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

+ 2 - 3
controller/SqliteNetworkController.hpp

@@ -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;