}
return CONNECTED;
} else {
- /* RFC 2813 mode: one combined NICK command */
- return IRC_WriteStrClient(Client, "NICK %s %d %s %s %d +%s :%s",
+ /* RFC 2813 mode: one combined NICK or SERVICE command */
+ if (Client_Type(User) == CLIENT_SERVICE
+ && strchr(Client_Flags(Client), 'S'))
+ return IRC_WriteStrClient(Client,
+ "SERVICE %s %d * +%s %d :%s", Client_Mask(User),
+ Client_MyToken(Client_Introducer(User)),
+ Client_Modes(User), Client_Hops(User) + 1,
+ Client_Info(User));
+ else
+ return IRC_WriteStrClient(Client,
+ "NICK %s %d %s %s %d +%s :%s",
Client_ID(User), Client_Hops(User) + 1,
Client_User(User), Client_Hostname(User),
Client_MyToken(Client_Introducer(User)),