winscard_msg_srv.c File Reference

client/server communication (on the server side only) More...

#include "config.h"
#include <fcntl.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/socket.h>
#include <sys/time.h>
#include <sys/un.h>
#include <sys/ioctl.h>
#include <errno.h>
#include <stdio.h>
#include <time.h>
#include <string.h>
#include "misc.h"
#include "pcsclite.h"
#include "winscard.h"
#include "debuglog.h"
#include "winscard_msg.h"
#include "sys_generic.h"

Go to the source code of this file.

Functions

static int SHMProcessCommonChannelRequest (PDWORD pdwClientID)
 Accepts a Client connection.
INTERNAL int SHMInitializeCommonSegment (void)
 Prepares the communication channel used by the server to talk to the clients.
INTERNAL int SHMProcessEventsServer (PDWORD pdwClientID, int blocktime)
 Looks for messages sent by clients.
INTERNAL int SHMProcessEventsContext (PDWORD pdwClientID, psharedSegmentMsg msgStruct, int blocktime)
 Called by ContextThread().

Variables

static int commonSocket = 0
 Socket to a file, used for clients-server comminication.
char AraKiri
char ReCheckSerialReaders


Detailed Description

client/server communication (on the server side only)

A file based socket (commonSocket) is used to send/receive only messages among clients and server.
The messages' data are passed throw a memory mapped file: sharedSegmentMsg.

Definition in file winscard_msg_srv.c.


Function Documentation

INTERNAL int SHMInitializeCommonSegment ( void   ) 

Prepares the communication channel used by the server to talk to the clients.

This is called by the server to create a socket for local IPC with the clients. The socket is associated to the file PCSCLITE_CSOCK_NAME. Each client will open a connection to this socket.

Returns:
Error code.
Return values:
0 Success
-1 Can not create the socket.
-1 Can not bind the socket to the file PCSCLITE_CSOCK_NAME.
-1 Can not put the socket in listen mode.

Definition at line 110 of file winscard_msg_srv.c.

References commonSocket, Log2, PCSCLITE_CSOCK_NAME, SHMCleanupSharedSegment(), SYS_Chmod(), and SYS_Unlink().

Referenced by SVCServiceRunLoop().

static int SHMProcessCommonChannelRequest ( PDWORD  pdwClientID  )  [static]

Accepts a Client connection.

Called by SHMProcessEventsServer().

Parameters:
[out] pdwClientID Connection ID used to reference the Client.
Returns:
Error code.
Return values:
0 Success.
-1 Can not establish the connection.
-1 Can not set the connection to non-blocking mode.

Definition at line 64 of file winscard_msg_srv.c.

References commonSocket, Log2, and SYS_CloseFile().

Referenced by SHMProcessEventsServer().

INTERNAL int SHMProcessEventsServer ( PDWORD  pdwClientID,
int  blocktime 
)

Looks for messages sent by clients.

This is called by the Server's function SVCServiceRunLoop().

Parameters:
[out] pdwClientID Connection ID used to reference the Client.
[in] blocktime Timeout (not used).
Returns:
Error code.
Return values:
0 Success.
-1 Error accessing the communication channel.
-1 Can not set the connection to non-blocking mode.
2 Timeout.

Definition at line 168 of file winscard_msg_srv.c.

References AraKiri, commonSocket, Log1, Log2, ReCheckSerialReaders, and SHMProcessCommonChannelRequest().

Referenced by SVCServiceRunLoop().


Generated on Fri Sep 15 14:58:51 2006 for pcsc-lite by  doxygen 1.4.7