2 Notes for the distribution of lsof version 4
4 ********************************************************************
5 | The latest release of lsof is always available via anonymous ftp |
6 | from lsof.itap.purdue.edu. Look in pub/tools/unix/lsof. |
7 ********************************************************************
14 Getting Started Quickly
15 Limiting, Filtering, and Selecting Lsof Output
16 Parsing Lsof Output with Another Program
18 Distribution Restrictions
23 The lsof-l Mailing List
24 Version 3 Release Notes
27 3.88, February 17, 1997
28 What's New in Version 4
29 Version 4 Release Notes
30 4.0, February 24, 1997
35 4.04 supplement, April 18, 1997
47 4.16, September 25, 1997
48 4.17, October 14, 1997
49 4.18, October 25, 1997
50 4.19, October 30, 1997
51 4.20, November 11, 1997
52 4.21, December 1, 1997
53 4.22, December 15, 1997
54 4.23, January 16, 1998
55 4.24, January 28, 1998
56 4.25, February 7, 1998
57 4.26, February 17, 1998
68 4.37, September 15, 1998
69 4.38, November 25, 1998
70 4.39, December 29, 1998
71 4.40, January 25, 1999
72 4.41, February 27, 1999
77 4.46, October 23, 1999
78 4.47, November 29, 1999
79 4.48, January 14, 2000
83 4.52, November 8, 2000
84 4.53, December 6, 2000
85 4.54, January 19, 2001
86 4.55, February 15, 2001
89 4.58, September 13, 2001
90 4.59, October 20, 2001
91 4.60, November 9, 2001
92 4.61, January 22, 2002
96 4.65, October 10, 2002
97 4.66, December 22, 2002
100 4.69, October 16, 2003
101 4.70, January 16, 2004
104 4.73, October 21, 2004
105 4.74, January 17, 2005
107 4.76, August 30, 2005
112 4.81, October 21, 2008
114 4.83, January 18, 2010
116 4.85, September 27, 2011
118 4.87, January 2, 2013
119 4.88, October 13, 2014
121 4.90, February 14, 2018
128 Lsof (for LiSt Open Files) lists files opened by processes on
129 selected Unix systems. Version 4 is a source reorganization of
130 version 3, itself a major revision of version 2. Version 4 has
133 Apple Darwin 9 and Mac OS X 10.[567]
134 FreeBSD 10.3, 11.0 and 12.0 for AMD64-based systems
137 (The pub/tools/unix/lsof/contrib directory on lsof.itap.purdue.edu
138 contains information on other ports.)
140 If your favorite Unix dialect is not in the list, or if your version
141 of it is more recent than the ones listed, please contact me at
144 Version 3 of lsof was tested on:
146 AIX 3.2.5, 4.1[.[1234]], and 4.2
147 BSDI BSD/OS 2.0, 2.0.1, and 2.1 for x86-based systems
148 DC/OSx 1.1 for Pyramid systems
149 Digital UNIX (DEC OSF/1) 2.0, 3.0, 3.2, and 4.0
150 EP/IX 2.1.1 for the CDC 4680
151 FreeBSD 1.1.5.1, 2.0, 2.0.5, 2.1, 2.1.5 for x86-based
153 HP-UX 8.x, 9.x, 10.01, 10.10, and 10.20
154 IRIX 5.2, 5.3, 6.0, 6.0.1, and 6.[124]
155 Linux through 2.0.27 for x86-based systems
156 NetBSD 1.0, 1.1, and 1.2 for x86 and SPARC-based
158 NEXTSTEP 2.1 and 3.[0123]
159 OpenBSD 1.2 and 2.0 for x86-based systems
160 Reliant UNIX 5.43 for Pyramid systems
161 RISC/os 4.52 for MIPS R2000-based systems
162 SCO OpenServer Release 1.1, 3.0, and 5.0.x for x86-based
164 SCO UnixWare 2.1 and 2.1.1 for x86-based systems
165 Sequent PTX 2.1.[1569], 4.0.[23], 4.1.[024], 4.2[.1],
167 Solaris 2.[12345], 2.5.1, and 2.6-Beta
169 Ultrix 4.2, 4.3, 4.4, and 4.5
171 Version 3 and its predecessor, version 2, may be found at:
173 ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD
179 Using available kernel data access methods -- getproc(), getuser(),
180 kvm_*(), nlist(), pstat(), read(), readx(), /proc -- lsof reads
181 process table entries, task table entries, user areas and file
182 pointers to reach the underlying structures that describe files
185 Lsof interprets most file node structures -- advfsnodes, autonodes,
186 cnodes, cdrnodes, devnodes, fifonodes, gnodes, hsnodes, inodes,
187 mfsnodes, pcnodes, procnodes, rnodes, snodes, specnodes, s5inodes,
188 tmpnodes. It understands NFS connections. It recognizes FIFOs,
189 multiplexed files, Unix and Internet sockets. It knows about
190 streams. It understands /proc file systems for some dialects. On
191 many dialects it recognizes execution text and library references.
192 It knows about AFS on some Unix dialects.
198 The lsof output describes:
200 * the identification number of the process (PID) that has opened
203 * the process group identification number (PGID) of the process
206 * the process identification number of the parent process (PPID)
209 * the command the process is executing;
211 * the owner of the process;
213 * for all files in use by the process, including the executing
214 text file and the shared libraries it is using:
216 * the file descriptor number of the file, if applicable;
218 * the file's access mode;
220 * the file's lock status;
222 * the file's device numbers;
224 * the file's inode number;
226 * the file's size or offset;
228 * the name of the file system containing the file;
230 * any available components of the file's path name;
232 * the names of the file's stream components;
234 * the file's local and remote network addresses;
236 * the TLI network (typically UDP) state of the file;
238 * the TCP state, read queue length, and write queue length
241 * the file's TCP window read and write lengths (Solaris
244 * other file or dialect-specific values.
247 Getting Started Quickly
248 =======================
250 If you want to get started using lsof quickly, or see some examples
251 of how lsof can be used, consult the 00QUICKSTART file of the lsof
254 The 00QUICKSTART file won't help you build or install lsof, but it
255 will cut through the density of the lsof man page, giving you more
256 readily an idea of what you can do with lsof.
258 For information on building and installing lsof, consult the 00README
259 file of the lsof distribution.
262 Limiting, Filtering, and Selecting Lsof Output
263 ==============================================
265 Lsof accepts options to limit, filter, and select its output.
266 These are the possible criteria:
268 * Process ID (PID) number -- to list the open files for a given
271 * Process Group ID (PGID) -- to list the open files for all
272 the processes of a given process group;
274 * User ID number or login name -- to list the open files for
275 all the processes of a given user;
277 * Internet address -- to list the open files using a given
278 Internet address (host name), protocol, or port (number or
279 name); or to list all open Internet files;
283 * file descriptor name or number;
285 * list all open NFS files;
287 * list all open Unix domain socket files;
289 * list all uses of a specific file;
291 * list all open files on a file system.
293 Selection options are normally ORed -- i.e., an open file meeting
294 any of the criteria is listed. The selection options may be ANDed
295 so that an open file will be listed only if it meets all the
298 In the absence of any selection criteria, lsof lists files open to
302 Parsing Lsof Output with Another Program
303 ========================================
305 The lsof -F option directs it to produce "field" output that can
306 easily be parsed by another program. The lsof distribution contains
307 sample awk, perl 4, and perl 5 scripts in its scripts subdirectory
308 that show how to post-process field output.
314 Lsof can be directed to produce output, delay for a specified time,
315 then repeat the output, cycling until stopped by an interrupt or
316 quit signal. This mode is useful for monitoring the status of some
317 file operation -- e.g., an ftp transfer or a tape backup operation.
319 Repeat mode is more efficient when combined with lsof's selection
320 options, since they limit lsof overhead.
322 It's possible to use lsof's field output options to supply repeat
323 mode output to another process for its manipulation. The scripts
324 subdirectory of the lsof distribution has sample Perl scripts
325 showing how to consume lsof repeat mode output from a pipe.
328 Distribution Restrictions
329 =========================
331 Lsof may be used and distributed freely, subject to these limitations:
333 1. Neither the author nor Purdue University is responsible for
334 any consequences of the use of this software.
336 2. The origin of this software must not be misrepresented, either
337 by explicit claim or by omission. Credit to the author and
338 Purdue University must appear in documentation and sources.
340 3. Altered versions must be plainly marked as such, and must not
341 be misrepresented as being the original software.
343 4. This notice may not be removed from or altered in the lsof source
350 Lsof is a tool that is closely tied to the Unix operating system
351 version. It uses header files that describe kernel structures and
352 reads kernel structures that typically change from OS version to
355 DON'T TRY TO USE AN LSOF BINARY, COMPILED FOR ONE UNIX OS VERSION,
358 On some Unix dialects, notably SunOS and Solaris, lsof versions
359 may be even more restricted by architecture type. An lsof binary,
360 compiled for SunOS 4.1.3 on a sun4c machine, for example, won't
361 work on a sun4m machine.
363 AN LSOF BINARY, COMPILED FOR ONE SOLARIS 1.X ARCHITECTURE, ISN'T
364 GUARANTEED TO WORK ON A DIFFERENT SOLARIS 1.X ARCHITECTURE.
367 Distribution Contents
368 =====================
370 The lsof distribution is checked for completeness when it is
371 constructed and by the Inventory script when you run the Configure
372 script. (See The Inventory Script section of the 00README file of
375 Lsof is organized in these parts:
377 * The main lsof directory, containing common sources,
378 configuration and setup scripts and three subdirectories:
379 dialects/, lib/, and scripts/.
381 Lsof is compiled in the main lsof directory after configuration.
382 The selected dialect sources are copied or linked from the
383 specified subdirectory. (Symbolic linking is the standard
386 Common lsof definitions may be found in lsof.h; common
387 function prototypes, proto.h; and common storage, store.c.
389 * The dialects/ subdirectory contains subdirectories with
390 sources specific to UNIX dialect implementations -- e.g.,
391 the dialects/sun/ subdirectory contains sources for the
392 SunOS (Solaris 1.x) and Solaris (2.x) implementations of
393 lsof. The dialects subdirectories also contain Makefiles
394 and scripts for assisting dialect source configuration.
396 Dialect configuration definitions may be found in dlsof.h;
397 other dialect definitions, dlsof.h; dialect prototypes,
398 dproto.h; and dialect storage, dstore.c.
400 * The lib/ subdirectory contains sources for common lsof
401 functions. Not all dialects use the functions -- some have
402 their own versions of them. The lib/ functions are enabled
403 and customized with #define's in the dialect machine.h header
406 * The scripts/ subdirectory contains sample scripts for
407 processing lsof field (-F) output. The scripts are written
408 in AWK, Perl 4, and Perl 5.
410 The 00PORTING file of the lsof distribution has more information
411 on lsof components, configuration, and construction.
417 Lsof is provided as-is without any warranty of any kind, either
418 expressed or implied, including, but not limited to, the implied
419 warranties of merchantability and fitness for a particular purpose.
420 The entire risk as to the quality and performance of lsof is with
421 you. Should lsof prove defective, you assume the cost of all
422 necessary servicing, repair, or correction.
428 Now that the obligatory disclaimer is out of the way, let me hasten
429 to add that I accept lsof bug reports and try hard to respond to
430 them. I will also consider and discuss requests for new features,
431 ports to new dialects, or ports to new OS versions.
433 PLEASE DON'T SEND A BUG REPORT ABOUT LSOF TO THE UNIX DIALECT
436 At worst such a bug report will confuse the vendor; at best, the
437 vendor will forward the bug report to me.
439 Please send all bug reports, requests, etc. to me via email at
443 The lsof-l Mailing List
444 =======================
446 Information about lsof, including notices about the availability
447 of new revisions, may be found in mailings of the lsof-l listserv.
448 For more information about it, including instructions on how to
449 subscribe, read the 00LSOF-L file of the lsof distribution.
452 Version 3 Release Notes
453 =======================
455 See 00DIST in the last lsof 3 revision 3.88, for its complete
456 set of release notes. Lsof revision 3.88 may be found at:
458 ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/OLD
461 This is the first official release of lsof 3.
465 3.88 February 17, 1997
467 +======================================+
468 | This is the last version 3 revision. |
469 +======================================+
471 Added documentation files -- 00.README.FIRST[_<version>]
472 and 00RELEASE.SUMMARY_<version> -- to the distribution.
475 What's new in Version 4
476 =======================
478 The main goal of version 4 was to eliminate the confusing common/
479 fragment source file technique. Changing the version number also
480 provided an opportunity to restart the numbering, which at 3.88
481 had risen to a large value.
483 The sources that appeared in the dialects/common subdirectory of
484 version 3 in fragment files have been incorporated into the version
485 4 liblsof.a library as *.c files. This results in significant
486 changes to many source files, scripts, and Makefiles of all dialect
487 versions. It allows elimination of some source files -- ddev.c,
488 dfile.c, dmnt.c -- for dialects now obtaining functions from
489 liblsof.a that formerly came from making dialect source files by
490 combining fragment files.
492 The version 4 liblsof.a sources are stored in the lib/ subdirectory
493 of the main lsof directory. The liblsof.a functions are activated
494 and conditioned in their source files by values #define'd in the
495 dialect dlsof.h and machine.h header files.
497 Dialects that provide a private version of a library function refrain
498 from #define'ing the symbol that would activate the library function
502 Version 4 Release Notes
503 =======================
505 4.0 February 24, 1997
507 +====================================+
508 | This is the first lsof 4 revision. |
509 +====================================+
511 Reorganized sources: eliminated code fragment files
512 and created a library in their place. Modified or
513 deleted many dialect source and header files.
514 Changed documentation accordingly.
516 Added a warning to sgi/Makefile and 00FAQ that advises
517 against using the IRIX C compiler -n32 option when
518 compiling lsof. Thanks go to Peter Ilieve
519 <peter@memex.co.uk> for bringing this to my attention.
521 Dropped IRIX 5.2 in mid-stream, because my 5.2 test
522 system was upgraded to 5.3.
525 Added TFS support for Pyramid dialects.
527 Added test to Configure and to the IRIX dnode.c
528 for the different cnode struct that appears in
529 <cachefs/cachefs_fs.h> on the 6.2 IMPACT distribution.
530 Heddy Boubaker <boubaker@amfou.cenatls.cena.dgac.fr>
531 alerted me to the cnode change and helped test this
534 Shut down the lsof child process before doing a -r
535 sleep(). A comment from Dan Mercer <dam@mmm.com>
540 Based on a report from Pasi Kaara <Pasi.Kaara@atk.tpo.fi>,
541 disabled HP-UX CCIT support in lsof for HP-UX
542 versions 10 and above. Pasi's report also led to
543 changes in the HP-UX machine.h to support use of
544 gcc to compile lsof for HP-UX 10.20 and warnings
545 against using `cc -Aa` or `gcc -ansi` to compile
546 lsof under HP-UX 10.x.
548 With help from Richard Allen <ra@hp.is> taught
549 HP-UX 10.x lsof to name file systems better by
550 using the virtual file system device number. Elias
551 Halldor Agustsson <elias@rhi.hi.is> provided a test
554 Changed NEXTSTEP and UNIXWARE Makefiles to use
555 safer quoting when generating version.h. The change
556 was suggested by Bob Farmer <ucs_brf@unx1.shsu.edu>.
558 Added SHELL=/bin/sh string to all Makefiles.
560 Added support for Linux 2.1.28 on a test system,
561 kindly provided by Jonathan Sergent <sergent@purdue.edu>.
562 Configure tests the Linux 2.1.x's C library lseek()
563 function for proper handling of kernel offsets.
564 If lseek() appears suspect, Configure activates
565 the use of a private lseek() function. Changed
566 the private nlist() function to nlist_private()
567 and taught it to use the query_module() syscall in
568 place of the deprecated get_kernel_syms() one.
569 Added rudimentary AX.25 support for Pierfrancesco
570 Caci <ik5pvx@infogroup.it> who helped test it.
571 Updated the old get_kernel_syms() code to recognize
572 and skip module name entries.
574 Prompted by Marty Leisner <leisner@sdsp.mc.xerox.com>,
575 eased the requirement that service name lookup for
576 the -i option be accompanied by a protocol name. The
577 name is not needed if both TCP and UDP names yield the
580 Added xusers.awk script from Dan Mercer <damercer@mmm.com>
581 to the distribution scripts/ subdirectory.
583 Changed Configure script to use LSOF_VERS for all
584 UNIX dialect version numbers and to pass LSOF_VERS
585 to the dialect Mksrc functions. Also added the
586 ability for a dialect stanza to declare a different
587 dialect Makefile source. Modified dialect Mksrc
588 files -- e.g., linux and sun -- accordingly.
590 Added support for BSD/OS 3.0 with help from Jim
591 Reid <jim@mpn.cp.philips.com>. Terry Kennedy
592 <TERRY@spcvxa.spc.edu> kindly provided a test
593 system. During the port corrected a bug that
594 prevented proper handling of revoked files.
597 At the suggestion of Dan Mercer <damercer@mmm.com>,
598 made HP-UX building of lsof aware of differences
599 between the HP-UX bundled and unbundled C compilers.
601 Added the ability for the lsof builder to define the
602 default warning message issuance state. By default the
603 issuance of warning messages is disabled; defining
604 WARNINGSTATE in machine.h disables it. The Customize
605 script was updated to handle WARNINGSTATE. Dan Mercer
608 Eliminated compiler complaint about improperly cast
609 get_Nl_value() argument in ncache_load() in lib/rnch.c.
611 Corrected zeromem() argument error in SCO dproc.c.
612 Sped up parent directory cache lookup slightly.
614 Updated for PTX 4.4, including additional VxFS (EFS)
618 At the suggestion of Bela Lubkin <belal@sco.COM>
619 changed device cache handling to be more tolerant
620 of a device cache file whose [cm]times are older
621 than the ones on /dev or /devices. The change
622 required adding information to Solaris device cache
623 file clone lines, so the first time lsof 4.04 is
624 run under Solaris it will complain about a bad
625 cached clone device in a previous device cache
626 file, then regenerate it.
628 Added boot file path detection for SCO OSR 5 and
629 above, based on information supplied by Bela.
631 Fixed two bugs in DEC OSF/1 lsof -- an error in
632 reporting locks and a missing continue statement
633 in readdev() after a failure to open a directory.
634 Jan Ole Suhr <josuhr@informatik.tu-clausthal.de>
635 reported the second bug and supplied a fix.
637 Fixed XFS problems with IRIX 6.2 by abandoning the
638 idea that SGI will distribute XFS header files and
639 defining an lsof-private xfs_inode structure. John
640 Paul Morrison <John.Paul.Morrison@MultiActive.com>
641 helped develop and test the 5.3 definition. John
642 R. Vanderpool <fish@daacdev1.gsfc.nasa.gov> helped
643 develop and test the 6.2 definition.
645 Remove obsolete comments about common/*.frag files.
647 Updated Linux lsof for Linux version 2.1.35.
650 Supplement Regenerated the 4.04 distribution to correct a non-
651 device-cache #define misplacement in the Solaris and
652 SunOS dlsof.h. Alexandre Oliva <oliva@dcc.unicamp.br>
653 reported the problem.
656 Corrected an error in 00DCACHE.
658 Made sure SCO /etc/ps/booted.systems is closed.
660 Based on an observation by Bela Lubkin <belal@sco.COM>
661 that the lsof child had needless file descriptors
662 open, closed all but the open pipes between the
663 lsof parent and child.
665 Decommissioned CDC EP/IX support; I no longer have a
668 Based on a suggestion from Patrick Connor
669 <connor@phreak.csd.sgi.com>, added -xansi to CFLAGS
670 for IRIX 5.3 and 6.[234].
672 Also at Patrick's suggestion changed Configure to
673 propagate exact SunOS 4.1.x version to the main
674 and library Makefiles. This allowed the sunos413
675 and sunos413cc Configure abbreviations to be
676 shortened to sunos and sunoscc.
678 Updated obsolete argument uses (-H changed to -n)
679 in count_pf.perl* and watch_a_file.perl scripts.
681 Adjusted Solaris 2.6 lsof for Beta_Update with tips
682 from Casper Dik <casper@holland.Sun.COM>.
684 Fixed a Solaris 2.4 TCP address reporting bug.
687 Added a step to the Makefile clean rules that does
688 a make clean in the lib subdirectory; suggested by
689 Casper Dik <casper@holland.Sun.COM>. (Configure's
690 -clean argument already did this.)
692 Fixed an incorrect awk argument in the sunos*)
693 Configure stanza, reported by Alexandre Oliva
694 <oliva@dcc.unicamp.br>.
696 Added CD9660 (aka ISO) file system support to
697 FreeBSD, NetBSD, and OpenBSD with mods and help
698 from Kenneth Stailey <kstailey@disclosure.com>.
699 (BSDI already had CD9660 support.) While at it,
700 added file descriptor system support to BSDI and
703 Added /kern file system support to OpenBSD. The
704 support wasn't extended to BSDI, FreeBSD, or NetBSD,
705 because it requires Kenneth Stailey's changes to
706 /sys/miscfs/kernfs/kernfs.h.
708 Updated IRIX 6.3 support after getting access to
709 a test system, provided by John Paul Morrison
710 <John.Paul.Morrison@MultiActive.com>. Improved
711 the handling of IRIX 5.1 and greater FIFOs.
714 Based on AIX problem reports from David Capshaw
715 <David.Capshaw@SEMATECH.Org>, changed the aix*
716 Configure script stanza to avoid -bnolibpath for
717 gcc (which the GNU loader doesn't grok) and AIX
718 below 4.1.4 (where -bnolibpath hasn't been tested
719 or is known to be unimplemented), and to refuse to
720 use gcc for compiling lsof in AIX versions below
721 4.1 (because of possible structure alignment
722 problems). Updated 00FAQ appropriately.
724 Added OpenBSD support for EXT2FS. This support
725 has yet to be tested.
727 Tested lsof under OpenBSD 2.1.
729 Activated /kern file system support for NetBSD when
730 Configure senses that /sys/miscfs/kernfs/kernfs.h
731 defines the kern_target structure. This support
732 has not been tested under NetBSD, although it has
733 been tested under OpenBSD.
735 Made some simple changes to the BSDI machine.h,
736 suggested by Jeffrey C. Honig <jch@bsdi.com>.
738 Improved handling of alternate dialect Configure
739 abbreviations -- aix and aixgcc, hpux and hpuxgcc,
740 solaris and solariscc, and sunos and sunoscc.
743 Cleaned up dialect Makefile's, staring with a suggestion
744 from Christopher Schanzle <chris@cam.nist.gov>.
746 Improved Configure's -clean processing.
748 Corrected bugs in Solaris lock reporting.
750 Changed NetBSD Configure stanza to put -I/usr/include
754 Adjusted for latest FreeBSD 3.0 release. This
755 required adding a new kernel name cache module for
756 reading BSD-form hashed kernel name cache entries,
757 rnmh.c, to the lsof library, and adding a #define
758 to each machine.h to select it.
760 Activated rnmh.c for BSDI 2.1, BSDI 3.0, NetBSD
761 1.2, and OpenBSD 2.1.
764 Adjusted for Linux 2.1.x (x > 35) kernels with
765 hashed task structure pointers. Marty Leisner
766 <leisner@sdsp.mc.xerox.com> and Jonathan Sergent
767 <sergent@io.com> tested the adjustment.
769 Replaced readdev() stat() calls with lstat() to
770 reduce device table and cache entries with the same
771 device number and inode values. Added code to
772 remove all remaining duplicates. This fixes a
773 Linux problem reported by Jonathan Sergent and
774 makes device node name output predictable.
776 Corrected a bug in UnixWare stream file handling
777 that prevented searching for the stream file by
778 its associated character device name.
780 Added Pyramid code to determine Reliant UNIX clone
781 major device number differently from that of DC/OSx.
784 Changed Configure to sense that the PTX inp_[fl]addr
785 members of the inpcb structure of <netinet/in_pcb.h>
786 have a struct type and set HASINADDRSTR for use in
787 PTX dnode.c and dsock.c tests.
789 Changed PTX version 4.1.4 tests to use 4.1.3 instead.
790 Carson Wilson <carson@mcs.com> reported the need
791 to do this and tested the change.
793 Fixed a block device table indexing bug in lib/rdev.c,
794 reported by Carson Wilson. The same bug was squashed
797 Added code to the Pyramid Reliant UNIX kread()
798 function to compensate for an address boundary
799 error in the kernel's /dev/kmem driver.
801 Verified that lsof compiles and works under AIX
802 4.2.1. Added an AIX test for the presence of NFS
803 header files, defined HAS_NFS and adjusted AIX
804 dialect sources accordingly.
806 Based on a suggestion from Gaylord Holder
807 <holder@phy.ucsf.EDU>, added DEC OSF/1 code to
808 auto-detect the booted file, whence kernel symbol
809 addresses are obtained.
812 Corrected a device number sign extension problem
813 in the reading and writing of device cache file.
814 The problem was reported by Bela Lubkin <belal@sco.com>
815 and he suggested a fix.
817 Fixed an SCO stream device lookup problem. The
818 report and solution came from Bela Lubkin
820 Enhanced the Configure script to enable cross-
821 configuration of lsof, based on suggestions from
822 Marty Leisner <leisner@sdsp.mc.xerox.com>. A new
823 documentation file, 00XCONFIG, describes the process.
825 Made Pyramid OBJFS support conditional on the
826 presence of supporting header files. Corrected
827 the Pyramid MkKernOpts script so it generates the
828 necessary -D's for the Nile/Jolt architecture.
829 Richard Coley <rcoley@pyra.co.uk> helped.
831 Added another IRIX xfs_inode variant for 6.2, 32
832 bits, no XFS rollup patch.
834 Tested under UnixWare 2.1.2.
837 Taught Pyramid lsof to grok ttyfs vnodes with help
838 from Richard Coley <rcoley@pyra.co.uk>. Fixed some
839 minor bugs in Pyramid FIFO reporting. Eliminated
840 use of the Pyramid UCB compatibility library at
841 Richard's suggestion.
843 Eliminated reporting of "strange" inode numbers
844 for SCO OSR 3.2v5.0.x HPPS files with help from
845 Bela Lubkin <belal@sco.com>
847 Modified port to service name lookup to use a small
848 number of getservbyport() calls before reading the
849 entire map with getservent(). Changed port reporting
850 to represent a zero as `*' to be consistent with
851 other prt number reporting tools like netstat.
852 Casper Dik <casper@holland.Sun.COM> suggested these
853 changes -- the getserv*() one to improve performance
854 for large NIS service name maps.
856 Changed all readdev() functions to make the absence
857 of block devices a warning instead of a fatal error
858 after Brian Redman <ber@ms.com> reported his IRIX
859 6.4 system had no block devices. (It really did
860 have block devices, but readdev()'s lstat() use
861 caused it to miss them in a directory symbolically
862 linked from /dev/dsk->/hw/disk.) Fixed Brian's
863 real problem by changing the IRIX readdev() to use
864 stat() on /dev nodes if a Configure test shows /hw
865 is readable. Extended the potential to do the same
866 to all readdev() functions.
868 For consistency and convenience changed some
869 Configure abbreviations and dialect subdirectory
870 names: "decosf" abbreviation and "osf" dialect
871 subdirectory name to "du"; "netbsd" dialect
872 subdirectory name to "n+obsd"; "next3" abbreviation
873 and "next" dialect subdirectory name to "ns"; "sco"
874 abbreviation and dialect subdirectory name to "osr";
875 "sgi" dialect subdirectory name to "irix"; and
876 "unixware" abbreviation and dialect subdirectory
879 Added #if/#endif clauses to the AIX rmdupdev()
880 function to avoid clone processing for AIX versions
881 less than 4.1.4. The problem was reported by Toralf
882 Foerster <toralf.foerster@io-warnemuende.de>, who
883 supplied corrective code.
885 Added support for new style NetBSD inode with i_ffs
886 and i_e2fs union members.
888 Improved Configure and 00FAQ information on Digital
889 UNIX configuration subdirectory with suggestions
890 from Brad Krebs <brad@EECS.Berkeley.EDU>.
893 Reorganized the Solaris handling of the inode
894 structure header file, ufs_inode.h, to eliminate
895 VxFS structure definition conflicts for Solaris
896 2.4, based on information from Greg Earle
897 <earle@netbsd4me.jpl.nasa.gov>.
899 Cleaned up some typos and confusion in Configure's
900 help output, based on comments from Bela Lubkin
903 Added a 00DIALECTS file, containing UNIX dialect
904 version numbers, that can be used by Configure and
908 Aligned `Configure -help` output better. Removed
909 Configure's 2.6 Beta test adjustments.
911 Added improved Solaris VxFS configuration and
912 handling, based on information from Greg Earle
913 <earle@netbsd4me.jpl.nasa.gov>.
915 Added socket state -- TCO or TPI -- for socket
916 files at the suggestion of Ian Fitchet
917 <I.D.Fitchet@ftel.co.uk>.
919 4.16 September 25, 1997
920 Added reporting of TCP/TPI queue lengths and window
921 sizes ala netstat to NAME column. Added -T option
922 to select or de-select TCP/TPI info reporting.
923 (Window sizes are only reported for Solaris.)
924 Fixed anomalies along the way in SIZE/OFF processing
927 Fixed service name argument processor to allow
928 minus signs as part of the name. Consequently this
929 disallows names with embedded minus signs from
930 being specified as the start of a range.
932 Added 00FAQ entries explaining why lsof won't find
933 a file being edited with vi, why window sizes aren't
934 reported for all dialects, and what the "no more
935 information" message means.
937 Forced Pyramid CC to be /usr/ccs/bin/cc to avoid
938 accidental use of the BSD variant in /usr/ucb/cc.
940 Added support for Linux glibc2, including a Configure
941 test; cross-Configure support (00XCONFIG); and much
942 unfortunate and risky sleight-of-hand in lsof Linux
943 dialect header and source files, forced upon lsof
944 by incompatibilities between Linux kernel and glibc2
947 Included in scripts/identd.perl5 a Perl 5 implementation
948 of an identd server, using lsof, provided by Kapil
949 Chowksey <kchowksey@hss.hns.com>.
951 Updated IRIX 6.4 xfs_inode guess.
953 4.17 October 14, 1997
954 Added -V option for verbose search result reporting.
955 Verbose reports are prepared for failure to locate
956 file names, command names, Internet addresses or
957 files, login names, NFS files, PIDs, PGIDs, and UIDs.
959 Augmented Linux NFS file test to cope with kernels
960 whose NFS code is in a loadable module. Need for
961 the test was pointed out by Jonathan Sergent
962 <sergent@csociety.ecn.purdue.edu>. The change
963 required that Linux have private dmnt.c source,
965 Completed a Linux 2.1.57 port on a system provided
968 4.18 October 25, 1997
969 Eliminated memory leaks in alloc_lfile(), lkup_port(),
970 and NEXTSTEP's process_text() function.
972 Added recognition of OpenBSD 2.2 in Configure,
973 supplied by Kenneth Stailey <kstailey@disclosure.com>.
975 Consolidated print_file() functions to use the one
976 in lib/prtf.c. Made it configurable and changed
977 it to size print columns dynamically.
981 WITH DYNAMICALLY SIZED PRINT COLUMNS LSOF 4.18
982 PRODUCES OUTPUT SIGNIFICANTLY DIFFERENT FROM THAT
983 OF PREVIOUS REVISIONS. LINES ARE GENERALLY SHORTER
984 AND THERE IS GENERALLY LESS BLANK SPACE BETWEEN
985 COLUMNS AND THE ITEMS IN THEM. THERE ARE NO LONGER
986 ANY SPACES BETWEEN DEVICE NUMBER ELEMENTS, ONLY
991 Added special types and print specification modifiers
992 for file size and offset to handle UNIX dialects
993 with 64 bit sizes and offsets. Paul Eggert
994 <eggert@twinsun.com> reported the need for this
997 With Paul Eggert's help picked lint from the lsof
998 library, the main level lsof sources, and the Sun
1001 Added documentation, including the file 00LSOF-L,
1002 about the lsof-l LISTSERV.
1004 Added support for Reliant UNIX on the RM600. Bob
1005 Passarella <rmpassar@pyramid.com> supplied the
1006 changes. Kevin Smith <kevin@pyramid.com> helped
1007 arrange test systems. While incorporating Bob's
1008 changes, modified lib/rnch.c to handle kernel ncache
1009 structs whose name is accessed via a char *, rather
1010 than in a char array.
1012 Changed #include order of <sys/socketvar.h> for
1013 Solaris 2.x. W. Richard Stevens <rstevens@kohala.com>
1014 pointed out the need to do this.
1016 4.19 October 30, 1997
1017 Changed Pyramid Reliant RM600 proc scan to skip
1018 SSYS (p_flag) processes, since they don't seem to
1019 have a readable u_cdir vnode.
1021 Enabled Pyramid Reliant UNIX kread() work-around
1022 for DC/OSx, too, since its read(/dev/kmem) kernel
1023 driver seems to share the page boundary bug this
1024 work-around circumvents.
1026 Changed SzOffFtm_d and SzOffFtm_dv (new formats at
1027 4.18 to print size and offset) from signed to
1028 unsigned. Setting them signed at 4.18 was an
1031 Plugged a memory leak that caused the loss of 130
1032 bytes per repeat-mode pass. Fixed it with a simple
1033 work-around in main(). Lionel Cons <Lionel.Cons@cern.ch>
1036 4.20 November 11, 1997
1037 Tested under BSDI 3.1.
1039 Added support for Reliant UNIX Mesh IPC files with
1040 help from Billy Ho <bho@pyramid.com>.
1042 Added support to Digital UNIX lsof that uses the
1043 libmsfs tag_to_path() function (when it exists) to
1044 look up AdvFS path names. The idea and sample code
1045 came from Dean Brock <brock@cs.unca.edu>. Converted
1046 Dean's code into more general purpose support for
1047 private name cache lookups via the HASPRIVNMCACHE
1048 #define in the dialect machine.h file and code
1049 conditional on it in the printname() function.
1051 Taught Digital UNIX lsof to recognize NFS3 file
1052 systems. Corrected Digital UNIX lsof DEVICE column
1055 4.21 December 1, 1997
1056 Squashed bug, introduced at revision 4.18, that
1057 resulted in double reporting of each selected PID
1058 when terse mode (-t) was specified.
1060 Corrected minor bug, also introduced at 4.18, that
1061 might cause an extra print_proc() pass when one
1062 PID has been specified.
1064 Added -R to lsof options in scripts/idrlogin.perl*.
1065 The option should have been there -- it was supposed
1066 to be mandatory for PGID reporting -- but a bug,
1067 corrected in revision 4.18, previously made -R
1070 Enabled configuring for BSDI BSD/OS 4.0 per a
1071 suggestion from Jeff Honig <jch@bsdi.com>.
1073 Enabled replacement of scoff_t with off64_t (scoff_t
1074 is used to type r_size and r_localsize in the rnode
1075 struct) for IRIX 5.3 systems that have the NFS
1076 kernel rollup patch (1477). This compensates for
1077 SGI's failure to distribute an updated <sys/fs/rnode.h>
1080 Validated under Linux 2.0.3[12], Linux 2.1.64, and
1083 Added FreeBSD root directory reporting, courtesy
1084 of Dan Nelson <dnelson@emsphone.com>.
1086 4.22 December 15, 1997
1087 Made adjustments for Linux 2.1.7[02].
1089 Improved NAME information for Linux UNIX domain
1092 Added option +|-M to control the reporting of
1093 portmapper registration information in square
1094 brackets after the TCP or UDP port or service name.
1095 Kenneth Stailey <kstailey@disclosure.com> suggested
1096 the feature and provided sample code from OpenBSD.
1097 Reporting is disabled by default in the distribution
1098 and may be enabled with +M; if lsof is compiled
1099 with HASPMAPENABLED (e.g., from machine.h), reporting
1100 will be enabled by default and can be disabled with
1103 Changed the -w option to +|-w to match the syntax
1104 of the +|-M option and to eliminate any options
1105 that flip meaning when a symbol is defined at
1106 compile time. For both +|-M and +|-w, specifying
1107 `-' when the default state is disabled or specifying
1108 `+' when the default state is enabled causes no
1111 !!!WARNING The -w option has changed in lsof 4.22. WARNING!!!
1113 Made the +|- prefix legal for most options, but
1114 didn't document it in the man page or help panel.
1115 Most options that disable something -- e.g., -b,
1116 -C, -n, -P -- now disable when the prefix is `-'
1117 and enable when it is `+'. Since the states these
1118 options disable are enabled by default, I chose to
1119 avoid documentation complexity and confusion by
1120 not mentioning that they can be used with the `+'
1123 Condensed the help panel.
1125 Made sure Digital UNIX Configure stanza puts normal
1126 include path (e.g., /usr/include) before system
1129 Added IPX socket information reporting to Linux
1130 with help from Jonathan Sergent <sergent@purdue.edu>.
1132 4.23 January 16, 1998
1133 Fixed conflict arising from the quondam replacement
1134 of the Sun Solaris <netdb.h> with a BIND/BSD version.
1136 With help from Jonathan Sergent <sergent@purdue.edu>
1137 developed a /proc file system based Linux lsof.
1138 It needs some Linux 2.1.x release to work -- I'm
1139 not sure which, but I tested under 2.1.72, 2.1.76,
1140 and 2.1.79. The Configure script selects special
1141 sources for this lsof, so the full lsof distribution
1142 now contains both /dev/kmem and /proc based sources
1143 for Linux lsof. An optional kernel mod, written
1144 by Jonathan, enhances the /proc-based lsof ability
1145 to recognize IPX socket files. Reorganized and
1146 augmented the Linux sections in 00FAQ to explain
1147 the two types of Linux lsof.
1149 Defined DOSTAT_FUNCTION for dostat() in misc.c to
1150 select the function, stat() or lstat(), it will use.
1151 DOSTAT_FUNCTION is normally undefined, defaults to
1152 lstat(), and is only defined for the /proc-based
1153 Linux lsof in its dlsof.h.
1155 Made conditional on the presence of IRIX 6.4 XFS
1156 rollup patch #6 an XFS node change introduced in
1157 revision 4.16. Identified the patch with help
1158 from John R. Vanderpool <fish@daacdev1.gsfc.nasa.gov>.
1160 Added NFS node compensation for NetBSD 1.3. The
1161 code and suggestion for it was supplied by Jean-Luc
1162 Richier <richier@imag.fr>.
1164 Added diagnostic messages to the /dev/kmem-based
1165 Linux Mksrc script to report errors during the
1166 construction of the kernel name cache header file,
1167 kncache.h. Added 00FAQ information on kncache.h.
1169 Added a new Linux test host, running 2.0.33 and
1170 GlibC, provided by Steve Logue <stevel@mail.cdsnet.net>.
1172 Ported to PTX 4.1.3 and 4.4.2. Adjusted lib/rnch.c
1173 for 4.4.2 to allow customization f additional ncache
1174 struct element names.
1176 4.24 January 28, 1998
1177 Changed /proc-based Linux lsof offset test to use "/"
1178 instead of "/etc/passwd".
1180 To assist Jim Mintha <jim@geog.ubc.ca> with the
1181 packaging of lsof for Debian Linux, added a
1182 DEBIAN_LINUX_LSOF #define to trigger the activation
1183 of special system map file location code in the
1184 /dev/kmem-based dproc.c.
1186 Applied modification to dialects/bsdi/dlsof.h from
1187 Ingimar Robertson <iar@skyrr.is>, enabling lsof to
1188 compile for BSDI BSD/OS 2.0.
1190 Corrected a documentation error in 00DCACHE, pointed
1191 out by Thomas Anders <anders@hmi.de>. The error was
1192 created when the -V option was added at lsof 4.17.
1194 Made IRIX 5.3 through 6.3 lsof aware of IRIX SCSI
1195 tape devices (e.g., /dev/tape). Dave Olson of SGI
1196 and Randolph J. Herber of FNAL provided valuable
1197 advice, and Igor Schein <ischein@air-boston.com>
1200 Added a machine.h symbol (NEVER_HASDCACHE) that
1201 prevents Customize from offering to change HASDCACHE.
1202 The symbol may appear anywhere in machine.h --
1203 e.g., in a comment. Included the symbol in a
1204 comment of the HASDCACHE section of the /proc-based
1205 Linux lsof machine.h, and accompanied it with
1206 warnings against #define'ing HASDCACHE. Did the
1207 same thing for WARNDEVACCESS (NEVER_WARNDEVACCESS
1208 is the suppressant.)
1210 4.25 February 7, 1998
1211 Corrected an IRIX mis-cast of file offset (position).
1212 Igor Schein <ischein@air-boston.com> reported the
1213 problem. This was offered as a patch to 4.24.
1214 Picked some lint Igor pointed out.
1216 At Igor's suggestion added an optional decimal
1217 digit size argument to the -o option. This argument
1218 specifies how many file offset decimal digits can
1219 follow "0t" before lsof switches to a "0x..." form.
1220 The argument size specification doesn't count the
1221 two characters of the "0t". A size of 0 means
1222 unlimited. The default is OFFDECDIG (8), preserving
1223 compatibility with existing lsof output; it can be
1224 changed by the lsof builder. When size is specified
1225 with -o it does not force offset display; -o without
1226 a size still must be used to do that.
1228 Added an IRIX 6.2, 32 bit system, XFS node patch,
1229 courtesy of Ulrich Bernhard <rzubu@rzu.unizh.ch>.
1231 For my own convenience enabled Configure to use
1232 /usr/local/bin/gcc for NEXTSTEP. This allows
1233 circumvention of a gcc 2.8.0 ranlib problem on
1234 my test 3.1 `040 cube.
1236 Added flags recommended by the RISC/os and Ultrix
1237 compilers for the updated (and longer) main.c.
1239 Updated FreeBSD cd9660_node.h Configure test.
1241 4.26 February 17, 1998
1242 Added shared process group processing for IRIX 5.3,
1243 and IRIX 6.1 and above, based on investigation of
1244 a bug report from Igor Schein <ischein@air-boston.com>.
1245 Igor helped test this addition.
1247 Improved handling of file system name arguments.
1248 It's now done in a manner similar to fuser. The
1249 -f argument forces path names to be considered as
1250 simple files, rather than as file system names.
1251 The +f flag forces them to be considered as file
1252 system names. Normally path arguments are considered
1253 file system names when they match a mounted-on
1254 directory in the system's mount table, or when they
1255 match a mounted file system's block device. Igor
1256 Schein helped test this change.
1258 Igor also suggests that the proper compilation of
1259 the IRIX 6.4 proc structure after patch 2536 has
1260 been installed may need -DPIOMEMOPS. So lsof's
1261 MkKernOpts script was updated to propagate that
1262 option from CCOPTS in /var/sysgen/system/irix.sm,
1263 even though patch 2536 doesn't add -DPIOMEMOPS to
1264 it. Added a 00FAQ item on this patch.
1266 Added a fatal warning message about names forced
1267 to be file system names (with +f) that have no
1268 match in the mount table.
1270 Improved the -V message for files and file systems
1271 for which no open files were found. Added reporting
1272 of /proc file and file system search failures.
1274 Did some code reorganization to combine the multiple
1275 ck_file_arg() functions into one. Moved the new
1276 function from the library to the top level and put
1277 it in arg.c; moved the usage function from arg.c
1278 to a new top-level source file, usage.c, to balance
1279 top-level source file size. The new usage.c depends
1280 on version.h; arg.c no longer does.
1282 Added flag recommended by the DU compiler for the
1283 updated (and longer) main.c.
1286 At the request of Igor Schein <ischein@air-boston.com>
1287 added a conditional repeat mode option, using the
1288 `+' prefix to the `r' option. +r operates as does
1289 -r with the exception that it exits the first time
1290 no open files have been listed during a cycle.
1291 The exit code will be zero when any open files have
1292 been listed; one, if none were ever listed.
1294 Ported lsof to HP-UX 11.0 with the help of Richard
1295 Allen. This port hasn't been tested on a 64 bit
1296 kernel; I'm sure it won't work there without more
1297 mods. It may not work on PA 2 architectures; I've
1298 only tested it under PA 1 and a separate, busy
1299 tester reported PA 2 problems that I've been unable
1302 In anticipation of getting access to a 64 bit HP-UX
1303 kernel and the pending start of the Solaris 2.7
1304 Beta test (It will have 64 bit kernel addressing.),
1305 started adding support for 64 bit kernel pointers.
1306 This includes: ubiquitous use of the KA_T cast
1307 for kernel pointers; a format to print them,
1308 KA_T_FMT_X; a function to print them, print_kptr();
1309 and modifications to most kernel-related functions
1310 -- e.g., process_file(), process_node(),
1311 process_socket(), readvfs() -- to process kernel
1312 addresses as KA_T types.
1314 Fixed minor bug in handling path name arguments
1315 that end with a `/'.
1317 Removed support for RISC/os; its test system is no
1320 Made modifications to insure that lsof output
1321 doesn't contain non-printable characters. All such
1322 characters are now printed in the printf form
1323 "\x%02x". Several new common functions were
1324 installed in misc.c to support "safe" printing.
1325 This second major modification in 4.27 to common
1326 and dialect code could have introduced bugs not
1330 Refined unprintable format to use \b, \f, \r, \n,
1331 \t, and ^* (for CTRL) forms. Corrected omission
1332 of safestrprt() use for field output command name.
1333 These changes were offered as patches to 4.27.
1335 Made space an unprintable character (\x20) in the
1336 COMMAND column; printable elsewhere, including the
1337 NAME column, field output, and error messages.
1339 Made sure FD column is parseable as a single entity
1340 -- i.e., has no embedded space. Thus, if the access
1341 mode is unknown but there is a known lock mode, (a
1342 very rare case) the access mode will be printed as
1345 Picked lint with gcc 2.8.0 under Solaris 2.6.
1347 With the help of Dave Olson of SGI identified a
1348 proc struct element that should have been added to
1349 <sys/proc.h> by IRIX 6.4 patch 2536. Added a
1350 work-around for it to the lsof Configure script.
1351 Igor Schein <ischein@air-boston.com> identified
1352 that the patch caused a proc structure length
1353 complaint from lsof. Removed an obsolete 00FAQ
1354 item on the patch, installed at lsof 4.26, explaining
1355 that no solution was yet available.
1357 Added a 00FAQ item on how BIND installs its own
1358 header files, including <netdb.h>, which may cause
1359 the rpcent struct definition to vanish. Solaris
1360 has an automatic lsof work-around, but that hasn't
1361 been (and probably can't be) propagated to all
1362 dialects supported by lsof. The 00FAQ item recommends
1363 re-installation of the vendor header files that
1364 BIND has replaced. (Others include <rpcent.h>,
1365 <sys/bitypes.h>, and <sys/ctypes.h>.)
1370 Corrected bug in Internet address matching. The
1371 matching formerly stopped if the foreign address
1372 matched, thus failing to check the local address
1373 for a match. That led to a possible false "Internet
1374 address not located" warning (i.e., in response to
1375 -V) about the local address, when both foreign and
1376 local addresses were specified with -i. This
1377 correction was offered as a patch to 4.28.
1379 Changed readmnt() usage in an attempt to defer
1380 mount readlink() and stat() delays until they are
1383 Corrected two bugs in the Digital UNIX readdev()
1384 function. Made the correction available as a patch
1385 to 4.28 and regenerated the 4.28 DU binaries.
1387 Added a missing argument to a print-kptr() call in
1388 the HP-UX dsock.c. The missing argument causes a
1389 fatal gcc error. The problem was reported by Eyal
1390 Shaynis <eyal.shaynis@telrad.co.il>. The fix was
1391 offered as a 4.28 patch.
1393 Adjusted for Digital UNIX 4.0D; the spec_node
1394 structure is now defined in <sys/specdev.h>. Kris
1395 Chandrasekhar <Kris.Chandrasekhar@digital.com>
1396 identified the need for the adjustment.
1398 Incorporated a bug fix from Brian McAllister
1399 <mcallister@mit.edu> to the DU readmnt() function.
1400 This fix was offered as a patch to 4.28.
1402 Added "safe" printing to a SunOS clone device error
1405 Corrected bug in tabling of Linux /proc-based lock
1408 Corrected bug in handling of SunOS TLI streams.
1409 Dan Farmer <zen@trouble.org> reported the problem.
1411 Added a Solaris 2.6 work-around to keep the BIND
1412 <sys/bitypes.h> from colliding with the Solaris
1415 Strengthened the Configure test for /proc-based
1416 Linux lsof, based on a report from Marty Leisner
1417 <leisner@sdsp.mc.xerox.com>.
1419 Tested on OpenBSD 2.3.
1421 Made AIX changes that allow use with 3.2.5. The
1422 changes were suggested and tested by Brett Hogden
1425 Added Solaris 2.6 AFS support. Disabled reporting
1426 of some node numbers for Solaris 2.5 and above open
1427 AFS files. The node number computation algorithms
1428 used for SunOS 4.1.x and Solaris less than 2.5 no
1429 longer always work under Solaris 2.5 and above.
1432 Corrected a pid structure member naming error for
1433 UnixWare < 2.1.2. The problem was reported by
1434 Richard van Meurs <vanmeurs.anva@atriserv.nl>. He
1435 supplied the correction. This was offered as a
1438 Had a report from Igor Schein <ischein@air-boston.com>
1439 that IRIX 6.4 patch 2839 is another SGI kernel
1440 patch, along with 2536, that changes the size of
1441 the proc structure in the kernel without changing
1442 the proc structure in <sys/proc.h>. Upon further
1443 investigation found that the effect of these patches
1444 on the proc structure is not consistent. Therefore,
1445 dropped the Configure patch test for IRIX 6.4 and
1446 made the code in irix/dproc.c slightly more tolerant
1447 of proc structure size differences for IRIX 6.4.
1448 Igor help test the change.
1450 Corrected Solaris >= 2.5 AFS inode number generation.
1451 Craig Everhart <Craig_Everhart@transarc.com> helped
1452 find the cause of the problem. This was offered as
1455 Refined the Linux /dev/kmem-based glibc evasion
1456 for the timeval structure to make it work with
1457 glibc version 2.0.7. This required defining a new
1458 global symbol, TIMEVAL_LSOF, default timeval, that
1459 the /dev/kmem-based Linux lsof can set to its
1460 private glibc timeval name, distinct from the kernel
1463 Added support for Alpha to the /dev/kmem-based
1464 Linux lsof. Alexandre Oliva <oliva@dcc.unicamp.br>
1465 provided a test system. Added an item to 00FAQ
1466 about lsof, the Alpha processor, and Linux.
1468 Added a 00FAQ item about lsof year 2000 compliance.
1469 Basically it says lsof is probably compliant,
1470 because its only date or time computations are done
1471 with time_t values, but I haven't done any specific
1472 Y2K validation. I don't have plans to do any.
1474 Added support for UnixWare 7. Chris Daniels
1475 <chrisd@dlpco.com> provided a test system and Don
1476 Draper <dond@sco.COM> provided technical information.
1477 Added BFS and SFS file system support to lsof for
1480 Updated Solaris VxFS support for VxFS 3.2.1. Greg
1481 Earle <earle@netbsd4me.jpl.nasa.gov> reported the
1482 need for the update. Greg and Roger Klorese
1483 <rogerk@veritas.com> provided technical information.
1484 Scott McClung <mcclung@primenet.com> tested.
1486 Changed IRIX XFS patch detection in anticipation of
1487 learning there are multiple XFS patches for IRIX 6.4
1488 that require different versions of the lsof-invented
1489 xfs_inode structure.
1492 Added a VxFS #if/#endif wrap to a section of the
1493 HP-UX dnode.c that wasn't properly protected. The
1494 problem was reported by Peter Klosky <PKlosky@bdm.com>.
1495 This was offered as a patch to 4.30.
1497 Added support for Solaris 2.7 (first Beta release).
1498 Mike Sullivan <Mike.Sullivan@Eng.Sun.COM> provided
1499 technical advice and helped test. Charles Stephens
1500 <cfs@jurassic.eng.Sun.COM> also helped test.
1502 Fixed bug in /proc-based Linux that caused it to
1503 access /proc/mounts excessively. Marty Leisner
1504 <leisner@sdsp.mc.xerox.com> provided a syscall
1505 trace that identified the bug. The fix was offered
1508 Adjusted the IRIX 6.4 private structure definition
1509 for the XFS node to accommodate patch 2970. Igor
1510 Schein <ischein@air-boston.com> identified the
1511 patch and the required adjustment.
1514 Corrected Solaris 2.7 code for reporting PCFS
1515 (floppy disk) node numbers. Casper Dik
1516 <casper@holland.sun.com> supplied the fix. The
1517 fix was offered as a patch to 4.31.
1519 Corrected a bug in conditional repeat mode handling
1520 pointed out by Igor Schein <ischein@air-boston.com>.
1521 This was offered as a patch to 4.31.
1523 Improved reporting of AIX open(/dev/memory device)
1526 Corrected a Solaris < 2.5 KA_T declaration error,
1527 pointed out by Robert Kiessling <robert@easynet.de>.
1528 Changed KA_T from a #define to a typedef for all
1529 dialects to prevent future problems of this kind.
1531 Changed the sample Perl 5 script big_brother.perl5
1532 to report a four digit year from localtime().
1534 Added support for AIX 4.3[.1]. Bill Pemberton
1535 <wfp5p@tigger.itc.virginia.edu> provided a test
1536 system. Andrew Kephart <akephart@austin.ibm.com>
1537 and Tom Weaver <tvweaver@austin.ibm.com> provided
1538 technical assistance. Niklas Edmundsson
1539 <nikke@ing.umu.se> did 4.3.1 testing.
1541 Added -qmaxmem option to CFLAGs for an AIX compilation
1542 with an xlc version 4.x compiler.
1544 Adjusted Linux socket handling for changes in the
1545 AX25 members of the sock struct. Richard Green
1546 <rtg@tir.com> pointed out the problem. Tested
1547 /dev/kmem-based lsof under Linux 2.0.34.
1550 Added generic IPv6 support to common lsof sources
1551 and specific IPv6 support to AIX sources. Andrew
1552 Kephart <akephart@austin.ibm.com> supplied the
1553 additions and helped with testing. Bill Pemberton
1554 <wfp5p@tigger.itc.virginia.edu> provided a test
1555 system. The modification affected sources for
1556 every dialect, whether it supports IPv6 or not, by
1557 changing the interfaces to the common Internet
1558 address function ent_inaddr().
1560 Added support for the NetBSD UVM virtual memory
1561 system. Paul Kranenburg <pk@cs.few.eur.nl> supplied
1564 Bracketed HP-UX 11 use of <sys/spinlock.h> with
1567 Corrected printing of PCB address in DEVICE column
1571 Updated 00FAQ to discuss TCP and UDP ports private
1572 to the AIX kernel and 00README to describe how ACLs
1573 can be used to give lsof permission to read the
1574 kernel memory devices. Add information to 00FAQ
1575 and 00README about other OpenBSD architectures
1576 where lsof is reported to compile and run. Added
1577 section to 00FAQ discussing how an incorrect loader
1578 path environment variable value can prevent lsof
1579 from loading correctly.
1581 Improved Solaris namefs and doorfs support so that
1582 it is now possible to search for an open VDOOR file
1583 by the path name of its fattached file system
1584 object. Igor Schein <igor@txc.com> requested the
1585 ability to do such a search. Even with the change,
1586 lsof can't always identify path names for open
1589 Also at Igor's request, improved reporting of
1590 information on open Solaris VCHR files that share
1591 a common vnode, and Solaris UNIX domain socket
1594 Corrected print_kptr() argument error in PTX dnode.c,
1595 reported by Mark Price <mprice@sequent.com>.
1596 Compensated for ncache element naming differences,
1597 introduced at PTX 4.4.2; Kurtis D. Rader
1598 <krader@sequent.com> reported the problem.
1600 Changed output column title from INODE to NODE to
1601 better reflect the column's contents of node IDs
1602 for more than just inodes.
1604 Improved Configuration and processing for Solaris
1605 AFS. Corrected AIX AFS 3.4 afs_rwlock_t simulation.
1607 Corrected a cast problem with two AIX knlist()
1608 calls, thus quieting an AIX 4.2.1 compiler argument
1609 type warning. Jon Champlin <champlin@us.ibm.com>
1610 reported the problem.
1612 Added support to most dialect versions (exception:
1613 /proc-based Linux) to warn when the identity of
1614 the kernel where lsof was compiled doesn't match
1615 the running identity. The warning can be suppressed
1616 with -w. Note: determining AIX state requires
1617 calling oslevel, a potentially slow operation.
1618 Jon Champlin <champlin@us.ibm.com> suggested this
1621 !!!! WARNING !!!! !!!! WARNING !!!! !!!! WARNING !!!!
1623 Those using the lsof cross-configuration capability
1624 (see 00XCONFIG), should be aware that the kernel
1625 identity test feature introduces two new basic
1626 cross configuration environment variables, LSOF_ARCH
1629 !!!! WARNING !!!! !!!! WARNING !!!! !!!! WARNING !!!!
1631 Identified a situation where a Solaris UNIX domain
1632 socket name is known and can be searched for by
1633 name; added the necessary code.
1636 Made the kernel identity check an option with the
1637 HASKERNIDCK #define in machine.h. Enabled altering
1638 of HASKERNIDCK with the Customize script. Added
1639 a clause to the help output that indicates the
1640 build-time HASKERNIDCK status.
1642 Added more information to the NAME column for
1643 Solaris UNIX domain sockets. Made them searchable
1644 by their clone device path name. Igor Schein
1645 <igor@txc.com> requested this.
1647 Completed the HP-UX 11 port with support for its
1648 optional 64 bit kernel. Rich Rauenzahn
1649 <rrauenza@cup.hp.com> provided a test system.
1650 Corrected errors with HP-UX 11 lock reporting and
1651 private kernel structure and type definitions.
1652 Added support for HP-UX NFS3 files.
1654 Limited mount table warnings -- e.g., when -b is
1655 used -- to one set per mount point.
1657 Fixed some mount table scanning and usage bugs,
1658 including one in Solaris, reported by Kjetil Torgrim
1659 Homme <kjetilho@ifi.uio.no>.
1662 Made corrections and additions to IPv6 support and
1663 to AF_ROUTE socket handling, supplied by Jean-Luc
1664 Richier <Jean-Luc.Richier@imag.fr>. Jean-Luc's
1665 additions provide IPv6 support for the Inria IPv6
1666 implementations on FreeBSD and NetBSD.
1668 Fixed two Solaris 2.5, 2.5.1, 2.6 and 2.7 TCP and
1669 UDP host name or IP address reporting bugs, reported
1670 by James Mathiesen <James-Mathiesen@deshaw.com>.
1671 This fix was offered as a patch to 4.35.
1673 Updated the Customize script to cause ENTER to use
1674 all defaults. Amir J. Katz <amir@ndsoft.com>
1675 suggested this and helped test the changes.
1677 Updated Solaris ICMP and IP stream handling, based
1678 on a report from Igor Schein <igor@txc.com>.
1680 Fixed a bug in the Digital UNIX mount table handling,
1681 reported by Bob Ward <bward@thehartford.com>.
1682 While working on the bug, found and updated some
1683 obsolete AdvFS code. This fix was offered as a
1686 4.37 September 15, 1998
1687 Deactivated SGI IRIX support and archived revision
1688 4.36 sources and binaries in pub/tools/unix/lsof/OLD.
1690 Improved performance of FD searching. This was
1691 offered as a patch to 4.36.
1693 Amir J. Katz <amir@ndsoft.com> pointed out that
1694 ranlib isn't needed for AIX or Solaris. Made
1695 appropriate Configure script changes.
1697 Fixed a file offset reporting bug for HP-UX VCHR
1698 and VBLK device nodes located on a VxFS root. Doug
1699 Siebert <douglas-siebert@iowa.edu> reported the
1700 bug. The fix was offered as a patch to 4.36.
1702 Resolved an HP-UX root device name reporting bug,
1703 partly caused by an out-dated local copy of the
1704 <sys/mount.h> mount structure, by generating a
1705 local header file with the structure that can be
1706 compiled without needing _KERNEL defined. Doug
1707 Siebert also reported this bug.
1709 Changed some dialect source code -- Digital UNIX,
1710 Solaris, SunOS, and UnixWare -- to make more
1711 consistent with ps the user ID lsof reports in the
1712 USER column. Added a 00FAQ entry about it. Igor
1713 Schein <igor@txc.com> reported the Solaris and
1714 SunOS lsof inconsistencies with what ps(1) reports.
1716 Ported lsof to Pyramid ReliantUNIX 5.44.
1718 Added brackets as comments to case, do, done, else,
1719 endif, esac, if, and while statements in Configure
1720 to assist in navigating its clauses.
1722 Added more Linux 2.0.x glibc work-arounds.
1724 Added support for UnixWare 7.0.1.
1726 Ralph Forsythe <ralph@contact-paging.com> provided
1727 a new FreeBSD test system.
1729 4.38 November 25, 1998
1730 Added support for recent FreeBSD 3.0 distributions.
1731 A 3.0 test system was provided by David O'Brien
1732 <obrien@NUXI.com>. This was offered as a patch
1735 Updated the scripts/idrlogin.perl* files to look
1736 for sshd processes in addition to rlogind and
1739 Added support for DU 5.0 Beta. Berkley Shands
1740 <berkley@cs.wustl.edu> provided a test system.
1742 Added support for OpenBSD 2.4 with changes supplied
1743 by Kenneth Stailey <kstailey@disclosure.com>.
1745 Changed the Solaris 2.7 tests and documentation to
1748 Made some changes to the header files for NEXTSTEP
1749 3.3 and added support for OPENSTEP 4.x with help
1750 from Michael A. Hovan III <mhovan@BLaCKSMITH.com>
1751 and Carl Lindberg <Carl_Lindberg@BLaCKSMITH.com>.
1752 The combined dialect subdirectory is named n+os.
1753 One of Carl's changes propagates RC_CFLAGS to the
1754 library Makefile. Timothy J. Luoma <luomat@peak.org>
1755 helped test under NEXTSTEP 3.3 and OPENSTEP 4.2.
1757 Made UW 7.x version sensitive to the presence of
1758 ptf7038. Added peer PCB address to Unix domain
1759 socket Name column, even when a path name has been
1760 located. Information for these changes was supplied
1761 by Francis Le Bourse <flebourse@intelcom.fr>. Lee
1762 Penn <lee@dlpco.com> provided a test system.
1764 Tested lsof under OSR 5.0.5 on a test system also
1765 provided by Lee Penn.
1767 Made path name argument processing more tolerant
1768 of errors per a suggestion from Julian Gordon
1769 <julian@cadence.com>.
1771 Acquired a new UnixWare 2.x test system, generously
1772 provided by Computer Classroom, Inc. -- Matthew
1773 Thurmaier <matt@compclass.com>, Ken Laing
1774 <ken@compclass.com>, and Andrew Merril
1775 <andrew@compclass.com>. Updated Configure to accept
1776 a UnixWare version of 2.1.3.
1778 Updated kmem-based lsof for Linux 2.0.36.
1780 Updated NetBSD sources for a change in a UVM virtual
1781 mapping header file.
1783 Corrected a cache allocation bug in Sun format
1784 kernel name cache handling. The bug only shows up
1785 when the kernel name cache is inaccessible.
1787 4.39 December 29, 1998
1788 Corrected problems with large device number handling
1789 for 64 bit Solaris 7. The problems were reported
1790 by Steve Bellenot <bellenot@math.fsu.edu>. Steve
1791 helped test the fixes. The fixes were offered as
1792 two patches to lsof 4.38.
1794 Improved FreeBSD Configure operations for header
1795 files that must be obtained from the kernel source
1796 tree, based on a suggestion from David O'Brien
1799 For Bela Lubkin <filbo@deepthought.armory.com> made
1800 optional with +f[cfn] the display of file structure
1801 address, shared use count, and node structure
1802 address. /proc-based Linux doesn't implement this
1803 feature, because it doesn't read kernel structures
1804 from kernel memory. Modified the PTX -X option to
1805 take advantage of the new file structure display
1806 option. Added shared.perl5 to the scripts/
1807 subdirectory to provide an example of how +f[fn]
1808 might be used to track shared file descriptors and
1811 Added more /dev/kmem-based Linux glibc evasions,
1812 provided by Jeff Johnson <jbj@redhat.com> and Maciej
1813 Lesniewski <nimir@kis.p.lodz.pl>. Jeff helped test
1814 them on various Linux architectures.
1816 Tested on AIX 4.3.2; no changes were required.
1817 Doug Crabill <dgc@purdue.edu> provided a test
1820 Fixed -c option to detect missing command name when
1821 following option begins with `+'.
1823 4.40 January 25, 1999
1824 Added support for using the CDS compiler for Reliant
1825 Unix 5.44 and above. Made Reliant Unix MIPC support
1826 optional, dependent on the presence of <sys/mipc.h>.
1828 Based on a report from Michael Schmitz <MSchmitz@lbl.gov>
1829 that /dev/kmem-based lsof misbehaves on a Linux
1830 2.0.x m68k kernel without module support, made the
1831 absence of query_module() or get_kernel_syms()
1832 Linux kernel support a fatal error. Updated relevant
1833 sections of 00FAQ to reflect the change.
1835 Added the ability to force the Linux Configure
1836 stanza to use the /proc or /dev/kmem source base
1837 via a LINUX_BASE environment variable specification.
1838 This is a cross-configuration assist.
1840 Added "+D <dir>" and "+d <dir>" options for directory
1841 searching. +D searches the entire tree, starting
1842 at <dir>, including <dir>, its contents, and its
1843 subdirectory branches; +d searches only <dir> and
1844 its contents, but not its subdirectory branches.
1845 Improved lsof's searching of the specified name
1846 list to compensate for anticipated long lists from
1849 Made an egrep in the Solaris Configure stanza usable
1850 by the standard and XPG4 egrep's. Kenneth Stailey
1851 <kstailey@disclosure.com> pointed out the improvement.
1853 Fixed bugs in /dev/kmem-based Linux and UnixWare
1854 Unix domain socket name searching.
1856 Changed a Linux Alpha #include to be conditional
1857 on the presence of its named header file, so that
1858 lsof will compile on Red Hat 5.1 and 5.2 (Linux
1859 kernel 2.0.35) where the header file is absent.
1860 The problem was reported by Alexandre Oliva
1861 <oliva@dcc.unicamp.br>.
1863 Fixed an AIX 4.3+ bug in procinfo struct space
1864 allocation, reported by Jeff Stewart <jws@purdue.edu>.
1865 This was offered as a patch to 4.39.
1867 Added an lstatsafely() function to offer the same
1868 isolation for lstat() calls that statsafely() offers
1869 for stat() calls. This made DOSTAT_FUNCTION no
1870 longer necessary, so deleted it.
1872 With help from Laurent P. Montaron <lpm@sequent.com>
1873 ported lsof to PTX 4.4.4. Laurent did a monumental
1874 job of identifying TCP/IP changes by their TCP
1875 version, rather than by their PTX (With mix 'n
1876 match PTX and TCP/IP versions, the PTX version
1877 often has no bearing on the TCP/IP version.), and
1878 changed the Configure script and pre-processor
1879 #if/#else/#endif blocks to match. He also updated
1880 Unix domain socket handling for PTX TCP/IP versions
1883 Updated CLIENT handle acquisition of fill_portmap()
1884 in print.c to use the more modern RPC function
1885 clnt_create() in place of clnttcp_create() where
1886 possible. PTX 4.4.4 requires clnt_create().
1888 4.41 February 27, 1999
1889 Added FreeBSD 3.1 and and 4.0 support with help
1890 from Sheldon Hearn <axl@iafrica.com>, David O'Brien
1891 <obrien@NUXI.com>, and John Polstra <jdp@polstra.com>.
1893 Corrected bungled AIX 4.3+ patch that went into
1896 Reorganized the Configure script to improve Makefile
1897 construction. A specific impetus for this was to
1898 allow FreeBSD system-wide make flags to be propagated
1899 to the lsof Makefiles, but other goals were to make
1900 sure that the DEBUG= make entry can over-ride
1901 standard CFLAGS values, and to better manage the
1902 identification of compilers and their versions.
1903 Two compiler-related values may now be supplied in
1904 environment variables: 1) the compiler path in
1905 LSOF_CC; and 2) the compiler version in LSOF_CCV.
1906 00XCONFIG documents them.
1908 Added support for Pyramid Reliant Unix bsdsfs,
1909 msockfs, and sockfs file systems.
1911 Added an optional LSOF_CINFO string to Configure,
1912 producing a CINFO string in selected Makefiles,
1913 producing a #define LSOF_CINFO in selected version.h
1914 header files. The purpose of this is to allow
1915 Configure the option to propagate information to
1916 the lsof -v output. It is now used for Linux to
1917 identify the code base, and for HP-UX 10.30 and
1918 11.0 and Solaris 7 to identify the kernel bit size.
1920 Added system information to NEXTSTEP and OPENSTEP
1921 -v output, from the second line of hostinfo's
1924 Fixed a login name buffer overflow problem in the
1925 processing of -u option values. This was offered
1926 as a patch to 4.40. !!!THIS IS A SERIOUS STACK
1927 OVERFLOW BUG; A LINUX EXPLOIT EXISTS FOR IT THAT
1928 OPENS A BASH SHELL WITH LSOF'S AUTHORITY -- E.G,
1929 SETGID(KMEM) POWER!!!
1931 Improved the Solaris mount table filter so the
1932 volume manager's fake mount point, "/vol", is
1933 ignored and doesn't supplant "/" in NAME column
1934 path assemblies. Igor Schein <igor@txc.com> reported
1935 this bug and provided important help in finding
1936 it. This was offered as a patch to 4.40.
1938 Changed the Linux /dev/kmem-based lock ownership
1939 test to answer a problem reported by Tom Christiansen
1940 <tchrist@jhereg.perl.com>. This was offered as a
1943 Installed an HP-UX 11 patch, suggested by Kevin
1944 Vajk <kvajk@cup.hp.com>, that adjusts a private
1945 lsof kernel header file, derived via Q4, to correspond
1946 to an HP-UX patch bundle.
1948 Made NetBSD 1.3I sockproto structure adjustment.
1951 Fixed a typo in the HP-UX dfile.c that caused +fF
1952 and +fN output controls to swap effect.
1954 Enabled for OpenBSD 2.5 per notice from Kenneth
1955 Stailey <kstailey@kstailey.tzo.com>
1957 Made more VM accommodations for FreeBSD 4.0.
1959 Improved file system search reporting to include
1960 path name components when they're available, instead
1961 of mindlessly reporting the file system name in
1962 the NAME column. Guy Dallaire <gdallair@geocities.com>
1963 brought the need for this change to my attention.
1965 Updated Solaris 2.6 VxFS for Veritas Oracle Database
1966 Edition 2.0, VxFS version 3.3, and VxVm version
1967 2.5.4, based on a report from Chris Kordish
1968 <chris.kordish@East.Sun.COM>. Chris kindly provided
1971 Improved HP-UX ipc_s patch detection in Configure,
1972 response in .../dialects/hpux/hpux11/ipc_s.h, and
1973 documentation in 00FAQ, Kevin Vajk <kvajk@cup.hp.com>
1976 Added to Customize the option to suppress HASKERNIDCK
1977 selection for specified dialects. Suppressed it
1978 for /proc-based Linux lsof, and removed its test
1979 and code from there. Tin Le <tin@netimages.com>
1980 alerted me to the need for this update.
1982 Ported to official Digital UNIX 5.0 release.
1984 Changed DU lsof to use the knlist(3) function when
1985 no kernel file has been specified with -k. This
1986 change was suggested by Erich Wimmer
1987 <Erich.Wimmer@digital.com>.
1989 Updated Configure for latest NetBSD (1.3I?) with
1990 UVM support the default.
1993 Corrected a typo in the Solaris gcc discussion in
1994 00FAQ. Made changes to the Solaris 2.5[.1] private
1995 tcp_s structure. Both changes were done in response
1996 to reports from Igor Schein <igor@txc.com>, who
1997 tested the Solaris 2.5 change.
1999 Made more IPv6 adjustments to lsof for Tru64 UNIX
2000 (Digital UNIX) 5.0, based on information obtained
2001 from Compaq by Berkley Shands <berkley@cs.wustl.edu>.
2003 Corrected HP-UX error message about HP-UX 11 q4 usage.
2004 Amir Katz <amir@ndsoft.com> reported the correction.
2006 Fixed a GlibC 2.1 conflict in /proc-based Linux lsof.
2008 Fixed a man page typo reported by Vlad Harchev
2011 Changed some Solaris 2.7 references to Solaris 7
2012 in Configure and 00XPORTING.
2014 Added a Solaris example to the echo statements that
2015 are the install rule in the SunOS/Solaris Makefile.
2017 Added a field to the file structure output --
2018 FILE-FLAG (file structure open flags, f_flag[s],
2019 and process file flags, typically u_pofile)) --
2020 enabled with +f[gG]. Its field output character
2023 Figured out another piece of the HP-UX 11 patched
2024 ipc_s structure puzzle with the help of Keith Kalet
2025 <KEITH_KALET@HP-USA-om41.om.hp.com>.
2027 Fixed a PTX real vnode to real inode interpretation
2030 Added link count to lsof output. Eric Dumazet
2031 <dumazet@risgw.ris.fr> requested and helped test
2032 it. The new +L option enables and filters it.
2033 Its field output character is `k'.
2035 Updated Configure script to recognize NetBSD 1.4.
2037 Updated AFSConfig to handle default answers to
2040 Incorporated patch from Jonathan Sergent <sergent@io.com>
2041 that enables /proc-based Linux lsof to run on both
2042 32 and 64 bit kernels.
2044 Updated Configure script with a patch from David
2045 O'Brien <obrien@NUXI.com> that recognizes FreeBSD 3.2.
2048 Corrected use of nlink member of hsnode for SunOS
2049 4.1.x High Sierra File System files. John Dzubera
2050 <zube@tlaloc.stat.colostate.edu> reported the
2051 problem and helped test the fix. Also fixed a
2052 SunOS segmentation fault bug. These fixes were
2053 offered as a patch to 4.43.
2055 Improved handling of /proc-based Linux UNIX PCB
2058 Fixed a NEXTSTEP and OPENSTEP bug that made repeat
2059 option (-r) processing malfunction. This fix was
2060 offered as a patch to 4.43.
2062 Fixed Configure so it doesn't use -O in the Cflags
2063 for the bundled HP-UX C compiler. Jim Ankenbrandt
2064 <jankenbrandt@penton.com> reported the problem.
2066 Corrected output ordering of parent PID and process
2067 group ID when both -R and -g are specified.
2069 Enhanced the pdev.c and pdvn.c library modules for
2070 wider use. These dialect versions use the new
2071 library modules: DEC OSF/1, Digital UNIX, and Tru64
2072 UNIX; Pyramid DC/OSx and Reliant UNIX; SCO OSR and
2073 UnixWare; and Sequent PTX.
2075 Added basic clone device support to /dev/kmem-based
2076 HP-UX lsof for HP-UX 10.30 and higher.
2078 Added raw socket support to /proc-based Linux lsof.
2080 Changed NODE-ADDR column title to NODE-ID in
2081 anticipation of using more general identification
2082 information in the column.
2084 Ported to UnixWare 7.1, using a test system kindly
2085 provided by Matt Thurmaier <matt@compclass.com>
2086 and Don Draper <dond@sco.com>.
2088 Updated for NetBSD 1.4C VM changes, and a new
2089 current and root working directory structure.
2091 Made minor adjustment for latest Tru64 UNIX 5.0
2095 Fixed quoting problem in DEC OSF/1, Digital Unix,
2096 and Tru64 UNIX Makefile's install rule. The problem
2097 was reported by Berkley Shands <berkley@cs.wustl.edu>.
2098 Fixed bug in Tru64 UNIX 4 lsof that caused FDs to
2099 be skipped. These fixes were offered in a patch
2102 Fixed a repeat-mode /proc-based Linux lsof bug,
2103 reported by Sami Farin <sfarin@ratol.fi>. This
2104 was offered as a patch to 4.44.
2106 Picked lint, some reported by Sami Farin.
2108 Corrected a 00DCACHE documentation error in a sample
2109 shell script. The problem was reported by Chad R.
2110 Larson <chad@larsons.org>. Changed commented-out
2111 entries in machine.h files so they require more
2112 thought and work when the comments are removed,
2113 based on a remark by Chad.
2115 Compensated for the practice of Solaris 7 and above
2116 to record the dev= value in /etc/mnttab in 32 bit
2117 mode, even on 64 bit systems. This was offered as
2120 Added a C library test for /proc-based Linux lsof,
2121 so that the #include files can be adjusted for a
2122 non-GlibC environment. The need for this was
2123 reported by Andrew Hill <andrewh@tirin.openworld.co.uk>.
2124 This was offered as a patch to 4.44.
2126 Added support for Auspex LFS 1.8.1 and 1.9.2 to
2127 SunOS 4.1.4 lsof. The support was requested by
2128 Quentin Fennessy <quentin@dvorak.amd.com>, who
2129 provided information and did testing.
2131 Enabled IPv6 support code for NetBSD and OpenBSD,
2132 conditional on Configure script tests. Wolfgang
2133 Rupprecht <wolfgang@wsrcc.com> supplied the NetBSD
2134 code and tested it. The OpenBSD code I constructed
2135 has been compiled but not tested.
2137 Updated the identd Perl 5 script, based on a report
2138 from Wendy Lin <af5@taiyang.cc.purdue.edu> that
2139 the space in its response line in front of the user
2140 name violates RFC 1413.
2142 Added IPv6 support to /proc-based Linux lsof.
2143 Jonathan Sergent <sergent@ETLA.NET> and Andrew
2144 Thomas Sydelko <sydelko@ecn.purdue.edu> kindly
2145 provided a test system.
2147 Updated man page description of AIX multiplexed
2148 files to indicate that they might be /dev/ptc or
2149 /dev/pts, depending on the AIX version. The
2150 correction was suggested by Onno van der Linden
2153 Sylvain Robitaille <syl@alcor.concordia.ca> reports
2154 lsof passes his Y2K tests.
2156 4.46 October 23, 1999
2157 Corrected /proc-based Linux lsof to detect that an
2158 IPv6 address is a mapped IPv4 address. The problem
2159 was reported and analyzed by Arkadiusz Miskiewicz
2160 <misiek@misiek.eu.org>, who also tested the fix.
2162 Added a libc5 library /dev/kmem-based Linux lsof
2163 circumvention, supplied by Jason Lingohr
2164 <lingman@lucid.net.au>.
2166 Corrected a bug in -t (terse) AIX output, reported
2167 by Wendy Lin <af5@taiyang.cc.purdue.edu>. I
2168 introduced the bug at revision 4.43 when adding
2169 FILE_FLAG reporting. This was offered as a patch
2172 Added a work-around for a problem in the OpenBSD
2173 2.3 <sys/pipe.h> header file. Volker Borchert
2174 <bt@teknon.de> provided and tested it.
2176 Improved description of cross-building lsof for a
2177 64 bit Solaris 7 system on a 32 bit system with
2178 suggestions from Phillip Edwards
2179 <Philip.Edwards@sn.wpafb.af.mil>.
2181 Fixed a gawk POSIX-mode pattern error in the Linux
2182 /dev/kmem-based Mksrc script, based on a tip from
2183 Ambrose C. Li <acli@mingpaoxpress.com>.
2185 Fixed a bug in the Tru64 UNIX IPv6 handling, courtesy
2186 of a report from Casper Dik <casper@holland.sun.com>.
2188 Enabled support for OpenBSD 2.6.
2190 Enabled support for BSDI BSD/OS 4.1, based on a
2191 report from Jeffrey C Honig <jch@bsdi.com> that
2192 only a Configure script change is necessary.
2194 Enabled Configure script to use gcc for building
2195 lsof for a 64 bit Solaris 7 and 8 kernels, if the
2196 gcc version is 2.95 or above.
2198 Improved -i option handling for systems with IPv6
2199 support so that it will search for a host name in
2200 both IPv4 and IPv6 families, when that is possible.
2201 As a companion modification, changed -V processing
2202 to report a single error when a multiple host name
2203 match is requested. Casper Dik <casper@holland.Sun.COM>
2206 Fixed a DEC OSF/1, Digital UNIX, Tru64 UNIX repeat
2207 mode bug, reported by Mayer Ilovitz <mayer@cooper.edu>.
2208 Mayer helped test the fix. The fix was offered as a
2211 Changed Solaris socket file recognition scheme, so it
2212 is (nearly) the same through Solaris 8, where the
2213 previous clone device scheme no longer works.
2215 With significant assistance from Casper Dik, added
2216 support for Solaris 8 Beta and Beta refresh. The
2217 IPv6 support in Solaris 8 is still in some flux,
2218 so there are temporary compensations for the
2219 differences between Beta IPv6 support and Beta
2220 refresh IPv6 support. Casper and I hope those
2221 differences disappear by FCS.
2223 Improved the delivery of information on Solaris
2224 2.5.1, 2.6, 7, and 8 door files.
2226 Fixed a repeat mode bug that surfaces when /etc/passwd
2227 changes between cycles. The bug report and diagnostic
2228 help were supplied by Igor Schein <igor@txc.com>.
2229 The fix was offered as a patch to 4.45.
2231 Added support for INRIA IPv6 to NetBSD. Jean-Luc
2232 Richier <Jean-Luc.Richier@imag.fr> provided patches
2233 and a test system on which to verify them.
2235 Added support for AIX 4.3.3. Jeff W. Stewart
2236 <jws@anaconda.cc.purdue.edu> provided a test system.
2238 Made adjustments for FreeBSD 4.0-current.
2240 Improved reporting of information for AIX sockets that
2241 lack protocol control blocks.
2243 4.47 November 29, 1999
2244 Based on a query from Jean-Pierre Radley <jpr@jpr.com>,
2245 changed the lsof top-level Makefile to propagate
2246 CFGF to the library Makefile. (DEBUG was already
2247 being propagated.) Added osrgcc and scogcc Configure
2248 abbreviations (to use gcc) for Jean-Pierre.
2250 In response to a query from Igor Schein <igor@txc.com>,
2251 improved the Configure script test for Solaris 7
2252 and 8 that decides if the compiler can produce 64
2255 Made an ugly hack, based on making a private rnode
2256 structure definition from q4 output, to compensate
2257 for HP-UX 10.20 and lower recent NFS3 patches. HP
2258 didn't supply an updated <nfs/rnode.h> with the
2259 patches. The problem was reported by Will Partain
2260 <partain@mekb2.sps.mot.com>. Elias Halldor Agustsson
2261 <elias@hi.is> helped identify the patches as
2262 PHNE_18173, PHNE_19426, PHNE_19937, and PHNE_20091,
2263 and provided a test system.
2265 Switched BSDI test system from 2.1 and 3.1 to 4.0.1,
2266 courtesy of Terry Kennedy <terry@tmk.com>.
2268 Added some more dev_t hacks for Alpha FreeBSD 4.0.
2270 Added support for IPv6 on BSD 4.x. The support hasn't
2271 yet been tested, just compiled.
2273 Added support for the mnt file system (mntfs or
2274 /etc/mnttab) on Solaris 8. Tested on Solaris 8
2277 Made selection of optional fields (e.g., PPID with
2278 -FR) in a field output specification select the
2279 optional field, too, so that the option selector
2280 for the field (e.g., -R) isn't also required. This
2281 change was made in response to an inquiry from John
2282 DuBois <spcecdt@armory.com>. This may require some
2283 revision to scripts that parse all field output;
2284 two scripts in the lsof distribution's scripts/
2285 subdirectory had to be updated.
2287 Corrected handling of Linux IPv4 addresses mapped
2290 Tested under OpenBSD 2.6.
2292 4.48 January 14, 2000
2293 Modified -i argument processing of colon-separated
2294 IPv6 addresses to recognize an IPv4 address mapped
2295 in an IPv6 address and handle it as an IPv4 address.
2296 This was offered as a patch to 4.47.
2298 Added a defined symbol (NOWARNBLKDEV) to control
2299 (inhibit) the issuance of a warning when no block
2300 devices are found. This was done anticipating its
2301 need in FreeBSD 4.x, but that dialect version no
2302 longer has any block devices, so HASBLKDEV was
2303 disabled for it instead. NOWARNBLKDEV was left in
2304 place for possible use in the future.
2306 Enabled KAME IPv6 Configure support for FreeBSD
2307 when <netinet6/in6.h> is found.
2309 Disabled use of gcc to compile lsof for 64 bit
2312 Updated Configure to recognized FreeBSD 3.4.
2314 Based on suggestions from Bernt Christandl
2315 <beb@MPA-Garching.MPG.DE> improved AFS configuration
2316 for AIX and Solaris, and updated AIX AFS 3.5 support.
2317 Johannes Tax <tax@bluedog.oit.unc.edu>, Hung T.
2318 Pham <hung_pham@unc.edu>, and Curt Freeland
2319 <curt@grumpy.cse.nd.edu> provided test systems.
2321 Updated lsof's private rnode definition for AIX
2322 4.3.3, since IBM still doesn't ship the
2323 <oncplus/nfs/rnode.h> header file and the rnode
2324 structure definition in <nfs/rnode.h> doesn't match
2325 what the kernel uses. This was offered as a patch
2328 Weakened the test in the Linux /proc-based lsof of
2329 the field count of data lines in /proc/net/{tcp,udp}.
2330 It appears that recent 2.3.x Linux kernels have
2331 added untitled fields to these files. The bug
2332 report came from Gabor Liptak <gaborliptak@usa.net>.
2334 Adjusted for a FreeBSD 4.0 change in the definition
2335 of [_]KERNEL. David O'Brien <obrien@NUXI.com> reported
2336 the problem and provided a test system.
2338 Removed the HASPPID bracket from Fppid (the -R
2339 option state variable) so that the field select
2340 table will compile even when HASPPID is not defined.
2341 This problem was introduced at revision 4.47 with
2342 code that causes some field output characters to
2343 set option states. The problem was reported by
2344 David Bacon <bacon@birch.eecs.lehigh.edu>.
2347 Made clearer in man page that "Lxx" FDs are AIX
2348 loader table references. Also updated the 00FAQ
2349 discussion of the Stale Segment ID bug to include
2352 Modified support for NetBSD 1.4Q to include the
2353 <sys/buf.h> header file to cope with an MFS change.
2355 Added support for OpenBSD UVM virtual memory.
2357 Added support for AIX systems with > 2GB of memory.
2358 Chris Sylvain <csylvain@itg.ummc.umaryland.edu>
2359 reported the problem and provided the solution.
2360 Chris also supplied some minor code cleanup. This
2361 was offered as a patch to 4.48.
2363 Based on new information from Igor Schein <igor@txc.com>
2364 made additional compensation in Configure script
2365 for 64 bit Solaris 7 and 8 gcc.
2367 Added some 00FAQ info on the effect ordering of
2368 the +fg and -FG options has on output format.
2370 Improved NetBSD IPv6 configuration, based on a
2371 suggestion from Thomas Klausner
2372 <wiz@danbala.ifoer.tuwien.ac.at>. Added code to
2373 convert IPv4-mapped-in-IPv6 addresses to IPv4
2376 Updated the information in 00FAQ and the HP-UX 11
2377 binary directory README files on the HP-UX 11 ipis_s
2378 patch with new information supplied by Eric McWhorter
2379 <emcwhorter@xsis.xerox.com>.
2381 Added documentation on changes to HASFSTYPE and
2382 HASNCACHE, and the new HASPRIVPRIPP.
2384 Adjusted Configure for FreeBSD 5.0. Made additional,
2385 necessary changes to Configure and the BSDI sources
2386 to eliminate load errors.
2388 Added KAME IPv6 support to FreeBSD at the request
2389 of Ollivier Robert <roberto@eurocontrol.fr>, who
2390 provided a test system.
2392 Corrected the script that generates the CHECKSUMS
2393 files for binaries to correctly name the detached
2394 PGP certificate. The documentation bug was reported
2395 by Michael Hennecke <hennecke@rz.uni-karlsruhe.de>.
2398 Added a NetBSD alpha test host, courtesy of Ray
2399 Phillips <r.phillips@mailbox.uq.edu.au>. An lsof
2400 4.49 binary, built on Ray's 1.4.1 system was made
2401 available prior to the 3.50 release.
2403 Upgraded the system map file tests in /dev/kmem-based
2404 Linux lsof, making the use of DEBIAN_LINUX_LSOF
2405 unnecessary. Tested the changes on a system made
2406 available by Vincent Kujala <kujala@geog.ubc.ca>
2407 and Jim Mintha <jim@ic.uva.nl>.
2409 Forced AIX to use the large-file-enabled versions
2410 of lstat (lstat64) and stat (stat64) if <sys/stat.h>
2411 contains stat64. This should allow lsof to stat()
2412 AIX files > 2GB even when the builder has not
2413 defined the "large file enabled programming
2414 environment." Configure tests <sys/stat.h> and
2415 puts -DHASSTAT64 in the Makefile's CFLAGS to make
2416 this happen. Fernando A.B. Whitaker
2417 <whitaker@cenapad.unicamp.br> reported the problem.
2418 This was offered as a patch to 4.48.
2420 Enabled Configure script to handle OpenBSD 2.7.
2421 Angelos D. Keromytis <angelos@dsl.cis.upenn.edu>
2422 reported the availability of OpenBSD 2.7 and supplied
2423 the Configure script patch.
2425 Improved handling of DOOR and fattach()'d files in
2428 Changed message about missing kernel symbol file
2429 from "not yet determined" to "none found".
2431 Updated FreeBSD, NetBSD, NEXTSTEP, OpenBSD, and
2432 OPENSTEP support to report "no PCB" and the values
2433 of the SO_CANTSENDMORE and SO_CANTRCVMORE state
2434 flags when a socket structure has no inpcb pointer.
2435 This modification was made to AIX lsof at revision
2436 4.46. Added an entry to 00FAQ about sockets that
2437 have no inpcb pointer.
2439 Upgraded support for FreeBSD 5.0-CURRENT. Ben
2440 Smithurst <ben@scientia.demon.co.uk> supplied
2441 patches and did testing. David O'Brien <obrien@NUXI.com>
2442 supplied a test system. The update included dropping
2443 the Fctty part of file descriptor file system
2444 support, conditional on a Configure script test.
2445 I propagated those changes to BSDI, NetBSD, and
2446 OpenBSD in anticipation of their having the
2447 modification in the future. David also arranged
2448 with Michael Haro <mharo@area51.fremont.ca.us> for
2449 a FreeBSD 3.4 test system.
2451 In response to an lsof 3.72 bug report from Jim Mewes
2452 <jim@corp.phone.com>, added more kernel address
2453 filtering to the lsof function, kread(), that reads
2454 Solaris kernel data.
2456 In response to a report from Marc Duponcheel
2457 <marc@offline.be>, added tests to the /proc-based
2458 Linux lsof to ignore file systems of types "autofs"
2461 Based on a report and information supplied by Casper
2462 Dik <casper@holland.Sun.COM>, updated the ncache_load()
2463 function in lib/rnch.c with new code that deals
2464 with a post Solaris 8 change in kernel name cache
2465 (DNLC) handling. Casper tested the update, which
2466 should be invisible to Solaris versions without
2469 Added support for Solaris VxFS QIO files, based on
2470 a report from Kieran Broadfoot <kieran.broadfoot@gs.com>.
2471 Kieran help test the support.
2473 Added support for PTX 4.4.6 and 4.5[.1] with help
2474 from the usual cast of good people at Sequent.
2476 Added support for 64 bit file sizes and offsets on
2477 BSDI, FreeBSD, NetBSD, and OpenBSD, based on a
2478 report from Dan Nelson <dnelson@emsphone.com>.
2479 Dan supplied a patch and did FreeBSD testing.
2481 Added Configure script recognition of NetBSD 1.5,
2482 based on a report from Andrew Brown <atatat@atatdot.net>.
2483 Thomas Klausner <wiz@danbala.ifoer.tuwien.ac.at> updated
2484 the NetBSD port package to use a pre-release of this
2487 At the last minute saw a notice via deja.com's
2488 UseNet search service that FreeBSD 3.5 had been
2489 released and lsof didn't grok it. Added recognition
2490 of 3.5 to lsof's Configure script, but didn't have
2491 the opportunity to test lsof on 3.5.
2493 4.51 August 21, 2000
2494 Added Configure script support for the upcoming
2495 Solaris 9 release based on suggestions from Casper
2496 Dik <Casper.Dik@holland.sun.com>.
2498 Changed sample Perl scripts to assume that
2499 /usr/local/bin/perl is Perl 5 and Perl 4 may be
2500 found in /usr/local/bin/perl4.
2502 Updated Configure to recognize FreeBSD 4.1 and made
2503 a FreeBSD pre-release distribution available.
2505 Bela Lubkin <belal@sco.COM> tested lsof on the
2506 upcoming SCO OSR 5.0.6 release and reports that
2507 lsof appears to work properly.
2509 Updated the AIX compiler test in Configure to
2510 recognize its version 5.
2512 Updated AIX 4.3.3 support with automatic recognition
2513 of the proper rnode structure, based on machine
2514 bit width. Also added code to detect when processing
2515 the -X option that lsof has been compiled with the
2516 "other" AIX 4.3.3 user structure and to apply
2517 compensations. When a compensation method works,
2518 it's applied during subsequent -X processing; when
2519 none works, further -X processing is disabled.
2521 Added Tru64 UNIX 5.1 support. Updated Tru64 UNIX
2522 library text file support to recognize new kernel
2523 support for AdvFS library files. Berkley Shands
2524 <berkley@cs.wustl.edu> and Klaus Saggerer USG
2525 [saggerer@zk3.dec.com> helped put me in contact
2526 with Chang Song <song@zk3.dec.com>, the developer
2527 of 5.1's new kernel name cache and he helped me
2528 develop new code in lsof to access it.
2530 Corrected reporting of PTX fattach()'d address.
2532 Changed Configure and dlsof.h for NetBSD and OpenBSD
2533 to use /usr/include/uvm header files when available.
2534 Andrew Brown <atatat@atatdot.net>, Thomas Klausner
2535 <wiz@danbala.ifoer.tuwien.ac.at>, and Wolfgang
2536 Rupprecht <wolfgang@wsrcc.com> pointed out the need
2537 to do this for NetBSD. Andrew provided access to
2538 a NetBSD 1.5 system for verifying the changes.
2540 Installed snprintf() support, including a private
2541 version in the lsof library for those UNIX dialects
2542 without the function. Changed all sources to use
2543 it instead of sprintf() and strcpy().
2545 Fixed a memory leak in the readvfs() functions of
2546 BSDI, DEC/OSF1, Digital UNIX, FreeBSD, NetBSD,
2547 OpenBSD, and Tru64 UNIX.
2549 Tested on Linux 2.4.
2551 Modified the Pyramid MkKernOpts script to compensate
2552 for `uname -s` configuration alternatives. Robert
2553 Dahlem <Robert.Dahlem@ffm2.siemens.de> supplied
2556 Obtained access to an FCS Solaris 8 64 bit system
2557 and built lsof on it, using Sun Workshop C 5.0 and
2558 gcc 2.96 20000814 (experimental). Both compilers
2559 produce a working lsof.
2562 4.52 November 8, 2000
2563 Completed work on an HP-UX 11.11 port that uses a
2564 pstat(2) interface provided by HP. To distinguish
2565 it from its predecessors for HP-UX, this lsof
2566 version is called PSTAT-based and the predecessor
2567 versions are now called /dev/kmem-based. I am
2568 indebted to the far-sightedness and support of
2569 these good people at HP for making PSTAT-based lsof
2570 possible: Carl Davidson, Louis Huemiller, Rich
2571 Rauenzahn, and Sailu Yallapragada. The PSTAT-based
2572 sources are in lsof_4.52/dialects/hpux/pstat, the
2573 /dev/kmem-based ones in lsof_4.52/dialects/hpux/kmem.
2575 Ported to IBM Monterey for Merced|Itanium, aka AIX
2576 5L. It configures via the Configure script's "aix"
2577 abbreviation and has been tested on AIX 5L Beta 3.
2578 Jay Beck, Steve Dibbell, Loc Le, Nasser Momtaheni,
2579 and Malcom Zung of IBM provided generous support.
2580 Since AIX 5L is still in Beta testing, this port
2581 can't be considered complete.
2583 Added Configure support for OpenBSD 2.8. David
2584 Mazieres <dm@cs.nyu.edu> provided a test system.
2586 Based on a report from Marc Christensen
2587 <marc@mecworks.com> added sockfs to the mount scan
2588 exemption list for /proc-based Linux lsof.
2590 Added large file, CDFS, and DOSFS for UnixWare 7.x.
2591 Added UnixWare device memory mapping support. All
2592 UnixWare changes were supplied by Eric Dumazet
2593 <edumazet@cosmosbay.com> Eric also supplied some
2594 miscellaneous bug fixes.
2596 Deferred name cache loading until printname() needs
2597 to use the name cache.
2599 Terminated Pyramid, SunOS 4.1.x, and Ultrix support,
2600 because test systems are no longer available.
2601 Final Pyramid and Ultrix source code distributions
2602 for lsof revision 4.51 may be found on lsof.itap.purdue.edu
2603 in pub/tools/unix/lsof/OLD/src. The no longer
2604 supported SunOS 4.1.x source code is still distributed
2605 with the Solaris source code.
2607 Added code to set Solaris node address to real vnode
2608 address, when applicable.
2610 John Speno <speno@lopan.isc-net.upenn.edu> provided
2611 information that enabled me to update the Tru64
2612 AdvFS (MSFS) node definition for AdvFS version 5.
2614 Added Tru64 5.x CFS support with help from Kris
2615 Chandrasekhar <Kris.Chandrasekhar@compaq.com>,
2616 Diane Lebel <lebel@zk3.dec.com>, and John Speno.
2617 The support only provides information about cached
2620 Installed a Configure patch for HP-UX 11 supplied by
2621 Kenneth Stailey <kstailey@disclosure.com> that adds
2622 another command to q4 input.
2624 Tested on FreeBSD 4.2.
2626 Will Day <willday@rom.oit.gatech.edu> and Frank
2627 Winkler <frank.winkler@germany.sun.com> graciously
2628 supplied Solaris 8 binaries.
2630 Added Solaris 9 text file support, supplied by
2631 Casper Dik <Casper.Dik@holland.sun.com>.
2633 4.53 December 6, 2000
2634 Added the AIX 5L j2_lock.h to the distribution with
2635 a Configure script step to use it when it's missing
2636 from /usr/include/j2.
2638 Removed SunOS 4.1.x support.
2640 Removed Linux 2.0.x /dev/kmem support.
2642 Fixed VBLK and VCHR special device file reporting
2643 to handle /dev information more accurately.
2645 Added a Apple Darwin / Mac OS X 1.2 port, provided
2646 by Allan Nathanson <ajn@apple.com>. Allan also
2647 arranged for a test system so I can maintain this
2648 port. An additional test system was provided by
2651 Dropped claims of support for all UnixWare versions
2652 except 7.1.0, since that is the only version on
2653 which I can test lsof. Even though lsof 4.53 is
2654 deprecated for UnixWare 2.1.3, installed a patch
2655 for it with testing done by A. Channing Clark
2656 <clark.channing@heb.com>.
2658 Dropped claims of support for all SCO OpenServer
2659 versions except 5.0.5, since that is the only
2660 version on which I can test lsof.
2662 4.54 January 19, 2001
2663 Added compensation for a change that made the
2664 FreeBSD mount structure invisible. I can only test
2665 back to 3.2 and the compensation works there, so
2666 it's been #ifdef'd for 3.2 and above. David O'Brien
2667 <obrien@FreeBSD.org> provided the necessary clue.
2669 Based on a report from Valdis Kletnieks
2670 <Valdis.Kletnieks@vt.edu>, changed all IPv6 support
2671 to report a TYPE of IPv6 for sockets with IPv4
2672 addresses mapped in IPv6 addresses. The previous
2673 lsof behavior was to report their TYPE as IPv4.
2675 Restored the Linux GlibC test to Configure, removed
2676 at revision 4.53, based on a report from John Dzubera
2677 <zube@cs.colostate.edu>, that RedHat Linux 6.0 still
2680 Made setting of link count for Solaris more selective.
2682 Limited Readlink() recursion to MAXSYMLINKS. The bug
2683 was reported by Jan Dvorak <johnydog@go.cz>.
2685 Dropped the *claim* that lsof runs on Solaris 2.5.1.
2686 It may well do so, but I no longer have access to a
2689 Fixed an #endif comment typo, reported by Igor Schein.
2691 Fixed a typo in a cast for a Tru64 UNIX 5.1 function
2692 and updated Configure for Tru64 UNIX 5.0 and 5.1 with
2693 information from Jesse Perry <jesse.perry@compaq.com>.
2695 Corrected non-fatal typos in the AdvFS support in
2696 dnode.c for Tru64 UNIX.
2698 Added msdos file system support for NetBSD and OpenBSD.
2699 Andrew Brown <atatat@atatdot.net> requested and helped
2702 4.55 February 15, 2001
2703 Based on a report from Bernd Eckenfels <ecki@lina.inka.de>
2704 added support in lsof for files in /proc/<PID>/maps
2705 that have been deleted.
2707 Changed PGRP output title to PGID, conforming to
2708 the most common current abbreviation for Process
2709 Group ID (PGID). While some systems continue to
2710 use *pgrp for internal kernel variable names, most
2711 systems that support the display of PGID via ps(1)
2712 now title it PGID. The lsof -g and -Fg options
2713 operations are unchanged in function; only titles
2714 and descriptions have changed. Also changed internal
2715 variable names from *PGRP and *pgrp to *PGID and
2716 *pgid where possible.
2718 Dropped the *claim* that lsof runs on HP-UX 9.x.
2719 It may well do so, but I no longer have access to
2722 In response to a suggestion from Jeff Howie
2723 <jeff.howie@federated.ca> added support for command
2724 name selection by regular expression. A new form
2725 of the -c option value is use to identify and
2726 specify a regular expression.
2728 Restore the *claim* that lsof works on UnixWare
2729 7.0, since I re-acquired a test system.
2732 Corrected some problems Amir Katz <Amir_Katz@bmc.com>
2733 found with Insure++, one in lib/dvch.c, the rest
2734 in Solaris sources. Amir's report also helped me
2735 find an error in an snpf() call that caused (the
2736 unsupported) Solaris 2.5.1 lsof to crash. Wally
2737 Winzer, Jr. <wally.winzer@ChampUSA.COM> helped test.
2739 Added support for UnixWare 7.1.1 and above in-kernel
2740 UNIX sockets. John Hughes <john@Calva.COM> kindly
2741 provided code and access to a test system. John
2742 also provided a test system and advice for adding
2743 UnixWare 7.1.1 NonStop Cluster and CFS support.
2744 More help with that effort came from Kurt Gollhardt
2745 (SCO), Barbara Howe (SCO), Bela Lubkin (SCO), and
2746 Dewan Rashid <Dewan.Rashid@ir.com>.
2748 Archived a set of compilation hints (patches) from
2749 Bill Melvin <Bill.Melvin@esc.edu> that make it
2750 possible to compile the old, unsupported lsof 3.08
2751 sources on UnixWare 1.x without NFS or CDFS support.
2753 Installed support supplied by Allan Nathanson
2754 <ajn@apple.com> for the Darwin "Gold Master" release,
2755 Mac OS X 10.0 (aka Darwin 1.3 in its public source
2756 version). Added Allan's CVS repository suggestions
2757 to the script that gets additional header files
2758 from an open source repository.
2760 Tested an HP-UX 11.11 kernel patch from Sailu
2761 Yallapragada that enables reporting of TCP/IP
2762 information for telnetd processes that use the
2763 telnet multiplexor. I don't yet know the kernel
2766 Made the Solaris inclusion of <inet/mi.h> conditional
2767 on the Solaris version. (It's apparently not needed
2768 at 2.6 and above.) Bill Watson <bill.watson@uk.sun.com>
2769 brought this to my attention.
2771 Added alternate Linux 2.4.x lock extent test, supplied
2772 by Jim Mintha <jim@ic.uva.nl>.
2774 Rearranged the lines and pre-processor tests in
2775 regex.h, lib/regex.c, and lib/snpf.c so that unifdef
2776 can be used to eliminate copyright and GPL statements
2777 when the files aren't being used for a particular
2778 dialect. (USE_LIB_* definitions in a dialect's
2779 machine.h header file determine if one or more of
2780 those three files are to be used.)
2782 Added preliminary support for Solaris 8 with VxFS
2783 3.4. This support will be refined as I get
2784 information from Veritas about how they will
2785 distribute the kernel header files lsof needs.
2786 Those header files were omitted from the standard
2787 VxFS 3.4 distribution. Technical assistance and
2788 testing were provided by Calle Dybedahl <cdy@algonet.se>,
2789 Gary Millen <gary.millen@veritas.com>, Rainer Orth
2790 <ro@TechFak.Uni-Bielefeld.DE>, Peter C. Vernam
2791 <pvernam@draper.com>, and Donna Yobs
2792 <Donna.Yobs@veritas.com>
2794 Tested on FreeBSD 4.3-STABLE.
2796 Dropped the *claim* that lsof works on UNIX dialects
2797 where I no longer have test systems: BSDI 2.1,
2798 3.[01] and 4.0; DEC OSF/1, Digital UNIX and True
2799 64 UNIX 2.0 and 3.2; FreeBSD 2.1.[67], 2.2[.x],
2800 3.[012345] and 4.[01]; HP-UX 10.20; NetBSD 1.[234];
2801 SCO OpenServer 5.0.5; and SCO UnixWare 7.0
2803 Tested on Solaris 9 BETA, s81_36.
2806 Help (-h) and version (-v) output now have URLs
2807 for the newly created and timeliest lsof FAQ
2808 (00FAQ in the lsof distribution) at:
2810 ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/FAQ
2812 and the man page for the current lsof distribution
2815 ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/lsof_man
2817 Based on a report from Steve Laubscher
2818 <slaubs@woodward.com>, modified dlsof.h for PTX
2819 4.6[.1] to avoid a temporary dnlc_t definition
2820 needed at PTX 4.5.1.
2822 Corrected test for old Linux kernels in Configure.
2823 Henri Karrenbeld <ishtar@cal044202.student.utwente.nl>
2824 brought the error to my attention. Limited Linux
2825 claims to 2.1.72 and above in the documentation.
2827 Improved HP-UX 11 Configure stanza and stream socket
2830 Constructed a work-around for the HP-UX 11 optional
2831 OnlineJFS package. The work-around sadly requires
2832 lsof to have a private version of the vx_inode
2833 structure, since the OnlineJFS package doesn't
2834 update <sys/fs/vx_inode.h>. Troyan Krastev
2835 <Troyan.Krastev@ricoh-usa.com> brought the bug to
2836 my attention and Michael Bracewell
2837 <michael@ra.TSS.PeachNet.EDU> provided a test system
2838 where I developed the work-around.
2840 Added locale support to lsof's isprint() test,
2841 based on a suggestion from Dan Mercer <damercer@mmm.com>.
2842 Lsof will use setlocale(), when that function and
2843 its supporting <locale.h> header file are available.
2845 Added OpenBSD 2.9 support.
2847 Based on a report from Aaron Rhodes <arhodes@psionic.com>
2848 and with testing help from Aaron, made the lsof
2849 4.56 revision compile and work on OpenBSD 2.6.
2850 While that OpenBSD version is no longer supported,
2851 Aaron's report exposed a Configure script bug
2852 affecting OpenBSD versions lsof does support.
2854 Updated for FreeBSD 5.0-CURRENT. Szilveszter Adam
2855 <sziszi@petra.hos.u-szeged.hu> help test. The lsof
2856 FreeBSD ports packager, David O'Brien <obrien@FreeBSD.org>,
2859 Tested on AIX 5.1. Loc Le and Nasser Momtaheni of
2860 IBM provided test systems.
2862 4.58 September 13, 2001
2863 Added options to safestrprt() and safestrprtn() to
2864 surround the string with '"' and to suppress the
2865 printing of an ending '\n'. Use of these functions
2866 in device cache file error message reporting answers
2867 a suggestion for better error reporting from John
2868 Jackson <jrj@purdue.edu>.
2870 Fixed a Solaris 2.6 and above problem related to
2871 searching for "large" (O_LARGEFILE) files by name;
2872 lsof was using the wrong version of [l]stat(2).
2873 The bug was reported by Daniel Trinkle
2874 <trinkle@cs.purdue.edu>.
2876 Added AIX 4.1.4 and above XTI socket support.
2878 Added OSR Xenix Shared Data and Semaphore file type
2879 support with modifications supplied by Bela Lubkin.
2881 Updated OPENSTEP support with modifications from Carl
2882 E. Lindberg <lindberg@clindberg.org>. The changes
2883 enable the correct reporting of executable and
2884 library open files ("txt" type).
2886 Limited claims of OpenServer support to the versions
2887 where I currently test, 5.0.4 and 5.0.6. (Lsof
2888 probably works on 5.0.5.)
2890 Enabled processing of -C option for PSTAT-based HP-UX
2893 Enabled and tested on FreeBSD 4.4.
2895 Corrected a file system test example in 00QUICKSTART,
2896 based on a report from Jun Biao WANG <wangjunb@cn.ibm.com>.
2898 Made available for re-distribution a user-contributed
2899 port of lsof 4.51 to Reliant UNIX 5.45. Thomas
2900 Mauterer <Thomas.Mauterer@philosys.de> contributed
2903 4.59 October 20, 2001
2904 With the closing of the Sequent Synergy Links Lab
2905 by IBM, terminated lsof support for PTX. The last
2906 tested PTX lsof revision, 4.58, is available on
2907 lsof.itap.purdue.edu in .../lsof/OLD/src.
2909 Adjusted for FreeBSD 5.0-CURRENT NFS header file
2910 changes, based on a report from Jos Backus
2913 Corrected a bug in the way Linux lsof identifies
2914 the owner of a process. Lionel Cons <lionel.cons@cern.ch>
2915 reported the problem and tested the fix. Added
2916 code to avoid stat(2) calls on regular Linux files
2917 whenever possible. Lionel reported the need to do
2918 this (AFS files) and tested the new code.
2920 Added new output field for raw device number in
2921 hex. The field is identified with 'r'. This field
2922 is NOT selected when -F or -F0 is specified so that
2923 its appearance won't disturb existing scripts that
2924 process field output.
2926 Added support for OpenUNIX 8. A test system was
2927 provided by Larry Rosenman <ler@lerctr.org>.
2928 Matthew Thurmaier <matt@compclass.com> and many
2929 people from Caldera provided technical assistance.
2931 Added an additional UVM test to the NetBSD Configure
2932 stanza. Andrew Brown <atatat@atatdot.net> supplied
2933 the test; it recognizes NetBSD 1.5Y UVM changes to
2934 the vnode structure recently committed by Chuck
2937 Applied Configure and get-xnu-headers.sh script
2938 changes suppled by Allan Nathanson <ajn@apple.com>
2941 Added for Bela Lubkin <belal@mammoth.ca.caldera.com>
2942 OSR-specific environment variables to supply values
2943 to the Configure script. The variables are described
2946 Added an IP version selector to the -i option
2949 4.60 November 9, 2001
2950 Added special handling to and corrected bugs in
2951 the matching of IPv4 in IPv6 addresses to -i6:<...>
2954 Made 00FAQ corrections and updates, based on
2955 discussions with Igor Schein <igor@txc.com>.
2957 Modified Configure script to detect a 64 bit capable
2958 gcc compiler and permit it to be used to build 64
2959 bit (PA-RISC 2) lsof for HP-UX 11.00. Tested with
2960 HP's gcc package, which Rich Rauenzahn of HP kindly
2961 installed on a test system at HP. Stefan Marquardt
2962 <stefan.marquardt@hagebau.de> helped test.
2964 Made lsof's method of killing its child process
2965 more robust, based on a suggestion from Bela Lubkin
2966 <belal@caldera.com>.
2968 Modified all dialect Makefile segments to accept
2969 select -v #define's from the environment -- a
2970 builder's comment, host, logname, system information
2971 and user name. This was done for Bela Lubkin, so
2972 he can "tune" the -v output when he packages lsof
2973 in the upcoming Caldera OSR 5.0.7 release.
2975 Changed Perl scripts in scripts/ to put the lsof
2976 path consistently in $LSOF. Also added a fix from
2977 Bela Lubkin to scripts/big_brother.perl5 that allows
2978 it to tolerate SCO OSR "ago" clauses in open UDP
2979 file information. Strengthened emphasis in
2980 scripts/00README that the scripts are examples that
2981 shouldn't be expected to run on all UNIX dialects
2982 without modification.
2984 At Bela Lubkin's suggestion changed the device
2985 cache file format examples in 00DCACHE and 00FAQ
2986 to avoid "%U%". That's an SCCS escape sequence.
2988 Added support for OpenBSD 3.0.
2990 Added +DAportable to CFLAGS for 32 bit HP-UX 11.
2991 Amir Katz <Amir_Katz@bmc.com> suggested the addition.
2993 4.61 January 22, 2002
2994 Updated field output example Perl scripts in the
2995 scripts/ subdirectory to discover the lsof path,
2996 starting at .. and proceeding through the PATH
2997 environment variable's directories.
2999 Added minor OSR Configure script fixes, provided
3000 by Bela Lubkin <belal@caldera.com>.
3002 In response to a report from Joshua Wright
3003 <Joshua.Wright@jwu.edu> modified NetBSD and OpenBSD
3004 Configure stanzas and sources so that lsof can be
3005 built when there is no system source tree (e.g.,
3008 In response to a report from Peter Valchev
3009 <pvalchev@openbsd.org> improved the UVM test in
3010 the OpenBSD Configure stanza.
3012 Updated Configure script to recognize FreeBSD 4.5.
3013 Updated for FreeBSD 5.0 procfs and pseudofs changes.
3015 Updated HP-UX stanza to see if the compiler named
3016 in the LSOF_CC environment variable is the bundled
3017 compiler. If it is, "-O" is omitted from the
3020 Updated Digital UNIX 4.x and Tru64 UNIX error message
3021 related to kernel name list failures. Added an FAQ
3022 section about how a kloadsrv daemon failure can cause
3023 knlist(3) to fail. The condition was reported by
3024 Douglas B. Jones <douglas@gpc.peachnet.edu>
3026 Based on a report from Mark W. Eichin <eichin@thok.org>
3027 made Linux lsof capable of handling and reporting
3028 file sizes greater than 32 bits.
3030 Tested on Solaris 9 BETA-Refresh.
3032 Corrected a bug in the matching of IPv4 addresses,
3033 mapped in IPv6 addresses, to an IPv4 parameter to
3036 Ported to 64 bit Power AIX 5.1 kernel with advice
3037 from David Clissold <cliss@austin.ibm.com> and Marc
3038 Stephenson <marc@austin.ibm.com>, and on a test
3039 system provided by Loc Le <lple@us.ibm.com>.
3042 Updated 00README to reflect the usefulness of gcc
3043 for building AIX lsof. Documented a report from
3044 Brian L. Gentry <BGentry@nationsrent.com> of success
3045 on AIX 4.3.3. I documented my success on 32 bit
3046 Power AIX 5.1 and my lack of success on ia64 AIX
3047 5.1 and 64 bit Power AIX 5.1.
3049 Improved UnixWare >=7.1.1 reporting of UNIX socket
3050 NAME field information for NonStop Cluster systems
3051 with a patch provided by John Hughes <john@Calva.COM>.
3052 Offered John's improvement as a patch to lsof 4.61.
3054 Corrected bugs in handling of open files on block
3055 devices by OSR lsof. The bugs were reported by
3056 Bela Lubkin <filbo@deepthought.armory.com>.
3058 Fixed bug in writing >32 bit device numbers for
3059 block devices to the device cache file.
3061 Added support for reporting block special nodes
3062 not in /dev (or /devices). That required "like
3063 device special" be changed to "like block special"
3064 and "like character special". (00FAQ was updated.)
3066 Based on a report from Peter Valchev <pvalchev@openbsd.org>
3067 improved the definition of the source for NetBSD
3068 and OpenBSD kernel symbols (the nlist() source
3069 file). NetBSD now defaults to getbootfile(3) if
3070 it is available, /netbsd otherwise. OpenBSD now
3071 defaults to /dev/ksyms if it is available, /bsd
3074 Made possible compilation under BSD/OS (BSDI) 5.0
3075 with changes to Configure, dialects/bsdi/dlsof,
3076 dialects/bsdi/dproc.c and lib/rnmh.c. The changes
3077 were suggested by Steven Hinkle <hinkle@bsdi.com>.
3078 Note that these changes do not substantiate a claim
3079 that lsof works on BSDI 5.0, because I haven't
3082 Updated OpenUNIX private <sys/fs/memfs_mnode.h>,
3083 based on a report from Larry Rosenman <ler@lerctr.org>
3084 that it had been updated by Caldera patch OU800PK3.
3085 Unfortunately the patch only corrects some of the
3086 problems with the header file, so it is still
3087 necessary to distribute a private patched version
3088 of it with the lsof sources.
3090 Applied a man page correction reported by Frederic
3091 Delanoy <max_ok@yahoo.com>.
3093 Corrected cast bugs related to using the HP-UX
3094 bundled C compiler on HP-UX 11.11.
3097 Added HPUX_BOOTFILE environment variable for use
3098 by the Configure script in determining HP-UX kernel
3099 configuration information -- e.g., the state of
3100 the ipis_s structure in the HP-UX 11 kernel. The
3101 change was suggested by Marc Bejarano <beej@alum.mit.edu>.
3102 Marc also suggested some changes to the HP-UX
3103 section in 00FAQ that discusses Configure's use of
3106 Fixed a bug in the Solaris lsof file system matching
3107 code. It was not reporting that VCHR files in
3108 /devices were in / when /devices was in /, too.
3110 Corrected bugs in device number, file size, file
3111 offset, and raw device number field output generation.
3113 Added recognition of OpenBSD 3.1 to the Configure
3114 script with a suggestion from Peter Valchev
3115 <pvalchev@sightly.net>. Note that this change does
3116 not constitute a claim that lsof works on OpenBSD
3117 3.1, because I haven't tested it there.
3119 Built an automated test suite. (See 00TEST and
3120 the tests/ sub-directory of the lsof main directory).
3121 Bela Lubkin requested it. Dale Talcott, John
3122 Hughes, and Larry Rosenman helped me validate it
3125 During the development of the test suite I discovered
3126 the following lsof bugs or missing features, and
3127 corrected or supplied them.
3129 * Corrected the reporting of locks for:
3130 o Digital UNIX 4.0d and Tru64 Unix 5.[01];
3131 o HP-UX 10.30 and 11.00;
3135 * Enabled HP-UX 10.30 and 11.00 to report open NFS
3138 * Corrected the reporting of UNIX domain socket
3139 names for Apple Darwin, FreeBSD 4.5 and above,
3140 NetBSD 1.4.1 and above, and for OpenBSD 3.0 and
3143 * Enabled HP-UX 11.11 to stat(2) large files.
3145 * Fixed handling of combination 32 and 64 bit
3146 device numbers in AIX 64 bit architectures.
3148 Updated the AIX 4.3.3 NFS rnode recognition code,
3149 first installed at revision 4.51. It looks like
3150 some IBM update has restored a single rnode structure
3151 independent of the machine bit width.
3153 Updated the NetBSD and OpenBSD sources so NetBSD
3154 can process DTYPE_PIPE files, as OpenBSD was already
3157 Updated Darwin get-xnu-headers.sh script to reflect
3158 information about a recent reorganization of the
3159 Darwin CVS hierarchy, supplied by Allan Nathanson
3162 Added defense against the standard I/O descriptor
3166 Corrected some FreeBSD pre-processor directives.
3167 David O'Brien <obrien@NUXI.com> pointed them out.
3169 Updated lsof's main() function to: 1) close all
3170 open file descriptors above 2 before starting; and
3171 2) to set a non-interfering umask. Moved GET_MAX_FD
3172 test from misc.c to proto.h, so that main() could
3173 use it. Added multiple-include protection to
3176 Moved FAQ's test suite Q's & A's to a more appropriate
3177 section. Added a Q&A on HASSECURITY option and
3178 its affect on searching for open files. (That was
3179 already in the man page.)
3181 Updated hpux/kmem/dnode.c for HP-UX < 11 compilation
3182 with information from John Dzubera <Zube@CS.ColoState.EDU>.
3183 While lsof doesn't support HP-UX < 11 any more, I
3184 try to avoid disabling it there when possible, and
3185 a locking fix for HP-UX >= 11 in lsof 4.63
3186 inadvertently disabled compilation of lsof for
3187 HP-UX < 11. Fixed long-standing bug in HP-UX 10.20
3190 Removed language from the test suite programs that
3191 requires an ANSI-C compiler. This allowed the test
3192 suite to be validated with cc and gcc on the un-
3193 supported HP-UX 10.20.
3195 At the suggestion of Manuel Bouyer <bouyer@antioche.eu.org>
3196 switched NetBSD and OpenBSD lsof from using nlist()
3197 to using kvm_nlist(). Made the same change for
3198 BSDI, Darwin, and FreeBSD.
3200 Validated test suite on OPENSTEP 4.2.
3202 In response to a suggestion from Jeff Stoner
3203 <jstoner@blackboard.com> enhanced support for the
3204 FD list of the -d option to allow it to be either
3205 an exclusion or inclusion list, using the '^' prefix
3206 to denote exclusions.
3208 Made adjustments for FreeBSD 4.6 and 5.0-CURRENT.
3209 Fixed a FreeBSD /etc/make.conf CFLAGS extraction
3210 bug, reported by Kris Kennaway <kris@obsecurity.org>,
3211 and new a bug in the fix, reported by Eric Cronin
3212 <ecronin@eecs.umich.edu>
3214 Added nullfs support for FreeBSD, NetBSD, and OpenBSD
3215 at the request of Andrew Brown <atatat@atatdot.net>.
3217 Modified all readmnt() functions to ignore mounted-on
3218 directory names that don't begin with '/'.
3220 Tested on NetBSD 1.6A and OpenBSD 3.1.
3222 Upgraded to Solaris 9 FCS with two changes to the
3223 BETA-Refresh support: 1) an adjustment to dnode.c
3224 for a change in the so_so (sonode) structure; and
3225 2) addition of Solaris 9 FCS specific DNLC code.
3226 David Comay <David.Comay@Eng.Sun.COM> sent me the
3227 dnode.c change and Casper Dik <Casper.Dik@sun.com>
3228 helped with the new DNLC support code.
3230 Applied OpenUNIX changes that permit lsof to compile
3231 and run on the upcoming 8.0.1 release. The changes
3232 were supplied by Robert Lipe <robertl@caldera.com>.
3233 Larry Rosenman <ler@lerctr.org> provided a test
3236 Added Solaris fd file system support.
3238 4.65 October 10, 2002
3239 Adjusted for change in FreeBSD 5.0-CURRENT inode
3240 structure, reported by David O'Brien <obrien@NUXI.com>.
3241 Adjusted for changes in FreeBSD 5.0-CURRENT <sys/vnode.h>.
3242 One change was reported by Anders Nordby
3243 <anders@FreeBSD.org>. Adjusted for FreeBSD 5.0-CURRENT
3244 on sparc64 architecture.
3246 Enhanced the error reporting of Solaris lsof when
3247 it detects a kvm_open() failure, and added a 00FAQ
3248 entry on the cause, based on a report from Peter
3249 J. Bertoncini <pjb@anl.gov>.
3251 Enabled compiling of lsof for NetBSD 1.5 with the
3252 NULL file system, using a patch from Andrew Brown
3253 <atatat@atatdot.net>.
3255 Removed a hack in the LTbigf test program that was
3256 once needed when it was compiled on Solaris 9 BETA-
3257 Refresh with gcc. The hack isn't needed on Solaris
3258 9 FCS. Janet Hempstead <jan@library.carleton.ca>
3259 brought the need for this change to my attention.
3261 Applied a patch, supplied by Andrew Brown
3262 <atatat@atatdot.net>, that updates lsof for NetBSD
3263 version 1.6F. Corrected handling of the NetBSD
3266 Updated to BSDI BSD/OS 4.3 on a test system kindly
3267 provided by Terry Kennedy <terry@tmk.com>.
3269 Updated to FreeBSD 4.7.
3271 Updated to Apple Darwin 1.5, 5.x and 6.x with
3272 patches supplied by Allan Nathanson <ajn@apple.com>.
3273 The patches include IPv6 support.
3275 Updated Configure to use the -bnolibpath loader
3276 option when building lsof on a PowerPC, running
3277 AIX 5 or greater. Valdis Kletnieks
3278 <Valdis.Kletnieks@vt.edu> informed me this was
3279 needed. Lsof for AIX 5.x was initially developed
3280 on the IA64, where -bnolibpath can't be used and
3281 I didn't think to restore it to PowerPC loads when
3282 AIX 5.x became available for that architecture.
3284 Updated to UnixWare 7.1.3 on a test system provided
3285 by Larry Rosenman <ler@lerctr.org>. Removed claims
3286 that lsof works on OpenUNIX 8.0.1, because UnixWare
3287 7.1.3 is the release name of OpenUNIX 8.0.1.
3289 Based on a comment that his e-mail address was
3290 wrong in the lsof distribution from Kenneth Stailey
3291 <kstailey@disclosure.com>, removed all e-mail
3292 addresses from lsof documentation files except this
3293 one, 00DIST. The addresses in 00DIST are used to
3294 send revision release notices to those who contributed
3295 to a revision, but the addresses in this file for
3296 previous revisions and in other documentation files
3297 sometimes grow stale and are never validated.
3299 4.66 December 22, 2002
3300 Acquired Solaris 7 and 8 test systems, courtesy of
3301 John Dzubera <Zube@CS.ColoState.EDU>. Updated
3302 00TEST and tests/TestDB accordingly.
3304 Clarified FreeBSD 5.0 architecture claims at the
3305 suggestion of David O'Brien <obrien@NUXI.com>.
3306 Also implemented David's suggestion to change
3309 Installed changes to DNLC handling in OSR lsof in
3310 preparation for handling changes in the OSR 5.0.7
3311 DNLC cache. Information about the changes and
3312 patches to handle them were supplied by Bela Lubkin
3313 <filbo@deepthought.armory.com>.
3315 Upgraded True 64 UNIX support to the 5.1B release
3316 on a test system provided by Berkley Shands
3317 <berkley@cse.wustl.edu> Had to used relaxed ANSI
3318 compilation because of an error in a system header
3319 file and other lsof source usages.
3321 Implemented the HASNOSOCKSECURITY compile-time
3322 option. When it and HASSECURITY are defined, lsof
3323 will be built to list only the user's open files,
3324 but will also list anyone else's open socket files,
3325 provided the "-i" option selects their listing.
3326 Updated the Customize script to ask about setting
3327 HASNOSOCKSECURITY. Left it undefined in all dialect
3328 machine.h header files. This change was requested
3329 by Kenneth Stailey <kstailey@speakeasy.net> for
3332 Added support for OpenBSD 3.2 and its kernel trace
3335 Improved lsof help (-h) and version (-v) information
3338 Fixed a FreeBSD 4.7 and above off-by-two UNIX domain
3339 socket path termination bug, reported by Ken Stailey
3340 <kstailey@speakeasy.net>
3343 Began the transition of the lsof ftp server host
3344 name from vic.cc.purdue.edu to lsof.itap.purdue.edu.
3345 That reflects Purdue organizational changes. This
3346 first step makes the new name an alias to the old
3347 one. The old name, vic.cc.purdue.edu, will remain
3348 usable for an extended period.
3350 Corrected a revision number reference in section
3351 17.17 of 00FAQ on the appearance of Solaris negative
3352 DNLC caching handing.
3354 Updated 00FAQ discussion of compilers for 64 bit
3357 Validated test suite for 64 bit Solaris 8 and gcc.
3359 At the request of Alek O. Komarnitsky <alek@komar.org>
3360 added the "+c <width>" option to enable optional
3361 changing of the COMMAND column output maximum width
3362 from the default to <width>. The default maximum
3363 width remains CMDL, as defined in lsof.h.
3365 Fixed three AIX kernel bit size detection bugs,
3366 one in the AIX Configure script stanza, the second
3367 and third in the AIX dproc.c get_kernel_access()
3368 function. The bugs were reported by Pierre-Yves
3369 Fontaniere <pyf@cc.in2p3.fr>, who tested the fixes.
3371 Added kernel event queue file support for FreeBSD,
3372 NetBSD and OpenBSD. Andrew Brown <atatat@atatdot.net>
3375 Updated to AIX 5.2 on a test system provided by
3376 Dale Talcott <dtalcott@purdue.edu>. Had to build
3377 work-arounds for two missing AIX 5.2 header files,
3378 <j2/j2_snapshot> and <proc/proc_public.h>. Corrected
3379 an off-by-one UNIX socket addressing bug. Taught
3380 AIX lsof to handle both jfs and jfs2 files at the
3381 same time. Adjusted for an IBM mistake in the
3382 sizing of the fdsinfo structure in <procinfo.h>
3383 Toshiya Nakamura <TOSHIYAN@jp.ibm.com> helped test,
3385 Updated to FreeBSD 4.8. Corrected another bug in
3386 FreeBSD UNIX domain socket name handling.
3388 Corrected gcc build problems on HP-UX 11i, reported
3389 by Yuliy Minchev <yuliy@mobiltel.bg>.
3391 Updated BSDI BSD/OS support to 4.3.1.
3393 Augmented a lock ID test on NetBSD to check if the
3394 ID is an LWP pointer.
3397 Enhanced Configure script's cleanup operations.
3399 Added support for OpenBSD 3.3, based on a report
3400 from Peter Valchev <pvalchev@sightly.net>.
3402 Improved the description of the detached PGP
3403 signature certificate file in the main lsof README
3404 file, based on a suggestion from Diana Stockdale
3405 <diana@mpl.ucsd.edu>.
3407 Installed a work-around for FreeBSD 5.0-CURRENT on
3408 Alpha to avoid a compiler register use complaint.
3410 Corrected a 'c' option error message. Gnele
3411 <blaadeleng@yahoo.com> reported the problem.
3413 Upgraded EXT2FS and UFS support for NetBSD and
3414 OpenBSD to handle new inode information, and the
3415 fast UFS1 and UFS2 file systems.
3417 With the help of Andrew Brown <atatat@atatdot.net>
3418 determined the NetBSD snapshot (1.6F) at which
3419 <sys/mount.h> could be included under _KERNEL, thus
3420 eliminating the lsof netexport.h hack. The same
3421 change applies to OpenBSD versions 3.3 and above.
3423 Applied a patch from Armin Gruner <ag@muc.de> that
3424 corrects the use of the HASPROCFS definition in the
3425 FreeBSD dialect sources.
3427 Corrected spelling errors in 00FAQ and in the
3428 generated 00.README.FIRST_<version> file of the
3429 distribution archive. John Jackson <jrj@purdue.edu>
3430 and Ray Phillips <r.phillips@jkmrc.uq.edu.au>
3431 spotted and reported the errors.
3433 Corrected a spelling error in a comment and incorrect
3434 use of an alarm function in the LTsock test program.
3436 At the suggestion of Stuart Anderson <sba@srl.caltech.edu>
3437 added preliminary (and incomplete) SAM-FS file system
3438 support to Solaris lsof. Completion awaits availability
3439 of SAM-FS internals.
3441 Fixed a Solaris device name printing bug, reported by
3442 Ric Anderson <ric@tick.Telcom.Arizona.EDU>, only
3443 visible when HASDCACHE is not defined. Ric helped
3446 Fixed an AIX kernel bit size handling bug related
3447 to the NFS node (rnode) structure.
3449 Corrected a print_kptr() function call error in the AIX
3450 AFS code, reported by David Steiner
3451 <david.r.steiner@Dartmouth.EDU>. Upon further reflection
3452 and because I no longer have appropriate AIX AFS test
3453 systems, disabled AIX AFS support in the Configure script
3454 for AIX versions above 4.3.3.0 or AIX AFS versions above 3.5.
3456 Added support for FreeBSD 5.1.
3458 With advice from Allan Nathanson <ajn@apple.com> adjusted
3459 the Darwin get-xnu-headers.sh script to access the kernel
3460 header files needed by lsof from a new form of the Apple
3461 open source repository.
3463 Installed Linux and lsof library bug fixes and
3464 improvements, supplied by Marian Jancar <mjancar@suse.cz>.
3465 One Linux improvement handles mount strings that
3466 have octal escapes in them, eg., \040 for embedded
3467 blanks. Marian tested the changes.
3469 4.69 October 16, 2003
3470 Received and applied an OpenBSD patch from Peter Valchev
3471 <pvalchev@sightly.net> that replaces a ctob() call with
3472 a sysconf() call. Peter claims sysconf() is needed for
3473 OpenBSD on SPARC. (It is not needed for NetBSD on SPARC.)
3475 With the upgrade of my only Solaris 7 test system
3476 to, Solaris 8, dropped the *claim* that lsof works
3477 on Solaris 7. That doesn't mean it won't work
3478 there, so those who want lsof for Solaris 7 probably
3479 should be able to build it there and it probably
3482 Revised lsof's DNLC handling for BSD derivatives,
3483 including: BSDI; Darwin, DEC OSF/1, Digital UNIX
3484 and Tru64 UNIX; FreeBSD; NetBSD; and OpenBSD. The
3485 latest NetBSD distribution's dropping of the vnode
3486 capability ID (v_id) required the revision.
3488 Adjusted to the latest FreeBSD 5.1-CURRENT.
3490 Added NetBSD support for using kvm_getproc2().
3492 Added a patch from Andrew Brown <atatat@atatdot.net>
3493 to handle NetBSD enum conflicts and changes in the
3494 <miscfs/kernfs/kernfs.h> and <miscfs/procfs/procfs.h>
3497 Added a "#define _KERNEL" to the AIX dnode2.c source
3498 file for compatibility with a new <j2/j2_inode.h>
3499 AIX 5.2 header file version. The addition was
3500 supplied by Dick Dunbar <Dick.Dunbar@Siebel.com>
3501 and was offered as a patch to lsof 4.68/
3503 Added support for a second type of Solaris SAMFS.
3504 Stuart Anderson <sba@srl.caltech.edu> provided the
3505 support. SAMFS support in lsof SOLARIS remains
3506 scanty, because Sun won't release any details on
3507 its kernel structures.
3509 Dropped the *claim* that lsof works on AIX 4.3.3,
3510 because I was unable to test it there. That doesn't
3511 mean it won't work there, so those who want lsof
3512 for AIX 4.3.3 probably should be able to build it
3513 there and it probably will work there.
3515 Updated for Solaris 10 on test systems provided by
3516 Mike Miscevic <miscevic@hotpop.com>. Casper Dik
3517 <casper@holland.sun.com> provided significant help.
3518 During the Solaris 10 port found and fixed an lofs
3519 handling bug that prevented reporting of open lofs
3522 Updated the DNLC test, LTdnlc, to provide a possible
3523 explanation about file systems on which the test
3526 Modified the procedure for obtaining missing Darwin
3527 XNU kernel header files. The new one requires more
3528 manual intervention, but is the best that can be
3529 done with the way Apple open sources are now
3530 organized. 00FAQ explains the new procedures for
3531 those not used to downloading Apple open source
3534 Added support for Apple Darwin 7.0 (Mac OS X 10.3)
3535 with patches supplied by Allan Nathanson <ajn@apple.com>.
3536 Dropped the *claim* that lsof builds and works on
3537 Apple Darwin below 6.0.
3539 Validated lsof on FreeBSD 4.9, using a test system
3540 provided by Ben Lewis <bl@purdue.edu>.
3542 Validated lsof on FreeBSD 5.1-CURRENT for Amd64.
3543 David O'Brien <obrien@FreeBSD.org> provided a test
3546 Changed the NetBSD Configure stanza to do header
3547 file searches in /usr/include by default. The
3548 LSOF_INCLUDE and NETBSD_SYS environment variables
3549 may still be used to specify other search paths.
3550 Discussions with Andrew Brown and Wolfgang S.
3551 Rupprecht <wolfgang@wsrcc.com> led to the change.
3553 4.70 January 16, 2004
3554 Improved shell-portability of the linux stanza of
3555 the Configure script with a patch from Paul Jarc
3558 Added a "silent" rule to tests/Makefile for Paul.
3559 Updated, extended and clarified the test suite
3560 documentation in 00FAQ and 00TEST.
3562 Fixed Solaris 10 dlsof.h typo, reported by Mike
3563 Miscevic <miscevic@hotpop.com>. The typo prevents lsof
3564 from loading cleanly in Solaris 10 builds past 40.
3566 Fixed a Solaris HSFS node number reporting bug and
3567 added a structure definition work-around for Solaris
3570 Converted PGP signing to GPG. My previous PGP key can
3571 be used, but the gpg "--allow-non-selfsigned-uid"
3572 option may have to be used when it is imported into a
3575 Added bz2 compression.
3577 Updated for OpenBSD 3.4.
3579 Added a work-around for a missing header file in the
3580 s10_44 Solaris 10 build.
3582 Added support for FreeBSD 5.2-BETA and 5.2-CURRENT.
3584 Updated Linux AX25 support with modifications supplied
3585 by Lutz Poetschulat <dl9cu@db0zwi.de>.
3587 Added raw IPv6 support to Linux lsof.
3589 Improved handling of parameters after "-i@".
3591 Improved file name test in LTdnlc.c.
3593 Added loop count controls to the reading of Solaris
3594 lock chains. The change was implemented as a result of
3595 a report from Steve Gonczi <steve@relicore.com>.
3597 Based on a report from John Jackson <jrj@purdue.edu>,
3598 enabled a Solaris 10 <sys/lgrp.h> work-around for
3599 Solaris 9, too. (Patch 112233 installs an lgrp.h on
3600 Solaris 9 that needs the work-around.)
3602 With help from Andrew Brown <atatat@atatdot.net> and
3603 John Heasley <heas@netbsd.org> added log-structured
3604 file system (LFS) support for NetBSD and OpenBSD.
3606 Added AMD64 to the list of FreeBSD 5.x-CURRENT
3607 supported architectures. FreeBSD.org provides a test
3608 system, courtesy of (I believe) David O'Brien
3609 <obrien@FreeBSD.org>.
3611 Added a cast to lseek() in the HP-UX /dev/kmem-based
3612 kread() function to make it work properly with the
3613 bundled HP C compiler.
3616 Added text file support to Apple Darwin lsof and
3617 enabled the lsof executable portion of the LTbasic
3618 test. Added support for Darwin kernel queue, POSIX
3619 semaphore and POSIX shared memory files. Tested on
3620 Darwin 7.2 (aka Mac OS 10.3.2).
3622 Added process_kqueue() function prototypes for FreeBSD,
3625 Picked some lint in AIX sources, lib/rnmh.c and
3628 Added "-x [fl]" cross-over option, which enables +d and
3629 +D processing to cross over symbolic links and|or file
3630 system mount points. Discussion with Johan Lindquist
3631 <johan@smilfinken.net> and Eric Williams (aka The Ghost
3632 In The Machine) <ewill3@earthlink.net> on Linux news
3633 groups revealed the need for the option.
3635 Updated support for UnixWare 7.1.4.
3637 Added support for the optional reporting of socket
3638 options, socket states and TCP flags for most currently
3639 supported dialects. John Smith <lbalbalba@hotmail.com>
3640 and Tristan Nefzger <tn@bhtrader.com> requested the
3641 information. The dialects and their versions for which
3642 this feature has become available include:
3644 AIX 4.3.2 and 5.[12]
3647 Digital UNIX and Tru64 UNIX 4.0
3649 HP-UX 11 and 11.11 (aka 11i)
3654 SCO OpenServer Release 5.0.6
3655 Solaris 2.6, 8, 9 and 10
3658 Modified the Configure stanza for HP-UX 11 with better
3659 q4 detection. Steve Bonds <3vhmxxm02@sneakemail.com>
3660 supplied the modification.
3662 Applied a patch from Mike Miscevic <miscevic@hotpop.com>
3663 to enable lsof to compile with the zone support in the
3664 Solaris 10 s10_b51 release. Added information on lsof
3665 zone behavior to 00FAQ.
3667 Added a "-z [z]" option to Solaris 10 lsof. It enables
3668 the listing of zone name and can also be used to select
3669 the listing of processes and their files from specified
3673 Corrected Solaris 10 ZONE column title display bug with
3674 a patch from Joep Vesseur <Joep.Vesseur@Sun.COM>. Joep's
3675 fix was offered as a patch to 4.71.
3677 Based on a report from Jean-Pierre Radley <jpr@jpr.com>
3678 about an unexpected GNU uname Configure interaction on
3679 OSR, and working from information received from Bela
3680 Lubkin, changed the OSR Configure stanza to use
3681 /bin/uname instead of uname. Added an FAQ entry about
3682 Configure version detection problems.
3684 Added the +m and "+m m" options in response to a dialog
3685 with Robert T. Brown <rbrown@netmentor.com>. The
3686 options allow the creation of a mount table supplement
3687 file which can be used on selected dialects to get
3688 device numbers when stat(2) and lstat(2) can't deliver
3689 them. (That's generally the result of an inaccessible
3690 NFS server.) Currently the new options are supported
3693 Made cpumask_t typedef _KERNEL compensation for FreeBSD
3694 5.2-CURRENT. Refined it for 5.2.1-RELEASE with testing
3695 help from Scott Ellentuch <tuc@ttsg.com>.
3697 Added support for FreeBSD 4.10. Larry Rosenman
3698 <ler@lerctr.org> kindly provided a test system.
3700 Added support for NetBSD 2.0 with patches supplied by
3701 Andrew Brown <atatat@atatdot.net>. Andrew also
3702 provided two test systems.
3704 Made handling of Linux maps file more robust, based on
3705 a report from Jan Blunck <J.Blunck@tu-harburg.de>. As
3706 a side benefit, made handling of generated stat(2)
3707 information more flexible.
3709 As a result of a discussion with Jason Fortezzo
3710 <fortezza@mechanicalism.net>, adjusted lsof for Solaris
3711 to obtain the maximum user name length from ut_name of
3712 the utmpx structure, if <utmpx.h> exists.
3714 Tested under OpenBSD 3.5.
3716 Updated 00README information about using gcc (via the
3717 Configure aixgcc abbrevisiation) to compile lsof on
3718 AIX. Ann Janssen <ajanssen@nebook.com> made me aware
3719 the information was out of date.
3721 Added an AIX SIGDANGER handler and some 00FAQ sections
3722 on lsof memory usage after a discussion with Tom Qin
3723 <tom.qin@citigroup.com> about lsof memory usage.
3725 Added scripts/sort_res.perl5, contributed by Fabian
3726 Frederick <fabian.frederick@gmx.fr>. The script
3727 displays lsof output sorted by size and path name.
3729 Improved handling of files on Linux NFS mount points
3730 that use the root_squash option, based on discussions
3731 with Paul Szabo <psz@maths.usyd.edu.au>.
3733 Updated FreeBSD 5.2-CURRENT support, based on a problem
3734 report from Filippo Natali <filippo@widestore.net>.
3736 Corrected improper FreeeBSD 5.x-CURRENT #if condition,
3737 reported by Kim Culhan <kimc@kim.net>.
3739 Added a Configure script work-around for AIX 5.2 lsof
3740 with JFS2, compiled by gcc >= 3.3. The work-around
3741 was supplied by Florian M. Weps <fmw@hactrn.ch>.
3743 4.73 October 21, 2004
3744 Added an __XPG4_CHAR_CLASS__ #define before
3745 #include'ing <ctype.h> on Solaris to restore lsof's
3746 ability to display special characters such as acute-e.
3748 Added wide-character (e.g., UTF-8) support where
3749 possible, prompted by a request from Kyungjoon Lee
3750 <kjoonlee@gmail.com>. Some older dialects -- e.g.,
3751 NetBSD 1.4.1 -- don't support wide characters, so the
3752 wide character support is enabled by definitions in
3753 each dialect's machine.h. Dialects with wide-
3754 character support are listed in 00FAQ.
3756 Make a FreeBSD 5.2-CURRENT adjustment for <sys/pipe.h>,
3757 supplied by Sergey A. Osokin <osa@FreeBSD.ORG>.
3759 Implemented a Linux feature request made by Jakub
3760 Jelinek <jakub@redhat.com> that enhances lsof's ability
3761 to locate UNIX domain sockets whose paths are named as
3762 arguments. Jakub supplied suggested code.
3764 Dropped *claims* that lsof works on AIX below 5.1, SCO
3765 Dropped *claims* that lsof works on AIX below 5.1, SCO
3766 Openserver 5.0.4, Tru64 UNIX 5.0, and UnixWare below
3767 7.1.4. Lsof will probably build and work on those UNIX
3768 dialect versions, but I no longer have any way to test
3771 Added support for FreeBSD 5.3 and 6.0. The FreeBSD
3772 5.3 support hasn't been tested.
3774 Added FD test code that will allow dialect versions to
3775 test FD option selections. Used the new code in the
3776 PSTAT-based HP-UX lsof to enable it to avoid scanning
3777 the mount table when its information is not needed.
3778 The addition was made in response to a query from
3779 Harvey Garner <Harvey.Garner@championusa.com> about
3780 lsof performance in a busy NFS environment.
3782 Upgraded lsof's AIX support level to AIX 5.3, based on
3783 a report from Dick Dunbar <Dick.Dunbar@Siebel.com>. (I
3784 have not tested lsof under AIX 5.3.) Based on Dick's
3785 recommendation and local testing changed the C for AIX
3786 version 6 and higher -qmaxmem option value to -1.
3788 Made LSOF_AR environment variable more useful and
3789 documented it in 00XCONFIG.
3791 Corrected the use of sum(1) to generate signatures for
3792 the lsof distribution and binaries to match the
3793 documentation that claims it is sum -r output. Jin
3794 Guojun <jin@george.lbl.gov> noticed and reported the
3797 Tested under OpenBSD 3.6.
3799 Added checksum and GPG certificate files for the bz2,
3800 gz and Z lsof distribution archives. The new files
3801 reside with the distribution archives and supplement
3802 the signature information already inside the archives.
3804 Validated on Solaris 10, i8xpc, build s10_63.
3806 4.74 January 17, 2005
3807 Fixed a Solaris segment fault bug on systems that lack
3808 a /dev/allkmem device. Offered the fix as a patch to
3809 lsof 4.73. The bug was reported by Donald Zoch
3810 <donald.zoch@amd.com>.
3812 Updated lsof for FreeBSD 6.0 and higher for a change in
3813 <sys/vnode.h>, based on a report from Sergey A. Osokin
3814 <osa@FreeBSD.ORG>. Made the update available in a 4.74
3815 'A' edition pre-release.
3817 Filed an HP bug report about missing pstat(2) CWD info
3818 for LOFS on HP-UX 11.11 and higher. The missing CWD
3819 info was noticed by Ermin Borovac <e.borovac@bom.gov.au>.
3820 Added info to 00FAQ about the problem, which can cause
3821 the lsof test suite's LTbasic test to fail.
3823 Updated the q4-generated tcp_s.h in the lsof
3824 distribution and added socket option support for HP-UX
3825 11.00. Erwin Reyns <ereyns@europarl.eu.int> helped
3828 Updated for Solaris 10, build s10_69, with a patch
3829 supplied by Mike Miscevic <miscevic@hotpop.com>.
3831 Added v_path support to Solaris 10 lsof. That relieves
3832 it of having to read and decode the kernel DNLC, and
3833 delivers full paths more reliably.
3835 Added specialized NFS4 support to Solaris 10 lsof.
3837 Applied Solaris 10 patches to lsof supplied by Casper
3838 Dik <casper@holland.sun.com>.
3840 Updated lsof for NetBSD 2.99.10 and tested it on a
3841 system provided by Andrew Brown <atatat@atatdot.net>.
3843 Added support for the FreeBSD 6.0-CURRENT f_vnode
3844 pointer in the file structure.
3846 Added BSDI, FreeBSD, NetBSD and OpenBSD support for the
3847 *effnlink member of the inode structure. This makes
3848 the lsof LTnlink test run faster on all modified
3849 dialects and correctly on OpenBSD.
3851 Added ptyfs support for NetBSD, using modifications
3852 provided by Andrew Brown.
3854 Changed the netbsd Configure stanza to look by default
3855 for system header files in both /usr/include and
3856 /usr/src. (The NETBSD_SYS environment variable can
3857 still be used to select an alternate for /usr/src.)
3859 Corrects two FreeBSD 4.10 RPC/XDR type definitions.
3861 Added an FAQ Q&A about setuid and setgid restrictions
3862 in HP-UX 11.11. The information in the answer was
3863 supplied by Frank Sanders <frank.sanders@siemens.com>.
3865 Added abbreviations for AXI FCIO and FSNAPSHOT file
3866 flags. Holger VanKoll <Holger.VanKoll@swisscom.com>
3867 reported the missing FCIO.
3869 Adjusted lsof's private AIX 64 bit rnode structure for
3870 64 bit AIX 5.2 systems. (IBM doesn't distribute a
3871 correct <nfs/rnode.h> for it.)
3873 Corrected a Linux socket inode printing bug reported by
3874 Igor Schein <igor@txc.com>.
3876 Updated for FreeBSD 4.11. The support compiles but
3879 Back-ported a FreeBSD 6.0-CURRENT fix to FreeBSD
3880 5.3-RELEASE-p1. That was done to solve a compilation
3881 problem reported by Radko Keves <rado@daemon.sk>.
3884 Dropped the *claim* that lsof works on DEC OSF/1 and
3885 Digital UNIX, since my last 4.0 test system has been
3886 removed. The last tested distribution of lsof on DEC OSF/1
3887 and Digital UNIX was revision 4.74. It has been archived
3888 on lsof.itap.purdue.edu in pub/tools/unix/lsof/OLD/src.
3890 Added negation forms to the values in the -g (PGID) and
3891 -p (PID) lists. Negated PGID and PID values, like
3892 negated UID or login name values, are applied without
3893 ORing or ANDing and take effect before any other
3894 selection criteria are applied.
3896 At the request of Marcin Gozdalik <gozdal@gmail.com>
3897 added a -X option for Linux. The option inhibits the
3898 reading of the /proc/net/tcp* and /proc/net/udp*
3901 Based on a report from David Gutierrez
3902 <davegu1@hotmail.com> changed DEC OSF/1 process table
3903 allocation to request memory in smaller increments.
3905 Based on a report from jayjwa <jayjwa@atr2.ath.cx>
3906 updated the Customize script to use "tail -n 1" where
3909 Enabled support for FreeBSD 5.4.
3911 Improved the BSDI, FreeBSD, NetBSD, OpenBSD and Solaris
3912 kvm_open() and kvm_openfiles() error messages.
3914 Enabled support for NetBSD 2.99.12.
3916 Improved HP-UX Configure stanza with help from Piet
3917 Starreveld <pstarrev@csc.com>. Picked some lint Piet
3920 Enabled IPv6 support for HP-UX > 11. Piet Starreveld
3921 helped test it on 11.23, among others.
3923 Updated for HP-UX 11.23 on the ia64 architecture.
3925 Updated to latest FreeBSD 6.0-CURRENT, using a test
3926 system provided by Andrzej Tobola <ato@iem.pw.edu.pl>.
3928 Added support for SCO OSR 6.0.0 and UnixWare 7.1.4 with
3929 help from Richard at SCO.
3931 Corrected a Linux bug in NFS handling, reported by Karel Zak
3932 <kzak@redhat.com>. Karel supplied a patch.
3934 Improved the code for accessing an AIX 3.2 and higher
3935 sockaddr_un structure, thus eliminating a segmentation
3938 Updated for AIX 5.3.
3940 Added preliminary (DEBUG) support for the AIX SANFS
3943 Fixed a bug in the Solaris 10 processing of the vnode's
3944 v_path pointer with code supplied by Edward Jajko
3945 <ejajko@portal.com>. The fix was offered as a patch to
3948 Dropped support for OpenUNIX 8, since a test system is
3949 no longer available. Archived an OpenUNIX-only
3950 distribution of the last revision (4.74) tested on
3951 OpenUNIX in pub/tools/unix/lsof/OLD/src.
3953 Tested under Openbsd 3.7.
3955 Tested under Darwin 7.7.0.
3957 Enabled building on amd64 Solaris 10 with hints from
3958 Marc Aurele La France <tsi@ualberta.ca>. Marc provided
3961 Supplied a missing quote in the FreeBSD Configure
3962 stanza. Carl Cook <Info@quantum-sci.com> reported the
3965 Removed "-O" option from tests/Makefile so that the
3966 HP-UX bundled compiler won't complain.
3968 4.76 August 30, 2005
3969 Corrected an example and spelling errors in man page.
3971 Updated for Apple Darwin 8.x with changes supplied by
3972 Allan Nathanson <ajn@apple.com>. Allan also provided a
3975 Completed documentation of CLRLFILEADD in all machine.h
3978 At the request of Chris Markle <cmarkle@sendmail.com>
3979 added partial listen queue length to socket options
3980 displayed when -Tf is specified. Partial queue length
3981 is not reported for all dialects. (00FAQ lists the
3982 ones where it is reported.)
3984 Updated for FreeBSD 7.0 with information supplied by
3985 Andrzej Tobola <ato@iem.pw.edu.pl>.
3987 Updated Solaris VxFS support for VxFS versions 4 and
3988 above with technical advice from Craig Harmer
3989 <craig_harmer@symantec.com>, Gary Millen
3990 <gary_millen@symantec.com> and Chuck Silvers
3991 <charles_silvers@symantec.com>. Testing help was
3992 provided by Michael Antlitz <mantlitz@prophasys.com>,
3993 Steve Ginsberg <steve@dhapdigital.com> and Kenneth
3994 Stailey <kstailey@yahoo.com>.
3996 Fixed a Solaris address space map processing bug.
3997 Janardhan Molumuri <mjanardhan@gmail.com> reported the
3998 bug and help me identify it. Made the fix available as
4001 Added support for Solaris 10 port and CTFS files. The
4002 CTFS support is imcomplete, because I don't know how
4003 to get inode number, size and link count. (There's
4004 a new 00FAQ entry about that.)
4006 Investigated a report from Christopher J Warweg
4007 <warwegc@GAO.GOV> that the CHECKSUMS for the lsof 4.75
4008 binary for 64 bit Solaris 8 was incorrect. It was my
4009 packaging error. I rebuilt and repackaged the binary.
4011 Enabled support for Linux map file names with embedded
4015 Added -X option support for Solaris 10 and above. When
4016 -X is specified lsof will report cached v_node path
4017 names for unlinked files, followed by "(deleted)".
4018 Improved cached vnode path name handling by adding
4019 "(?)" to the end of path names of questionable accuracy.
4020 Updated 00FAQ to reflect these changes.
4022 Updated for FreeBSD 7.0-CURRENT.
4024 Fixed name addition spacing bug, reported by Stuart
4025 Anderson <anderson@ligo.caltech.edu>. Also updated
4026 Solaris 10 SAMFS support at Stuart's request.
4028 Added missing "break;" and another HASSTATVFS test to
4029 the NetBSD and OpenBSD dnode.c. Bill Behr
4030 <bbehr@networkstoragecorp.com> reported those needs.
4032 Fixed an HP-UX 11 file descriptor "chunk" size problem,
4033 reported by Per Allansson <per@appgate.com>. Per helped
4034 devise the fix and tested it. This fix was offered as
4035 a patch to lsof 4.76.
4037 Updated for FreeBSD 6.0-STABLE and FreeBSD
4040 Updated scripts/sort_res.perl5 with changes supplied by
4041 Frederick Fabian <fabian.frederick@skynet.be>, the
4042 author of the script.
4044 Corrected +|-M man page documentation error, reported
4045 by Roger Cornelius <rac@tenzing.org>.
4047 Improved FreeBSD user device random seed generation in
4048 response to a problem report from Danny Braniss
4049 <danny@cs.huji.ac.il>.
4051 Eliminated three syntax error bugs and other compiler
4052 complaints from the PSTAT-based lsof. H. Merijn Brand
4053 <h.m.brand@xs4all.nl> reported the problems and tested
4056 Eliminated compiler complaints in the test suite.
4058 Investigated problems with the building of lsof on
4059 PA-RISC HP-UX 11.23, based on a report from John
4060 Orndorff <John.Orndorff@sungard.com>. Found that
4061 neither the HP bundled C compiler nor gcc would build
4062 lsof, but the the HP unbundled ANSI C compiler would.
4063 Concluded that HP bundled C compiler can't handle
4064 <gssapi/gssapi.h>. Devised a work-around to gcc's
4065 omission of the rpcent structure definition of
4066 <netdb.h> that allows it to compile lsof's print.c, but
4067 the resulting binary doesn't run reliably. Documented
4068 the situation in 00FAQ.
4070 Changed reporting of unknown file types. The number of
4071 an unknown type is now reported as four octets. The
4072 change was made in response to a Linux lsof bug report
4073 from Karel Zak <kzak@redhat.com>.
4075 Dropped the *claim* that lsof works on BSDI BSD/OS
4076 since my last test system has been removed. The last
4077 tested distribution of lsof for BSDI BSD/OS was
4078 revision 4.76. It has been archived on
4079 lsof.itap.purdue.edu in pub/tools/unix/lsof/OLD/src.
4081 As a result of discussing the lsof source tar's MD5
4082 checksum with Andrew Bell <andrew.bell.ia@gmail.com>,
4083 changed the description of a suitable MD5 tool in the
4084 lsof distribution's documentation to name the openssl
4087 Enabled compilation on Solaris 10 1/06 with a fix sent
4088 by Jason Fortezzo <fortezza@mechanicalism.net>. Made
4089 the fix available as a patch to 4.76.
4091 Adjusted to FreeBSD 5.5-PRERELEASE.
4093 Corrected a bug in the lsof library's process_file()
4094 function to enable the locating of AIX XTI sockets by
4095 their TCP/IP address values. The bug was reported by
4096 Michel Dubois <Dubois@sears.ca>.
4098 Based on a bug report from Karel Zak <kzak@redhat.com>
4099 added command name length checking to as many dialects
4100 as possible (Linux for Karel) for the "-c c" option.
4102 Updated for OpenBSD 3.[89]. Tested the 3.9 update on a
4103 system provided by David Mazieres. I have not tested
4104 on OpenBSD 3.8, but David reports lsof 4.76 worked
4107 Ended regression testing of lsof on 32 bit Solaris 8
4108 with the ending of access to a test system. Lsof
4109 continues to be tested on 64 bit Solaris 8.
4112 Added more information to the lsof FAQ about missing
4113 link counts and sizes on Linux files.
4115 Simplified Linux stat() and lstat() usage.
4117 Relocated #define's that prevent OpenBSD compilation on
4118 systems without a /proc file system. Pieter Bowman
4119 <bowman@math.utah.edu> reported the problem.
4121 Added code to avoid processing Linux /proc/<PID>/maps
4122 file entries with zero device and node numbers. Some
4123 such entries now have names associated with them that
4124 are not path names -- e.g., "[heap]", "[stack]" or
4125 "[vdso]". Scott Worley <sworley@chkno.net> reported
4126 lsof's mishandling of such entries.
4128 Added SELinux security context support, provided by
4129 James Antill <james.antill@redhat.com>. I have not
4130 tested this, but James and Karel Zak <kzak@redhat.com>
4133 Added the #include of <sys/types.h> to Solaris lsof to
4134 enabled compilation on Solaris 10 6/06. Peter Harvey
4135 Peter.Harvey@Sun.COM diagnosed the problem and supplied
4138 Added better support for JFS2 on AIX 5.2 and 5.3, based
4139 on bug reports and help from Thomas Braunbeck
4140 <BRAUNBEC@de.ibm.com> and Tom Whitty <TWHITTY@cerner.com>.
4142 Documented that lsof supports AIX 5.3 only up through
4143 maintenance level 1 (ML1).
4145 Enabled Solaris lsof to locate the AFS vnode operation
4146 address for OpenAFS 1.4.1. The fix was supplied by
4147 Robert Jelinek <Robert.Jelinek@MorganStanley.com>.
4149 Enabled support for Solaris 10 ZFS. If the necessary
4150 ZFS header files aren't found, lsof offers the option
4151 to drop ZFS support, to use internal, possibly
4152 inaccurate structure definitions, or to supply a path
4153 to the missing header files. Horst Scheuermann
4154 <Horst.Scheuermann@uni-trier.de> provided a development
4155 system and helped test the support.
4157 Corrected a typo in the man page, reported by Eric S.
4158 Raymond <esr@thyrsus.com>.
4160 Changed the spelling of macroes to macros in lsof
4161 source and documentations files, based on a suggestion
4162 from Josh Soref <timeless@gmail.com> and verification
4165 The following dialects are no longer supported: 32 bit
4166 AIX 5.2, HP-UX 11, OpenStep 4.2, Solaris 2.6, Solaris
4167 8, True Unix 64 and UnixWare 7.1.4. Lsof may work on
4168 them, but I no longer have test systems for them.
4169 Support for OpenBSD ends at its version 3.9 for lack of
4170 interest in the port.
4174 **************** IMPORTANT NOTE ******************
4176 * Lsof support has been reduced to the following *
4177 * dialects: AIX, FreeBSD, Linux and Solaris, and *
4178 * only in selected versions of those dialects. *
4179 * The selected versions are listed in this file *
4180 * and in other lsof documentation. *
4182 * I have made this move because of retirement *
4183 * and because I no longer have many test systems *
4184 * available to me. *
4188 **************************************************
4190 Fixed a Solaris VXFS permission problem when accessing
4191 the VXFS inode offsets. The bug was reported by
4192 Gregory A. Ivanov <ivga@mts.ru>. Gregory tested the
4195 Moved an #include <string.h> later in FreeBSD dlsof.h
4196 to enable compilation on recent FreeBSD releases. The
4197 change was supplied by Roy Marples <uberlord@gentoo.org>.
4199 Improved Linux /proc file stream reading speed by applying
4200 an expanded version of a patch from Eric Dumazet
4201 <dada1@cosmosbay.com> that allocates a page size buffer
4202 to each stream. Improved TCP, TCP6, UDP and UDP6 hashing
4203 by determining the hash bucket count from the /proc/net
4204 sockstat and sockstat6 files. The improvement was
4205 suggested by Eric and he provided sample code. Eric also
4206 tested both improvements.
4208 Modified Configure script to build lsof on FreeBSD
4209 6.2. Tested it on a system provided by Larry Rosenman
4212 Fixed a Linux maps file processing bug that prevented path
4213 names from having an embedded colon. James Lingard
4214 <jchl@arastra.com> reported the bug and helped with its
4217 Based on reports from Eric Dumazet and Samuel Thibault
4218 <samuel.thibault@ens-lyon.org> added support for the
4219 Linux 2.6.22 kernel's /proc/<PID>/fdinfo files -- i.e.,
4220 file offset and flags. Samuel Thibault provided a test
4223 Fixed a Linux UNIX socket memory leak, reported by
4224 Philip Shin <pshin@xceedium.com>. Phillip supplied the
4227 With generous assistance from HP added support for an HP-UX
4228 11.23 patch that makes TLI/XTI socket address information
4231 Fixed a header file problem for FreeBSD 6.2 on the Alpha
4232 architecture. The problem was reported by Pekka Honkanen
4233 <phonkane@cc.hut.fi>. Pekka tested the fix.
4235 Based on a report and using suggested fixes from Karel Zak
4236 <kzak@redhat.com>, made these changes to Linux lsof: corrected
4237 a getpidcon() error message; insured that inode numbers are
4238 handled correctly for their unsigned long long type; and
4239 improved SELinux handling. At the request of Alon Bar-Lev
4240 <alonbl@gentoo.org> added the LINUX_HASSELINUX environment
4241 variable to enable or inhibit SElinux support unconditionally.
4243 Updated Configure for FreeBSD 8.0-CURRENT and tested lsof on
4246 Added a patch provided by Oles Hnatkevych
4247 <don_oles@able.com.ua> for FreeBSD systems where the root
4248 file system is on a CD9660 device.
4250 Added compensation for the disappearance of FMARK and FDEFER
4251 from the FreeBSD 8.0-CURRENT <sys/file.h>.
4253 Updated FreeBSD lsof with ZFS support. Larry Rosenman
4254 <ler@lerctr.org>, Erwin Lansing <erwin@FreeBSD.org>, Wesley
4255 Shields <wxs@atarininja.org> and Dmitry Morozovsky
4256 <marck@rinet.ru> provided test systems.
4258 Fixed a socket file identification problem reported by
4259 Pavol Rusnak <stick@gk2.sk>. Pavol also reported the
4260 cause of the problem.
4262 Added the ability to format the repeat mode marker line
4263 with strftime(3), where the dialect supports the
4264 localtime(3) and strftime(3) C library functions. The
4265 addition was suggested by Mike Depot <mdepot@comcast.net>,
4266 who also tested it. The addition required creating a new
4267 main lsof source module, util.c, that contains functions
4268 whose compilation conflicts with the general header file
4269 tree defined by lsof.h and dlsof.h.
4271 Based on reports from Andrei V. Lavreniyuk
4272 <andy.lavr@reactor-xg.kiev.ua> and Pav Lucistnik
4273 <pav@FreeBSD.org> updated the FreeBSD 7.0 and above
4274 file lock handling to use new locking structures. The
4275 update requires a terrible hack to get a definition for
4276 the lock owner structure from a kernel source module
4277 into a local lsof header file.
4280 Updated for a FreeBSD 7.0 and above byte level locking
4281 change. The problem was reported by Conrad J. Sabatier
4282 <conrads@cox.net>, who helped test the update. Wesley
4283 Shields <wxs@FreeBSD.org> provided an 8.0-CURRENT test
4286 Propagated the FreeBSD 7.0 and above locking changes to
4287 FreeBSD 6.x, based on a report from Edwin Groothuis
4288 <edwin@FreeBSD.org>.
4290 Added warnings for unsupported dialects or versions.
4292 Added Linux support for the UDPLITE protocol. Eric
4293 Dumazet <dada1@cosmosbay.com> supplied a patch.
4295 Added a missing quote to the Configure script's
4298 Added a usage.o rule to the HP-UX PSTAT-based
4299 Makefile. I mistakenly deleted the rule at revision
4300 4.79. The missing rule was reported by Kawaljeet Kaur
4301 <kawaljeet.malviya@gmail.com> who tested the corrected
4304 4.81 October 21, 2008
4305 Updated the Darwin libproc sources with changes from
4306 Allan Nathanson <ajn@apple.com>. Tested them on a iMac
4307 mini, provided by Apple Inc.
4309 Changed dummy declarations in library source files to
4310 eliminate complaints about unused variables and empty
4311 object files. This change may not work on dialects I
4312 can no longer test; it has been tested on some versions
4313 of AIX, Darwin, FreeBSD, Linux and Solaris.
4315 At the request of Hal Brooks <hal@uga.edu> added support
4316 for Linux /proc/net/packet files. Hal tested it.
4318 Added socket file only performance enhancements to Linux
4319 and PSTAT-based HPUX lsof.
4321 Added htonl call around improper usage of INADDR_LOOPBACK;
4322 report from an Apple engineer forwarded by Allan Nathanson
4325 Adjusted for FreeBSD-8.0 change in device number handling.
4326 The adjustment should work for FreeBSD 5 and above, should
4327 the 8.0 change be propagated downward. The problem was
4328 reported by Pav Lucistnik <pav@FreeBSD.org>. An updated
4329 test system was provided by Erwin Lansing <erwin@FreeBSD.org>.
4331 Reduced AIX support to version 5.3, since test systems with
4332 older versions are no longer available to me.
4334 At the request of Marjo F. Mercado <mmercado@xceedium.com>
4335 and Phil Shin <pshin@xceedium.com> applied some speed
4336 improvements to lsof, particularly when the files of
4337 interest are /Internet files -- i.e., selected with lsof's
4338 "-i" option. Added a two new options to assist the
4339 improvements: 1) "-c^<command>" to tell lsof to exclude the
4340 named command(s); and 2) "-stcp|ud>:[^]state' to tell lsof
4341 to include in its reporting or exclude ('^') from its
4342 reporting Internet files in the named states (e.g., LISTEN,
4343 ^CLOSE_WAIT, IDLE, etc.) For the most part these changes
4344 apply only to AIX, Darwin, FreeBSD, PSTAT-based HP-UX, Linux
4345 and Solaris, since those are the only places I could test
4346 them. They are controlled by the HASTCPUDPSTATE definition
4347 in each dialect's machine.h header file. Marjo and Phil
4348 provided HP-UX 11.23 and 11.31 test systems.
4350 Fixed a stat(2) problem on HP-UX 11.31 while testing the
4353 Adjusted for kernel header file changes in FreeBSD
4354 8.0-CURRENT. Larry Rosenman <ler@lerctr.org> provided
4357 Added a warning for Solaris systems where VxFS node info
4358 can't be obtained from the VxFS utility library. The
4359 warning was requested by Tom Matthews <Tom.MATTHEWS@rbs.com>.
4361 Corrected mishandling of file system path name arguments
4362 that have trailing slashes, except, of course, the root
4363 file system, "/". Allan Nathanson <ajn@apple.com> reported
4367 Corrected an over-zealous exclusion test that caused
4368 lsof to report nothing when it was given no arguments
4369 and built with HASSECURITY and HASNOSOCKSECURITY enabled.
4370 Joshua Kinard <kumba@gentoo.org> reported the bug and
4371 supplied information for reproducing it.
4373 Based on a report from Dan Trinkle <trinkle@cs.purdue.edu>
4374 corrected use of <sys/utsname.h> for 32 bit Solaris 10
4375 and above compilations. Simultaneously eliminated a
4376 casting complaint in arg.c and updated Configure to use
4377 the appropriate 64 bit compilation option (-xarch=v9 or
4378 -m64) with the Solaris Sun C compiler.
4380 Updated for FreeBSD 7.1-PRERELEASE with information
4381 supplied by Larry Rosenman <ler@lerctr.org>.
4383 Updated the Darwin libproc sources with changes from
4384 Allan Nathanson <ajn@apple.com>. Tested them on a iMac
4385 mini, provided by Apple Inc. Allan also provided man
4388 Updated the FreeBSD Makefile to use the ${MAKE} variable
4389 for ZFS dnode2.c module compilation, based on a suggestion
4390 from Alexis Ballier <aballier@gentoo.org>.
4392 Improved the Solaris VxFS library location test, based on a
4393 suggestion from Jason Fortezzo <fortezza@mechanicalism.net>.
4394 Jason tested the change.
4396 Updated Solaris 10 ZFS support for ZFS version 4 and ZFS
4397 pool version 10, using a test system kindly provided by
4398 Vladislav Nespor <vladislav.nespor@id.ethz.ch>. Renata
4399 Maria Dart <renata@slac.stanford.edu> tested on ZFS
4400 version 4, verifying that the update works there, too.
4401 (ZFS pool version 10 is apparently the ZFS version shipped
4402 with the 10/08 update to Solaris. The original ZFS
4403 support targeted ZFS version 3.)
4405 I still consider ZFS support in Solaris lsof a hack,
4406 because it depends on a znode structure definition that
4407 I developed using dbx. Sun is remiss in not distributing
4408 the ZFS header files used to build the distributed kernel.
4410 Because of the znode structure definition hack, I can't
4411 guarantee that lsof ZFS support will work for any other
4414 Solaris 10: adjusted to a change in the way devices are
4415 stored in the kernel; fixed a problem in zone handling;
4416 and added rudimentary sharedfs support. Carson Gaspar
4417 <carson@taltos.org> reported the device number problem,
4418 provided a test system, and tested the changes. Peter
4419 Vines <psv2b@eservices.virginia.edu> reported the zone
4420 handling problem and tested the fix.
4422 Adapted to FreeBSD 8.0-CURRENT changes in device number
4423 computation. Problem was reported by Erwin Lansing
4424 <erwin@FreeBSD.org>. Larry Rosenman <ler@lerctr.org>
4425 provided a test system.
4427 Corrected Solaris Configure test for appropriate VxFS
4428 library when using gcc to compile lsof.
4430 Updated for loss of KAME IPv6 FreeBSD accommodations.
4432 Adapted to FreeBSD 7.2. Made Configure script recognized
4435 4.83 January 18, 2010
4436 Converted Solaris 10 and above ZFS support to use the CTF
4437 debugger library, libctf. Code was supplied by Robert
4438 Byrnes <Robert.Byrnes@deshaw.com>.
4440 Corrected a typo in the testing of the LINUX_HASSELINUX
4441 environment variable in the Configure script. The error
4442 was reported by Mike Frysinger <vapier@gentoo.org>.
4443 At Mike's request made Configure script accept LSOF_RANLIB
4444 (ranlib command), LSOF_CFGF (additional configuration flags)
4445 and LSOF_CFGL (additional library specifications) from the
4448 Enabled complilation of Solaris 10 lsof after a recent Sun
4449 patch which changed the PC file system's structure. Peter
4450 Vernam <pvernam@draper.com> reported the problem and helped
4453 Made the sort of configuration CFLAGS in the CkTestDB
4454 script impervious to locale settings.
4456 Ported to Solaris 11, using a test system kindly provided
4457 by David Day <dday76@gmail.com>.
4459 Adjusted to the disappearance of <nfs/rpcv2.h> in FreeBSD
4462 Changed Solaris node type lookup to a hashed method and
4463 added some ability for it to handle duplicate vnodeop names
4466 Updated for FreeBSD 9.0-CURRENT. Andrzej Tobola
4467 <ato@iem.pw.edu.pl> provided a test system. Extends the
4468 fix to FreeBSD 6.0 and above via a Configure test and a
4469 compile-time definition. The need for the extension was
4470 reported by Erik Trulsson <ertr1013@student.uu.se>>
4472 Made corrections to FAQ typographical errors, suggested
4473 by Josh Soref <timeless@gmail.com>.
4475 Added __UCLIBC__ test to Linux dlsof.h so lsof would compile
4476 on an Intel ARM XScale processor. The addition was provided
4477 by Doug Kehn <rdkehn@yahoo.com>.
4479 Added test for <utmpx.h> to FreeBSD configuration. Improved
4480 its use in lsof.h. The changes were supplied by Martin Wilke
4484 Fixed a man page nroff command error with a correction
4485 supplied by Josh Soref <timeless@gmail.com>.
4487 Made Configure script recognize FreeBSD 7.3. Larry Rosenman
4488 <ler@lerctr.org> provided a test system.
4490 Improved task support, initially for Linux only, with help
4491 provided by Jerome Marchand <jmarchan@redhat.com> and
4492 Miklos Szeredi <mszeredi@suse.cz>. The support includes a
4493 new compile-time definition, HASTASKS, and a new run time
4494 option, "-K" to select task reporting.
4496 While adding help output support for "-K", reorganized the
4497 printing of help columns to make it much easier to add a new
4500 Updated the Solaris PC file system structure patch in
4501 revision 4.83 so it will compile with gcc.
4503 Disabled the Solaris lgrp_root work-around in the Solaris
4504 machine.h so it won't cause compilation problems on Solaris
4505 11. It no longer causes compilation problems on my Solaris
4506 9 and 10 test systems, but some older Solaris 9 and 10
4507 versions may still need it, so the work-around was left in
4508 the Sun machine.h and a FAQ entry was created about it.
4510 Updated for Solaris 11 b134, using a test system kindly
4511 provided by Carson Gaspar <carson@taltos.org>. Made
4512 provisions for the next ZFS version. Added info about
4513 the failure of the LTnlink test on ZFS file systems.
4515 Corrected typo in Configure script, reported by Dmitry
4516 Berezin <dmitryb@oit.rutgers.edu>.
4518 4.85 September 27, 2011
4519 John Dzubera <Zube@CS.ColoState.EDU> kindly provided a patched
4520 Solaris 9 test system with the lgrp_root conflict and I was
4521 able to devise an automatic work-around for the conflict. The
4522 special note in .../dialects/sun/machine.h was removed and
4523 the 17.28.1 FAQ entry was modified to reflect the update.
4525 Added a Solaris 11 work-around for a typedef problem with
4526 <sys/mutex.h>. Carson Gaspar <carson@taltos.org> reported
4527 the problem and supplied the work-around.
4529 Added support for FreeBSD 7.4 and 8.2; tested on systems
4530 provided by Larry Rosenman <ler@lerctr.org>.
4532 Added support for 32 bit Solaris 11 lsof with mods supplied
4533 by Jan Wortelboer <J.H.P.Wortelboer@uva.nl>.
4535 Added Solaris 11 support for using an alternate genunix
4536 location. Bill Goodridge <bill@its.brooklyn.cuny.edu>
4537 reported the alternate location.
4539 Added further Linux cross configuration support to lsof's
4540 Configure script. The additional support was supplied by
4541 Grant Erickson <erick205@umn.edu>. See the descriptions of
4542 the LINUX_* environmen variables in 00XCONFIG for more
4543 information. Tested lsof on Linux kernel 2.6.32 and picked
4544 some lint that surfaced during the test.
4546 Added fixes and changes for Apple Mac OS X 10.6, provided by
4547 Allan Nathanson <ajn@apple.com>. Allan also provided a test
4550 Tested on FreeBSD 6.4 i386, using a test system provided by
4551 Terry Kennedy <TERRY@tmk.com>. Updated for recent FreeBSD ZFS
4552 changes on an 8.2 amd64 test system also provided by Terry.
4554 Changed documentation to indicate FreeBSD 7.x is no longer
4555 supported, since I no longer have a test system.
4557 Made some changes to the lsof man page, suggested by Navid
4558 <evi1m4chine@googlemail.com>.
4560 Added compensation for Solaris 10 systems that have patch
4561 144488-10. The patch requires that the new header file
4562 <sys/socket_proto.h> be included while _KERNEL is defined.
4563 Brett Bartick <Brett.bartick@nomura.com> reported the problem
4564 first, followed by Stuart Anderson <anderson@ligo.caltech.edu>.
4565 Michael Hocke <michael.hocke@nyu.edu> suggested a work-around
4566 which I refined to limit it to the specific Solaris 10 instance
4567 and then tested on a system provided by Charles Stephens
4570 Added the +|-e option for Linux. It exempts file systems
4571 named by path from function calls that might block in the
4572 kernel -- i.e., stat(2) and lstat(2), and when the +e form
4573 is used, readlink (2). The new packager of lsof for the
4574 Linux Fedora and RHEL distributions, Peter Schiffer
4575 <pschiffe@redhat.com>, asked for the feature so it could
4576 be used with Clearcase file systems, whose implementation
4577 can block stat(2) calls. I consider this feature very risky
4578 and easy to misuse -- e.g., specifying the file system as
4579 '/' would exempt all file systems. I don't intend to
4580 propagate this option to any other UNIX dialect that lsof
4583 Made FreeBSD 9 adjustment.
4585 Fixed a Linux bug that prevented the display of paths for
4586 abstact UNIX sockets. Masatake Yamato <yamato@redhat.com>
4587 reported the bug and supplied a patch.
4589 Added compensation for the removal of RPC header files from
4590 GlibC 2.14 for Linux. Marek Behun <kabel@blackhole.sk>
4591 reported the problem and supplied a patch.
4593 Added support for Linux Netlink protocol. Masatake Yamato
4594 requested the support and supplied a patch. Peter Schiffer
4595 <pschiffe@redhat.com> provided a test system.
4597 Corrected Linux UDP6-lite path. The error was reported by
4598 Masatake Yamato and he also supplied a patch.
4601 Lsof for AIX is no longer supported on any versions of that
4604 Added information about the clang compiler for FreeBSD to the
4607 Corrected an arg.c bug in the accumulation of +|-e option
4608 values, reported by Peter Schiffer <pschiffe@redhat.com>.
4609 This correction was supplied as a patch to revision 4.85.
4611 Enabled FreeBSD 10 support and tested it there on a system
4612 provided by Larry Rosenman <ler@lerctr.org>.
4614 Updated for latest Solaris 11 with patches supplied by
4615 Carson Gaspar <carson@taltos.org>. Carson supplied a test
4618 Adjusted Linux file system search method to compensate for
4619 NFS mounts that have duplicate device numbers. The problem
4620 was reported by Peter Schiffer <pschiffe@redhat.com>, who
4621 provided a test system.
4623 At the request of Peter Schiffer <pschiffe@redhat.com>, added
4624 support for Linux SCTP socket files. Peter provided a test
4625 system. Applied a warning patch supplied by Peter.
4627 Added support for Mac OS X 10.7 (Lion), provided by Allan
4628 Nathanson <ajn@apple.com>. Allan also supplied a test
4631 Enabled FreeBSD 8.3 support and tested it there on a system
4632 provided by Larry Rosenman <ler@lerctr.org>.
4634 Corrected the FAQ information on ZFS with Solaris 10 after
4635 Steven Blackmon <stblackm@cisco.com> and Prasad Jampala
4636 <jampalp@cisco.com> pointed out that it was incorrect --
4637 i.e., outdated by the libctf changes at revision 4.83.
4639 Added code to handle a Linux NFS-mounted root. Jia He
4640 <hejianet@linux.vnet.ibm.com> reported the need for this.
4642 4.87 January 2, 2013
4643 Added an entry to 00FAQ about lsof behavior when the
4644 HASSECURITY and HASNOSOCKSECURITY options are defined.
4645 Carson Gaspar <carson@taltos.org> pointed out the need
4646 for this clarification.
4648 Added a work-around for a missing definition of mach_port_t
4649 in Darwin 9 (Mac OS/X 10.5.8). The work-around was supplied
4650 by Jim Reid <jim@rfc1035.com>.
4652 Added support for Linux anon_inodefs, provided by Masatake
4653 YAMATO <yamato@redhat.com>.
4655 Documented a Solaris 9 and 10 portmap reporting problem
4656 (+M) in 00FAQ. The problem was reported by Clint
4657 Roberts <Clint.Roberts@ttius.com>. I have no solution
4658 to the problem, but discuss a possible work-around in
4659 the answer to this 00FAQ question: "Why doesn't lsof
4660 report portmap registrations for some Solaris versions?"
4662 Added FreeBSD support for the oldnfs and newnfs file system
4663 types. Daniel Braniss <danny@cs.huji.ac.il> reported the
4664 need for the addition.
4666 Added ICMP socket support for Linux with code provided by
4667 Masatake YAMATO <yamato@redhat.com>.
4669 Corrected the reporting of process group ID for libproc
4670 versions of Mac OS X with a patch from Jeff Trawick
4671 <trawick@gmail.com>. The patch has not been applied to
4672 Darwin kmem versions, because of little call for them
4673 and inadequate test system access. The patch has been
4674 tested on Mac OS X 10.8 (Mountain Lion), courtesy of a
4675 test system provided by Allan Nathanson <ajn@apple.com>.
4677 Added thread support to those FreeBSD versions that have
4678 ki_numthreads in their kinfo_proc structure. This also
4679 activates the -K option for those FreeBSD versions. Jeff
4680 Trawick reported problems with FreeBSD lsof when threads
4681 are present and this addition solves those problems.
4683 Made changes to 00FAQ and the distribution, suggested by
4684 Warren Young <warren@etr-usa.com>. The 00FAQ changes
4685 center on sections that discuss the -s option. The changes
4686 to the distribution include a ChangeLog file that is either
4687 a pointer to or a copy of 00DIST, the distribution notes.
4689 Added support to FreeBSD for using the clang compiler.
4691 Added Linux support for using the getxattr() call to obtain
4692 socket protocol identification when it is can't be obtained
4693 from the /proc/net files that lsof examines. Masatake YAMATO
4694 <yamato@redhat.com> developed the kernel patch to getxattr()
4695 and supplied the lsof patch.
4697 4.88 October 13, 2014
4698 Reduced to 50 the number of open file descriptors lsof
4699 attempts to close while trying to protect itself from a
4700 file descriptor exec() attack. This limits the overhead
4701 lsof incurs on systems that have large file descriptor
4702 limits, yet provides sufficient open descriptors for the
4703 library functions lsof calls.
4705 Updated for changes in FreeBSD 10 with advice from Eygene
4706 Ryabinkin <rea@freebsd.org>. Taught Configure to recognize
4709 Herein am noting that lsof for Solaris 10 or 11 is no longer
4710 supported. I no longer have test systems. Some support is
4711 still available from Casper Dik <Casper.Dik@oracle.com> and a
4712 Solaris 11 patch he provided is included in this revision.
4714 Initialized local variables in the Linux process_id() function.
4715 Jia He <jiakernel@gmail.com> reported the problem.
4717 Added support for FreeBSD 11.
4719 Updated FreeBSD ZFS Configure stanza to supply a dummy
4720 opt_kdtrace.h when needed.
4722 Added tmpfs file system support for FreeBSD.
4724 Since a test system is no longer available, dropped the
4725 claim of FreeBSD 4.9 support.
4727 Added the +|-E options for Linux. -E displays endpoint info;
4728 +E displays endpoint info and endpopint files. Masatake YAMATO
4729 <yamato@redhat.com> requested this support and suggested code
4732 Fixed a Linux bug handling processes whose command includes a
4733 non-printing character, particularly a NEWLINE character, and
4734 clarified printing of single '\\' characters in command and
4735 file names. Stephane Chazelas <stephane.chazelas@gmail.com>
4736 reported the problem.
4738 Added support for Linux RDMA and CRYPTO protocal names and UNIX
4739 socket type with code from Masatake YAMATO <yamato@redhat.com>.
4741 Fixed field output to insure that the field descriptor field is
4742 always selected, since it identifies the file set. The bug was
4743 reported by Gary Plewa <gary.m.plewa-1@lowes.com>.
4746 Applied correction from Casper Dik <Casper.Dik@oracle.com> to
4747 his patch for Solaris 11 that I applied incorrectly in revision
4750 Updated for latest version of FreeBSD 11.0-CURRENT.
4752 Compensated for a missing FreeBSD 10.0 typedef of bool on the
4753 i386 architecture. Allen Hewes <rallenh@hotmail.com> provided
4754 a test system. Andrey Chernov <ache@freebsd.org> provided
4757 Improved tests/Add2TestDB script with a patch from Peter
4758 Schiffer <pschiffe@redhat.com>. Added patches from Peter to
4759 eliminate Linux gcc warnings. Updated Lsof.8 with improvements
4760 supplied by Bjarni Ingi Gislason <bjarniig@rhi.hi.is>.
4762 Changed FreeBSD global CFLAGS extraction per Terry Kennedy
4763 <TERRY@tmk.com>. Also made sure -DNEEDS_BOOL_TYPEDEF is
4764 #define'd when the resulting CFLAGS doesn't contain it. Terry
4767 Improved Linux test for tcp.h in response to a report from
4768 Cato Auestad <cato@cato.ninja>. Cato did the testing.
4770 Fixed Linux UNIX socket search by name bug reported by
4771 Stephane Chazelas <stephane.chazelas@gmail.com>.
4773 Added Linux display of UNIX socket endpoint information with
4774 code provided by Masatake YAMATO <yamato@redhat.com>. Peter
4775 Schiffer <pschiffe@redhat.com> provided a test system.
4777 Insured that type definitions from <vm/vm.h> were again made
4778 visible to lsof on FreeBSD 11 after a system header file change
4781 4.90 February 14, 2018
4783 !!!NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4785 ! It is likely that this is the last lsof revision I !
4786 ! will issue, unless serious bugs are detected, Stay !
4787 ! tuned to lsof-l for information about future support !
4790 ! I thank all the many contributors to lsof over the !
4791 ! many years (20+?) I have been distributing lsof !
4792 ! versions 1, 2, 3 and 4. !
4794 ! Vic Abell <abe@purdue.edu> !
4796 !!!NOTE!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
4798 Taught the Configure script to create a dummy opt_random.h
4799 for FreeBSD systems whose <sys/random.h> includes it.
4801 Added support for the FreeBSD ZFUSE file system.
4803 Corrected the quoting in a Darwin putchar() statement in the
4804 dfile.c source file. Andrew Janke <floss@apjanke.net> reported
4807 Added support for the FreeBSD DTYPE_PTS file descriptor and
4808 for unknown descriptors that reference the kernel's badfileops
4809 operation switch. Enabled FreeBSD 12.0 support. Tested the
4810 changes on systems provided by Larry Rosenman <ler@lerctr.org>.
4812 Enhanced -K option with the form "-K i" to direct lsof to
4813 (i)gnore tasks. A query from Rachel Kroll <rkroll@fb.com>
4814 suggested this option. Linux task reports now include both
4815 process and task command names, making lsof's "-c <name>"
4816 option work correctly.
4818 Added a patch to prevent NFS blocking in Linux supplied by
4819 Kristna Streitov <kstreitova@suse.com>.
4821 Installed a FreeBSD patch that prevents examining a TCP state
4822 structure during a race condition. The patch was supplied by
4823 Bryan Drewery <bdrewery@FreeBSD.org>.
4825 Updated FreeBSD for new UFS inode structure that lacks an i_dev
4826 member in the most recent 12.0-CURRENT. Larry Rosenman
4827 <ler@lerctr.org> reported the problem and provided a test
4830 Added "#define KLD_MODULE" to dlsof.h and dnode2.c to prevent
4831 <machine/cpuconf.h> from generating an "ARM_NARCH is 0" error.
4832 This is needed so lsof can access kernel structures. Larry
4833 Rosenman supplied the addition.
4835 Added recognition of the FreeBSD 11 file system name "nullfs".
4836 Jamie Landeg-Jones <jamie@catflap.org> supplied the fix.
4838 Added a patch from Larry Rosenman <ler@lerctr.org> that is
4839 needed on FreeBSD 12 so the lsof compilation can obtain the
4840 inpcb and tcpcb structures from their respective header files.
4842 Updated FreeBSD dmnt.c for the ino64 changes.
4844 Inserted a patch for Solaris 12.x to avoid compilation errors
4845 from <sys/aio_req.h>, based on information provided by Jorn
4846 Clausen <joern.clausen@uni-bielefeld.de>. Jorn tested the
4849 Added performance enhancement that uses the FreeBSD closefrom()
4850 and dup2() C library functions when available. The enhancement
4851 was supplied by Conrad Meyer <cem@freebsd.org>.
4853 Corrected FreeBSD lsof's gathering of ZFS file device numbers.
4855 Updated lsof test library for FreeBSD.
4857 Updated socket optons information collection from the socket
4858 structure per changes supplied by Gleb Smirnoff
4859 <glebius@FreeBSD.org>.
4861 Added patch to dlsof.h that avoids a _KERNEL conflict with
4862 bzero. Mateusz Guzik <mjguzik@gmail.com> supplied the patch.
4864 Corrected test library to handle 64 bit FreeBSD device numbers.
4866 Added #defines for FreeBSD 12, src r324225, from Gleb Smirnoff
4867 <glebius@FreeBSD.org>.
4869 Incorporated Linux pseudoterminal endpoint processing (+|-E)
4870 provided by Masatake YAMATO <yamato@redhat.com> with access to
4871 test systems provided by Peter Schiffer <pschiffe@redhat.com>.
4873 Corrected Linux command extraction for commands that include
4874 parentheses -- e.g., "(sd-pam)".
4878 A bug has been reported in the PTY endpoint processing of
4879 Linux lsof 4.90 by Peter Wu <peter@lekensteyn.nl>, making it
4880 necessary for me to release another revision of lsof.
4882 This revision applies two fixes that correct the Linux PTY
4883 endpoint processing bug. Masatake YAMATO <yamato@redhat.com>
4886 Vic Abell <abe@purdue.edu>