[svn] Merge old trunk r2077,r2079:

- Move closing of servlink control fd to close_connection()
  instead of doing it in exit_local_server(), and make sure
  we first close the data fd and then the control fd.
- Have servlink process ready fds in order net, data, ctrl
  instead of ctrl, data, net.  This seems to fix the problem
  that squit reasons do not show up on the other side of a
  ziplink (by making it send any final SQUIT and/or ERROR
  before noticing the closed control fd).
This commit is contained in:
jilles 2007-03-29 13:03:06 -07:00
parent 0bba178826
commit 64f2a7eb2c
4 changed files with 18 additions and 16 deletions

View file

@ -1,3 +1,14 @@
jilles 2007/03/28 23:17:06 UTC (20070328-3317)
Log:
Don't show the UID if a TS6 server sends a kick with
an empty or no comment. Note that charybdis never sends
such kicks.
Changes: Modified:
+4 -4 trunk/modules/core/m_kick.c (File Modified)
jilles 2007/03/28 15:40:24 UTC (20070328-3307)
Log:
Merge old trunk r2081:

View file

@ -1 +1 @@
#define SERNO "20070328-3307"
#define SERNO "20070328-3317"

View file

@ -15,7 +15,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
* $Id: io.c 1285 2006-05-05 15:03:53Z nenolod $
* $Id: io.c 3319 2007-03-29 20:03:06Z jilles $
*/
#include "setup.h"
@ -95,7 +95,7 @@ io_loop(int nfds)
else if(ret > 0)
{
/* call any callbacks */
for (i = 0; i < 3; i++)
for (i = 2; i >= 0; i--)
{
if(FD_ISSET(fds[i].fd, &rfds) && fds[i].read_cb)
(*fds[i].read_cb) ();

View file

@ -21,7 +21,7 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
* USA
*
* $Id: client.c 3167 2007-01-26 18:52:11Z jilles $
* $Id: client.c 3319 2007-03-29 20:03:06Z jilles $
*/
#include "stdinc.h"
#include "config.h"
@ -1554,12 +1554,6 @@ exit_local_server(struct Client *client_p, struct Client *source_p, struct Clien
source_p->name, comment);
}
if(source_p->localClient->ctrlfd >= 0)
{
comm_close(source_p->localClient->ctrlfd);
source_p->localClient->ctrlfd = -1;
}
if(source_p->servptr && source_p->servptr->serv)
dlinkDelete(&source_p->lnode, &source_p->servptr->serv->servers);
else
@ -2105,13 +2099,10 @@ close_connection(struct Client *client_p)
client_p->localClient->fd = -1;
}
if(HasServlink(client_p))
if(-1 < client_p->localClient->ctrlfd)
{
if(client_p->localClient->fd > -1)
{
comm_close(client_p->localClient->ctrlfd);
client_p->localClient->ctrlfd = -1;
}
comm_close(client_p->localClient->ctrlfd);
client_p->localClient->ctrlfd = -1;
}
linebuf_donebuf(&client_p->localClient->buf_sendq);