• Skip to content
  • Skip to link menu
KDE 4.0 API Reference
  • KDE API Reference
  • kdelibs
  • 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 "proctitle.h"
#include <signal.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <locale.h>
#include <QtCore/QLibrary>
#include <QtCore/QString>
#include <QtCore/QFile>
#include <QtCore/QDate>
#include <QtCore/QFileInfo>
#include <QtCore/QTextStream>
#include <QtCore/QRegExp>
#include <QtGui/QFont>
#include <kcomponentdata.h>
#include <kstandarddirs.h>
#include <kglobal.h>
#include <kconfig.h>
#include <klibloader.h>
#include <kapplication.h>
#include <klocale.h>
#include <kdebug.h>
#include <kdeversion.h>
#include "klauncher_cmds.h"
#include <X11/Xlib.h>
#include <X11/Xatom.h>
#include <fixx11h.h>
#include <kstartupinfo.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 MAX_SOCK_FILE   255
#define DISPLAY   "DISPLAY"

Functions

int kdeinit_xio_errhandler (Display *)
int kdeinit_x_errhandler (Display *, XErrorEvent *err)
KParts::Plugin * _kinit_init_kparts ()
KIO::AuthInfo * _kioslave_init_kio ()
static void close_fds ()
static void exitWithErrorMsg (const QString &errorMsg)
static void setup_tty (const char *tty)
static int get_current_desktop (Display *disp)
const char * get_env_var (const char *var, int envc, const char *envs)
static void init_startup_info (KStartupInfoId &id, const char *bin, int envc, const char *envs)
static void complete_startup_info (KStartupInfoId &id, pid_t pid)
QByteArray execpath_avoid_loops (const QByteArray &exec, int envc, const char *envs, bool avoid_loops)
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 sig_child_handler (int)
static void init_signals ()
static void init_kdeinit_socket ()
static int read_socket (int sock, char *buffer, int len)
static void launcher_died ()
static void handle_launcher_request (int sock=-1)
static void handle_requests (pid_t waitForPid)
static void kdeinit_library_path ()
static void setupX ()
static int initXconnection ()
static void secondary_child_handler (int)
int main (int argc, char **argv, char **envp)

Variables

char ** environ
static int X11fd = -1
static Display * X11display = 0
static int X11_startup_notify_fd = -1
static Display * X11_startup_notify_display = 0
static KComponentData * s_instance = 0
static char sock_file [MAX_SOCK_FILE]
struct {
   int   maxname
   int   fd [2]
   int   launcher [2]
   int   deadpipe [2]
   int   initpipe [2]
   int   wrapper
   int   wrapper_old
   char   result
   int   exit_status
   pid_t   fork
   pid_t   launcher_pid
   pid_t   kded_pid
   pid_t   my_pid
   int   n
   char **   argv
   int(*   func )(int, char *[])
   int(*   launcher_func )(int)
   bool   debug_wait
   QByteArray   errorMsg
   bool   launcher_ok
   bool   suicide
} d

Define Documentation

#define DISPLAY   "DISPLAY"

Definition at line 99 of file kinit.cpp.

#define MAX_SOCK_FILE   255

Definition at line 94 of file kinit.cpp.


Function Documentation

KParts::Plugin* _kinit_init_kparts (  ) 

Definition at line 141 of file kinit.cpp.

KIO::AuthInfo* _kioslave_init_kio (  ) 

Definition at line 144 of file kinit.cpp.

static void close_fds (  )  [static]

Definition at line 150 of file kinit.cpp.

static void complete_startup_info ( KStartupInfoId &  id,
pid_t  pid 
) [static]

Definition at line 306 of file kinit.cpp.

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

Definition at line 325 of file kinit.cpp.

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

Definition at line 208 of file kinit.cpp.

static int get_current_desktop ( Display *  disp  )  [static]

Definition at line 247 of file kinit.cpp.

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

Definition at line 270 of file kinit.cpp.

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

Definition at line 1033 of file kinit.cpp.

static void handle_requests ( pid_t  waitForPid  )  [static]

Definition at line 1256 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

Definition at line 765 of file kinit.cpp.

static void init_signals (  )  [static]

Definition at line 714 of file kinit.cpp.

static void init_startup_info ( KStartupInfoId &  id,
const char *  bin,
int  envc,
const char *  envs 
) [static]

Definition at line 288 of file kinit.cpp.

static int initXconnection (  )  [static]

Definition at line 1555 of file kinit.cpp.

static void kdeinit_library_path (  )  [static]

Definition at line 1387 of file kinit.cpp.

int kdeinit_x_errhandler ( Display *  dpy,
XErrorEvent *  err 
)

Definition at line 1527 of file kinit.cpp.

int kdeinit_xio_errhandler ( Display *  disp  ) 

Delete any stale socket file

Definition at line 1473 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 356 of file kinit.cpp.

static void launcher_died (  )  [static]

Definition at line 1001 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 1613 of file kinit.cpp.

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

Definition at line 981 of file kinit.cpp.

static void secondary_child_handler ( int   )  [static]

Definition at line 1608 of file kinit.cpp.

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

Definition at line 221 of file kinit.cpp.

static void setupX (  )  [static]

Definition at line 1548 of file kinit.cpp.

static void sig_child_handler ( int   )  [static]

Definition at line 700 of file kinit.cpp.


Variable Documentation

char** argv

Definition at line 123 of file kinit.cpp.

struct { ... } d [static]

int deadpipe[2]

Definition at line 112 of file kinit.cpp.

bool debug_wait

Definition at line 126 of file kinit.cpp.

char** environ

QByteArray errorMsg

Definition at line 127 of file kinit.cpp.

int exit_status

Definition at line 117 of file kinit.cpp.

int fd[2]

Definition at line 110 of file kinit.cpp.

pid_t fork

Definition at line 118 of file kinit.cpp.

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

int initpipe[2]

Definition at line 113 of file kinit.cpp.

pid_t kded_pid

Definition at line 120 of file kinit.cpp.

int launcher[2]

Definition at line 111 of file kinit.cpp.

int(* launcher_func)(int)

bool launcher_ok

Definition at line 128 of file kinit.cpp.

pid_t launcher_pid

Definition at line 119 of file kinit.cpp.

int maxname

Definition at line 109 of file kinit.cpp.

pid_t my_pid

Definition at line 121 of file kinit.cpp.

int n

Definition at line 122 of file kinit.cpp.

char result

Definition at line 116 of file kinit.cpp.

KComponentData* s_instance = 0 [static]

Definition at line 93 of file kinit.cpp.

char sock_file[MAX_SOCK_FILE] [static]

Definition at line 95 of file kinit.cpp.

bool suicide

Definition at line 129 of file kinit.cpp.

int wrapper

Definition at line 114 of file kinit.cpp.

int wrapper_old

Definition at line 115 of file kinit.cpp.

Display* X11_startup_notify_display = 0 [static]

Definition at line 91 of file kinit.cpp.

int X11_startup_notify_fd = -1 [static]

Definition at line 90 of file kinit.cpp.

Display* X11display = 0 [static]

Definition at line 89 of file kinit.cpp.

int X11fd = -1 [static]

Definition at line 88 of file kinit.cpp.

KInit

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

kdelibs

Skip menu "kdelibs"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • Kate
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • KIO
  • KIOSlave
  • KJS
  •   WTF
  • KJSEmbed
  • KNewStuff
  • KParts
  • Kross
  • KUtils
  • Nepomuk
  •   core
  • Phonon
  •   Backend
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.5.4
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