pcsc-lite 1.9.8
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 "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 TRUE   1
 
#define FALSE   0
 
#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.
 
static void * signal_thread (void *arg)
 thread dedicated to handle signals
 
int main (int argc, char **argv)
 

Variables

_Atomic char AraKiri = FALSE
 
static char Init = TRUE
 
char AutoExit = FALSE
 Represents an Application Context on the Server side.
 
char SocketActivated = FALSE
 
static int ExitValue = EXIT_FAILURE
 
int HPForceReaderPolling = 0
 
static int pipefd [] = {-1, -1}
 
static int signal_handler_fd [] = {-1, -1}
 
char Add_Serial_In_Name = TRUE
 
char 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 calld to look for Client connections. For each Client connection a call to CreateContextThread() is done.

Definition in file pcscdaemon.c.

Macro Definition Documentation

◆ FALSE

#define FALSE   0

Definition at line 75 of file pcscdaemon.c.

◆ TRUE

#define TRUE   1

Definition at line 74 of file pcscdaemon.c.

Function Documentation

◆ at_exit()

static void at_exit ( void  )
static

Definition at line 797 of file pcscdaemon.c.

◆ clean_temp_files()

static void clean_temp_files ( void  )
static

Definition at line 821 of file pcscdaemon.c.

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 258 of file pcscdaemon.c.

◆ print_usage()

static void print_usage ( char const * const  progname)
static

Definition at line 861 of file pcscdaemon.c.

◆ print_version()

static void print_version ( void  )
static

Definition at line 848 of file pcscdaemon.c.

◆ signal_thread()

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 177 of file pcscdaemon.c.

◆ signal_trap()

static void signal_trap ( int  sig)
static

Definition at line 839 of file pcscdaemon.c.

◆ SVCServiceRunLoop()

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 106 of file pcscdaemon.c.

Variable Documentation

◆ Add_Interface_In_Name

char Add_Interface_In_Name = TRUE

Definition at line 87 of file pcscdaemon.c.

◆ Add_Serial_In_Name

char Add_Serial_In_Name = TRUE

Definition at line 86 of file pcscdaemon.c.

◆ AraKiri

_Atomic char AraKiri = FALSE

Definition at line 78 of file pcscdaemon.c.

◆ AutoExit

char AutoExit = FALSE

Represents an Application Context on the Server side.

An Application Context contains Channels (hCard).

Definition at line 80 of file pcscdaemon.c.

◆ ExitValue

int ExitValue = EXIT_FAILURE
static

Definition at line 82 of file pcscdaemon.c.

◆ HPForceReaderPolling

int HPForceReaderPolling = 0

Definition at line 83 of file pcscdaemon.c.

◆ Init

char Init = TRUE
static

Definition at line 79 of file pcscdaemon.c.

◆ pipefd

int pipefd[] = {-1, -1}
static

Definition at line 84 of file pcscdaemon.c.

◆ signal_handler_fd

int signal_handler_fd[] = {-1, -1}
static

Definition at line 85 of file pcscdaemon.c.

◆ SocketActivated

char SocketActivated = FALSE

Definition at line 81 of file pcscdaemon.c.