diff options
author | Wilmer van der Gaast <wilmer@gaast.net> | 2006-01-19 18:52:19 +0100 |
---|---|---|
committer | Wilmer van der Gaast <wilmer@gaast.net> | 2006-01-19 18:52:19 +0100 |
commit | 5424c76c7813f82e2f98546f6a46b73d80181877 (patch) | |
tree | c7853e03c0202e8586103bb88e311f1183fe94d0 | |
parent | bd9b00f4fed3560eab98f15cf9923aed13467d5d (diff) |
Rehash command now also works in inetd mode. Other "IPC" commands only make
sense in daemon mode.
-rw-r--r-- | ipc.c | 2 | ||||
-rw-r--r-- | ipc.h | 6 | ||||
-rw-r--r-- | irc_commands.c | 7 |
3 files changed, 13 insertions, 2 deletions
@@ -58,7 +58,7 @@ static int ipc_master_cmd_die( irc_t *data, char **cmd ) return 1; } -static int ipc_master_cmd_rehash( irc_t *data, char **cmd ) +int ipc_master_cmd_rehash( irc_t *data, char **cmd ) { runmode_t oldmode; @@ -26,6 +26,7 @@ #define BITLBEE_CORE #include "bitlbee.h" + struct bitlbee_child { pid_t pid; @@ -37,6 +38,7 @@ struct bitlbee_child char *realname; }; + void ipc_master_read( gpointer data, gint source, GaimInputCondition cond ); void ipc_child_read( gpointer data, gint source, GaimInputCondition cond ); @@ -48,4 +50,8 @@ void ipc_to_master_str( char *format, ... ); void ipc_to_children( char **cmd ); void ipc_to_children_str( char *format, ... ); +/* We need this function in inetd mode, so let's just make it non-static. */ +int ipc_master_cmd_rehash( irc_t *data, char **cmd ); + + extern GSList *child_list; diff --git a/irc_commands.c b/irc_commands.c index 152df767..e31a92e8 100644 --- a/irc_commands.c +++ b/irc_commands.c @@ -579,7 +579,10 @@ static int irc_cmd_completions( irc_t *irc, char **cmd ) static int irc_cmd_rehash( irc_t *irc, char **cmd ) { - ipc_to_master( cmd ); + if( global.conf->runmode == RUNMODE_INETD ) + ipc_master_cmd_rehash( NULL, NULL ); + else + ipc_to_master( cmd ); irc_reply( irc, 382, "%s :Rehashing", CONF_FILE ); @@ -655,6 +658,8 @@ int irc_exec( irc_t *irc, char *cmd[] ) } if( irc_commands[i].flags & IRC_CMD_TO_MASTER ) + /* IPC doesn't make sense in inetd mode, + but the function will catch that. */ ipc_to_master( cmd ); else return irc_commands[i].execute( irc, cmd ); |