private ping_timer;
private servers: net.Server[];
public constructor(public peer_manager: ldk.PeerManager) {
+ // @ts-ignore
+ if (peer_manager._node_ldk_net_singleton_check != undefined) {
+ throw "Only one NdoeLDKNet should exist per PeerManager";
+ }
+ // @ts-ignore
+ peer_manager._node_ldk_net_singleton_check = this;
this.ping_timer = setInterval(function() {
peer_manager.timer_tick_occurred();
peer_manager.process_events();
server.close();
}
this.peer_manager.disconnect_all_peers();
+ // @ts-ignore
+ delete this.peer_manager._node_ldk_net_singleton_check;
}
/**
socket.on("close", function() {
this_pm.socket_disconnected(descriptor);
});
+ socket.on("error", function() {
+ this_pm.socket_disconnected(descriptor);
+ });
return descriptor;
}
- private static v4_addr_from_ip(ip: string, port: number): ldk.NetAddress {
+ private static v4_addr_from_ip(ip: string, port: number): ldk.SocketAddress {
const sockaddr = ip.split(".").map(parseFloat);
- return ldk.NetAddress.constructor_ipv4(new Uint8Array(sockaddr), port);
+ return ldk.SocketAddress.constructor_tcp_ip_v4(new Uint8Array(sockaddr), port);
}
- private static v6_addr_from_ip(ip: string, port: number): ldk.NetAddress {
+ private static v6_addr_from_ip(ip: string, port: number): ldk.SocketAddress {
const sockaddr = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];
const halves = ip.split("::"); // either one or two elements
const first_half = halves[0].split(":");
sockaddr[15 - idx*2] = v & 0xff;
}
}
- return ldk.NetAddress.constructor_ipv6(new Uint8Array(sockaddr), port);
+ return ldk.SocketAddress.constructor_tcp_ip_v6(new Uint8Array(sockaddr), port);
}
- private static get_addr_from_socket(socket: net.Socket): ldk.Option_NetAddressZ {
+ private static get_addr_from_socket(socket: net.Socket): ldk.Option_SocketAddressZ {
const addr = socket.remoteAddress;
if (addr === undefined)
- return ldk.Option_NetAddressZ.constructor_none();
+ return ldk.Option_SocketAddressZ.constructor_none();
if (net.isIPv4(addr)) {
- return ldk.Option_NetAddressZ.constructor_some(NodeLDKNet.v4_addr_from_ip(addr, socket.remotePort));
+ return ldk.Option_SocketAddressZ.constructor_some(NodeLDKNet.v4_addr_from_ip(addr, socket.remotePort));
}
if (net.isIPv6(addr)) {
- return ldk.Option_NetAddressZ.constructor_some(NodeLDKNet.v6_addr_from_ip(addr, socket.remotePort));
+ return ldk.Option_SocketAddressZ.constructor_some(NodeLDKNet.v6_addr_from_ip(addr, socket.remotePort));
}
- return ldk.Option_NetAddressZ.constructor_none();
+ return ldk.Option_SocketAddressZ.constructor_none();
}
/**