pcsc-lite  2.0.3
Macros | Functions | Variables
pcscdaemon.c File Reference

This is the main pcscd daemon. More...

#include "config.h"
#include <time.h>
#include <signal.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <errno.h>
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <stdbool.h>
#include "misc.h"
#include "pcsclite.h"
#include "pcscd.h"
#include "debuglog.h"
#include "winscard_msg.h"
#include "winscard_svc.h"
#include "sys_generic.h"
#include "hotplug.h"
#include "readerfactory.h"
#include "configfile.h"
#include "utils.h"
#include "eventhandler.h"

Go to the source code of this file.

Macros

#define OPT_STRING   "c:fTdhvaieCHt:r:s:xSI"
 

Functions

static void at_exit (void)
 
static void clean_temp_files (void)
 
static void signal_trap (int)
 
static void print_version (void)
 
static void print_usage (char const *const)
 
static void SVCServiceRunLoop (void)
 The Server's Message Queue Listener function. More...
 
static void * signal_thread (void *arg)
 thread dedicated to handle signals More...
 
int main (int argc, char **argv)
 

Variables

_Atomic bool AraKiri = false
 
static bool Init = true
 
bool AutoExit = false
 Represents an Application Context on the Server side. More...
 
bool SocketActivated = false
 
static int ExitValue = EXIT_FAILURE
 
int HPForceReaderPolling = 0
 
bool disable_polkit = false
 
static int pipefd [] = {-1, -1}
 
static int signal_handler_fd [] = {-1, -1}
 
bool Add_Serial_In_Name = true
 
bool Add_Interface_In_Name = true
 

Detailed Description

This is the main pcscd daemon.

The function main() starts up the communication environment.
Then an endless loop is called to look for Client connections. For each Client connection a call to CreateContextThread() is done.

Definition in file pcscdaemon.c.

Function Documentation

static void* signal_thread ( void *  arg)
static

thread dedicated to handle signals

a signal handler can not call any function. See signal(7) for a list of function that are safe to call from a signal handler. The functions syslog(), gettimeofday() and remove() are NOT safe.

Definition at line 176 of file pcscdaemon.c.

static void SVCServiceRunLoop ( void  )
static

The Server's Message Queue Listener function.

An endless loop calls the function ProcessEventsServer() to check for messages sent by clients. If the message is valid, CreateContextThread() is called to serve this request.

Definition at line 103 of file pcscdaemon.c.

Variable Documentation

bool AutoExit = false

Represents an Application Context on the Server side.

An Application Context contains Channels (hCard).

Definition at line 76 of file pcscdaemon.c.