コード例 #1
0
 def _api_handle_if_request(self, request, meta):
     all_brs = request.all_brs()
     if_list = []
     if not all_brs:
         if_list = list(request.iter_ids())
     if_entries = []
     for if_id, br in self.ifid2br.items():
         if all_brs or if_id in if_list:
             info = HostInfo.from_values([br.addr], br.port)
             reply_entry = SCIONDIFInfoReplyEntry.from_values(if_id, info)
             if_entries.append(reply_entry)
     if_reply = SCIONDIFInfoReply.from_values(request.id, if_entries)
     self.send_meta(if_reply.pack_full(), meta)
コード例 #2
0
 def _api_handle_if_request(self, pld, meta):
     request = pld.union
     assert isinstance(request, SCIONDIFInfoRequest), type(request)
     all_brs = request.all_brs()
     if_list = []
     if not all_brs:
         if_list = list(request.iter_ids())
     if_entries = []
     for if_id, br in self.ifid2br.items():
         if all_brs or if_id in if_list:
             br_addr, br_port = br.int_addrs.public[0]
             info = HostInfo.from_values([br_addr], br_port)
             reply_entry = SCIONDIFInfoReplyEntry.from_values(if_id, info)
             if_entries.append(reply_entry)
     if_reply = SCIONDMsg(SCIONDIFInfoReply.from_values(if_entries), pld.id)
     self.send_meta(if_reply.pack(), meta)