Main Page | Data Structures | File List | Data Fields | Globals | Related Pages

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

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)
 

Variables

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, and SHMCleanupSharedSegment().

Referenced by SVCServiceRunLoop().

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, and SYS_CloseFile().

Referenced by SHMProcessEventsServer().

INTERNAL int SHMProcessEventsContext PDWORD  pdwClientID,
psharedSegmentMsg  msgStruct,
int  blocktime
 

Called by ContextThread().

Definition at line 220 of file winscard_msg_srv.c.

References PCSCLITE_SERVER_ATTEMPTS, psharedSegmentMsg, SHMMessageReceive(), and SYS_CloseFile().

Referenced by ContextThread().

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 commonSocket, and SHMProcessCommonChannelRequest().

Referenced by SVCServiceRunLoop().


Generated on Fri Jan 26 22:56:21 2007 for pcsc-lite by  doxygen 1.3.9.1