#include #include #include #include #include "MagiDoor.h" char md_getc() { char c; ssize_t ret; while (1) { if (mdcontrol.socket == -1) { ret = read(STDIN_FILENO, &c, 1); } else { ret = recv(mdcontrol.socket, &c, 1, 0); } if (ret == 0) { md_exit(0); } if (ret == -1 && (errno == EAGAIN || errno == EWOULDBLOCK)) { sleep(1); continue; } md_putchar(c); return c; } }