to->localClient->sendM += 1;
me.localClient->sendM += 1;
if(linebuf_len(&to->localClient->buf_sendq) > 0)
- send_queued_write(to->localClient->fd, to);
+ send_queued_write(to->localClient->F->fd, to);
return 0;
}
if(to->from)
to = to->from;
- /* test for fake direction */
- if(!MyClient(from) && IsPerson(to) && (to == from->from))
- {
- if(IsServer(from))
- {
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "Send message to %s[%s] dropped from %s(Fake Dir)",
- to->name, to->from->name, from->name);
- return;
- }
-
- sendto_realops_snomask(SNO_GENERAL, L_ALL,
- "Ghosted: %s[%s@%s] from %s[%s@%s] (%s)",
- to->name, to->username, to->host,
- from->name, from->username, from->host, to->from->name);
- kill_client_serv_butone(NULL, to, "%s (%s[%s@%s] Ghosted %s)",
- me.name, to->name, to->username,
- to->host, to->from->name);
-
- to->flags |= FLAGS_KILLED;
-
- exit_client(NULL, to, &me, "Ghosted client");
- return;
- }
+ /* we assume the caller has already tested for fake direction */
_send_linebuf(to, linebuf);
return;
#ifdef USE_IODEBUG_HOOKS
hook_data_int hd;
#endif
+ fde_t *F = comm_locate_fd(to->localClient->F->fd);
+ if (!F)
+ return;
+
/* cant write anything to a dead socket. */
if(IsIOError(to))
return;
if(linebuf_len(&to->localClient->buf_sendq))
{
while ((retlen =
- linebuf_flush(to->localClient->fd, &to->localClient->buf_sendq)) > 0)
+ linebuf_flush(F, &to->localClient->buf_sendq)) > 0)
{
/* We have some data written .. update counters */
#ifdef USE_IODEBUG_HOOKS