On 2015-12-20 22:37, Ludovic Rousseau wrote:
2015-12-20 14:57 GMT+01:00 Arnaud Loonstra <[email protected] [1]>:

Hi all,

Hello,
 

I was going through the internals of libpcsclite and as I noticed it
uses
IPC to communicate with the daemon I was wondering if it is
possible to
retrieve the sockets fd to add it to a poller?

I noticed MessageReceive() in wincard_msg.c:449 is already using
select
(469)

Is this possible through the current API?

No, it is not possible through the current API.
The API is a "standard" defined by the PCSC workgroup [1] and cant be
changed like that.

I would propose to use an intermediate thread that calls
SCardGetStatusChange() [2] (or whatever PC/SC function you want to
poll) that would write to a file descriptor you created for that.

What do you want to do exactly?

My use case seems a simple one, I guess. I want to capture the events when a tag is detected by an NFC reader. As I'm integrating this into a ZeroMQ based application my first target was finding out how I can get the socket into a polling based application loop.

I'm using simple ACR122U based readers on Linux. The API search brought me to PCSC. As I found it uses 'select' I wondered if it is possible to add the IPC socket's FD to a poller and just use MessageSend as it is but trigger MessageReceive on the poll events.

So it seems the API won't let me but from the API internals it seems it could be possible. What I don't get is if the client library needs to request whether there is a tag detected (request-reply) or whether the daemon pushes its events through the IPC channel and the client just triggers when it receives something (publish-subscrive basically).

Rg,

Arnaud



_______________________________________________
Pcsclite-muscle mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pcsclite-muscle

Reply via email to