From: Melvin H. <mha...@us...> - 2002-12-17 03:00:44
|
Update of /cvsroot/libetpan/xetpan/src In directory sc8-pr-cvs1:/tmp/cvs-serv27632/src Modified Files: xetpan.c Log Message: XetPan_remote_ui_tty(): updated for multi client support XetPan_remote_ui_gtk(): return error message if attempt was made to run a GUI while the server is in TTY mode. a_XetPan_execute_remote_cmd(): all remote command now return a message to be displayed by the client. a_XetPan_quit(): close and unlink remote socket Index: xetpan.c =================================================================== RCS file: /cvsroot/libetpan/xetpan/src/xetpan.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -d -r1.14 -r1.15 --- xetpan.c 16 Dec 2002 12:39:09 -0000 1.14 +++ xetpan.c 17 Dec 2002 03:00:40 -0000 1.15 @@ -121,13 +121,13 @@ XetPan_request_remote_ui_tty(XetPan *xetpan); static void -XetPan_remote_ui_tty(XetPan *xetpan, char *terminal); +XetPan_remote_ui_tty(XePRemote *remote, char *terminal); static void XetPan_request_remote_ui_gtk(XetPan *xetpan, const char *terminal); static void -XetPan_remote_ui_gtk(XetPan *xetpan, char *option); +XetPan_remote_ui_gtk(XePRemote *remote, char *option); static void XetPan_compose_prepare(XetPan *xetpan, char *account); @@ -502,7 +502,7 @@ char *argument; int len = 0; - int status = 0; + term = getenv("TERM"); if (!term) { @@ -542,12 +542,18 @@ } static void -XetPan_remote_ui_tty(XetPan *xetpan, char *terminal) +XetPan_remote_ui_tty(XePRemote* remote, char *terminal) { XePUIMain *uimain; - uimain = a_UI_mainview_create(xetpan, terminal, XETPAN_UI_TTY); + uimain = a_UI_mainview_create(remote->xetpan, terminal, XETPAN_UI_TTY); + if (uimain) - uimain->client_fd = xetpan->client.fd; + { + uimain->remote = remote; + A_LOGGING_INFO("TTY UI has remote connection fd %d", remote->fd); + } + + a_Remote_build_msg(remote, 't', "OK."); } static void @@ -570,16 +576,23 @@ } static void -XetPan_remote_ui_gtk(XetPan *xetpan, char *option) +XetPan_remote_ui_gtk(XePRemote *remote, char *option) { - a_UI_mainview_create(xetpan, option, XETPAN_UI_GTK); + if (remote->xetpan->ui->type == XETPAN_UI_GTK) + { + a_UI_mainview_create(remote->xetpan, option, XETPAN_UI_GTK); + a_Remote_build_msg(remote, 'g', "OK"); + } + else + a_Remote_build_msg(remote, 'g', + "Cannot initiate GUI when server is in TTY mode"); } int -a_XetPan_execute_remote_cmd(XetPan *xetpan, char cmd, char *option) +a_XetPan_execute_remote_cmd(XePRemote *remote, char cmd, char *option) { + XetPan *xetpan; - char *result = NULL; int ret; /* if (xetpan->config == NULL) @@ -590,50 +603,44 @@ } */ + xetpan = remote->xetpan; + ret = XETPAN_NO_ERR; switch (cmd) { case 'r': XetPan_receive_messages(xetpan, option); - /* Send back status */ + a_Remote_build_msg(remote, cmd, option); break; case 's': XetPan_send_queued_messages(xetpan, option); - /* Send back status */ + a_Remote_build_msg(remote, cmd, option); break; case 'n': XetPan_send_all_now(xetpan, option); - /* Send back status */ + a_Remote_build_msg(remote, cmd, option); break; case 'S': XetPan_print_status(xetpan, option); - /* Send back status */ + a_Remote_build_msg(remote, cmd, option); break; case 'c': XetPan_compose_prepare(xetpan, option); - /* Send back status */ + a_Remote_build_msg(remote, cmd, option); break; case 't': - XetPan_remote_ui_tty(xetpan, option); + XetPan_remote_ui_tty(remote, option); ret = XETPAN_REMOTE_CLIENT;; - /* Send back status */ break; case 'g': - XetPan_remote_ui_gtk(xetpan, option); - /* Send back status */ + XetPan_remote_ui_gtk(remote, option); break; default: - printf(_("Unknown remote command. Command not sent.\n")); + a_Remote_build_msg(remote, cmd, option); ret = XETPAN_ERR; } A_LOGGING_INFO("a_XetPan_execute_remote_cmd: send result"); -#if 0 - if ((ret == XETPAN_NO_ERR) && - (build_msg(xetpan, '>', result) == XETPAN_ERR_MSG_TOO_LONG)) - build_msg(xetpan, '>', _("Result of command is too long to be sent.")); -#endif - return ret; } @@ -744,7 +751,6 @@ A_LOGGING_INFO("a_XetPan_quit()"); a_UI_mainview_close_all(xetpan); a_UI_composewindow_close_all(xetpan); + a_Remote_close_unlink_socket(xetpan); a_UI_main_quit(xetpan); - - XetPan_free(xetpan); } |