diff options
| -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 ); | 
