From 87ae0a448df5467ead98826e683cd693d1d6489c Mon Sep 17 00:00:00 2001 From: midipix Date: Jul 21 2016 07:47:29 +0000 Subject: daemon: added initial signal handling logic. --- diff --git a/project/common.mk b/project/common.mk index a5c1120..3b9d693 100644 --- a/project/common.mk +++ b/project/common.mk @@ -10,6 +10,7 @@ COMMON_SRCS = \ src/daemon/ptyc_daemon_connect.c \ src/daemon/ptyc_daemon_init.c \ src/daemon/ptyc_daemon_loop.c \ + src/daemon/ptyc_daemon_signal.c \ src/debug/ptyc_dbg_cat.c \ src/debug/ptyc_dbg_event.c \ src/debug/ptyc_dbg_oven.c \ diff --git a/src/daemon/ptyc_daemon_loop.c b/src/daemon/ptyc_daemon_loop.c index 27ed0e5..5df71e9 100644 --- a/src/daemon/ptyc_daemon_loop.c +++ b/src/daemon/ptyc_daemon_loop.c @@ -16,7 +16,7 @@ static ptyc_daemon_routine * ptyc_daemon_vtbl[PTYC_VTBL_ELEMENTS] = { ptyc_daemon_connect, 0, - 0, + ptyc_daemon_signal, 0, 0, 0 diff --git a/src/daemon/ptyc_daemon_signal.c b/src/daemon/ptyc_daemon_signal.c new file mode 100644 index 0000000..67cef1d --- /dev/null +++ b/src/daemon/ptyc_daemon_signal.c @@ -0,0 +1,27 @@ +/*********************************************************/ +/* ptycon: a pty-console bridge */ +/* Copyright (C) 2016 Z. Gilboa */ +/* Released under GPLv2 and GPLv3; see COPYING.PTYCON. */ +/*********************************************************/ + +#include +#include +#include + +#include "ptycon_daemon_impl.h" +#include "ptycon_driver_impl.h" + +int32_t __stdcall ptyc_daemon_signal(nt_tty_port_msg * msg) +{ + /* [not a] ctty signal? */ + if (msg->ctlinfo.ctxarg[0]) + return NT_STATUS_SUCCESS; + + /* ctty sigint */ + if (msg->ctlinfo.ctlcode == TTY_TCSBRK) + ntapi->zw_terminate_process( + NT_CURRENT_PROCESS_HANDLE, + NT_STATUS_WAIT_1); + + return NT_STATUS_NOT_SUPPORTED; +}