MCPcopy
hub / github.com/HelloZeroNet/ZeroNet / getHandshakeInfo

Method getHandshakeInfo

src/Connection/Connection.py:345–388  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

343
344 # My handshake info
345 def getHandshakeInfo(self):
346 # No TLS for onion connections
347 if self.ip_type == "onion":
348 crypt_supported = []
349 elif self.ip in self.server.broken_ssl_ips:
350 crypt_supported = []
351 else:
352 crypt_supported = CryptConnection.manager.crypt_supported
353 # No peer id for onion connections
354 if self.ip_type == "onion" or self.ip in config.ip_local:
355 peer_id = ""
356 else:
357 peer_id = self.server.peer_id
358 # Setup peer lock from requested onion address
359 if self.handshake and self.handshake.get("target_ip", "").endswith(".onion") and self.server.tor_manager.start_onions:
360 self.target_onion = self.handshake.get("target_ip").replace(".onion", "") # My onion address
361 if not self.server.tor_manager.site_onions.values():
362 self.server.log.warning("Unknown target onion address: %s" % self.target_onion)
363
364 handshake = {
365 "version": config.version,
366 "protocol": "v2",
367 "use_bin_type": True,
368 "peer_id": peer_id,
369 "fileserver_port": self.server.port,
370 "port_opened": self.server.port_opened.get(self.ip_type, None),
371 "target_ip": self.ip,
372 "rev": config.rev,
373 "crypt_supported": crypt_supported,
374 "crypt": self.crypt,
375 "time": int(time.time())
376 }
377 if self.target_onion:
378 handshake["onion"] = self.target_onion
379 elif self.ip_type == "onion":
380 handshake["onion"] = self.server.tor_manager.getOnion("global")
381
382 if self.is_tracker_connection:
383 handshake["tracker_connection"] = True
384
385 if config.debug_socket:
386 self.log("My Handshake: %s" % handshake)
387
388 return handshake
389
390 def setHandshake(self, handshake):
391 if config.debug_socket:

Callers 2

connectMethod · 0.95
handleHandshakeMethod · 0.95

Calls 4

logMethod · 0.95
valuesMethod · 0.80
getOnionMethod · 0.80
getMethod · 0.45

Tested by

no test coverage detected