aboutsummaryrefslogtreecommitdiff
path: root/devel/pcsc-lite/files
diff options
context:
space:
mode:
authorTilman Keskinoz <arved@FreeBSD.org>2007-01-22 16:56:16 +0000
committerTilman Keskinoz <arved@FreeBSD.org>2007-01-22 16:56:16 +0000
commit23f644637a3dc513f0836e08710ab68e056c9fbf (patch)
treef18b16f4364290eaca8aa549edc4c1045b92c1cf /devel/pcsc-lite/files
parent914f453b7561cfcada8638a3476b1d6f083a8828 (diff)
Notes
Diffstat (limited to 'devel/pcsc-lite/files')
-rw-r--r--devel/pcsc-lite/files/patch-pcscdaemon.c17
-rw-r--r--devel/pcsc-lite/files/patch-winscard_msg_srv.c33
-rw-r--r--devel/pcsc-lite/files/pcscd.in20
-rw-r--r--devel/pcsc-lite/files/pcscd.sh29
4 files changed, 70 insertions, 29 deletions
diff --git a/devel/pcsc-lite/files/patch-pcscdaemon.c b/devel/pcsc-lite/files/patch-pcscdaemon.c
new file mode 100644
index 000000000000..83a76a03b7fa
--- /dev/null
+++ b/devel/pcsc-lite/files/patch-pcscdaemon.c
@@ -0,0 +1,17 @@
+--- src/pcscdaemon.c.orig Mon Jan 22 16:31:21 2007
++++ src/pcscdaemon.c Mon Jan 22 16:33:52 2007
+@@ -199,6 +199,14 @@
+ switch (rsp = SHMProcessEventsServer(&dwClientID, 0))
+ {
+
++ case 2:
++ /* /*
++ * timeout in SHMProcessEventsServer(): do nothing
++ * this is used to catch the Ctrl-C signal at some time when
++ * nothing else happens
++ */
++ break;
++
+ case 0:
+ Log2(PCSC_LOG_DEBUG, "A new context thread creation is requested: %d", dwClientID);
+ rv = CreateContextThread(&dwClientID);
diff --git a/devel/pcsc-lite/files/patch-winscard_msg_srv.c b/devel/pcsc-lite/files/patch-winscard_msg_srv.c
new file mode 100644
index 000000000000..0a5c681cb6ca
--- /dev/null
+++ b/devel/pcsc-lite/files/patch-winscard_msg_srv.c
@@ -0,0 +1,33 @@
+--- src/winscard_msg_srv.c.orig Mon Jan 22 16:26:53 2007
++++ src/winscard_msg_srv.c Mon Jan 22 16:29:52 2007
+@@ -169,6 +169,10 @@
+ {
+ fd_set read_fd;
+ int selret;
++ struct timeval tv;
++
++ tv.tv_sec = 1;
++ tv.tv_usec = 0;
+
+ FD_ZERO(&read_fd);
+
+@@ -178,7 +182,7 @@
+ FD_SET(commonSocket, &read_fd);
+
+ selret = select(commonSocket + 1, &read_fd, (fd_set *) NULL,
+- (fd_set *) NULL, NULL);
++ (fd_set *) NULL, &tv);
+
+ if (selret < 0)
+ {
+@@ -189,6 +193,10 @@
+ strerror(errno));
+ return -1;
+ }
++
++ if (selret == 0)
++ /* timeout */
++ return 2;
+
+ /*
+ * A common pipe packet has arrived - it could be a new application
diff --git a/devel/pcsc-lite/files/pcscd.in b/devel/pcsc-lite/files/pcscd.in
new file mode 100644
index 000000000000..f5ff87d3151e
--- /dev/null
+++ b/devel/pcsc-lite/files/pcscd.in
@@ -0,0 +1,20 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# PROVIDE: pcscd
+# REQUIRE: LOGIN
+# Add the following lines to /etc/rc.conf.local or /etc/rc.conf
+# to enable this service:
+#
+# pcscd_enable="YES"
+
+. %%RC_SUBR%%
+
+name="pcscd"
+rcvar="pcscd_enable"
+
+command="%%PREFIX%%/sbin/pcscd"
+
+load_rc_config "$name"
+run_rc_command "$1"
diff --git a/devel/pcsc-lite/files/pcscd.sh b/devel/pcsc-lite/files/pcscd.sh
deleted file mode 100644
index 716484f434c0..000000000000
--- a/devel/pcsc-lite/files/pcscd.sh
+++ /dev/null
@@ -1,29 +0,0 @@
-#!/bin/sh
-# $FreeBSD$
-
-if ! PREFIX=$(expr $0 : "\(/.*\)/etc/rc\.d/$(basename $0)\$"); then
- echo "$0: Cannot determine the PREFIX" >&2
- exit 1
-fi
-
-case "$1" in
-
- start)
- if [ -x $PREFIX/sbin/pcscd ]; then
- $PREFIX/sbin/pcscd -c $PREFIX/etc/reader.conf
- echo -n ' pcscd'
- fi
- ;;
-
- stop)
- /usr/bin/killall pcscd && echo -n ' pcscd'
- ;;
-
- *)
- echo ""
- echo "Usage: `basename $0` { start | stop }"
- echo ""
- exit 64
- ;;
-esac
-