|
@@ -114,7 +114,7 @@ int main(int argc,char **argv)
|
|
|
strcpy(mysqlPassword,ee);
|
|
|
}
|
|
|
|
|
|
- char buf[131072];
|
|
|
+ char buf[131072],buf2[131072];
|
|
|
std::string dictBuf;
|
|
|
|
|
|
try {
|
|
@@ -255,6 +255,30 @@ int main(int argc,char **argv)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ Dictionary multicastRates;
|
|
|
+ {
|
|
|
+ Query q = dbCon->query();
|
|
|
+ q << "SELECT DISTINCT multicastGroupMac,multicastGroupAdi,preload,maxBalance,accrual FROM NetworkMulticastRates WHERE Network_id = " << nwid;
|
|
|
+ StoreQueryResult rs = q.store();
|
|
|
+ for(unsigned long i=0;i<rs.num_rows();++i) {
|
|
|
+ long preload = (long)rs[i]["preload"];
|
|
|
+ long maxBalance = (long)rs[i]["maxBalance"];
|
|
|
+ long accrual = (long)rs[i]["accrual"];
|
|
|
+ sprintf(buf2,"%s%lx,%s%lx,%s%lx",
|
|
|
+ ((preload < 0) ? "-" : ""),
|
|
|
+ preload,
|
|
|
+ ((maxBalance < 0) ? "-" : ""),
|
|
|
+ maxBalance,
|
|
|
+ ((accrual < 0) ? "-" : ""),
|
|
|
+ accrual);
|
|
|
+ unsigned long long mac = (unsigned long long)rs[i]["multicastGroupMac"];
|
|
|
+ if (mac) {
|
|
|
+ sprintf(buf,"%.12llx/%lx",(mac & 0xffffffffffffULL),(unsigned long)rs[i]["multicastGroupAdi"]);
|
|
|
+ multicastRates[buf] = buf2;
|
|
|
+ } else multicastRates["*"] = buf2;
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
Dictionary netconf;
|
|
|
|
|
|
sprintf(buf,"%.16llx",(unsigned long long)nwid);
|
|
@@ -265,6 +289,7 @@ int main(int argc,char **argv)
|
|
|
netconf["desc"] = desc;
|
|
|
netconf["etherTypes"] = etherTypeWhitelistOld; // TODO: remove, old name
|
|
|
netconf["et"] = etherTypeWhitelist;
|
|
|
+ netconf["mr"] = multicastRates.toString();
|
|
|
sprintf(buf,"%llx",(unsigned long long)Utils::now());
|
|
|
netconf["ts"] = buf;
|
|
|
|