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

@@ -1,27 +1,14 @@
import unittest
from mitmproxy.test import tflow, tutils
from hippolyzer.lib.base.datatypes import UUID
from hippolyzer.lib.proxy.http_flow import HippoHTTPFlow
from hippolyzer.lib.proxy.message_logger import HTTPMessageLogEntry
from hippolyzer.lib.proxy.sessions import SessionManager
from . import BaseProxyTest
class TestHTTPFlows(unittest.TestCase):
class TestHTTPFlows(BaseProxyTest):
def setUp(self) -> None:
self.session_manager = SessionManager()
self.session = self.session = self.session_manager.create_session({
"session_id": UUID.random(),
"secure_session_id": UUID.random(),
"agent_id": UUID.random(),
"circuit_code": 0,
"sim_ip": "127.0.0.1",
"region_x": 1,
"region_y": 2,
"sim_port": "1",
"seed_capability": "https://test.localhost:4/foo",
})
super().setUp()
self.region = self.session.register_region(
("127.0.0.1", 2),
"https://test.localhost:4/foo",