• Skip to content
  • Skip to link menu
KDE 3.5 API Reference
  • KDE API Reference
  • API Reference
  • Sitemap
  • Contact Us
 

KInit

kinit.cpp File Reference

#include "config.h"
#include <sys/types.h>
#include <sys/time.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <sys/un.h>
#include <sys/wait.h>
#include <errno.h>
#include <fcntl.h>
#include <setproctitle.h>
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>
#include <locale.h>
#include <qstring.h>
#include <qfile.h>
#include <qdatetime.h>
#include <qfileinfo.h>
#include <qtextstream.h>
#include <qregexp.h>
#include <qfont.h>
#include <kinstance.h>
#include <kstandarddirs.h>
#include <kglobal.h>
#include <kconfig.h>
#include <klibloader.h>
#include <kapplication.h>
#include <klocale.h>
#include <kdeversion.h>
#include "ltdl.h"
#include "klauncher_cmds.h"
#include <kparts/plugin.h>
#include <kio/authinfo.h>

Include dependency graph for kinit.cpp:

Go to the source code of this file.


Defines

#define LTDL_GLOBAL   0
#define MAX_SOCK_FILE   255

Functions

KParts::Plugin * _kinit_init_kparts ()
KIO::AuthInfo * _kioslave_init_kio ()
static void close_fds ()
QCString execpath_avoid_loops (const QCString &exec, int envc, const char *envs, bool avoid_loops)
static void exitWithErrorMsg (const QString &errorMsg)
static int get_current_desktop (Display *disp)
const char * get_env_var (const char *var, int envc, const char *envs)
static void handle_launcher_request (int sock=-1)
static void handle_requests (pid_t waitForPid)
static void init_kdeinit_socket ()
static void init_signals ()
static void kdeinit_library_path ()
int kdeinit_xio_errhandler (Display *disp)
static pid_t launch (int argc, const char *_name, const char *args, const char *cwd=0, int envc=0, const char *envs=0, bool reset_env=false, const char *tty=0, bool avoid_loops=false, const char *startup_id_str="0")
static void launcher_died ()
int main (int argc, char **argv, char **envp)
static int read_socket (int sock, char *buffer, int len)
static void reset_oom_protect ()
static void secondary_child_handler (int)
static void setup_tty (const char *tty)
static void sig_child_handler (int)
static void WaitPid (pid_t waitForPid)

Variables

struct {
   char **   argv
   int   deadpipe [2]
   bool   debug_wait
   QCString   errorMsg
   int   exit_status
   int   fd [2]
   pid_t   fork
   int(*   func )(int, char *[])
   lt_dlhandle   handle
   int   initpipe [2]
   int   launcher [2]
   int(*   launcher_func )(int)
   bool   launcher_ok
   pid_t   launcher_pid
   int   lt_dlopen_flag
   int   maxname
   pid_t   my_pid
   int   n
   char   result
   bool   suicide
   lt_ptr   sym
   int   wrapper
   int   wrapper_old
} d
char ** environ
int lt_dlopen_flag
static const KInstance * s_instance = 0
static char sock_file [MAX_SOCK_FILE]
static char sock_file_old [MAX_SOCK_FILE]

Define Documentation

#define LTDL_GLOBAL   0

Definition at line 96 of file kinit.cpp.

#define MAX_SOCK_FILE   255

Definition at line 117 of file kinit.cpp.


Function Documentation

KParts::Plugin* _kinit_init_kparts (  ) 

Definition at line 171 of file kinit.cpp.

KIO::AuthInfo* _kioslave_init_kio (  ) 

Definition at line 174 of file kinit.cpp.

static void close_fds (  )  [static]

Definition at line 180 of file kinit.cpp.

QCString execpath_avoid_loops ( const QCString &  exec,
int  envc,
const char *  envs,
bool  avoid_loops 
)

Definition at line 358 of file kinit.cpp.

static void exitWithErrorMsg ( const QString &  errorMsg  )  [static]

Definition at line 239 of file kinit.cpp.

static int get_current_desktop ( Display *  disp  )  [static]

Definition at line 278 of file kinit.cpp.

const char* get_env_var ( const char *  var,
int  envc,
const char *  envs 
)

Definition at line 302 of file kinit.cpp.

static void handle_launcher_request ( int  sock = -1  )  [static]

Definition at line 1099 of file kinit.cpp.

static void handle_requests ( pid_t  waitForPid  )  [static]

