@@ -863,9 +863,17 @@ std::string EmbeddedNetworkController::networkUpdateFromPostData(uint64_t networ
863863
864864void EmbeddedNetworkController::configureHTTPControlPlane (
865865 httplib::Server &s,
866+ httplib::Server &sv6,
866867 const std::function<void (const httplib::Request&, httplib::Response&, std::string)> setContent)
867868{
868- s.Get (" /controller/network" , [&, setContent](const httplib::Request &req, httplib::Response &res) {
869+ // Control plane Endpoints
870+ std::string networkListPath = " /controller/network" ;
871+ std::string networkPath = " /controller/network/([0-9a-fA-F]{16})" ;
872+ std::string oldAndBustedNetworkCreatePath = " /controller/network/([0-9a-fA-F]{10})______" ;
873+ std::string memberListPath = " /controller/network/([0-9a-fA-F]{16})/member" ;
874+ std::string memberPath = " /controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})" ;
875+
876+ auto networkListGet = [&, setContent](const httplib::Request &req, httplib::Response &res) {
869877 std::set<uint64_t > networkIds;
870878 _db.networks (networkIds);
871879 char tmp[64 ];
@@ -877,9 +885,11 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
877885 }
878886
879887 setContent (req, res, out.dump ());
880- });
888+ };
889+ s.Get (networkListPath, networkListGet);
890+ sv6.Get (networkListPath, networkListGet);
881891
882- s. Get ( " /controller/network/([0-9a-fA-F]{16}) " , [&, setContent](const httplib::Request &req, httplib::Response &res) {
892+ auto networkGet = [&, setContent](const httplib::Request &req, httplib::Response &res) {
883893 auto networkID = req.matches [1 ];
884894 uint64_t nwid = Utils::hexStrToU64 (networkID.str ().c_str ());
885895 json network;
@@ -889,7 +899,9 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
889899 }
890900
891901 setContent (req, res, network.dump ());
892- });
902+ };
903+ s.Get (networkPath, networkGet);
904+ sv6.Get (networkPath, networkGet);
893905
894906 auto createNewNetwork = [&, setContent](const httplib::Request &req, httplib::Response &res) {
895907 fprintf (stderr, " creating new network (new style)\n " );
@@ -912,8 +924,10 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
912924
913925 setContent (req, res, networkUpdateFromPostData (nwid, req.body ));
914926 };
915- s.Put (" /controller/network" , createNewNetwork);
916- s.Post (" /controller/network" , createNewNetwork);
927+ s.Put (networkListPath, createNewNetwork);
928+ s.Post (networkListPath, createNewNetwork);
929+ sv6.Put (networkListPath, createNewNetwork);
930+ sv6.Post (networkListPath, createNewNetwork);
917931
918932 auto createNewNetworkOldAndBusted = [&, setContent](const httplib::Request &req, httplib::Response &res) {
919933 auto inID = req.matches [1 ].str ();
@@ -941,10 +955,24 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
941955 }
942956 setContent (req, res, networkUpdateFromPostData (nwid, req.body ));
943957 };
944- s.Put (" /controller/network/([0-9a-fA-F]{10})______" , createNewNetworkOldAndBusted);
945- s.Post (" /controller/network/([0-9a-fA-F]{10})______" , createNewNetworkOldAndBusted);
958+ s.Put (oldAndBustedNetworkCreatePath, createNewNetworkOldAndBusted);
959+ s.Post (oldAndBustedNetworkCreatePath, createNewNetworkOldAndBusted);
960+ sv6.Put (oldAndBustedNetworkCreatePath, createNewNetworkOldAndBusted);
961+ sv6.Post (oldAndBustedNetworkCreatePath, createNewNetworkOldAndBusted);
962+
963+ auto networkPost = [&, setContent](const httplib::Request &req, httplib::Response &res) {
964+ auto networkID = req.matches [1 ].str ();
965+ uint64_t nwid = Utils::hexStrToU64 (networkID.c_str ());
966+
967+ res.status = 200 ;
968+ setContent (req, res, networkUpdateFromPostData (nwid, req.body ));
969+ };
970+ s.Put (networkPath, networkPost);
971+ s.Post (networkPath, networkPost);
972+ sv6.Put (networkPath, networkPost);
973+ sv6.Post (networkPath, networkPost);
946974
947- s. Delete ( " /controller/network/([0-9a-fA-F]{16}) " , [&, setContent](const httplib::Request &req, httplib::Response &res) {
975+ auto networkDelete = [&, setContent](const httplib::Request &req, httplib::Response &res) {
948976 auto networkID = req.matches [1 ].str ();
949977 uint64_t nwid = Utils::hexStrToU64 (networkID.c_str ());
950978
@@ -956,9 +984,11 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
956984
957985 _db.eraseNetwork (nwid);
958986 setContent (req, res, network.dump ());
959- });
987+ };
988+ s.Delete (networkPath, networkDelete);
989+ sv6.Delete (networkPath, networkDelete);
960990
961- s. Get ( " /controller/network/([0-9a-fA-F]{16})/member " , [&, setContent](const httplib::Request &req, httplib::Response &res) {
991+ auto memberListGet = [&, setContent](const httplib::Request &req, httplib::Response &res) {
962992 auto networkID = req.matches [1 ];
963993 uint64_t nwid = Utils::hexStrToU64 (networkID.str ().c_str ());
964994 json network;
@@ -982,9 +1012,11 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
9821012 }
9831013
9841014 setContent (req, res, out.dump ());
985- });
1015+ };
1016+ s.Get (memberListPath, memberListGet);
1017+ sv6.Get (memberListPath, memberListGet);
9861018
987- s. Get ( " /controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10}) " , [&, setContent](const httplib::Request &req, httplib::Response &res) {
1019+ auto memberGet = [&, setContent](const httplib::Request &req, httplib::Response &res) {
9881020 auto networkID = req.matches [1 ];
9891021 auto memberID = req.matches [2 ];
9901022 uint64_t nwid = Utils::hexStrToU64 (networkID.str ().c_str ());
@@ -997,7 +1029,9 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
9971029 }
9981030
9991031 setContent (req, res, member.dump ());
1000- });
1032+ };
1033+ s.Get (memberPath, memberGet);
1034+ sv6.Get (memberPath, memberGet);
10011035
10021036 auto memberPost = [&, setContent](const httplib::Request &req, httplib::Response &res) {
10031037 auto networkID = req.matches [1 ].str ();
@@ -1102,10 +1136,12 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
11021136
11031137 setContent (req, res, member.dump ());
11041138 };
1105- s.Put (" /controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})" , memberPost);
1106- s.Post (" /controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10})" , memberPost);
1139+ s.Put (memberPath, memberPost);
1140+ s.Post (memberPath, memberPost);
1141+ sv6.Put (memberPath, memberPost);
1142+ sv6.Post (memberPath, memberPost);
11071143
1108- s. Delete ( " /controller/network/([0-9a-fA-F]{16})/member/([0-9a-fA-F]{10}) " , [&, setContent](const httplib::Request &req, httplib::Response &res) {
1144+ auto memberDelete = [&, setContent](const httplib::Request &req, httplib::Response &res) {
11091145 auto networkID = req.matches [1 ].str ();
11101146 auto memberID = req.matches [2 ].str ();
11111147
@@ -1126,7 +1162,9 @@ void EmbeddedNetworkController::configureHTTPControlPlane(
11261162 _db.eraseMember (nwid, address);
11271163
11281164 setContent (req, res, member.dump ());
1129- });
1165+ };
1166+ s.Delete (memberPath, memberDelete);
1167+ sv6.Delete (memberPath, memberDelete);
11301168}
11311169
11321170void EmbeddedNetworkController::handleRemoteTrace (const ZT_RemoteTrace &rt)
0 commit comments