if (scalar(@conflicted) > 0)
{
print STDERR "\e[0;33;1mERROR:\e[0m You have local modifications which conflicted with the updates from SVN\n";
- printf STDERR "Configure is not able to complete the update. Please resolve these conflicts, then run ./configure -%supdate", (($coredirchanged || $configurechanged) ? "" : "mod");
- print "Conflicted files: " . join ", ", @conflicted;
+ printf STDERR "Configure is not able to complete the update. Please resolve these conflicts, then run ./configure -%supdate\n", (($coredirchanged || $configurechanged) ? "" : "mod");
+ print "Conflicted files: " . join ", ", @conflicted . "\n";
exit 1;
}
if ($configurechanged || $coredirchanged)
# Beware: Linux sets it's own cflags below for some retarded reason
$config{LDLIBS} = "-pthread -lstdc++";
- $config{FLAGS} = "-fPIC -Woverloaded-virtual -Wshadow -Wall $config{OPTIMISATI}";
- $config{DEVELOPER} = "-fPIC -Woverloaded-virtual -Wshadow -Wall -g";
+ $config{FLAGS} = "-fPIC -Woverloaded-virtual -Wshadow -Wformat=2 -Wmissing-format-attribute -Wall $config{OPTIMISATI}";
+ $config{DEVELOPER} = "-fPIC -Woverloaded-virtual -Wshadow -Wall -Wformat=2 -Wmissing-format-attribute -g";
$SHARED = "-Wl,--rpath -Wl,$config{LIBRARY_DIR} -shared" unless defined $opt_disablerpath;
$config{MAKEPROG} = "make";
if ($config{OSNAME} =~ /Linux/i) {
$config{LDLIBS} = "-ldl -lstdc++ -pthread";
- $config{FLAGS} = "-fPIC -Woverloaded-virtual -Wshadow -Wall $config{OPTIMISATI}";
+# $config{FLAGS} = "-fPIC -Woverloaded-virtual -Wshadow -Wall $config{OPTIMISATI}";
$config{FLAGS} .= " " . $ENV{CXXFLAGS} if exists($ENV{CXXFLAGS});
$config{LDLIBS} .= " " . $ENV{LDLIBS} if exists($ENV{LDLIBS});
$config{MAKEPROG} = "make";
* @param text A printf-style format string which builds the output line without prefix
* @param ... Zero or more POD types
*/
- void WriteChannel(User* user, const char* text, ...);
+ void WriteChannel(User* user, const char* text, ...) CUSTOM_PRINTF(3, 4);
/** Write to a channel, from a user, using std::string for text
* @param user User whos details to prefix the line with
* @param text A printf-style format string which builds the output line without prefix
* @param ... Zero or more POD type
*/
- void WriteChannelWithServ(const char* ServName, const char* text, ...);
+ void WriteChannelWithServ(const char* ServName, const char* text, ...) CUSTOM_PRINTF(3, 4);
/** Write to a channel, from a server, using std::string for text
* @param ServName Server name to prefix the line with
* @param text A printf-style format string which builds the output line without prefix
* @param ... Zero or more POD type
*/
- void WriteAllExceptSender(User* user, bool serversource, char status, const char* text, ...);
+ void WriteAllExceptSender(User* user, bool serversource, char status, const char* text, ...) CUSTOM_PRINTF(5, 6);
/** Write to all users on a channel except a list of users, using va_args for text
* @param user User whos details to prefix the line with, and to omit from receipt of the message
* @param text A printf-style format string which builds the output line without prefix
* @param ... Zero or more POD type
*/
- void WriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const char* text, ...);
+ void WriteAllExcept(User* user, bool serversource, char status, CUList &except_list, const char* text, ...) CUSTOM_PRINTF(6, 7);
/** Write to all users on a channel except a specific user, using std::string for text.
* Internally, this calls WriteAllExcept().
#undef ERROR
#endif
+#ifdef __GNUC__
+#define CUSTOM_PRINTF(STRING, FIRST) __attribute__((format(printf, STRING, FIRST)))
+#else
+#define CUSTOM_PRINTF(STRING, FIRST)
+#endif
+
// Required system headers.
#include <time.h>
#include <stdarg.h>
* @param text Format string of to write to the log
* @param ... Format arguments of text to write to the log
*/
- void Log(int level, const char* text, ...);
+ void Log(int level, const char* text, ...) CUSTOM_PRINTF(3, 4);
/** Output a log message to the ircd.log file
* The text will only be output if the current loglevel
* @param format Format string for the numeric
* @param ... Parameters for the format string
*/
- void SendWhoisLine(User* user, User* dest, int numeric, const char* format, ...);
+ void SendWhoisLine(User* user, User* dest, int numeric, const char* format, ...) CUSTOM_PRINTF(5, 6);
/** Quit a user for excess flood, and if they are not
* fully registered yet, temporarily zline their IP.
* @param loglevel Log message level (DEBUG, VERBOSE, DEFAULT, SPARSE, NONE)
* @param msg The format of the message to be logged. See your C manual on printf() for details.
*/
- void Log(const std::string &type, int loglevel, const char *fmt, ...);
+ void Log(const std::string &type, int loglevel, const char *fmt, ...) CUSTOM_PRINTF(4, 5);
};
#endif
* @param text A format string containing text to send
* @param ... Format arguments
*/
- void WriteToSnoMask(char letter, const char* text, ...);
+ void WriteToSnoMask(char letter, const char* text, ...) CUSTOM_PRINTF(3, 4);
/** Called once per 5 seconds from the mainloop, this flushes any cached
* snotices. The way the caching works is as follows:
* @param text The text format string to send
* @param ... The format arguments
*/
- void ServerNoticeAll(const char* text, ...);
+ void ServerNoticeAll(const char* text, ...) CUSTOM_PRINTF(2, 3);
/** Send a server message (PRIVMSG) to all local users
* @param text The text format string to send
* @param ... The format arguments
*/
- void ServerPrivmsgAll(const char* text, ...);
+ void ServerPrivmsgAll(const char* text, ...) CUSTOM_PRINTF(2, 3);
/** Send text to all users with a specific set of modes
* @param modes The modes to check against, without a +, e.g. 'og'
* @param text The text format string to send
* @param ... The format arguments
*/
- void WriteMode(const char* modes, int flags, const char* text, ...);
+ void WriteMode(const char* modes, int flags, const char* text, ...) CUSTOM_PRINTF(4, 5);
};
#endif
* @param text The format string for text to send to the user
* @param ... POD-type format arguments
*/
- void Write(const char *text, ...);
+ void Write(const char *text, ...) CUSTOM_PRINTF(2, 3);
/** Write text to this user, appending CR/LF and prepending :server.name
* @param text A std::string to send to the user
* @param text The format string for text to send to the user
* @param ... POD-type format arguments
*/
- void WriteServ(const char* text, ...);
+ void WriteServ(const char* text, ...) CUSTOM_PRINTF(2, 3);
- void WriteNumeric(unsigned int numeric, const char* text, ...);
+ void WriteNumeric(unsigned int numeric, const char* text, ...) CUSTOM_PRINTF(3, 4);
void WriteNumeric(unsigned int numeric, const std::string &text);
* @param text The format string for text to send to the user
* @param ... POD-type format arguments
*/
- void WriteFrom(User *user, const char* text, ...);
+ void WriteFrom(User *user, const char* text, ...) CUSTOM_PRINTF(3, 4);
/** Write text to the user provided in the first parameter, appending CR/LF, and prepending THIS user's :nick!user@host.
* @param dest The user to route the message to
* @param text The format string for text to send to the user
* @param ... POD-type format arguments
*/
- void WriteTo(User *dest, const char *data, ...);
+ void WriteTo(User *dest, const char *data, ...) CUSTOM_PRINTF(3, 4);
/** Write to all users that can see this user (including this user in the list), appending CR/LF
* @param text A std::string to send to the users
* @param text The format string for text to send to the users
* @param ... POD-type format arguments
*/
- void WriteCommon(const char* text, ...);
+ void WriteCommon(const char* text, ...) CUSTOM_PRINTF(2, 3);
/** Write to all users that can see this user (not including this user in the list), appending CR/LF
* @param text The format string for text to send to the users
* @param ... POD-type format arguments
*/
- void WriteCommonExcept(const char* text, ...);
+ void WriteCommonExcept(const char* text, ...) CUSTOM_PRINTF(2, 3);
/** Write to all users that can see this user (not including this user in the list), appending CR/LF
* @param text A std::string to send to the users
* @param text The format string to send in the WALLOPS message
* @param ... Format arguments
*/
- void WriteWallOps(const char* text, ...);
+ void WriteWallOps(const char* text, ...) CUSTOM_PRINTF(2, 3);
/** Write a WALLOPS message from this user to all local opers.
* If this user is not opered, the function will return without doing anything.
* @param text The text format string to send
* @param ... Format arguments
*/
- void SendAll(const char* command, const char* text, ...);
+ void SendAll(const char* command, const char* text, ...) CUSTOM_PRINTF(3, 4);
/** Compile a channel list for this user, and send it to the user 'source'
* Used internally by WHOIS
bool n = i->second->HasUser(user);
if ((i->second->IsModeSet('p')) && (!n))
{
- user->WriteNumeric(322, "%s *",user->nick,i->second->name);
+ user->WriteNumeric(322, "%s *",user->nick);
}
else
{
if (((!(i->second->IsModeSet('p'))) && (!(i->second->IsModeSet('s')))) || (n))
{
- user->WriteNumeric(322, "%s %s %d :[+%s] %s",user->nick,i->second->name,users,i->second->ChanModes(n),i->second->topic);
+ user->WriteNumeric(322, "%s %s %ld :[+%s] %s",user->nick,i->second->name,users,i->second->ChanModes(n),i->second->topic);
}
}
}
if (ServerInstance->Users->UnregisteredUserCount())
user->WriteNumeric(253, "%s %d :unknown connections",user->nick,ServerInstance->Users->UnregisteredUserCount());
if (ServerInstance->ChannelCount())
- user->WriteNumeric(254, "%s %d :channels formed",user->nick,ServerInstance->ChannelCount());
+ user->WriteNumeric(254, "%s %ld :channels formed",user->nick,ServerInstance->ChannelCount());
if (ServerInstance->Users->LocalUserCount())
user->WriteNumeric(255, "%s :I have %d clients and 0 servers",user->nick,ServerInstance->Users->LocalUserCount());
strlcpy(modulename,module_names[i].c_str(),256);
if (IS_OPER(user))
{
- user->WriteNumeric(702, "%s :0x%08lx %d.%d.%d.%d %s (%s)",user->nick,m,V.Major,V.Minor,V.Revision,V.Build,ServerConfig::CleanFilename(modulename),flagstate+2);
+ user->WriteNumeric(702, "%s :0x%08lx %d.%d.%d.%d %s (%s)",user->nick,(unsigned long)m,V.Major,V.Minor,V.Revision,V.Build,ServerConfig::CleanFilename(modulename),flagstate+2);
}
else
{
if (Ptr->topicset)
{
user->WriteNumeric(332, "%s %s :%s", user->nick, Ptr->name, Ptr->topic);
- user->WriteNumeric(333, "%s %s %s %d", user->nick, Ptr->name, Ptr->setby, Ptr->topicset);
+ user->WriteNumeric(333, "%s %s %s %ld", user->nick, Ptr->name, Ptr->setby, Ptr->topicset);
}
else
{
*/
if ((idle) || (signon))
{
- ServerInstance->SendWhoisLine(user, dest, 317, "%s %s %d %d :seconds idle, signon time",user->nick, dest->nick, idle, signon);
+ ServerInstance->SendWhoisLine(user, dest, 317, "%s %s %lu %lu :seconds idle, signon time",user->nick, dest->nick, idle, signon);
}
ServerInstance->SendWhoisLine(user, dest, 318, "%s %s :End of /WHOIS list.",user->nick, dest->nick);
ServerInstance->SNO->WriteToSnoMask('A', "There were errors in the configuration file:");
while (start < errors.length())
{
- ServerInstance->SNO->WriteToSnoMask('A', errors.substr(start, 360).c_str());
+ ServerInstance->SNO->WriteToSnoMask('A', errors.substr(start, 360));
start += 360;
}
}
/** Add a derived Resolver to the working set */
bool DNS::AddResolverClass(Resolver* r)
{
- ServerInstance->Logs->Log("RESOLVER",DEBUG,"AddResolverClass %08lx", r);
+ ServerInstance->Logs->Log("RESOLVER",DEBUG,"AddResolverClass 0x%08lx", (unsigned long)r);
/* Check the pointers validity and the id's validity */
if ((r) && (r->GetId() > -1))
{
{
if (TIME < OLDTIME)
{
- SNO->WriteToSnoMask('A', "\002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %d secs.",OLDTIME-TIME);
+ SNO->WriteToSnoMask('A', "\002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %ld secs.",OLDTIME-TIME);
}
if ((TIME % 3600) == 0)
void DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed R-Line %s (set by %s %d seconds ago)", this->matchtext.c_str(), this->source, this->duration);
+ ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed R-Line %s (set by %s %ld seconds ago)", this->matchtext.c_str(), this->source, this->duration);
}
const char* Displayable()
for (size_t i = 0; i < ServerInstance->Config->ports.size(); i++)
if ((ServerInstance->Config->ports[i]->GetPort() == portno) && (ServerInstance->Config->ports[i]->GetIP() == addr))
ServerInstance->Config->ports[i]->SetDescription("ssl");
- ServerInstance->Logs->Log("m_ssl_gnutls",DEFAULT, "m_ssl_gnutls.so: Enabling SSL for port %d", portno);
+ ServerInstance->Logs->Log("m_ssl_gnutls",DEFAULT, "m_ssl_gnutls.so: Enabling SSL for port %ld", portno);
sslports.append((addr.empty() ? "*" : addr)).append(":").append(ConvToStr(portno)).append(";");
}
catch (ModuleException &e)
{
- ServerInstance->Logs->Log("m_ssl_gnutls",DEFAULT, "m_ssl_gnutls.so: FAILED to enable SSL on port %d: %s. Maybe it's already hooked by the same port on a different IP, or you have an other SSL or similar module loaded?", portno, e.GetReason());
+ ServerInstance->Logs->Log("m_ssl_gnutls",DEFAULT, "m_ssl_gnutls.so: FAILED to enable SSL on port %ld: %s. Maybe it's already hooked by the same port on a different IP, or you have an other SSL or similar module loaded?", portno, e.GetReason());
}
}
}
for (size_t i = 0; i < ServerInstance->Config->ports.size(); i++)
if ((ServerInstance->Config->ports[i]->GetPort() == portno) && (ServerInstance->Config->ports[i]->GetIP() == addr))
ServerInstance->Config->ports[i]->SetDescription("ssl");
- ServerInstance->Logs->Log("m_ssl_openssl",DEFAULT, "m_ssl_gnutls.so: Enabling SSL for port %d", portno);
+ ServerInstance->Logs->Log("m_ssl_openssl",DEFAULT, "m_ssl_gnutls.so: Enabling SSL for port %ld", portno);
sslports.append((addr.empty() ? "*" : addr)).append(":").append(ConvToStr(portno)).append(";");
}
catch (ModuleException &e)
{
- ServerInstance->Logs->Log("m_ssl_openssl",DEFAULT, "m_ssl_gnutls.so: FAILED to enable SSL on port %d: %s. Maybe it's already hooked by the same port on a different IP, or you have an other SSL or similar module loaded?", portno, e.GetReason());
+ ServerInstance->Logs->Log("m_ssl_openssl",DEFAULT, "m_ssl_gnutls.so: FAILED to enable SSL on port %ld: %s. Maybe it's already hooked by the same port on a different IP, or you have an other SSL or similar module loaded?", portno, e.GetReason());
}
}
}
if(adding && (channel->bans.size() > static_cast<unsigned>(maxbans)))
{
- source->WriteNumeric(478, "%s %s :Channel ban list for %s is full (maximum entries for this channel is %d)", source->nick, channel->name, channel->name, maxbans);
+ source->WriteNumeric(478, "%s %s :Channel ban list for %s is full (maximum entries for this channel is %ld)", source->nick, channel->name, channel->name, maxbans);
return false;
}
if (length > 0)
{
- user->WriteNumeric(993, "%s %s :Added %s to DCCALLOW list for %d seconds", user->nick, user->nick, target->nick, length);
+ user->WriteNumeric(993, "%s %s :Added %s to DCCALLOW list for %ld seconds", user->nick, user->nick, target->nick, length);
}
else
{
user->Shrink("delayjoin");
}
- void WriteCommonFrom(User *user, Channel* channel, const char* text, ...)
+ void WriteCommonFrom(User *user, Channel* channel, const char* text, ...) CUSTOM_PRINTF(4, 5)
{
va_list argsPtr;
char textbuffer[MAXBUF];
{
this->response = new HTTPClientResponse((Module*)Mod, req.GetSource() , url.url, 0, "");
- Instance->Logs->Log("m_http_client",DEBUG,"HTTPSocket::Connect(%s) response=%08lx", ip.c_str(), response);
+ Instance->Logs->Log("m_http_client",DEBUG,"HTTPSocket::Connect(%s) response=%08lx", ip.c_str(), (unsigned long)response);
strlcpy(this->IP, ip.c_str(), MAXBUF);
strlcpy(this->host, ip.c_str(), MAXBUF);
if (!closed)
{
closed = true;
- Instance->Logs->Log("m_http_client",DEBUG,"HTTPSocket::OnClose response=%08lx", response);
+ Instance->Logs->Log("m_http_client",DEBUG,"HTTPSocket::OnClose response=%08lx", (unsigned long)response);
std::string e;
if (data.empty())
{
}
/* Fix by Eric @ neowin.net, thanks :) -- Brain */
- void WriteCommonFrom(User *user, Channel* channel, const char* text, ...)
+ void WriteCommonFrom(User *user, Channel* channel, const char* text, ...) CUSTOM_PRINTF(4,5)
{
va_list argsPtr;
char textbuffer[MAXBUF];
}
if (dest_level > source_level)
{
- ServerInstance->SNO->WriteToSnoMask('A', "Oper %s (level %d) attempted to /kill a higher oper: %s (level %d): Reason: %s",source->nick,source_level,dest->nick,dest_level,reason.c_str());
+ ServerInstance->SNO->WriteToSnoMask('A', "Oper %s (level %ld) attempted to /kill a higher oper: %s (level %ld): Reason: %s",source->nick,source_level,dest->nick,dest_level,reason.c_str());
dest->WriteServ("NOTICE %s :Oper %s attempted to /kill you!",dest->nick,source->nick);
source->WriteNumeric(481, "%s :Permission Denied - Oper %s is a higher level than you",source->nick,dest->nick);
return 1;
// channel does not yet exist (record is null, about to be created IF we were to allow it)
if (!chan)
{
- user->WriteNumeric(530, "%s %s :Only IRC operators may create new channels",user->nick,cname,cname);
+ user->WriteNumeric(530, "%s %s :Only IRC operators may create new channels",user->nick,cname);
return 1;
}
}
return 0;
/* Not exempt, BOOK EM DANNO! */
- user->WriteServ("NOTICE %s :*** You cannot list within the first %d seconds of connecting. Please try again later.",user->nick, WaitTime);
+ user->WriteServ("NOTICE %s :*** You cannot list within the first %ld seconds of connecting. Please try again later.",user->nick, WaitTime);
/* Some crap clients (read: mIRC, various java chat applets) muck up if they don't
* receive these numerics whenever they send LIST, so give them an empty LIST to mull over.
*/
}
if (sl->size() >= maxsilence)
{
- user->WriteNumeric(952, "%s %s :Your silence list is full",user->nick, user->nick, mask.c_str());
+ user->WriteNumeric(952, "%s %s :Your silence list is full",user->nick, user->nick);
return CMD_FAILURE;
}
sl->insert(std::make_pair<irc::string, time_t>(mask.c_str(), ServerInstance->Time()));
user->WriteNumeric(253, "%s %d :unknown connections",user->nick,ServerInstance->Users->UnregisteredUserCount());
if (ServerInstance->ChannelCount())
- user->WriteNumeric(254, "%s %d :channels formed",user->nick,ServerInstance->ChannelCount());
+ user->WriteNumeric(254, "%s %ld :channels formed",user->nick,ServerInstance->ChannelCount());
user->WriteNumeric(255, "%s :I have %d clients and %d servers",user->nick,ServerInstance->Users->LocalUserCount(),ulined_local_count ? this->CountLocalServs() - ulined_local_count : this->CountLocalServs());
user->WriteNumeric(265, "%s :Current Local Users: %d Max: %d",user->nick,ServerInstance->Users->LocalUserCount(),max_local);
/** Attempt to send a message to a user
*/
- void RemoteMessage(User* user, const char* format, ...);
+ void RemoteMessage(User* user, const char* format, ...) CUSTOM_PRINTF(3, 4);
/** Returns oper-specific MAP information
*/
if ((*iter)->set_on + (*iter)->length <= ServerInstance->Time())
{
ServerInstance->Logs->Log("m_svshold",DEBUG, "m_svshold.so: hold on %s expired, removing...", (*iter)->nickname.c_str());
- ServerInstance->SNO->WriteToSnoMask('A',"%li second SVSHOLD on %s (%s) set %u seconds ago expired", (*iter)->length, (*iter)->nickname.c_str(), (*iter)->reason.c_str(), ServerInstance->Time() - (*iter)->set_on);
+ ServerInstance->SNO->WriteToSnoMask('A',"%li second SVSHOLD on %s (%s) set %ld seconds ago expired", (*iter)->length, (*iter)->nickname.c_str(), (*iter)->reason.c_str(), ServerInstance->Time() - (*iter)->set_on);
HoldMap.erase(assign((*iter)->nickname));
delete *iter;
safeiter = iter;
}
catch (ModuleException &e)
{
- ServerInstance->Logs->Log("m_xmlsocket",DEFAULT, "m_xmlsocket.so: FAILED to enable XMLSocket on port %d: %s. Maybe you have another similar module loaded?", portno, e.GetReason());
+ ServerInstance->Logs->Log("m_xmlsocket",DEFAULT, "m_xmlsocket.so: FAILED to enable XMLSocket on port %ld: %s. Maybe you have another similar module loaded?", portno, e.GetReason());
}
}
}
if (this->MyClass)
{
this->MyClass->RefCount--;
- ServerInstance->Logs->Log("USERS", DEBUG, "User destructor -- connect refcount now: %u", this->MyClass->RefCount);
+ ServerInstance->Logs->Log("USERS", DEBUG, "User destructor -- connect refcount now: %lu", this->MyClass->RefCount);
}
if (this->AllowedOperCommands)
{
if (this->MyClass && (recvq.length() > this->MyClass->GetRecvqMax()))
{
this->SetWriteError("RecvQ exceeded");
- ServerInstance->SNO->WriteToSnoMask('A', "User %s RecvQ of %d exceeds connect class maximum of %d",this->nick,recvq.length(),this->MyClass->GetRecvqMax());
+ ServerInstance->SNO->WriteToSnoMask('A', "User %s RecvQ of %d exceeds connect class maximum of %lu",this->nick,recvq.length(),this->MyClass->GetRecvqMax());
return false;
}
* to repeatedly add the text to the sendq!
*/
this->SetWriteError("SendQ exceeded");
- ServerInstance->SNO->WriteToSnoMask('A', "User %s SendQ of %d exceeds connect class maximum of %d",this->nick,sendq.length() + data.length(),this->MyClass->GetSendqMax());
+ ServerInstance->SNO->WriteToSnoMask('A', "User %s SendQ of %d exceeds connect class maximum of %lu",this->nick,sendq.length() + data.length(),this->MyClass->GetSendqMax());
return;
}
/* deny change if change will take class over the limit */
if (found->limit && (found->RefCount + 1 >= found->limit))
{
- ServerInstance->Logs->Log("USERS", DEBUG, "OOPS: Connect class limit (%u) hit, denying", found->limit);
+ ServerInstance->Logs->Log("USERS", DEBUG, "OOPS: Connect class limit (%lu) hit, denying", found->limit);
return this->MyClass;
}
if (found == this->MyClass) // no point changing this shit :P
return this->MyClass;
this->MyClass->RefCount--;
- ServerInstance->Logs->Log("USERS", DEBUG, "Untying user from connect class -- refcount: %u", this->MyClass->RefCount);
+ ServerInstance->Logs->Log("USERS", DEBUG, "Untying user from connect class -- refcount: %lu", this->MyClass->RefCount);
}
this->MyClass = found;
this->MyClass->RefCount++;
- ServerInstance->Logs->Log("USERS", DEBUG, "User tied to new class -- connect refcount now: %u", this->MyClass->RefCount);
+ ServerInstance->Logs->Log("USERS", DEBUG, "User tied to new class -- connect refcount now: %lu", this->MyClass->RefCount);
}
return this->MyClass;
void ELine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed E-Line %s@%s (set by %s %d seconds ago)",this->identmask,this->hostmask,this->source,this->duration);
+ ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed E-Line %s@%s (set by %s %ld seconds ago)",this->identmask,this->hostmask,this->source,this->duration);
}
void QLine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed Q-Line %s (set by %s %d seconds ago)",this->nick,this->source,this->duration);
+ ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed Q-Line %s (set by %s %ld seconds ago)",this->nick,this->source,this->duration);
}
void ZLine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed Z-Line %s (set by %s %d seconds ago)",this->ipaddr,this->source,this->duration);
+ ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed Z-Line %s (set by %s %ld seconds ago)",this->ipaddr,this->source,this->duration);
}
void KLine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed K-Line %s@%s (set by %s %d seconds ago)",this->identmask,this->hostmask,this->source,this->duration);
+ ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed K-Line %s@%s (set by %s %ld seconds ago)",this->identmask,this->hostmask,this->source,this->duration);
}
void GLine::DisplayExpiry()
{
- ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed G-Line %s@%s (set by %s %d seconds ago)",this->identmask,this->hostmask,this->source,this->duration);
+ ServerInstance->SNO->WriteToSnoMask('x',"Expiring timed G-Line %s@%s (set by %s %ld seconds ago)",this->identmask,this->hostmask,this->source,this->duration);
}
const char* ELine::Displayable()