MCPcopy Create free account
hub / github.com/PierreGode/Ragnar / quickRescanHost

Function quickRescanHost

web/scripts/ragnar_modern.js:19594–19617  ·  view source on GitHub ↗
(host)

Source from the content-addressed store, hash-verified

19592 launchBtn.classList.toggle('cursor-wait', !!busy);
19593 if (busy) {
19594 launchBtn.classList.remove('bg-orange-600', 'hover:bg-orange-700');
19595 launchBtn.classList.add('bg-orange-500');
19596 } else {
19597 launchBtn.classList.remove('bg-orange-500');
19598 launchBtn.classList.add('bg-orange-600', 'hover:bg-orange-700');
19599 }
19600 launchBtn.textContent = label || (busy ? 'Launching...' : 'Execute Attack');
19601 };
19602
19603 if (!ip || !port || !action) {
19604 addConsoleMessage('Please select IP, Port, and Action for manual attack', 'error');
19605 setManualAttackStatus('Please select a target IP, port, and action before launching.', 'error');
19606 appendManualAttackLog('Manual attack aborted - missing selections.', 'error');
19607 return;
19608 }
19609
19610 if (!isActionAllowedOnPort(action, port)) {
19611 const matrix = getManualAttackMatrix();
19612 const allowedPorts = (matrix[action]?.ports || []).join(', ');
19613 const errorMessage = `${action.toUpperCase()} brute force is only available on port(s): ${allowedPorts || 'restricted'}.`;
19614 addConsoleMessage(errorMessage, 'error');
19615 setManualAttackStatus(errorMessage, 'error');
19616 appendManualAttackLog('Manual attack blocked due to incompatible port selection.', 'error');
19617 return;
19618 }
19619
19620 const attackLabel = `${action.toUpperCase()} on ${ip}:${port}`;

Callers

nothing calls this directly

Calls 3

errorMethod · 0.80
showNotificationFunction · 0.70
startAdvVulnPollingFunction · 0.70

Tested by

no test coverage detected