mirror of
https://github.com/hashcat/hashcat.git
synced 2025-01-08 23:01:14 +00:00
Move thread_keypress() to terminal.c
This commit is contained in:
parent
3f5ce6bb8e
commit
1ce58f51d1
@ -28,6 +28,8 @@
|
|||||||
void send_prompt ();
|
void send_prompt ();
|
||||||
void clear_prompt ();
|
void clear_prompt ();
|
||||||
|
|
||||||
|
void *thread_keypress (void *p);
|
||||||
|
|
||||||
#if defined (_WIN)
|
#if defined (_WIN)
|
||||||
void SetConsoleWindowSize (const int x);
|
void SetConsoleWindowSize (const int x);
|
||||||
#endif
|
#endif
|
||||||
|
109
src/hashcat.c
109
src/hashcat.c
@ -457,115 +457,6 @@ static void *thread_monitor (void *p)
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
static void *thread_keypress (void *p)
|
|
||||||
{
|
|
||||||
uint quiet = data.quiet;
|
|
||||||
|
|
||||||
tty_break();
|
|
||||||
|
|
||||||
while (data.shutdown_outer == 0)
|
|
||||||
{
|
|
||||||
int ch = tty_getchar();
|
|
||||||
|
|
||||||
if (ch == -1) break;
|
|
||||||
|
|
||||||
if (ch == 0) continue;
|
|
||||||
|
|
||||||
//https://github.com/hashcat/hashcat/issues/302
|
|
||||||
//#if defined (_POSIX)
|
|
||||||
//if (ch != '\n')
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
hc_thread_mutex_lock (mux_display);
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
switch (ch)
|
|
||||||
{
|
|
||||||
case 's':
|
|
||||||
case '\r':
|
|
||||||
case '\n':
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
status_display ();
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
if (quiet == 0) send_prompt ();
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'b':
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
bypass ();
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
if (quiet == 0) send_prompt ();
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'p':
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
SuspendThreads ();
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
if (quiet == 0) send_prompt ();
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'r':
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
ResumeThreads ();
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
if (quiet == 0) send_prompt ();
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'c':
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
stop_at_checkpoint ();
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
if (quiet == 0) send_prompt ();
|
|
||||||
|
|
||||||
break;
|
|
||||||
|
|
||||||
case 'q':
|
|
||||||
|
|
||||||
log_info ("");
|
|
||||||
|
|
||||||
myabort ();
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
//https://github.com/hashcat/hashcat/issues/302
|
|
||||||
//#if defined (_POSIX)
|
|
||||||
//if (ch != '\n')
|
|
||||||
//#endif
|
|
||||||
|
|
||||||
hc_thread_mutex_unlock (mux_display);
|
|
||||||
}
|
|
||||||
|
|
||||||
tty_fix();
|
|
||||||
|
|
||||||
return (p);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
135
src/terminal.c
135
src/terminal.c
@ -4,8 +4,34 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
#include "types_int.h"
|
||||||
|
#include "types.h"
|
||||||
|
#include "logging.h"
|
||||||
|
#include "interface.h"
|
||||||
|
#include "timer.h"
|
||||||
|
#include "ext_OpenCL.h"
|
||||||
|
#include "ext_ADL.h"
|
||||||
|
#include "ext_nvapi.h"
|
||||||
|
#include "ext_nvml.h"
|
||||||
|
#include "ext_xnvctrl.h"
|
||||||
|
#include "hwmon.h"
|
||||||
|
#include "mpsp.h"
|
||||||
|
#include "rp_cpu.h"
|
||||||
|
#include "restore.h"
|
||||||
|
#include "opencl.h"
|
||||||
|
#include "outfile.h"
|
||||||
|
#include "potfile.h"
|
||||||
|
#include "debugfile.h"
|
||||||
|
#include "loopback.h"
|
||||||
|
#include "data.h"
|
||||||
|
#include "thread.h"
|
||||||
|
#include "status.h"
|
||||||
#include "terminal.h"
|
#include "terminal.h"
|
||||||
|
|
||||||
|
extern hc_global_data_t data;
|
||||||
|
|
||||||
|
extern hc_thread_mutex_t mux_display;
|
||||||
|
|
||||||
const char *PROMPT = "[s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit => ";
|
const char *PROMPT = "[s]tatus [p]ause [r]esume [b]ypass [c]heckpoint [q]uit => ";
|
||||||
|
|
||||||
void send_prompt ()
|
void send_prompt ()
|
||||||
@ -29,6 +55,115 @@ void clear_prompt ()
|
|||||||
fflush (stdout);
|
fflush (stdout);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void *thread_keypress (void *p)
|
||||||
|
{
|
||||||
|
uint quiet = data.quiet;
|
||||||
|
|
||||||
|
tty_break();
|
||||||
|
|
||||||
|
while (data.shutdown_outer == 0)
|
||||||
|
{
|
||||||
|
int ch = tty_getchar();
|
||||||
|
|
||||||
|
if (ch == -1) break;
|
||||||
|
|
||||||
|
if (ch == 0) continue;
|
||||||
|
|
||||||
|
//https://github.com/hashcat/hashcat/issues/302
|
||||||
|
//#if defined (_POSIX)
|
||||||
|
//if (ch != '\n')
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
hc_thread_mutex_lock (mux_display);
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
switch (ch)
|
||||||
|
{
|
||||||
|
case 's':
|
||||||
|
case '\r':
|
||||||
|
case '\n':
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
status_display ();
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
if (quiet == 0) send_prompt ();
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'b':
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
bypass ();
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
if (quiet == 0) send_prompt ();
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'p':
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
SuspendThreads ();
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
if (quiet == 0) send_prompt ();
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'r':
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
ResumeThreads ();
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
if (quiet == 0) send_prompt ();
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'c':
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
stop_at_checkpoint ();
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
if (quiet == 0) send_prompt ();
|
||||||
|
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'q':
|
||||||
|
|
||||||
|
log_info ("");
|
||||||
|
|
||||||
|
myabort ();
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
//https://github.com/hashcat/hashcat/issues/302
|
||||||
|
//#if defined (_POSIX)
|
||||||
|
//if (ch != '\n')
|
||||||
|
//#endif
|
||||||
|
|
||||||
|
hc_thread_mutex_unlock (mux_display);
|
||||||
|
}
|
||||||
|
|
||||||
|
tty_fix();
|
||||||
|
|
||||||
|
return (p);
|
||||||
|
}
|
||||||
|
|
||||||
#if defined (_WIN)
|
#if defined (_WIN)
|
||||||
void SetConsoleWindowSize (const int x)
|
void SetConsoleWindowSize (const int x)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user