Hey Lonnie, I gave it a stab in this branch: https://git.zx2c4.com/WireGuard/commit/?h=jd/syncconf Try it out and let me know if it does what you had in mind?
One of the things that always goes wrong with "sync" algorithms in software -- and the commit above at the moment is no exception -- is that they're kind of racey. In order to synchronize, we have to read the current state, compare it, and then set our new state. But in between, the state could have changed out from underneath us. One strategy for this is to just do nothing and put some notice in the man page. Another strategy is to read back the result at the end, compare it, and loop like this until we reach the stable state. This then requires implementing some equality function. The other thing I was wondering is: aside from performance and races as described above, why not just make this the functionality of `setconf`? Then there's be no need to introduce a new subcommand. In otherwords, the idea would be to make `setconf` not destroy existing peers if we're going to be re-adding them again. Thoughts? Jason _______________________________________________ WireGuard mailing list WireGuard@lists.zx2c4.com https://lists.zx2c4.com/mailman/listinfo/wireguard