summaryrefslogtreecommitdiff
path: root/controller/SqliteNetworkController.cpp
AgeCommit message (Collapse)Author
2015-07-24Add version to log.Adam Ierymenko
2015-07-23(1) Fix updating of network revision counter on member change.Adam Ierymenko
(2) Go back to timestamp as certificate revision number. This is simpler and more robust than using the network revision number for this and forcing network revision fast-forward, which could cause some peers to fall off the horizon when you don't want them to.
2015-07-23Add a rate limiting circuit breaker to the network controller to prevent ↵Adam Ierymenko
flooding attacks and race conditions.
2015-07-23Eliminate some poorly thought out optimizations from the netconf/controller ↵Adam Ierymenko
interaction, and go ahead and bump version to 1.0.4. For a while in 1.0.3 -dev I was trying to optimize out repeated network controller requests by using a ratcheting mechanism. If the client received a network config that was indeed different from the one it had, it would respond by instantlly requesting it again. Not sure what I was thinking. It's fundamentally unsafe to respond to a message with another message of the same type -- it risks a race condition. In this case that's exactly what could happen. It just isn't worth the added complexity to avoid a tiny, tiny amount of network overhead, so I've taken this whole path out. A few extra bytes every two minutes isn't worth fretting about, but as I recall the reason for this optimization was to save CPU on the controller. This can be achieved by just caching responses in memory *there* and serving those same responses back out if they haven't changed. I think I developed that 'ratcheting' stuff before I went full time on this. It's hard to develop stuff like this without hours of sustained focus.
2015-07-22Add a Log table to log queries for debugging and security logging. No JSON ↵Adam Ierymenko
API support for querying the log yet, but will probably come via /network/###/member/###/log/... or something.
2015-07-05Fix for output of empty (no members) networkKees Bos
2015-07-21Fix to member listing: I wanted an object with member IDs as keys and member ↵Adam Ierymenko
revisions as values, not an array.
2015-07-21List members in the form of a hash of member ID and member revision so code ↵Adam Ierymenko
can quickly detect which members have changed.
2015-07-21Remove "members" from Network record and instead enumerate members via ↵Adam Ierymenko
specific query to /network/nwid/member sub-path. More RESTful, scalable, and compatible with how OnePoint code works.
2015-07-21Fix IP auto-assign bug due to missing subnet routes.Adam Ierymenko
2015-07-21Report controllerInstanceId in all objects so that controller resets can be ↵Adam Ierymenko
easily detected by whatever is using the service.
2015-07-20Fix bug in rules JSON output.Adam Ierymenko
2015-07-20Proper handling of NULL entry for etherType in rules table.Adam Ierymenko
2015-07-20Fix string overwrite bug.Adam Ierymenko
2015-07-20Get rid of false foreign key in Relay.Adam Ierymenko
2015-07-17IP assignment pool range bug fix.Adam Ierymenko
2015-07-17Fix some SQL and make instanceId more robustly random.Adam Ierymenko
2015-07-17Fix bad JSON in response.Adam Ierymenko
2015-07-17Add a concept of an "instanceId" to the controller, which the OnePoint can ↵Adam Ierymenko
use to determine whether it is the same running database instance it already knows.
2015-07-16Add memberRevision stuff to JSON output, and update docs.Adam Ierymenko
2015-07-16Add a concept of a member revision counter to networks. This can be used to ↵Adam Ierymenko
select all members that have been added or changed since a given point.
2015-07-14Networks don't need their ID as a default name.Adam Ierymenko
2015-07-14Don't allow zero as a network number.Adam Ierymenko
2015-06-29ipLocalRoutes now exposed via network objects in JSON controller API, and ↵Adam Ierymenko
documentation changes.
2015-06-29Untested -- modifications to support IP ranges instead of ip/mask for IP ↵Adam Ierymenko
assignment pools, also add portId to Rule for future use.
2015-06-29Fix semantics of std::unique() to actually remove duplicates (hidden memory ↵Adam Ierymenko
leak?)
2015-06-26Fix reporting of ipAssignments for ipv4Kees Bos
2015-06-26GitHub issue #191 - kill intra-network multicast rate limits (which were not ↵Adam Ierymenko
well supported or easily configurable anyway) -- this is really left over from the old collaborative multicast propagation algorithm. New algorithm (in for a while) has been sender-side replication in which sender "pays" all bandwidth, which intrinsically limits multicast.
2015-06-19Fixed member authorization bug and minor cleanupKees Bos
2015-06-18Fix for ipv4 assignmentKees Bos
2015-06-15Fix 404 on creation of new networkKees Bos
2015-06-15Removed a superfluous cross joinKees Bos
2015-06-15Fix controller/network/*/member/*Kees Bos
Cross join works other than expected or something changed. The _sGetMember2 returned too many rows. Replaced it with an explicit join statement.
2015-06-15Bugfix controller get member infoKees Bos
2015-06-13Gateways support in network controller schema and database (not implemented ↵Adam Ierymenko
yet in client) toward GitHub issue #178
2015-06-13Rename ruleId to ruleNo and optimize some indexes in Sqlite3 schema.Adam Ierymenko
2015-06-11Return 404 on delete if network member is missing (controller)Kees Bos
2015-06-11Return 404 on delete if network doesn't exist (controller)Kees Bos
2015-06-11Get deletion of networks in controller goingKees Bos
Multiple statements in a sqlite3_prepare_v2 is not usable. Only the first statement will be executed. Since the schema now uses 'ON DELETE CASCADE', there's only one statement needed. If multiple statements are needed, there should be either multiple sqlite3_prepare_v2 calls be used or the sqlite3_exec function.
2015-05-25Go ahead and add flags and invFlags to the Rule table.Adam Ierymenko
2015-05-17Add a feature to generate a new network ID on POST.Adam Ierymenko
2015-05-16Basic controller JSON API seems to be working.Adam Ierymenko
2015-05-16Fixes to control plane, API, eliminate problematic inheritance pattern, and ↵Adam Ierymenko
start on a NodeJS class for talking to the network controller.
2015-05-16Fix some prepared statement problems.Adam Ierymenko
2015-05-16DELETE function in network controller JSON API, and a newIdentity ↵Adam Ierymenko
convenience request in ControlPlane for scripted testing.
2015-05-16More network controller cleanup, and some features to permit scripted testing.Adam Ierymenko
2015-05-15Netconf docs, add clock field to status, simplify netconf a bit by ↵Adam Ierymenko
eliminating caching for now. We will re-add if it is needed.
2015-05-15Controller API status message.Adam Ierymenko
2015-05-15Network controller cleanup and an extra sanity check.Adam Ierymenko
2015-04-24Build fixes.Adam Ierymenko