1148 |
|
|
1149 |
| OvernetPeerNotFound peer -> |
| OvernetPeerNotFound peer -> |
1150 |
begin |
begin |
1151 |
if !verbose_overnet && debug_client other_ip then |
if !verbose_overnet || debug_client other_ip then |
1152 |
lprintf_nl () "Peer NOT FOUND %s (%s:%d) kind: %d (msg 33)" |
lprintf_nl () "Peer NOT FOUND %s (%s:%d) kind: %d (msg 33)" |
1153 |
(Md4.to_string peer.peer_md4) (Ip.to_string peer.peer_ip) |
(Md4.to_string peer.peer_md4) (Ip.to_string peer.peer_ip) |
1154 |
peer.peer_port peer.peer_kind; |
peer.peer_port peer.peer_kind; |
1155 |
let key = (peer.peer_ip, peer.peer_port) in |
let key = (peer.peer_ip, peer.peer_port) in |
1156 |
if Hashtbl.mem known_peers key |
if Hashtbl.mem known_peers key |
1157 |
then begin |
then begin |
1158 |
Hashtbl.remove known_peers key; |
(* remove it from the prebuckets and known_peers only *) |
1159 |
end |
try |
1160 |
|
for i = 0 to !n_used_buckets do |
1161 |
|
let b = prebuckets.(i) in |
1162 |
|
for j = 1 to Fifo.length b do |
1163 |
|
let p = Fifo.take b in |
1164 |
|
if p.peer_ip = peer.peer_ip && |
1165 |
|
p.peer_port = peer.peer_port then begin |
1166 |
|
decr pre_connected_peers; |
1167 |
|
Hashtbl.remove known_peers key; |
1168 |
|
end else Fifo.put b p |
1169 |
|
done; |
1170 |
|
done; |
1171 |
|
with Exit -> (); |
1172 |
|
end; |
1173 |
end |
end |
1174 |
|
|
1175 |
| OvernetUnknown21 peer -> |
| OvernetUnknown21 peer -> |