Remove OIDENTD build options.
Instead support a runtime option. Note that existing oidentd users will have to add write_oidentd = true in their config to keep existing behavior.
This commit is contained in:
parent
40233ff938
commit
012b21a68b
@ -156,6 +156,10 @@ delay = reconn_timer * number of attempts
|
|||||||
Defines the file where BIP's pid will be stored. BIP checks if this file exists
|
Defines the file where BIP's pid will be stored. BIP checks if this file exists
|
||||||
and if the pid is still alive upon startup. If true, BIP refuses to start.
|
and if the pid is still alive upon startup. If true, BIP refuses to start.
|
||||||
|
|
||||||
|
.TP
|
||||||
|
\fBwrite_oidentd_file\fP (default: \fIfalse\fR)
|
||||||
|
Must be set to true to overwrite oidentd configs.
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
\fBoidentd_file\fP (default: \fI<bipdir>/.oidentd.conf\fR)
|
\fBoidentd_file\fP (default: \fI<bipdir>/.oidentd.conf\fR)
|
||||||
oidentd configuration file (if oidentd enabled).
|
oidentd configuration file (if oidentd enabled).
|
||||||
|
11
configure.ac
11
configure.ac
@ -15,16 +15,6 @@ AC_PROG_YACC
|
|||||||
m4_ifndef([PKG_PROG_PKG_CONFIG], [m4_fatal([Please install pkg-config.])])
|
m4_ifndef([PKG_PROG_PKG_CONFIG], [m4_fatal([Please install pkg-config.])])
|
||||||
PKG_PROG_PKG_CONFIG
|
PKG_PROG_PKG_CONFIG
|
||||||
|
|
||||||
AC_ARG_ENABLE([oidentd], AS_HELP_STRING([--enable-oidentd],
|
|
||||||
[Enable oidentd support (bip overwrites ~/.oidentd.conf with this on!)]))
|
|
||||||
|
|
||||||
AM_CONDITIONAL(OIDENTD, test x$enable_identd = xyes)
|
|
||||||
AS_IF([test "x$enable_oidentd" = "xyes"], [
|
|
||||||
AC_DEFINE([HAVE_OIDENTD], [], [Have bip edit ~/.oidentd.conf])
|
|
||||||
], [
|
|
||||||
enable_oidentd=no
|
|
||||||
])
|
|
||||||
|
|
||||||
PKG_CHECK_MODULES(OPENSSL, [libssl >= 0.9.8 libcrypto >= 0.9.8], [with_openssl=yes], [with_openssl=no])
|
PKG_CHECK_MODULES(OPENSSL, [libssl >= 0.9.8 libcrypto >= 0.9.8], [with_openssl=yes], [with_openssl=no])
|
||||||
|
|
||||||
AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
|
AC_CACHE_CHECK([whether $CC accepts PIE flags], [ap_cv_cc_pie], [
|
||||||
@ -62,6 +52,5 @@ AC_CONFIG_FILES([Makefile src/Makefile])
|
|||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
echo OPENSSL: $with_openssl
|
echo OPENSSL: $with_openssl
|
||||||
echo OIDENTD: $enable_oidentd
|
|
||||||
echo PIE: $enable_pie
|
echo PIE: $enable_pie
|
||||||
echo TESTS: $enable_tests
|
echo TESTS: $enable_tests
|
||||||
|
@ -43,6 +43,9 @@
|
|||||||
# Define where the pidfile should be stored. Defaults to <bipdir>/bip.pid.
|
# Define where the pidfile should be stored. Defaults to <bipdir>/bip.pid.
|
||||||
#pid_file="";
|
#pid_file="";
|
||||||
|
|
||||||
|
# Defaults to false, whether to write oidentd.conf files (see below).
|
||||||
|
#write_oidentd = true;
|
||||||
|
|
||||||
# Defaults to <bipdir>/.oidentd.conf
|
# Defaults to <bipdir>/.oidentd.conf
|
||||||
#oidentd_file="";
|
#oidentd_file="";
|
||||||
|
|
||||||
|
15
src/bip.c
15
src/bip.c
@ -69,10 +69,6 @@ void adm_list_connections(struct link_client *ic, struct bipuser *bu);
|
|||||||
void free_conf(list_t *l);
|
void free_conf(list_t *l);
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_OIDENTD
|
|
||||||
#define OIDENTD_FILENAME ".oidentd.conf"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static void hash_binary(char *hex, unsigned char **password, unsigned int *seed)
|
static void hash_binary(char *hex, unsigned char **password, unsigned int *seed)
|
||||||
{
|
{
|
||||||
unsigned char *md5;
|
unsigned char *md5;
|
||||||
@ -981,17 +977,12 @@ int fireup(bip_t *bip, FILE *conf)
|
|||||||
case LEX_PID_FILE:
|
case LEX_PID_FILE:
|
||||||
MOVE_STRING(conf_pid_file, t->pdata);
|
MOVE_STRING(conf_pid_file, t->pdata);
|
||||||
break;
|
break;
|
||||||
|
case LEX_WRITE_OIDENTD:
|
||||||
#ifdef HAVE_OIDENTD
|
bip->write_oidentd = t->ndata;
|
||||||
|
break;
|
||||||
case LEX_OIDENTD_FILE:
|
case LEX_OIDENTD_FILE:
|
||||||
MOVE_STRING(bip->oidentdpath, t->pdata);
|
MOVE_STRING(bip->oidentdpath, t->pdata);
|
||||||
break;
|
break;
|
||||||
#else
|
|
||||||
case LEX_OIDENTD_FILE:
|
|
||||||
mylog(LOG_WARN, "Found oidentd option whereas bip is "
|
|
||||||
"not built with oidentd support.");
|
|
||||||
break;
|
|
||||||
#endif
|
|
||||||
case LEX_ALWAYS_BACKLOG:
|
case LEX_ALWAYS_BACKLOG:
|
||||||
hds.always_backlog = t->ndata;
|
hds.always_backlog = t->ndata;
|
||||||
break;
|
break;
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
#include "defaults.h"
|
#include "defaults.h"
|
||||||
|
|
||||||
#define S_CONF "bip.conf"
|
#define S_CONF "bip.conf"
|
||||||
|
#define OIDENTD_FILENAME ".oidentd.conf"
|
||||||
|
|
||||||
extern int sighup;
|
extern int sighup;
|
||||||
extern char *conf_log_root;
|
extern char *conf_log_root;
|
||||||
@ -217,7 +218,6 @@ int main(int argc, char **argv)
|
|||||||
strcat(conf_biphome, "/.bip");
|
strcat(conf_biphome, "/.bip");
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef HAVE_OIDENTD
|
|
||||||
if (!bip.oidentdpath) {
|
if (!bip.oidentdpath) {
|
||||||
bip.oidentdpath = bip_malloc(strlen(conf_biphome) + 1 +
|
bip.oidentdpath = bip_malloc(strlen(conf_biphome) + 1 +
|
||||||
strlen(OIDENTD_FILENAME) + 1);
|
strlen(OIDENTD_FILENAME) + 1);
|
||||||
@ -225,7 +225,6 @@ int main(int argc, char **argv)
|
|||||||
strcat(bip.oidentdpath, "/");
|
strcat(bip.oidentdpath, "/");
|
||||||
strcat(bip.oidentdpath, OIDENTD_FILENAME);
|
strcat(bip.oidentdpath, OIDENTD_FILENAME);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
if (!confpath) {
|
if (!confpath) {
|
||||||
confpath = bip_malloc(strlen(conf_biphome) + 1 +
|
confpath = bip_malloc(strlen(conf_biphome) + 1 +
|
||||||
@ -236,7 +235,7 @@ int main(int argc, char **argv)
|
|||||||
}
|
}
|
||||||
conf = fopen(confpath, "r");
|
conf = fopen(confpath, "r");
|
||||||
if (!conf)
|
if (!conf)
|
||||||
fatal("config file not found");
|
fatal("config file not found (%s)", confpath);
|
||||||
|
|
||||||
r = fireup(&bip, conf);
|
r = fireup(&bip, conf);
|
||||||
fclose(conf);
|
fclose(conf);
|
||||||
|
@ -68,7 +68,7 @@ struct tuple *tuple_l_new(int type, void *p)
|
|||||||
|
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%token LEX_IP LEX_EQ LEX_PORT LEX_CSS LEX_SEMICOLON LEX_CONNECTION LEX_NETWORK LEX_LBRA LEX_RBRA LEX_USER LEX_NAME LEX_NICK LEX_SERVER LEX_PASSWORD LEX_SRCIP LEX_HOST LEX_VHOST LEX_SOURCE_PORT LEX_NONE LEX_COMMENT LEX_BUNCH LEX_REALNAME LEX_SSL LEX_SSL_CHECK_MODE LEX_SSL_CHECK_STORE LEX_SSL_CLIENT_CERTFILE LEX_CIPHERS LEX_CSS_CIPHERS LEX_DEFAULT_CIPHERS LEX_DH_PARAM LEX_CHANNEL LEX_KEY LEX_LOG_ROOT LEX_LOG_FORMAT LEX_LOG_LEVEL LEX_BACKLOG_LINES LEX_BACKLOG_NO_TIMESTAMP LEX_BACKLOG LEX_LOG LEX_LOG_SYSTEM LEX_LOG_SYNC_INTERVAL LEX_FOLLOW_NICK LEX_ON_CONNECT_SEND LEX_AWAY_NICK LEX_PID_FILE LEX_OIDENTD_FILE LEX_IGN_FIRST_NICK LEX_ALWAYS_BACKLOG LEX_BLRESET_ON_TALK LEX_BLRESET_CONNECTION LEX_DEFAULT_USER LEX_DEFAULT_NICK LEX_DEFAULT_REALNAME LEX_NO_CLIENT_AWAY_MSG LEX_BL_MSG_ONLY LEX_ADMIN LEX_BIP_USE_NOTICE LEX_CSS_PEM LEX_AUTOJOIN_ON_KICK LEX_IGNORE_CAPAB LEX_RECONN_TIMER
|
%token LEX_IP LEX_EQ LEX_PORT LEX_CSS LEX_SEMICOLON LEX_CONNECTION LEX_NETWORK LEX_LBRA LEX_RBRA LEX_USER LEX_NAME LEX_NICK LEX_SERVER LEX_PASSWORD LEX_SRCIP LEX_HOST LEX_VHOST LEX_SOURCE_PORT LEX_NONE LEX_COMMENT LEX_BUNCH LEX_REALNAME LEX_SSL LEX_SSL_CHECK_MODE LEX_SSL_CHECK_STORE LEX_SSL_CLIENT_CERTFILE LEX_CIPHERS LEX_CSS_CIPHERS LEX_DEFAULT_CIPHERS LEX_DH_PARAM LEX_CHANNEL LEX_KEY LEX_LOG_ROOT LEX_LOG_FORMAT LEX_LOG_LEVEL LEX_BACKLOG_LINES LEX_BACKLOG_NO_TIMESTAMP LEX_BACKLOG LEX_LOG LEX_LOG_SYSTEM LEX_LOG_SYNC_INTERVAL LEX_FOLLOW_NICK LEX_ON_CONNECT_SEND LEX_AWAY_NICK LEX_PID_FILE LEX_WRITE_OIDENTD LEX_OIDENTD_FILE LEX_IGN_FIRST_NICK LEX_ALWAYS_BACKLOG LEX_BLRESET_ON_TALK LEX_BLRESET_CONNECTION LEX_DEFAULT_USER LEX_DEFAULT_NICK LEX_DEFAULT_REALNAME LEX_NO_CLIENT_AWAY_MSG LEX_BL_MSG_ONLY LEX_ADMIN LEX_BIP_USE_NOTICE LEX_CSS_PEM LEX_AUTOJOIN_ON_KICK LEX_IGNORE_CAPAB LEX_RECONN_TIMER
|
||||||
|
|
||||||
%union {
|
%union {
|
||||||
int number;
|
int number;
|
||||||
@ -107,6 +107,7 @@ command:
|
|||||||
| LEX_LOG_SYNC_INTERVAL LEX_EQ LEX_INT { $$ = tuple_i_new(
|
| LEX_LOG_SYNC_INTERVAL LEX_EQ LEX_INT { $$ = tuple_i_new(
|
||||||
LEX_LOG_SYNC_INTERVAL, $3); }
|
LEX_LOG_SYNC_INTERVAL, $3); }
|
||||||
| LEX_PID_FILE LEX_EQ LEX_STRING { $$ = tuple_s_new(LEX_PID_FILE, $3); }
|
| LEX_PID_FILE LEX_EQ LEX_STRING { $$ = tuple_s_new(LEX_PID_FILE, $3); }
|
||||||
|
| LEX_WRITE_OIDENTD LEX_EQ LEX_BOOL { $$ = tuple_i_new(LEX_WRITE_OIDENTD, $3); }
|
||||||
| LEX_OIDENTD_FILE LEX_EQ LEX_STRING { $$ = tuple_s_new(LEX_OIDENTD_FILE, $3); }
|
| LEX_OIDENTD_FILE LEX_EQ LEX_STRING { $$ = tuple_s_new(LEX_OIDENTD_FILE, $3); }
|
||||||
/* deprecated */
|
/* deprecated */
|
||||||
| LEX_BACKLOG_LINES LEX_EQ LEX_INT {
|
| LEX_BACKLOG_LINES LEX_EQ LEX_INT {
|
||||||
|
15
src/irc.c
15
src/irc.c
@ -54,10 +54,7 @@ static void server_init_modes(struct link_server *s);
|
|||||||
static int bip_get_index(const char* str, char car);
|
static int bip_get_index(const char* str, char car);
|
||||||
static int bip_fls(int v);
|
static int bip_fls(int v);
|
||||||
|
|
||||||
#ifdef HAVE_OIDENTD
|
|
||||||
#define OIDENTD_FILENAME ".oidentd.conf"
|
|
||||||
void oidentd_dump(bip_t *bip);
|
void oidentd_dump(bip_t *bip);
|
||||||
#endif
|
|
||||||
|
|
||||||
void irc_client_free(struct link_client *cli);
|
void irc_client_free(struct link_client *cli);
|
||||||
extern int conf_log_sync_interval;
|
extern int conf_log_sync_interval;
|
||||||
@ -2194,9 +2191,7 @@ connection_t *irc_server_connect(struct link *link)
|
|||||||
conn->user_data = ls;
|
conn->user_data = ls;
|
||||||
|
|
||||||
list_add_last(&_bip->conn_list, conn);
|
list_add_last(&_bip->conn_list, conn);
|
||||||
#ifdef HAVE_OIDENTD
|
|
||||||
oidentd_dump(_bip);
|
oidentd_dump(_bip);
|
||||||
#endif
|
|
||||||
irc_server_startup(ls);
|
irc_server_startup(ls);
|
||||||
return conn;
|
return conn;
|
||||||
}
|
}
|
||||||
@ -2237,15 +2232,16 @@ void irc_server_shutdown(struct link_server *s)
|
|||||||
LINK(s)->prev_nick = bip_strdup(s->nick);
|
LINK(s)->prev_nick = bip_strdup(s->nick);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
#ifdef HAVE_OIDENTD
|
|
||||||
|
|
||||||
#define BIP_OIDENTD_START "## AUTOGENERATED BY BIP. DO NOT EDIT ##\n"
|
#define BIP_OIDENTD_START "## AUTOGENERATED BY BIP. DO NOT EDIT ##\n"
|
||||||
#define BIP_OIDENTD_END "## END OF AUTOGENERATED STUFF ##\n"
|
#define BIP_OIDENTD_END "## END OF AUTOGENERATED STUFF ##\n"
|
||||||
#define BIP_OIDENTD_END_LENGTH strlen(BIP_OIDENTD_END)
|
#define BIP_OIDENTD_END_LENGTH strlen(BIP_OIDENTD_END)
|
||||||
|
|
||||||
void oidentd_dump(bip_t *bip)
|
void oidentd_dump(bip_t *bip)
|
||||||
{
|
{
|
||||||
|
mylog(LOG_ERROR, "%d %s", bip->write_oidentd, bip->oidentdpath);
|
||||||
|
if (!bip->write_oidentd || bip->oidentdpath == NULL) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
list_iterator_t it;
|
list_iterator_t it;
|
||||||
FILE *f;
|
FILE *f;
|
||||||
char *bipstart = NULL, *bipend = NULL;
|
char *bipstart = NULL, *bipend = NULL;
|
||||||
@ -2352,7 +2348,6 @@ void oidentd_dump(bip_t *bip)
|
|||||||
clean_oidentd:
|
clean_oidentd:
|
||||||
fclose(f);
|
fclose(f);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
void timeout_clean_who_counts(list_t *conns)
|
void timeout_clean_who_counts(list_t *conns)
|
||||||
{
|
{
|
||||||
@ -2559,10 +2554,8 @@ void irc_main(bip_t *bip)
|
|||||||
int nc;
|
int nc;
|
||||||
/* Da main loop */
|
/* Da main loop */
|
||||||
list_t *ready = wait_event(&bip->conn_list, &timeleft, &nc);
|
list_t *ready = wait_event(&bip->conn_list, &timeleft, &nc);
|
||||||
#ifdef HAVE_OIDENTD
|
|
||||||
if (nc)
|
if (nc)
|
||||||
oidentd_dump(bip);
|
oidentd_dump(bip);
|
||||||
#endif
|
|
||||||
while ((conn = list_remove_first(ready)))
|
while ((conn = list_remove_first(ready)))
|
||||||
bip_on_event(bip, conn);
|
bip_on_event(bip, conn);
|
||||||
list_free(ready);
|
list_free(ready);
|
||||||
|
@ -250,10 +250,8 @@ typedef struct bip {
|
|||||||
hash_t users;
|
hash_t users;
|
||||||
list_t errors;
|
list_t errors;
|
||||||
struct link_client *reloading_client;
|
struct link_client *reloading_client;
|
||||||
|
|
||||||
#ifdef HAVE_OIDENTD
|
|
||||||
char *oidentdpath;
|
char *oidentdpath;
|
||||||
#endif
|
int write_oidentd;
|
||||||
} bip_t;
|
} bip_t;
|
||||||
|
|
||||||
void bip_init(bip_t *bip);
|
void bip_init(bip_t *bip);
|
||||||
|
@ -108,6 +108,7 @@ list_t *parse_conf(FILE *file, int *err)
|
|||||||
"on_connect_send" { return LEX_ON_CONNECT_SEND; }
|
"on_connect_send" { return LEX_ON_CONNECT_SEND; }
|
||||||
"no_client_away_msg" { return LEX_NO_CLIENT_AWAY_MSG; }
|
"no_client_away_msg" { return LEX_NO_CLIENT_AWAY_MSG; }
|
||||||
"pid_file" { return LEX_PID_FILE; }
|
"pid_file" { return LEX_PID_FILE; }
|
||||||
|
"write_oidentd" { return LEX_WRITE_OIDENTD; }
|
||||||
"oidentd_file" { return LEX_OIDENTD_FILE; }
|
"oidentd_file" { return LEX_OIDENTD_FILE; }
|
||||||
"bip_use_notice" { return LEX_BIP_USE_NOTICE; }
|
"bip_use_notice" { return LEX_BIP_USE_NOTICE; }
|
||||||
"client_side_ssl_pem" { return LEX_CSS_PEM; }
|
"client_side_ssl_pem" { return LEX_CSS_PEM; }
|
||||||
|
Loading…
x
Reference in New Issue
Block a user