- Log(LOG_NOTICE | LOG_snotice,
- "Got CONNECT command from \"%s\" for \"%s\".", Client_Mask(Client),
- Req->argv[0]);
+ if (target != Client_ThisServer()) {
+ /* Forward CONNECT command ... */
+ if (Req->argc == 3)
+ IRC_WriteStrClientPrefix(target, from,
+ "CONNECT %s %s :%s", Req->argv[0],
+ Req->argv[1], Req->argv[2]);
+ else
+ IRC_WriteStrClientPrefix(target, from,
+ "CONNECT %s %s %s %s %s :%s", Req->argv[0],
+ Req->argv[1], Req->argv[2], Req->argv[3],
+ Req->argv[4], Req->argv[5]);
+ return CONNECTED;
+ }
+
+ if (!Op_Check(from, Req))
+ return Op_NoPrivileges(Client, Req);