summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Henry <joseph.henry@zerotier.com>2015-09-15 14:16:28 -0400
committerJoseph Henry <joseph.henry@zerotier.com>2015-09-15 14:16:28 -0400
commitcb277f52e8d223a7d9f54de73746dab78c4e9948 (patch)
tree7953db8cbc5d0af943aa9ec775f23e12fb8974a4
parent8ea83c9548f0e100ba56619e461b896e81295c02 (diff)
parentd06499a50cb30867b58a329206ee1a98f2b575ec (diff)
downloadinfinitytier-cb277f52e8d223a7d9f54de73746dab78c4e9948.tar.gz
infinitytier-cb277f52e8d223a7d9f54de73746dab78c4e9948.zip
Merge branch 'netcon' of http://10.6.6.2/zerotier/zerotierone into netcon
-rw-r--r--controller/SqliteNetworkController.cpp11
-rw-r--r--controller/SqliteNetworkController.hpp1
-rw-r--r--include/ZeroTierOne.h18
3 files changed, 25 insertions, 5 deletions
diff --git a/controller/SqliteNetworkController.cpp b/controller/SqliteNetworkController.cpp
index 7098a027..e1e6c9cd 100644
--- a/controller/SqliteNetworkController.cpp
+++ b/controller/SqliteNetworkController.cpp
@@ -203,6 +203,7 @@ SqliteNetworkController::SqliteNetworkController(const char *dbPath) :
||(sqlite3_prepare_v2(_db,"UPDATE Member SET authorized = ?,memberRevision = (SELECT memberRevisionCounter FROM Network WHERE id = ?) WHERE rowid = ?",-1,&_sUpdateMemberAuthorized,(const char **)0) != SQLITE_OK)
||(sqlite3_prepare_v2(_db,"UPDATE Member SET activeBridge = ?,memberRevision = (SELECT memberRevisionCounter FROM Network WHERE id = ?) WHERE rowid = ?",-1,&_sUpdateMemberActiveBridge,(const char **)0) != SQLITE_OK)
||(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)
@@ -287,6 +288,7 @@ SqliteNetworkController::~SqliteNetworkController()
sqlite3_finalize(_sUpdateMemberAuthorized);
sqlite3_finalize(_sUpdateMemberActiveBridge);
sqlite3_finalize(_sDeleteMember);
+ sqlite3_finalize(_sDeleteAllNetworkMembers);
sqlite3_finalize(_sDeleteNetwork);
sqlite3_finalize(_sGetGateways);
sqlite3_finalize(_sDeleteGateways);
@@ -932,7 +934,12 @@ unsigned int SqliteNetworkController::handleControlPlaneHttpDELETE(
sqlite3_reset(_sDeleteNetwork);
sqlite3_bind_text(_sDeleteNetwork,1,nwids,16,SQLITE_STATIC);
- return ((sqlite3_step(_sDeleteNetwork) == SQLITE_DONE) ? 200 : 500);
+ if (sqlite3_step(_sDeleteNetwork) == SQLITE_DONE) {
+ sqlite3_reset(_sDeleteAllNetworkMembers);
+ sqlite3_bind_text(_sDeleteAllNetworkMembers,1,nwids,16,SQLITE_STATIC);
+ sqlite3_step(_sDeleteAllNetworkMembers);
+ return 200;
+ } else return 500;
}
} // else 404
@@ -1019,7 +1026,7 @@ unsigned int SqliteNetworkController::_doCPGet(
testFields.push_back('"');
}
testFields.append("\n\t\t}\n");
- testFields.append("\t}\n");
+ testFields.append("\t},\n");
}
}
diff --git a/controller/SqliteNetworkController.hpp b/controller/SqliteNetworkController.hpp
index 5d995379..23e16c4b 100644
--- a/controller/SqliteNetworkController.hpp
+++ b/controller/SqliteNetworkController.hpp
@@ -143,6 +143,7 @@ private:
sqlite3_stmt *_sUpdateMemberAuthorized;
sqlite3_stmt *_sUpdateMemberActiveBridge;
sqlite3_stmt *_sDeleteMember;
+ sqlite3_stmt *_sDeleteAllNetworkMembers;
sqlite3_stmt *_sDeleteNetwork;
sqlite3_stmt *_sGetGateways;
sqlite3_stmt *_sDeleteGateways;
diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h
index 8583aa3a..b8d14c5f 100644
--- a/include/ZeroTierOne.h
+++ b/include/ZeroTierOne.h
@@ -760,7 +760,11 @@ enum ZT1_ResultCode ZT1_Node_new(
ZT1_VirtualNetworkFrameFunction virtualNetworkFrameFunction,
ZT1_VirtualNetworkConfigFunction virtualNetworkConfigFunction,
ZT1_EventCallback eventCallback,
- const char *overrideRootTopology = (const char *)0);
+ const char *overrideRootTopology
+#ifdef __cplusplus
+ = (const char *)0
+#endif
+ );
/**
* Delete a node and free all resources it consumes
@@ -881,7 +885,11 @@ enum ZT1_ResultCode ZT1_Node_leave(ZT1_Node *node,uint64_t nwid);
* @param multicastAdi Multicast ADI (least significant 32 bits only, default: 0)
* @return OK (0) or error code if a fatal error condition has occurred
*/
-enum ZT1_ResultCode ZT1_Node_multicastSubscribe(ZT1_Node *node,uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi = 0);
+enum ZT1_ResultCode ZT1_Node_multicastSubscribe(ZT1_Node *node,uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi
+#ifdef __cplusplus
+ = 0
+#endif
+ );
/**
* Unsubscribe from an Ethernet multicast group (or all groups)
@@ -897,7 +905,11 @@ enum ZT1_ResultCode ZT1_Node_multicastSubscribe(ZT1_Node *node,uint64_t nwid,uin
* @param multicastAdi Multicast ADI (least significant 32 bits only, default: 0)
* @return OK (0) or error code if a fatal error condition has occurred
*/
-enum ZT1_ResultCode ZT1_Node_multicastUnsubscribe(ZT1_Node *node,uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi = 0);
+enum ZT1_ResultCode ZT1_Node_multicastUnsubscribe(ZT1_Node *node,uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi
+#ifdef __cplusplus
+ = 0
+#endif
+ );
/**
* Get this node's 40-bit ZeroTier address