aboutsummaryrefslogtreecommitdiff
path: root/server-msg.c
diff options
context:
space:
mode:
authorTiago Cunha <tcunha@gmx.com>2009-09-23 14:44:02 +0000
committerTiago Cunha <tcunha@gmx.com>2009-09-23 14:44:02 +0000
commit2acf349d4e855eeb8b5d8303cc89aec016210e30 (patch)
treee508d208378741436f6b487cc91f89087522f11a /server-msg.c
parentacedc2dcf2673cf199ba1ba08705dc8fd270c0c7 (diff)
downloadrtmux-2acf349d4e855eeb8b5d8303cc89aec016210e30.tar.gz
rtmux-2acf349d4e855eeb8b5d8303cc89aec016210e30.tar.bz2
rtmux-2acf349d4e855eeb8b5d8303cc89aec016210e30.zip
Sync OpenBSD patchset 346:
Trim some code by moving the ioctl(TIOCGWINSZ) after SIGWINCH from the client into the server. This is another (the second of four) protocol version changes coming this morning, so again the server should be killed before upgrading.
Diffstat (limited to 'server-msg.c')
-rw-r--r--server-msg.c40
1 files changed, 7 insertions, 33 deletions
diff --git a/server-msg.c b/server-msg.c
index 5ed956ac..cecf9aa9 100644
--- a/server-msg.c
+++ b/server-msg.c
@@ -1,4 +1,4 @@
-/* $Id: server-msg.c,v 1.85 2009-09-23 14:39:30 tcunha Exp $ */
+/* $Id: server-msg.c,v 1.86 2009-09-23 14:44:02 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -17,6 +17,7 @@
*/
#include <sys/types.h>
+#include <sys/ioctl.h>
#include <errno.h>
#include <stdlib.h>
@@ -28,7 +29,6 @@
void server_msg_command(struct client *, struct msg_command_data *);
void server_msg_identify(struct client *, struct msg_identify_data *, int);
-void server_msg_resize(struct client *, struct msg_resize_data *);
void printflike2 server_msg_command_error(struct cmd_ctx *, const char *, ...);
void printflike2 server_msg_command_print(struct cmd_ctx *, const char *, ...);
@@ -40,7 +40,6 @@ server_msg_dispatch(struct client *c)
struct imsg imsg;
struct msg_command_data commanddata;
struct msg_identify_data identifydata;
- struct msg_resize_data resizedata;
struct msg_unlock_data unlockdata;
struct msg_environ_data environdata;
ssize_t n, datalen;
@@ -81,11 +80,12 @@ server_msg_dispatch(struct client *c)
server_msg_identify(c, &identifydata, imsg.fd);
break;
case MSG_RESIZE:
- if (datalen != sizeof resizedata)
+ if (datalen != 0)
fatalx("bad MSG_RESIZE size");
- memcpy(&resizedata, imsg.data, sizeof resizedata);
- server_msg_resize(c, &resizedata);
+ tty_resize(&c->tty);
+ recalculate_sizes();
+ server_redraw_client(c);
break;
case MSG_EXITING:
if (datalen != 0)
@@ -261,33 +261,7 @@ server_msg_identify(struct client *c, struct msg_identify_data *data, int fd)
if (data->flags & IDENTIFY_HASDEFAULTS)
c->tty.term_flags |= TERM_HASDEFAULTS;
- c->tty.sx = data->sx;
- if (c->tty.sx == 0)
- c->tty.sx = 80;
- c->tty.sy = data->sy;
- if (c->tty.sy == 0)
- c->tty.sy = 24;
+ tty_resize(&c->tty);
c->flags |= CLIENT_TERMINAL;
}
-
-void
-server_msg_resize(struct client *c, struct msg_resize_data *data)
-{
- c->tty.sx = data->sx;
- if (c->tty.sx == 0)
- c->tty.sx = 80;
- c->tty.sy = data->sy;
- if (c->tty.sy == 0)
- c->tty.sy = 24;
-
- c->tty.cx = UINT_MAX;
- c->tty.cy = UINT_MAX;
- c->tty.rupper = UINT_MAX;
- c->tty.rlower = UINT_MAX;
-
- recalculate_sizes();
-
- /* Always redraw this client. */
- server_redraw_client(c);
-}