* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
* Please read the file COPYING, README and AUTHORS for more information.
- *
- * IRC info commands
*/
-
#include "portab.h"
+/**
+ * @file
+ * IRC info commands
+ */
+
#include "imp.h"
#include <assert.h>
#include <errno.h>
strlcat(rpl, "+", sizeof(rpl));
strlcat(rpl, Client_User(c), sizeof(rpl));
strlcat(rpl, "@", sizeof(rpl));
- strlcat(rpl, Client_Hostname(c), sizeof(rpl));
+ strlcat(rpl, Client_HostnameCloaked(c), sizeof(rpl));
strlcat(rpl, " ", sizeof(rpl));
}
}
static bool
write_whoreply(CLIENT *Client, CLIENT *c, const char *channelname, const char *flags)
{
- return IRC_WriteStrClient(Client, RPL_WHOREPLY_MSG, Client_ID(Client), channelname,
- Client_User(c), Client_Hostname(c), Client_ID(Client_Introducer(c)), Client_ID(c),
- flags, Client_Hops(c), Client_Info(c));
+ return IRC_WriteStrClient(Client, RPL_WHOREPLY_MSG, Client_ID(Client),
+ channelname, Client_User(c),
+ Client_HostnameCloaked(c),
+ Client_ID(Client_Introducer(c)), Client_ID(c),
+ flags, Client_Hops(c), Client_Info(c));
}
} /* IRC_WHO */
+/**
+ * Handler for the IRC "WHOIS" command.
+ *
+ * See RFC 2812, 3.6.2 "Whois query".
+ *
+ * @param Client The client from which this command has been received.
+ * @param Req Request structure with prefix and all parameters.
+ * @return CONNECTED or DISCONNECTED.
+ */
GLOBAL bool
IRC_WHOIS( CLIENT *Client, REQUEST *Req )
{
assert( Req != NULL );
/* Bad number of parameters? */
- if(( Req->argc < 1 ) || ( Req->argc > 2 )) return IRC_WriteStrClient( Client, ERR_NEEDMOREPARAMS_MSG, Client_ID( Client ), Req->command );
+ if (Req->argc < 1 || Req->argc > 2)
+ return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG,
+ Client_ID(Client), Req->command);
/* Search client */
- c = Client_Search( Req->argv[Req->argc - 1] );
- if(( ! c ) || ( Client_Type( c ) != CLIENT_USER )) return IRC_WriteStrClient( Client, ERR_NOSUCHNICK_MSG, Client_ID( Client ), Req->argv[Req->argc - 1] );
+ c = Client_Search(Req->argv[Req->argc - 1]);
+ if (!c || (Client_Type(c) != CLIENT_USER
+ && Client_Type(c) != CLIENT_SERVICE))
+ return IRC_WriteStrClient(Client, ERR_NOSUCHNICK_MSG,
+ Client_ID(Client),
+ Req->argv[Req->argc - 1]);
/* Search sender of the WHOIS */
if( Client_Type( Client ) == CLIENT_SERVER ) from = Client_Search( Req->prefix );
return ret;
}
#else
-static inline bool Show_MOTD_SSLInfo(UNUSED CLIENT *c) { return true; }
+static inline bool
+Show_MOTD_SSLInfo(UNUSED CLIENT *c)
+{ return true; }
#endif
GLOBAL bool
} /* IRC_Send_NAMES */
-
/**
* Send the ISUPPORT numeric (005).
* This numeric indicates the features that are supported by this server.
* See <http://www.irc.org/tech_docs/005.html> for details.
*/
GLOBAL bool
-IRC_Send_ISUPPORT PARAMS((CLIENT * Client))
+IRC_Send_ISUPPORT(CLIENT * Client)
{
if (!IRC_WriteStrClient(Client, RPL_ISUPPORT1_MSG, Client_ID(Client),
Conf_MaxJoins))