Changes in / [9a1555d:5e713f6]


Ignore:
Files:
1 deleted
4 edited

Legend:

Unmodified
Added
Removed
  • bitlbee.c

    r9a1555d r5e713f6  
    118118        if( global.conf->runmode == RUNMODE_FORKDAEMON )
    119119                ipc_master_load_state();
    120 
    121         if( global.conf->runmode == RUNMODE_DAEMON ||
    122                 global.conf->runmode == RUNMODE_FORKDAEMON )
    123                 ipc_master_listen_socket();
    124120       
    125121        if( ( fp = fopen( global.conf->pidfile, "w" ) ) )
  • configure

    r9a1555d r5e713f6  
    1515config='/var/lib/bitlbee/'
    1616pidfile='/var/run/bitlbee.pid'
    17 ipcsocket='/var/run/bitlbee'
    1817plugindir='$prefix/lib/bitlbee'
    1918
     
    5049--pidfile=...                                           $pidfile
    5150--config=...                                            $config
    52 --ipcsocket=...                                         $ipcsocket
    5351
    5452--msn=0/1       Disable/enable MSN part                 $msn
     
    7876config=`eval echo "$config/" | sed 's/\/\{1,\}/\//g'`
    7977plugindir=`eval echo "$plugindir/" | sed 's/\/\{1,\}/\//g'`
    80 pidfile=`eval echo "$pidfile" | sed 's/\/\{1,\}/\//g'`
    81 ipcsocket=`eval echo "$ipcsocket" | sed 's/\/\{1,\}/\//g'`
     78pidfile=`eval echo "$pidfile/" | sed 's/\/\{1,\}/\//g'`
    8279
    8380cat<<EOF>Makefile.settings
     
    8986DATADIR=$datadir
    9087PLUGINDIR=$plugindir
     88PIDFILE=$pidfile
    9189CONFIG=$config
    92 IPCSOCKET=$ipcsocket
    9390
    9491ARCH=$arch
     
    112109#define PLUGINDIR "$plugindir"
    113110#define PIDFILE "$pidfile"
    114 #define IPCSOCKET "$ipcsocket"
    115111#define ARCH "$arch"
    116112#define CPU "$cpu"
  • ipc.c

    r9a1555d r5e713f6  
    2828#include "ipc.h"
    2929#include "commands.h"
    30 #ifndef _WIN32
    31 #include <sys/un.h>
    32 #endif
    3330
    3431GSList *child_list = NULL;
     
    464461}
    465462
    466 
    467 static gboolean new_ipc_client (GIOChannel *gio, GIOCondition cond, gpointer data)
    468 {
    469         struct bitlbee_child *child = g_new0( struct bitlbee_child, 1 );
    470         int serversock;
    471 
    472         serversock = g_io_channel_unix_get_fd(gio);
    473 
    474         child->ipc_fd = accept(serversock, NULL, 0);
    475 
    476         if (child->ipc_fd == -1) {
    477                 log_message( LOGLVL_WARNING, "Unable to accept connection on UNIX domain socket: %s", strerror(errno) );
    478                 return TRUE;
    479         }
    480                
    481         child->ipc_inpa = gaim_input_add( child->ipc_fd, GAIM_INPUT_READ, ipc_master_read, child );
    482                
    483         child_list = g_slist_append( child_list, child );
    484 
    485         return TRUE;
    486 }
    487 
    488 #ifndef _WIN32
    489 int ipc_master_listen_socket()
    490 {
    491         struct sockaddr_un un_addr;
    492         int serversock;
    493         GIOChannel *gio;
    494 
    495         /* Clean up old socket files that were hanging around.. */
    496         if (unlink(IPCSOCKET) == -1 && errno != ENOENT) {
    497                 log_message( LOGLVL_ERROR, "Could not remove old IPC socket at %s: %s", IPCSOCKET, strerror(errno) );
    498                 return 0;
    499         }
    500 
    501         un_addr.sun_family = AF_UNIX;
    502         strcpy(un_addr.sun_path, IPCSOCKET);
    503 
    504         serversock = socket(AF_UNIX, SOCK_STREAM, PF_UNIX);
    505 
    506         if (serversock == -1) {
    507                 log_message( LOGLVL_WARNING, "Unable to create UNIX socket: %s", strerror(errno) );
    508                 return 0;
    509         }
    510 
    511         if (bind(serversock, &un_addr, sizeof(un_addr)) == -1) {
    512                 log_message( LOGLVL_WARNING, "Unable to bind UNIX socket to %s: %s", IPCSOCKET, strerror(errno) );
    513                 return 0;
    514         }
    515 
    516         if (listen(serversock, 5) == -1) {
    517                 log_message( LOGLVL_WARNING, "Unable to listen on UNIX socket: %s", strerror(errno) );
    518                 return 0;
    519         }
    520        
    521         gio = g_io_channel_unix_new(serversock);
    522        
    523         if (gio == NULL) {
    524                 log_message( LOGLVL_WARNING, "Unable to create IO channel for unix socket" );
    525                 return 0;
    526         }
    527 
    528         g_io_add_watch(gio, G_IO_IN, new_ipc_client, NULL);
    529         return 1;
    530 }
    531 #else
    532         /* FIXME: Open named pipe \\.\BITLBEE */
    533 #endif
    534 
    535463int ipc_master_load_state()
    536464{
  • ipc.h

    r9a1555d r5e713f6  
    5757void ipc_master_set_statefile( char *fn );
    5858int ipc_master_load_state();
    59 int ipc_master_listen_socket();
     59
    6060
    6161extern GSList *child_list;
Note: See TracChangeset for help on using the changeset viewer.