Make object handling happen at the world level, fix region handoffs

The previous model didn't really map to how Indra handles objects:
In Indra Local IDs are only really used to look up the FullID, and
that's used to look at a global object list.

This moves to a model where the world (Session) owns the object, and
objects can be freely moved between regions without killing the world's
reference to it.

The two ID design for objects was a mistake in my opinion, but whatever.
This commit is contained in:
Salad Dais
2021-05-29 13:58:52 +00:00
parent f57087bf6c
commit ebc02f9a22
14 changed files with 570 additions and 352 deletions

View File

@@ -13,7 +13,7 @@ from hippolyzer.lib.proxy.http_proxy import HTTPFlowContext, SerializedCapData
from hippolyzer.lib.proxy.message_logger import FilteringMessageLogger
from hippolyzer.lib.proxy.sessions import SessionManager
from . import BaseIntegrationTest
from .. import BaseProxyTest
class MockAddon(BaseAddon):
@@ -30,14 +30,14 @@ class SimpleMessageLogger(FilteringMessageLogger):
return self._filtered_entries
class LLUDPIntegrationTests(BaseIntegrationTest):
class LLUDPIntegrationTests(BaseProxyTest):
def setUp(self) -> None:
super().setUp()
self.addon = MockAddon()
AddonManager.init([], self.session_manager, [self.addon])
self.flow_context = HTTPFlowContext()
self.http_event_manager = MITMProxyEventManager(self.session_manager, self.flow_context)
self._setup_circuit()
self._setup_default_circuit()
async def _pump_one_event(self):
# If we don't yield then the new entry won't end up in the queue