Definition at line 1322 of file kinit.cpp.

static void init_kdeinit_socket (  )  [static]

Test if socket file is already present note that access() resolves symlinks, and so we check the actual socket file if it exists

Delete any stale socket file (and symlink)

create socket

bind it

set permissions

create compatibility socket

bind it

set permissions

Definition at line 824 of file kinit.cpp.

static void init_signals (  )  [static]

Definition at line 773 of file kinit.cpp.

static void kdeinit_library_path (  )  [static]

Definition at line 1466 of file kinit.cpp.

int kdeinit_xio_errhandler ( Display *  disp  ) 

Delete any stale socket file

Delete any stale socket file

Definition at line 1543 of file kinit.cpp.

static pid_t launch ( int  argc,
const char *  _name,
const char *  args,
const char *  cwd = 0,
int  envc = 0,
const char *  envs = 0,
bool  reset_env = false,
const char *  tty = 0,
bool  avoid_loops = false,
const char *  startup_id_str = "0" 
) [static]

Child

Give the process a new name

Parent

Definition at line 421 of file kinit.cpp.

static void launcher_died (  )  [static]

Definition at line 1067 of file kinit.cpp.

int main ( int  argc,
char **  argv,
char **  envp 
)

Save arguments first...

Make process group leader (for shutting down children later)

Create our instance

Prepare to change process name

Free arguments

Definition at line 1683 of file kinit.cpp.

static int read_socket ( int  sock,
char *  buffer,
int  len 
) [static]

Definition at line 1036 of file kinit.cpp.

static void reset_oom_protect (  )  [static]

Definition at line 417 of file kinit.cpp.

static void secondary_child_handler ( int   )  [static]

Definition at line 1678 of file kinit.cpp.

static void setup_tty ( const char *  tty  )  [static]

Definition at line 252 of file kinit.cpp.

static void sig_child_handler ( int   )  [static]

Definition at line 759 of file kinit.cpp.

static void WaitPid ( pid_t  waitForPid  )  [static]

Definition at line 1056 of file kinit.cpp.


Variable Documentation

char** argv

Definition at line 151 of file kinit.cpp.

struct { ... } d [static]

int deadpipe[2]

Definition at line 139 of file kinit.cpp.

bool debug_wait

Definition at line 154 of file kinit.cpp.

char** environ

QCString errorMsg

Definition at line 156 of file kinit.cpp.

int exit_status

Definition at line 144 of file kinit.cpp.

int fd[2]

Definition at line 137 of file kinit.cpp.

pid_t fork

Definition at line 145 of file kinit.cpp.

int(* func)(int, char *[])

lt_dlhandle handle

Definition at line 149 of file kinit.cpp.

int initpipe[2]

Definition at line 140 of file kinit.cpp.

int launcher[2]

Definition at line 138 of file kinit.cpp.

int(* launcher_func)(int)

bool launcher_ok

Definition at line 157 of file kinit.cpp.

pid_t launcher_pid

Definition at line 146 of file kinit.cpp.

int lt_dlopen_flag

Definition at line 155 of file kinit.cpp.

int maxname

Definition at line 136 of file kinit.cpp.

pid_t my_pid

Definition at line 147 of file kinit.cpp.

int n

Definition at line 148 of file kinit.cpp.

char result

Definition at line 143 of file kinit.cpp.

const KInstance* s_instance = 0 [static]

Definition at line 116 of file kinit.cpp.

char sock_file[MAX_SOCK_FILE] [static]

Definition at line 118 of file kinit.cpp.

char sock_file_old[MAX_SOCK_FILE] [static]

Definition at line 119 of file kinit.cpp.

bool suicide

Definition at line 158 of file kinit.cpp.

lt_ptr sym

Definition at line 150 of file kinit.cpp.

int wrapper

Definition at line 141 of file kinit.cpp.

int wrapper_old

Definition at line 142 of file kinit.cpp.

KInit

Skip menu "KInit"
  • Main Page
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Class Members
  • Related Pages

API Reference

Skip menu "API Reference"
  • dcop
  • DNSSD
  • interfaces
  • Kate
  • kconf_update
  • KDECore
  • KDED
  • kdefx
  • KDEsu
  • kdeui
  • KDocTools
  • KHTML
  • KImgIO
  • KInit
  • kio
  • kioslave
  • KJS
  • KNewStuff
  • KParts
  • KUtils
Generated for API Reference by doxygen 1.5.9
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal