diff --git a/core/aimedb.py b/core/aimedb.py index 1f25cfe..b531bc2 100644 --- a/core/aimedb.py +++ b/core/aimedb.py @@ -29,7 +29,7 @@ class AimedbProtocol(Protocol): self.register_handler(0x09, 0x0A, self.handle_log, 'log') self.register_handler(0x0B, 0x0C, self.handle_campaign, 'campaign') self.register_handler(0x0D, 0x0E, self.handle_touch, 'touch') - self.register_handler(0x0F, 0x10, self.handle_lookup2, 'lookup2') + self.register_handler(0x0F, 0x10, self.handle_lookup, 'lookup2') self.register_handler(0x11, 0x12, self.handle_felica_lookup2, 'felica_lookup2') self.register_handler(0x13, 0x14, self.handle_log2, 'log2') self.register_handler(0x64, 0x65, self.handle_hello, 'hello') @@ -131,9 +131,6 @@ class AimedbProtocol(Protocol): """ return ret - def handle_lookup2(self, data: bytes, resp_code: int) -> ADBBaseResponse: - return self.handle_lookup(data, resp_code) - def handle_felica_lookup(self, data: bytes, resp_code: int) -> bytes: idm = data[0x20:0x28].hex() pmm = data[0x28:0x30].hex() @@ -195,7 +192,7 @@ class AimedbProtocol(Protocol): return ADBTouchResponse(resp_code, 0x0050) def handle_register(self, data: bytes, resp_code: int) -> bytes: - luid = data[0x20:0x2A].hex() + req = ADBLookupRequest(data) if self.config.server.allow_user_registration: user_id = self.data.user.create_user() @@ -204,22 +201,25 @@ class AimedbProtocol(Protocol): self.logger.error("Failed to register user!") else: - card_id = self.data.card.create_card(user_id, luid) + card_id = self.data.card.create_card(user_id, req.access_code) if card_id is None: user_id = -1 self.logger.error("Failed to register card!") self.logger.info( - f"register from {self.transport.getPeer().host}: luid {luid} -> user_id {user_id}" + f"Register access code {req.access_code} -> user_id {user_id}" ) else: self.logger.info( - f"register from {self.transport.getPeer().host} blocked!: luid {luid}" + f"Registration blocked!: access code {req.access_code}" ) user_id = -1 + resp = ADBLookupResponse(resp_code, 0x30, 1 if user_id > 0 else 0) + resp.user_id = user_id + """ ret = struct.pack( "<5H", 0xA13E, @@ -230,8 +230,8 @@ class AimedbProtocol(Protocol): ) ret += bytes(0x20 - len(ret)) ret += struct.pack(" bytes: # TODO: Save aimedb logs