- if (Req->argc > 2)
- return IRC_WriteStrClient(Client, ERR_NEEDMOREPARAMS_MSG,
- Client_ID(Client), Req->command);
-
- /* use prefix to determine "From" */
- if (Client_Type(Client) == CLIENT_SERVER)
- from = Client_Search(Req->prefix);
- else
- from = Client;
-
- if (!from)
- return IRC_WriteStrClient(Client, ERR_NOSUCHNICK_MSG,
- Client_ID(Client), Req->prefix);
-
- if (Req->argc == 2) {
- /* forward to another server? */
- target = Client_Search(Req->argv[1]);
- if ((!target) || (Client_Type(target) != CLIENT_SERVER))
- return IRC_WriteStrClient(from, ERR_NOSUCHSERVER_MSG,
- Client_ID(from), Req->argv[1]);
+ _IRC_GET_SENDER_OR_RETURN_(from, Req, Client)
+ _IRC_GET_TARGET_SERVER_OR_RETURN_(target, Req, 1, from)