Package: libchipcard-tools
Version: 4.1.0-1
Followup-For: Bug #470629

Hi,

I have created two patches that
1. fixes a bug that makes setting hardwareScanInterval=0 impossible
2. uses the above value by default and does triggering of scanning with SIGUSR2

The second patch is incomplete as the udev event to not call "killall -s 
SIGUSR2 .....", yet.
However, that can be easily be added via RUN=, eiher directly or by providing an
additional script.

The previous usage of chipcardd4 was kind of inacceptable.

Have fun...

HS

-- System Information:
Debian Release: lenny/sid
  APT prefers testing
  APT policy: (500, 'testing')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.25.6 (SMP w/2 CPU cores; PREEMPT)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash

Versions of packages libchipcard-tools depends on:
ii  adduser                       3.107      add and remove users and groups
ii  libc6                         2.7-10     GNU C Library: Shared libraries
ii  libchipcard-data              4.1.0-1    configuration files for libchipcar
ii  libchipcardc2                 4.1.0-1    library for accessing smartcards
ii  libchipcardd0                 4.1.0-1    library for accessing smartcards
ii  libgcc1                       1:4.3.0-5  GCC support library
ii  libgwenhywfar47               3.3.1-1    OS abstraction layer
ii  libstdc++6                    4.3.0-5    The GNU Standard C++ Library v3
ii  libsysfs2                     2.1.0-4    interface library to sysfs

libchipcard-tools recommends no packages.

-- no debconf information
Index: libchipcard-4.1.0/src/lib/server/server/devicemanager/devicemanager_p.h
===================================================================
--- libchipcard-4.1.0.orig/src/lib/server/server/devicemanager/devicemanager_p.h	2008-06-14 01:15:41.958968598 +0200
+++ libchipcard-4.1.0/src/lib/server/server/devicemanager/devicemanager_p.h	2008-06-14 01:19:39.064776389 +0200
@@ -36,7 +36,7 @@
 #define LCDM_DEVICEMANAGER_DEF_READER_COMMAND_TIMEOUT 60
 
 #define LCDM_DEVICEMANAGER_DEF_HARDWARE_SCAN_INTERVAL  2
-#define LCDM_DEVICEMANAGER_MIN_HARDWARE_SCAN_INTERVAL  2
+#define LCDM_DEVICEMANAGER_MIN_HARDWARE_SCAN_INTERVAL  0
 #define LCDM_DEVICEMANAGER_DEF_HARDWARE_SCAN_TRIGGERS  4
 
 
Index: libchipcard-4.1.0/src/lib/server/server/devicemanager/devicemanager.c
===================================================================
--- libchipcard-4.1.0.orig/src/lib/server/server/devicemanager/devicemanager.c	2008-06-14 01:21:06.824796937 +0200
+++ libchipcard-4.1.0/src/lib/server/server/devicemanager/devicemanager.c	2008-06-14 01:21:20.175597317 +0200
@@ -164,7 +164,7 @@
 
   /* ensure some minimum values */
   if (dm->hardwareScanInterval<LCDM_DEVICEMANAGER_MIN_HARDWARE_SCAN_INTERVAL)
-    dm->hardwareScanInterval=LCDM_DEVICEMANAGER_MIN_HARDWARE_SCAN_INTERVAL;
+    dm->hardwareScanInterval=LCDM_DEVICEMANAGER_DEF_HARDWARE_SCAN_INTERVAL;
 
   /* find config of server to be used for drivers */
   dbT=GWEN_DB_FindFirstGroup(dbConfig, "server");
Index: libchipcard-4.1.0/debian/etc/chipcardd.conf
===================================================================
--- libchipcard-4.1.0.orig/debian/etc/chipcardd.conf    2008-06-14 
02:05:48.904494915 +0200
+++ libchipcard-4.1.0/debian/etc/chipcardd.conf 2008-06-14 02:05:52.807839263 
+0200
@@ -37,6 +37,7 @@
 } # server
 
 DeviceManager {
+  int hardwareScanInterval="0"
 }
 
 
Index: libchipcard-4.1.0/debian/libchipcard-tools.init
===================================================================
--- libchipcard-4.1.0.orig/debian/libchipcard-tools.init        2008-06-14 
02:05:48.911161544 +0200
+++ libchipcard-4.1.0/debian/libchipcard-tools.init     2008-06-14 
02:38:16.340969872 +0200
@@ -42,9 +42,10 @@
   start)
        echo -n "Starting $DESC: "
        check_var_run
-       start-stop-daemon --start --quiet --pidfile $PIDFILE \
+       start-stop-daemon --start --quiet \
                --user chipcard --chuid chipcard \
-               --exec $DAEMON -- $DAEMON_ARGS
+               --exec $DAEMON -- $DAEMON_ARGS && \
+       killall -s SIGUSR2 $DAEMON
        echo "$NAME."
        ;;
   stop)
@@ -64,8 +65,10 @@
                --user chipcard --exec $DAEMON
        sleep 1
        check_var_run
-       start-stop-daemon --start --quiet --pidfile $PIDFILE \
-               --user chipcard --chuid chipcard --exec $DAEMON -- $DAEMON_ARGS
+       start-stop-daemon --start --quiet \
+               --user chipcard --chuid chipcard \
+               --exec $DAEMON -- $DAEMON_ARGS && \
+       killall -s SIGUSR2 $DAEMON
        echo "$NAME."
        ;;
   *)

Reply via email to