| Commit message (Collapse) | Author | Age | ||
|---|---|---|---|---|
| ... | ||||
| * | | Parse bridge descriptors in a separate thread. | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | | | | | | | | | | | TODO: In the future, we will probably want to add some secondary, temporary HTTPServer which serves a simple "BridgeDB is down for maintenance and will be back shortly!" page while the descriptors are being parsed. * FIXES #5232: Import bridges into BridgeDB in a separate thread and database transaction. | |||
| * | | Use a loaded persistent.State in Main.load(). | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | * ADD a docstring to Main.load(). | |||
| * | | Add parse.padBase64() function for adding stripped padding '==' back in. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add an XXX about the odd, hardcoded number of "extra hashrings". | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Make the logs clearly state which distributor bridges are being inserted into. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Slight PEP8ification to bridgedb.Bridges.IPBasedDistributor. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Refactor Bridges.parseStatusFile() to use bridgedb.parse.networkstatus. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add newly refactored networkstatus parsers and unittests for them. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Deepcopy the HMAC factory function's resulting function. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add bridgedb.parse.addr module for parsing IPs and ports. | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | * MOVE class bridgedb.Bridges.PortList to bridgedb.parse.addr. | |||
| * | | Add docstrings for Dist.IPBasedDistributor. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Fix a bug due to parantheses instead of square brackets. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Remove unnecessary config parameter coercion. | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | | | FORCE_PORTS and FORCE_FLAGS are already set to lists. We don't need to coerce them if they weren't set anymore. | |||
| * | | Handle KeyboardInterrupts in Main.startup() loop. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Give a warning if no emailDistributor was created. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Update startup.reload() docstring. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Also change cfg→config after def reload() in startup(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Start using bridgedb.persistent.State in bridgedb.Main. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Fix Main.reload() function to work with changed parameters. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Remove commented out code from bridgedb.persistent. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Remove a comment which is no longer helpful. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Change pidfile writer to use with(open()). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Change cfg→config in Main.startup() to avoid name conflict. | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | | | Otherwise, the cfg variable in Main.startup().reload() would be overriding the parent namespace in potentially bad/buggy ways. | |||
| * | | Add somewhat of a docstring to Main.startup(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Rewrite Main.loadConfig() to only log after the first run. | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | There is a bit of a chicken-egg problem here, in that we need to parse our config file before we can configure logging, but we should start logging before changing settings, modifying the config file settings, and creating out persistent.State storage. To get around this, loadConfig() is now modified to only make calls to the logging module the second time the function is called (and all the times after). * MOVE all config/setting changing code from Main.startup() to Main.loadConfig() so that it is reparsed on SIGHUP correctly. | |||
| * | | Move Main.Conf → persistent.Conf. | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to store `Conf` config objects persistently, the Conf class must be accessible in the bridgedb.persistent module. However, the bridgedb.persistent module must be importable into bridgedb.Main in order to use it. This creates a circular import dependency. To fix it, I moved Main.Conf to persistent.Conf. Also, there were bugs in the Conf class which caused Conf instances to store __builtin__ classes. To fix this, I changed: for key, value in attrs.items(): if key.upper() == key: self.__dict__[key] = value to for key, value in attrs.items(): if key == key.upper(): if not key.startswith('__'): self.__dict__[key] = value * FIXES a bug in Conf class causing Python's __builtin__ classes to be reloaded into the global scope. | |||
| * | | Add bridgedb.persistent module for storing persistent state. | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * ADD bridgedb.persistent.State class (along with load and save utilities) for securely storing serialized s-expressions representing Python objects and instances. * ADD 21 unittests for testing all new methods and classes in the bridgedb.persistent module. The State class can be used to track config file changes. For example, in bridgedb.Main.run(), several attributes on the config `Conf` object are changed, such as various filenames (to point to their absolute paths). When bridgedb is SIGHUPed, it will reread the config file and reapply all settings. However, this overwrites the variables which have been set in the code (for example, pointing back to non-absolute filepaths). The persistent.State class stores the `Conf` attributes as it's own attributes, and stores the `Conf` instance as State().config. This way, any changes to settings can be applied directly to the State instance, and if the `Conf` object changes on SIGHUP, BridgeDB will understand that a human (hopefully) has changed the file, rather than its own code. Thus, it is smarter about which settings to reapply. | |||
| * | | Add encoding specification to bridgedb.Main module. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Keep a counter on total bridges inserted into a hashring. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Change asserts to validations in FilteredBridgeSplitter.insert(). | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | | | The asserts will be stripped if Python is run with -O2, thus they are not the best idea for production code. | |||
| * | | Make loop varnames in FilteredBridgeSplitter.addRing() more descriptive. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Rename `ring` → `subring` in FilteredBridgeSplitter.addRing(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Sphinxify and improve docstring for FilteredBridgeSplitter.addRing(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Make log message in FixedBridgeSplitter.insert more understandable. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add docstring to FilteredBridgeSplitter.insert(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Rename `index` and `ring` in FixedBridgeSplitter.dumpAssignments(). | Isis Lovecruft | 2013-11-15 | |
| | | | | | | | | | | | Because `i` and `r` weren't immediately clear to me what they were referring to. | |||
| * | | Add docstring to FixedBridgeSplitter.dumpAssignments(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | PEP8 / make variable names clearer in FixedBridgeSplitter.__len__(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add a docstring to bridgedb.Bridges.FixedBridgeSplitter.__len__(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add a docstring to bridgedb.Bridges.FixedBridgeSplitter.clear(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add a docstring to bridgedb.Bridges.BridgeRing.setName(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Start documenting sub-hashring ivars in Bridges.BridgeRing class. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | PEP8ification of BridgeRingParameters.__init__(). | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add a docstring to __init__ constructor for BridgeRingParameters. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Add a docstring to bridgedb.Bridges.BridgeRingParameters. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Fix old-style class bridgedb.Bridges.BridgeRingParameters. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Fix old-style class bridgedb.Bridges.BridgeHolder. | Isis Lovecruft | 2013-11-15 | |
| | | | ||||
| * | | Remove two EOL whitespace characters in gen_bridge_descriptors. | Isis Lovecruft | 2013-11-07 | |
| | | | ||||
| * | | Create the OR public ID key hash digest in gen_bridge_descriptors. | Isis Lovecruft | 2013-11-07 | |
| | | | ||||
| * | | Return the OR server ID public RSA key from makeOnionKeys(). | Isis Lovecruft | 2013-11-07 | |
| | | | | | | | | | | | | | The public key should be used in identity key hash digest creation, so we need to return `SIDPCert` from the makeOnionKeys() function in gen_bridge_descriptors, so that we can use it in makeDescriptors(). | |||
