PCSC-SPY(1) PC/SC lite PCSC-SPY(1)NAME
pcsc-spy - A PC/SC spy command
SYNOPSIS
pcsc-spy [-n|--nocolor] [-d|--diffable] [-h|--help] [fifo_filename]
DESCRIPTION
pcsc-spy displays PC/SC calls of an application. It must be used with the libpcscspy.so library.
To be able to spy the PC/SC layer, the application flow must be modified so that all PC/SC calls are redirected. Two options are available:
- the application is linked with libpcsclite.so.1
- the application loads the libpcsclite.so.1 library using dlopen(3)OPTIONS -d, --diffable
Demove the variable parts (like handler values) from the output so that two execution can be more easily compared.
-h, --help
Display a short help text.
-n, --nocolor
Disable the output colorization (if you want redirect the output in a file for example).
-v, --version
Print the version of the pcsc-spy program plus a copyright, a list of authors.
EXAMPLES
Applications linked with libpcsclite.so.1
We will use the standard LD_PRELOAD loader option to load our spying library.
Example:
LD_PRELOAD=/usr/lib/libpcscspy.so opensc-tool -a
Application loading libpcsclite.so.1
This is the case for the PC/SC wrappers like pyscard (for Python) and pcsc-perl (for Perl). The LD_PRELOAD mechanism can't be used. Instead
we replace the libpcsclite.so.1 library by the spying one.
You may use install_spy.sh and uninstall_spy.sh to install and uninstall the spying library.
Using the spying library without pcsc-spy is not a problem but has side effects:
- a line "libpcsclite_nospy.so.1: cannot open shared object file: No such file or directory" will be displayed
- some CPU time will be lost because of the PC/SC calls redirection
Starting the spy tool
pcsc-spy
If a command argument is passed we use it instead of the default ~/pcsc-spy FIFO file. It is then possible to record an execution log and
use pcsc-spy multiple times on the same log.
To create the log file just do:
mkfifo ~/pcsc-spy
cat ~/pcsc-spy > logfile
and run your PC/SC application.
Mac OS X
The installation is not automatic. In the pcsc-lite/src/spy directory do:
make framework
Then copy the PCSC.framework directory in /tmp
cp -a PCSC.framework /tmp
Copy the official PCSC.framework (binary only) in /tmp
cp /System/Library/Frameworks/PCSC.framework/PCSC /tmp
Run the application to debug as:
DYLD_FRAMEWORK_PATH=/tmp pcsctest
FILES
~/pcsc-spy FIFO file is used by libpcsclite.so.1 to send the raw log lines
SEE ALSO pcscd(8)AUTHOR
This manual page was written by Ludovic Rousseau <rousseau@free.fr>
pcsc-lite 1.8.4 2012-02-01 PCSC-SPY(1)
Check Out this Related Man Page
APT-SPY(8) System Manager's Manual APT-SPY(8)NAME
apt-spy - program to generate a /etc/apt/sources.list.d/apt-spy.list file
SYNOPSIS
apt-spy -d distribution [ -a area ] [ -c config ] [ -e number ] [ -f file ] [ -i file ] [ -m mirror-list ] [ -o output-file ] [ -p proxy ]
[ -s country-list ] [ -t time ] [ -u update-URL ] [ -w file ] [ -n number ] [ -h ] [ -v ] [ update ]
DESCRIPTION
This manual page briefly documents the apt-spy command.
apt-spy is a program that tests all of the Debian archive mirrors the user specifies for bandwith and writes, by default, to
/etc/apt/sources.list.d/apt-spy.list the fastest server.
The user can select which of the many Debian sites to benchmark by geographical location.
apt-spy does not need to be run by root if the user provides a configuration file, a place where to store the mirror list and an output
file. See examples for more details.
OPTIONS -d distribution
Debian distribution to use. Sensible values would be `stable', `testing' or `unstable'. Distribution names can also be used. This
value is directly used in the generated sources.list, and is required unless updating.
-a area
This will cause only servers in the specified area to be benchmarked. By default, valid values for area are `Africa', `Asia',
`Europe', `North-America', `Oceania' and `South-America'. It is very easy to define your own areas or subset of servers to bench-
mark. For further details see apt-spy.conf(5).
-c config
configuration file to use instead of /etc/apt-spy.conf.
-e number
`early finish'. Stop benchmarking after number of servers have been completed. Act as if all servers were benchmarked upon comple-
tion.
-f file
file to grab from the Debian servers. By default apt-spy will test the servers by getting part of the `ls-lR' file in the base of
the Debian tree on the mirror. This tells apt-spy to get file instead. It is assumed that this file is also relative to the Debian
base directory.
-i file
use file as input for apt-spy. You should generate this input file using the -w option.
-m mirror-list
where to load the mirrors list from or where to save it to. The default location is /var/lib/apt-spy/mirrors.txt. Using this
option allows you to specify a different location. When updating, this defines where the updated mirrors list will be saved.
-o output-file
location for the new sources.list. By default the new file is created as /etc/apt/sources.list.
-p proxy
use proxy as a proxy server. This should be specified as `hostname:port'.
-s country-list
A comma-separated list of countries to benchmark. At the moment, this cannot be used with the "area" option.
-t time
how long (approximately) in seconds to download for. By default time is 15 seconds. How long the benchmark actually downloads for
varies due to the way libcurl works. With the default 15 seconds, the benchmark generally takes beween 10 and 25 seconds. Each
server has potentially two protocols (ftp and http) so roughly one minute per server would be a reasonable estimate of how long it
should take. Be aware that this does vary considerably, and that benchmarking any more than a very few servers takes considerable
time (possibly several hours for `-a All').
-u update-URL
specify custom URL to get an updated mirrors list from. This can be http, ftp, file, or any other URL type supported by libcurl.
-w file
write a number of top servers to file in a format suitable for use with the -i option. The number of servers to output can be speci-
fied with the -n option, and defaults to 5.
-n number
the number of top servers to write with the -w option.
update connect to http.us.debian.org and download the mirror list to /var/lib/apt-spy/mirrors.txt. The -u or -m options may be used to
respectively specify a different URL for the mirrors list or a different location for the downloaded file.
-v output a version number.
-h print a short usage message.
EXAMPLES
Non root usage:
apt-spy -d stable -a Europe -m ./mirror.txt -o apt-spy.list -c apt-spy.conf
Above command tests European mirrors for stable Debian release saving http://http.us.debian.org/debian/README.mirrors.txt into mirror.txt,
writing source file into apt-spy.list using configuration from apt-spy.conf. Note that not root users need to specified all these parame-
ters.
Updating mirror list file:
apt-spy update
Creating the /etc/apt/sources.list.d/apt-spy.list file:
apt-spy -d stable
SEE ALSO sources.list(5), apt-spy.conf(5), apt(8).
AUTHOR
apt-spy and this manual page was written by Steven Holmes <steg@bsdeviant.org> and updated by Stefano Canepa <sc@linux.it>.
The original version of apt-spy was written by Danny Rodriguez <messiah@optonline.net>.
This version is a total rewrite.
17th December, 2011 APT-SPY(8)