• Skip to content
  • Skip to link menu
KDE 4.3 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/resource.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/QRegExp>
#include <QtGui/QFont>
#include <kcomponentdata.h>
#include <kdemacros.h>
#include <kstandarddirs.h>
#include <kglobalsettings.h>
#include <kglobal.h>
#include <kconfig.h>
#include <klibloader.h>
#include <kapplication.h>
#include <klocale.h>
#include <kdebug.h>
#include <kde_file.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>

Go to the source code of this file.

Defines

#define DISPLAY   "DISPLAY"
#define MAX_SOCK_FILE   255
#define QT_NO_CAST_FROM_ASCII

Functions

KParts::Plugin * _kinit_init_kparts ()
KIO::AuthInfo * _kioslave_init_kio ()
static void child_died (pid_t exit_pid, int exit_status)
static void cleanup_fds ()
static void close_fds ()
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 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 bool handle_launcher_request (int sock, const char *who)
static void handle_requests (pid_t waitForPid)
static void init_kdeinit_socket ()
static void init_signals ()
static void init_startup_info (KStartupInfoId &id, const char *bin, int envc, const char *envs)
static int initXconnection ()
static void kdeinit_library_path ()
int kdeinit_x_errhandler (Display *, XErrorEvent *err)
int kdeinit_xio_errhandler (Display *)
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 secondary_child_handler (int)
static void setup_tty (const char *tty)
static void setupX ()
static void sig_child_handler (int)
static void start_klauncher ()

Variables

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

Define Documentation

#define DISPLAY   "DISPLAY"

Definition at line 109 of file kinit.cpp.

#define MAX_SOCK_FILE   255

Definition at line 105 of file kinit.cpp.

#define QT_NO_CAST_FROM_ASCII

Definition at line 22 of file kinit.cpp.


Function Documentation

KParts::Plugin* _kinit_init_kparts (  ) 

Definition at line 162 of file kinit.cpp.

KIO::AuthInfo* _kioslave_init_kio (  ) 

Definition at line 165 of file kinit.cpp.

static void child_died ( pid_t  exit_pid,
int  exit_status 
) [static]

Definition at line 253 of file kinit.cpp.

static void cleanup_fds (  )  [static]

Definition at line 174 of file kinit.cpp.

static void close_fds (  )  [static]

Definition at line 188 of file kinit.cpp.

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

Definition at line 376 of file kinit.cpp.

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

Definition at line 395 of file kinit.cpp.

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

Definition at line 282 of file kinit.cpp.

static int get_current_desktop ( Display *  disp  )  [static]

Definition at line 317 of file kinit.cpp.

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

Definition at line 340 of file kinit.cpp.

static bool handle_launcher_request ( int  sock,
const char *  who 
) [static]

Definition at line 1041 of file kinit.cpp.

static void handle_requests ( pid_t  waitForPid  )  [static]

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

static void init_signals (  )  [static]

Definition at line 773 of file kinit.cpp.

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

Definition at line 358 of file kinit.cpp.

static int initXconnection (  )  [static]

Definition at line 1537 of file kinit.cpp.

static void kdeinit_library_path (  )  [static]

Definition at line 1383 of file kinit.cpp.

int kdeinit_x_errhandler ( Display *  dpy,
XErrorEvent *  err 
)

Definition at line 1505 of file kinit.cpp.

int kdeinit_xio_errhandler ( Display *  disp  ) 

Delete any stale socket file

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

static void launcher_died (  )  [static]

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

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

Definition at line 975 of file kinit.cpp.

static void secondary_child_handler ( int   )  [static]

Definition at line 1562 of file kinit.cpp.

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

Definition at line 295 of file kinit.cpp.

static void setupX (  )  [static]

Definition at line 1530 of file kinit.cpp.

static void sig_child_handler ( int   )  [static]

Definition at line 757 of file kinit.cpp.

static void start_klauncher (  )  [static]

Definition at line 995 of file kinit.cpp.


Variable Documentation

int accepted_fd

Definition at line 128 of file kinit.cpp.

char** argv

Definition at line 135 of file kinit.cpp.

struct child* children [static]

Definition at line 151 of file kinit.cpp.

struct { ... } d [static]
int deadpipe[2]

Definition at line 125 of file kinit.cpp.

bool debug_wait

Definition at line 138 of file kinit.cpp.

char** environ
QByteArray errorMsg

Definition at line 139 of file kinit.cpp.

int exit_status

Definition at line 130 of file kinit.cpp.

int fd[2]

Definition at line 123 of file kinit.cpp.

pid_t fork

Definition at line 131 of file kinit.cpp.

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

Definition at line 126 of file kinit.cpp.

pid_t kded_pid

Definition at line 133 of file kinit.cpp.

int launcher[2]

Definition at line 124 of file kinit.cpp.

int(* launcher_func)(int)
bool launcher_ok

Definition at line 140 of file kinit.cpp.

pid_t launcher_pid

Definition at line 132 of file kinit.cpp.

int maxname

Definition at line 122 of file kinit.cpp.

int n

Definition at line 134 of file kinit.cpp.

char result

Definition at line 129 of file kinit.cpp.

KComponentData* s_instance = 0 [static]

Definition at line 104 of file kinit.cpp.

char sock_file[MAX_SOCK_FILE] [static]

Definition at line 106 of file kinit.cpp.

bool suicide

Definition at line 141 of file kinit.cpp.

int wrapper

Definition at line 127 of file kinit.cpp.

Display* X11_startup_notify_display = 0 [static]

Definition at line 102 of file kinit.cpp.

int X11_startup_notify_fd = -1 [static]

Definition at line 101 of file kinit.cpp.

Display* X11display = 0 [static]

Definition at line 100 of file kinit.cpp.

int X11fd = -1 [static]

Definition at line 99 of file kinit.cpp.

KInit

Skip menu "KInit"
  • Main Page
  • 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
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver
Generated for kdelibs by doxygen 1.6.1
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