From bfdd943126eb4227723fad000079fb73e1bd18b9 Mon Sep 17 00:00:00 2001 From: shennetsind Date: Wed, 31 Oct 2012 02:42:59 +0000 Subject: Improved char server packet 0x3087, gave it a variable/dynamic length so that it doesn't waste buffer size with messages too short. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@16850 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/char/inter.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/char') diff --git a/src/char/inter.c b/src/char/inter.c index 8b66514e9..4cbb1e32b 100644 --- a/src/char/inter.c +++ b/src/char/inter.c @@ -419,19 +419,21 @@ const char* geoip_getcountry(uint32 ipnum){ void inter_to_fd(int fd, int u_fd, int aid, char* msg, ...) { char msg_out[512]; va_list ap; + int len = 1;/* yes we start at 1 */ va_start(ap,msg); - vsprintf(msg_out, msg, ap); + len += vsnprintf(msg_out, 512, msg, ap); va_end(ap); - - WFIFOHEAD(fd,522); + + WFIFOHEAD(fd,12 + len); WFIFOW(fd,0) = 0x3807; - WFIFOL(fd,2) = u_fd; - WFIFOL(fd,6) = aid; - safestrncpy((char*)WFIFOP(fd,10), msg_out, 512); + WFIFOW(fd,2) = 12 + (unsigned short)len; + WFIFOL(fd,4) = u_fd; + WFIFOL(fd,8) = aid; + safestrncpy((char*)WFIFOP(fd,12), msg_out, len); - WFIFOSET(fd,522); + WFIFOSET(fd,12 + len); return; } -- cgit v1.2.3-60-g2f50