| 202 |
|
send_queued_write(struct Client *to) |
| 203 |
|
{ |
| 204 |
|
int retlen = 0; |
| 205 |
– |
struct dbuf_queue *sendq = &to->localClient->buf_sendq; |
| 205 |
|
|
| 206 |
|
/* |
| 207 |
|
** Once socket is marked dead, we cannot start writing to it, |
| 211 |
|
return; /* no use calling send() now */ |
| 212 |
|
|
| 213 |
|
/* Next, lets try to write some data */ |
| 214 |
< |
if (dbuf_length(sendq)) |
| 214 |
> |
if (dbuf_length(&to->localClient->buf_sendq)) |
| 215 |
|
{ |
| 216 |
|
do |
| 217 |
|
{ |
| 218 |
< |
struct dbuf_block *first = sendq->blocks.head->data; |
| 218 |
> |
struct dbuf_block *first = to->localClient->buf_sendq.blocks.head->data; |
| 219 |
|
|
| 220 |
|
#ifdef HAVE_LIBCRYPTO |
| 221 |
|
if (to->localClient->fd.ssl) |
| 222 |
|
{ |
| 223 |
< |
retlen = SSL_write(to->localClient->fd.ssl, first->data + sendq->pos, first->size - sendq->pos); |
| 223 |
> |
retlen = SSL_write(to->localClient->fd.ssl, first->data + to->localClient->buf_sendq.pos, first->size - to->localClient->buf_sendq.pos); |
| 224 |
|
|
| 225 |
|
/* translate openssl error codes, sigh */ |
| 226 |
|
if (retlen < 0) |
| 243 |
|
} |
| 244 |
|
else |
| 245 |
|
#endif |
| 246 |
< |
retlen = send(to->localClient->fd.fd, first->data + sendq->pos, first->size - sendq->pos, 0); |
| 246 |
> |
retlen = send(to->localClient->fd.fd, first->data + to->localClient->buf_sendq.pos, first->size - to->localClient->buf_sendq.pos, 0); |
| 247 |
|
|
| 248 |
|
if (retlen <= 0) |
| 249 |
|
break; |
| 258 |
|
if ((retlen < 0) && (ignoreErrno(errno))) |
| 259 |
|
{ |
| 260 |
|
/* we have a non-fatal error, reschedule a write */ |
| 261 |
< |
comm_setselect(&to->localClient->fd, COMM_SELECT_WRITE, (PF *)sendq_unblocked, to, 0); |
| 261 |
> |
comm_setselect(&to->localClient->fd, COMM_SELECT_WRITE, |
| 262 |
> |
(PF *)sendq_unblocked, to, 0); |
| 263 |
|
} |
| 264 |
|
else if (retlen <= 0) |
| 265 |
|
{ |
| 347 |
|
|
| 348 |
|
buffer = dbuf_alloc(); |
| 349 |
|
|
| 350 |
< |
dbuf_put(buffer, ":%s %03d %s ", ID_or_name(from, to), numeric, dest); |
| 350 |
> |
dbuf_put_fmt(buffer, ":%s %03d %s ", ID_or_name(from, to), numeric, dest); |
| 351 |
|
|
| 352 |
|
va_start(args, numeric); |
| 353 |
|
send_format(buffer, numeric_form(numeric), args); |
| 376 |
|
|
| 377 |
|
buffer = dbuf_alloc(); |
| 378 |
|
|
| 379 |
< |
dbuf_put(buffer, ":%s NOTICE %s ", ID_or_name(from, to), dest); |
| 379 |
> |
dbuf_put_fmt(buffer, ":%s NOTICE %s ", ID_or_name(from, to), dest); |
| 380 |
|
|
| 381 |
|
va_start(args, pattern); |
| 382 |
|
send_format(buffer, pattern, args); |
| 410 |
|
local_buf = dbuf_alloc(), remote_buf = dbuf_alloc(), uid_buf = dbuf_alloc(); |
| 411 |
|
|
| 412 |
|
if (IsServer(from)) |
| 413 |
< |
dbuf_put(local_buf, ":%s ", from->name); |
| 413 |
> |
dbuf_put_fmt(local_buf, ":%s ", from->name); |
| 414 |
|
else |
| 415 |
< |
dbuf_put(local_buf, ":%s!%s@%s ", from->name, from->username, from->host); |
| 415 |
> |
dbuf_put_fmt(local_buf, ":%s!%s@%s ", from->name, from->username, from->host); |
| 416 |
|
|
| 417 |
< |
dbuf_put(remote_buf, ":%s ", from->name); |
| 418 |
< |
dbuf_put(uid_buf, ":%s ", ID(from)); |
| 417 |
> |
dbuf_put_fmt(remote_buf, ":%s ", from->name); |
| 418 |
> |
dbuf_put_fmt(uid_buf, ":%s ", ID(from)); |
| 419 |
|
|
| 420 |
|
va_start(alocal, pattern); |
| 421 |
|
va_start(aremote, pattern); |
| 703 |
|
|
| 704 |
|
local_buf = dbuf_alloc(), remote_buf = dbuf_alloc(); |
| 705 |
|
|
| 706 |
< |
dbuf_put(local_buf, ":%s!%s@%s ", from->name, from->username, from->host); |
| 707 |
< |
dbuf_put(remote_buf, ":%s ", from->name); |
| 706 |
> |
dbuf_put_fmt(local_buf, ":%s!%s@%s ", from->name, from->username, from->host); |
| 707 |
> |
dbuf_put_fmt(remote_buf, ":%s ", from->name); |
| 708 |
|
|
| 709 |
|
va_start(alocal, pattern); |
| 710 |
|
va_start(aremote, pattern); |
| 780 |
|
buff_suid = dbuf_alloc(), buff_name = dbuf_alloc(); |
| 781 |
|
|
| 782 |
|
va_start(args, pattern); |
| 783 |
< |
dbuf_put(buff_suid, ":%s ", ID(source_p)); |
| 783 |
> |
dbuf_put_fmt(buff_suid, ":%s ", ID(source_p)); |
| 784 |
|
dbuf_put_args(buff_suid, pattern, args); |
| 785 |
|
va_end(args); |
| 786 |
|
|
| 787 |
|
va_start(args, pattern); |
| 788 |
< |
dbuf_put(buff_name, ":%s ", source_p->name); |
| 788 |
> |
dbuf_put_fmt(buff_name, ":%s ", source_p->name); |
| 789 |
|
dbuf_put_args(buff_name, pattern, args); |
| 790 |
|
va_end(args); |
| 791 |
|
|
| 849 |
|
if (MyClient(to)) |
| 850 |
|
{ |
| 851 |
|
if (IsServer(from)) |
| 852 |
< |
dbuf_put(buffer, ":%s %s %s ", from->name, command, to->name); |
| 852 |
> |
dbuf_put_fmt(buffer, ":%s %s %s ", from->name, command, to->name); |
| 853 |
|
else |
| 854 |
< |
dbuf_put(buffer, ":%s!%s@%s %s %s ", from->name, from->username, from->host, command, to->name); |
| 854 |
> |
dbuf_put_fmt(buffer, ":%s!%s@%s %s %s ", from->name, from->username, from->host, command, to->name); |
| 855 |
|
} |
| 856 |
|
else |
| 857 |
< |
dbuf_put(buffer, ":%s %s %s ", ID_or_name(from, to), command, ID_or_name(to, to)); |
| 857 |
> |
dbuf_put_fmt(buffer, ":%s %s %s ", ID_or_name(from, to), command, ID_or_name(to, to)); |
| 858 |
|
|
| 859 |
|
va_start(args, pattern); |
| 860 |
|
send_format(buffer, pattern, args); |
| 941 |
|
buffer = dbuf_alloc(); |
| 942 |
|
|
| 943 |
|
if (IsClient(source_p)) |
| 944 |
< |
dbuf_put(buffer, ":%s!%s@%s WALLOPS :", source_p->name, source_p->username, source_p->host); |
| 944 |
> |
dbuf_put_fmt(buffer, ":%s!%s@%s WALLOPS :", source_p->name, source_p->username, source_p->host); |
| 945 |
|
else |
| 946 |
< |
dbuf_put(buffer, ":%s WALLOPS :", source_p->name); |
| 946 |
> |
dbuf_put_fmt(buffer, ":%s WALLOPS :", source_p->name); |
| 947 |
|
|
| 948 |
|
va_start(args, pattern); |
| 949 |
|
send_format(buffer, pattern, args); |
| 1024 |
|
|
| 1025 |
|
buffer = dbuf_alloc(); |
| 1026 |
|
|
| 1027 |
< |
dbuf_put(buffer, ":%s KILL %s :", |
| 1028 |
< |
ID_or_name(&me, client_p), |
| 1029 |
< |
ID_or_name(diedie, client_p)); |
| 1027 |
> |
dbuf_put_fmt(buffer, ":%s KILL %s :", |
| 1028 |
> |
ID_or_name(&me, client_p), |
| 1029 |
> |
ID_or_name(diedie, client_p)); |
| 1030 |
|
|
| 1031 |
|
va_start(args, pattern); |
| 1032 |
|
send_format(buffer, pattern, args); |
| 1062 |
|
{ |
| 1063 |
|
have_uid = 1; |
| 1064 |
|
va_start(args, pattern); |
| 1065 |
< |
dbuf_put(uid_buffer, ":%s KILL %s :", me.id, ID(source_p)); |
| 1065 |
> |
dbuf_put_fmt(uid_buffer, ":%s KILL %s :", me.id, ID(source_p)); |
| 1066 |
|
send_format(uid_buffer, pattern, args); |
| 1067 |
|
va_end(args); |
| 1068 |
|
} |
| 1069 |
|
|
| 1070 |
|
va_start(args, pattern); |
| 1071 |
< |
dbuf_put(nick_buffer, ":%s KILL %s :", me.name, source_p->name); |
| 1071 |
> |
dbuf_put_fmt(nick_buffer, ":%s KILL %s :", me.name, source_p->name); |
| 1072 |
|
send_format(nick_buffer, pattern, args); |
| 1073 |
|
va_end(args); |
| 1074 |
|
|