1
0
mirror of https://github.com/osmarks/ngircd.git synced 2025-10-29 04:57:38 +00:00

bind ListenAddress for outgoing connections

ngircd would always use INADDR_ANY for outgoing connections;
which might not be desirable. Added new [Server] option
"Bind" to set source ip.
This commit is contained in:
Florian Westphal
2007-11-23 16:26:03 +00:00
parent 024588dbe7
commit 82d32ffb28
7 changed files with 98 additions and 32 deletions

View File

@@ -14,7 +14,7 @@
#include "portab.h"
static char UNUSED id[] = "$Id: tool.c,v 1.6 2006/04/09 12:53:07 alex Exp $";
static char UNUSED id[] = "$Id: tool.c,v 1.7 2007/11/23 16:26:05 fw Exp $";
#include "imp.h"
#include <assert.h>
@@ -22,6 +22,11 @@ static char UNUSED id[] = "$Id: tool.c,v 1.6 2006/04/09 12:53:07 alex Exp $";
#include <stdio.h>
#include <string.h>
#include <netinet/in.h>
#ifdef HAVE_ARPA_INET_H
# include <arpa/inet.h>
#endif
#include "exp.h"
#include "tool.h"
@@ -105,4 +110,22 @@ ngt_TrimLastChr( char *String, const char Chr)
} /* ngt_TrimLastChr */
GLOBAL bool
ngt_IPStrToBin(const char *ip_str, struct in_addr *inaddr)
{
/* AF is always AF_INET for now */
#ifdef HAVE_INET_ATON
if (inet_aton(ip_str, inaddr) == 0)
return false;
#else
inaddr->s_addr = inet_addr(ip_str);
if (inaddr->s_addr == (unsigned)-1)
return false;
#endif
return true;
}
/* -eof- */

View File

@@ -8,7 +8,7 @@
* (at your option) any later version.
* Please read the file COPYING, README and AUTHORS for more information.
*
* $Id: tool.h,v 1.3 2005/03/19 18:43:53 fw Exp $
* $Id: tool.h,v 1.4 2007/11/23 16:26:05 fw Exp $
*
* Tool functions (Header)
*/
@@ -16,7 +16,7 @@
#ifndef __tool_h__
#define __tool_h__
#include "portab.h"
GLOBAL void ngt_TrimLastChr PARAMS((char *String, const char Chr ));
@@ -24,7 +24,7 @@ GLOBAL void ngt_TrimStr PARAMS((char *String ));
GLOBAL char *ngt_LowerStr PARAMS((char *String ));
GLOBAL bool ngt_IPStrToBin PARAMS((const char *ip_str, struct in_addr *inaddr));
#endif