summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/message.h2
-rw-r--r--src/helperfuncs.cpp6
-rw-r--r--src/message.cpp74
-rw-r--r--src/users.cpp12
4 files changed, 11 insertions, 83 deletions
diff --git a/include/message.h b/include/message.h
index dd653e33b..c1e1932fb 100644
--- a/include/message.h
+++ b/include/message.h
@@ -29,8 +29,6 @@
#include "channels.h"
int common_channels(userrec *u, userrec *u2);
-void chop(char* str);
-void tidystring(char* str);
void Blocking(int s);
void NonBlocking(int s);
int CleanAndResolve (char *resolvedHost, const char *unresolvedHost, bool forward);
diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp
index 77a74c32c..f83d0f618 100644
--- a/src/helperfuncs.cpp
+++ b/src/helperfuncs.cpp
@@ -161,7 +161,6 @@ void Write_NoFormat(int sock, const char *text)
if (fd_ref_table[sock])
{
bytes = snprintf(tb,MAXBUF,"%s\r\n",text);
- chop(tb);
if (Config->GetIOHook(fd_ref_table[sock]->port))
{
@@ -210,7 +209,6 @@ void Write(int sock, char *text, ...)
vsnprintf(textbuffer, MAXBUF, text, argsPtr);
va_end(argsPtr);
bytes = snprintf(tb,MAXBUF,"%s\r\n",textbuffer);
- chop(tb);
if (Config->GetIOHook(fd_ref_table[sock]->port))
{
@@ -247,7 +245,6 @@ void WriteServ_NoFormat(int sock, const char* text)
if (fd_ref_table[sock])
{
bytes = snprintf(tb,MAXBUF,":%s %s\r\n",Config->ServerName,text);
- chop(tb);
if (Config->GetIOHook(fd_ref_table[sock]->port))
{
@@ -312,7 +309,6 @@ void WriteFrom_NoFormat(int sock, userrec *user, const char* text)
if (fd_ref_table[sock])
{
bytes = snprintf(tb,MAXBUF,":%s %s\r\n",user->GetFullHost(),text);
- chop(tb);
if (Config->GetIOHook(fd_ref_table[sock]->port))
{
@@ -360,7 +356,6 @@ void WriteFrom(int sock, userrec *user,char* text, ...)
vsnprintf(textbuffer, MAXBUF, text, argsPtr);
va_end(argsPtr);
bytes = snprintf(tb,MAXBUF,":%s %s\r\n",user->GetFullHost(),textbuffer);
- chop(tb);
if (Config->GetIOHook(fd_ref_table[sock]->port))
{
@@ -403,7 +398,6 @@ void WriteTo(userrec *source, userrec *dest,char *data, ...)
va_start(argsPtr, data);
vsnprintf(textbuffer, MAXBUF, data, argsPtr);
va_end(argsPtr);
- chop(textbuffer);
// if no source given send it from the server.
if (!source)
diff --git a/src/message.cpp b/src/message.cpp
index e49663e55..e4dc380cd 100644
--- a/src/message.cpp
+++ b/src/message.cpp
@@ -76,80 +76,6 @@ int common_channels(userrec *u, userrec *u2)
return 0;
}
-void tidystring(char* str)
-{
- // strips out double spaces before a : parameter
-
- char temp[MAXBUF];
- bool go_again = true;
-
- if (!str)
- return;
-
- // pointer voodoo++ --w00t
- while ((*str) && (*str == ' '))
- str++;
-
- while (go_again)
- {
- bool noparse = false;
- int t = 0, a = 0;
- go_again = false;
- const int lenofstr = strlen(str);
-
- /*
- * by caching strlen() of str, we theoretically avoid 3 expensive calls each time this loop
- * rolls around.. should speed things up a nanosecond or two. ;)
- */
-
- while (a < lenofstr)
- {
- if ((a < lenofstr - 1) && (noparse == false))
- {
- if ((str[a] == ' ') && (str[a+1] == ' '))
- {
- log(DEBUG,"Tidied extra space out of string: %s",str);
- go_again = true;
- a++;
- }
- }
-
- if (a < lenofstr - 1)
- {
- if ((str[a] == ' ') && (str[a+1] == ':'))
- {
- noparse = true;
- }
- }
-
- temp[t++] = str[a++];
- }
-
- temp[t] = '\0';
- strlcpy(str,temp,MAXBUF);
- }
-}
-
-/* chop a string down to 512 characters and preserve linefeed (irc max
- * line length) */
-
-void chop(char* str)
-{
- if (!str)
- {
- log(DEBUG,"ERROR! Null string passed to chop()!");
- return;
- }
- if (strlen(str) >= 511)
- {
- str[510] = '\r';
- str[511] = '\n';
- str[512] = '\0';
- log(DEBUG,"Excess line chopped.");
- }
-}
-
-
void Blocking(int s)
{
int flags = fcntl(s, F_GETFL, 0);
diff --git a/src/users.cpp b/src/users.cpp
index fbd4820b4..bf99c1fc8 100644
--- a/src/users.cpp
+++ b/src/users.cpp
@@ -472,7 +472,17 @@ void userrec::AddWriteBuf(const std::string &data)
return;
}
- sendq.append(data);
+ if (data.length() > 512)
+ {
+ std::string newdata(data);
+ newdata.resize(510);
+ newdata.append("\r\n");
+ sendq.append(newdata);
+ }
+ else
+ {
+ sendq.append(data);
+ }
}
// send AS MUCH OF THE USERS SENDQ as we are able to (might not be all of it)