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. More...

INTERNAL int SHMInitializeCommonSegment (void)
 Prepares the communication channel used by the server to talk to the clients. More...

INTERNAL int SHMProcessEventsServer (PDWORD pdwClientID, int blocktime)
 Looks for messages sent by clients. More...

INTERNAL int SHMProcessEventsContext (PDWORD pdwClientID, psharedSegmentMsg msgStruct, int blocktime)
 @brief. More...


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.

int SHMProcessCommonChannelRequest PDWORD    pdwClientID [static]
 

Accepts a Client connection.

Called by SHMProcessEventsServer().

am[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
 

@brief.

Called by ContextThread().

Definition at line 220 of file winscard_msg_srv.c.

References rxSharedSegment::command, rxSharedSegment::mtype, 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().

am[out] pdwClientID Connection ID used to reference the Client.
am[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 Tue Apr 1 22:45:23 2008 for pcsc-lite by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002