def process_signoff(addr,packet): logging.info("LAN: Peer " + addr[0] + " has signed off") getmain = contacts.contact_by_li(packet[1:25]) if(getmain != -1): contacts.Contactlist[getmain].del_transport("lan") logging.debug("LAN: Removing LAN transport from this peer") else: logging.debug("LAN: Peer not found on contact list")
def process_signoff(addr,packet): logging.info("LAN: Peer " + addr[0] + " has signed off") if(len(packet)>24): if(packet[1:25]) == lan_uid: logging.debug("LAN: Own signoff packet received") return False getmain = contacts.contact_by_li(packet[1:25]) if(getmain != -1): contacts.Contactlist[getmain].del_transport("lan") logging.debug("LAN: Removing LAN transport from this peer") else: logging.debug("LAN: Peer not found on contact list")
def process_broadcast(addr,packet): uid = packet[3:27] interval = packet[1] #Flags (lsb=presence,1=bcast_request) flags = int(packet[2]) status = flags & 1 bcast_request = flags & 2 nick = packet[27:] peer = peer_by_uid(uid) curcontact = (nick,addr[0],addr[1],uid) #Ignore packets from self if(uid == lan_uid): return print("Incoming broadcast\n Nick:" + str(nick,'UTF-8') + "\nUID: " + str(binascii.hexlify(uid),'utf-8')) getmain = contacts.contact_by_li(uid) p_exists = peer_exists(uid) if (not p_exists and getmain == -1): #Create a brand new contact from scratch Contactobject = lancontact(nick,addr[0],addr[1],uid,status) Contactobject.addself() elif(not p_exists and getmain != -1): #Add transport to existing contact Contactobject = lancontact(nick,addr[0],addr[1],uid,status,getmain) Contactobject.addself() else: existing_peer = peer_by_uid(uid) lan_contacts[existing_peer].b_nick = nick lan_contacts[existing_peer].b_addr = addr[0] # Address lan_contacts[existing_peer].b_port = addr[1] #Port lan_contacts[existing_peer].b_lastrcvd = time.time() lan_contacts[existing_peer].b_status = status lan_contacts[existing_peer].update_maincontact() if(bcast_request): bcast_send() # Notify new peer that you are around
def process_broadcast(addr,packet): uid = packet[3:27] interval = packet[1] #Flags (lsb=presence,1=bcast_request) flags = int(packet[2]) status = flags & 1 bcast_request = flags & 2 nick = str(packet[27:],'UTF-8') LTO = Lan_Contact(addr[0],addr[1],interval) #Ignore packets from self if(uid == lan_uid): logging.debug("LAN: Own broadcast received") return #print("Incoming broadcast\n Nick:" + str(nick,'UTF-8') + "\nUID: " + str(binascii.hexlify(uid),'utf-8')) getmain = contacts.contact_by_li(uid) if (getmain == -1): logging.debug("LAN: New broadcast contact detected") #Create a brand new contact from scratch Contactobject = contacts.Contact(nick,status) Contactobject.li = uid else: Contactobject = contacts.Contactlist[getmain] logging.debug("LAN: Existing contact detected") #Add LAN transport to this object Contactobject.Transports['lan'] = LTO Contactobject.nick = nick Contactobject.presence = status Contactobject.ui_update() if(bcast_request): bcast_send() # Notify new peer that you are around