2000-01-20 Martin Baulig <martin@home-of-linux.org>
* fsusage.c (adjust_blocks): Use `u_int64_t' arguments and
return value to avoid long int overflows on machines with large
disks.
* fsusage.h (struct fs_usage): Use `u_int64_t' here as well.
1999-11-28 Martin Baulig <martin@home-of-linux.org>
* procstate.c (glibtop_get_procstate_s): Stat "/proc/<pid>" instead
of "/proc/<pid>/state" to get `uid' and `gid'. Thanks to Jason Becker
for pointing out that GTop reported wrong uid's.
1999-02-22 Martin Baulig <martin@home-of-linux.org>
Set the copyright of LibGTop to the GNU General Public License.
* copyright.txt: Set the year to 1998-99 and pretty-format it a
little bit. Same in all C source and header files.
1999-02-22 Martin Baulig <martin@home-of-linux.org>
* COPYING.LIB: Include a copy of the GNU Library General
Public License here.
* copyright.txt: Set the year to 1998-99 and pretty-format it a
little bit. Same in all C source and header files.
1999-02-18 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/*.h: Use glib-like function prototypes
instead of "extern <function> __P((args))".
1999-02-18 Martin Baulig <martin@home-of-linux.org>
* sysdeps/common/error.c (glibtop_error_r, glibtop_warn_r): Define
them as G_INLINE_FUNC in <glibtop/errno.h> if possible.
(glibtop_error_io_r, glibtop_warn_io_r): Likewise.
(glibtop_error_vr, glibtop_warn_vr): New functions taking a va_list.
(glibtop_error_io_vr, glibtop_warn_io_vr): New functions taking an
errno an a va_list.
1999-02-16 Martin Baulig <martin@home-of-linux.org>
* examples/Makefile.am, lib/Makefile.am, src/daemon/Makefile.am,
sysdeps/common/Makefile.am, sysdeps/guile/Makefile.am,
sysdeps/guile/names/Makefile.am, sysdeps/kernel/Makefile.am,
sysdeps/linux/Makefile.am, sysdeps/names/Makefile.am,
sysdeps/osf1/Makefile.am, sysdeps/stub/Makefile.am,
sysdeps/stub_suid/Makefile.am, sysdeps/sun4/Makefile.am:
Initialize INCLUDES to `@INCLUDES@' to make it clear that it is
set in configure.in. It is ok to add things there, but you must
not remove the `@INCLUDES@'.
installs any necessary files that are required in a GNU-standard
install, such as COPYING, INSTALL, mkinstalldirs, etc.
So begone, automake-installed files.
1998-11-11 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/gnuserv.h (MCOOKIE_SCREEN): Don't define this
any longer, we now use the port the daemon is listening on instead
of a fixed screen.
1998-11-11 Martin Baulig <martin@home-of-linux.org>
* configure.in (--enable-debug): Define LIBGTOP_ENABLE_DEBUG
if this parameter is given.
(--enable-fatal-warnings): New parameter to make all warnings
fatal; define `LIBGTOP_FATAL_WARNINGS' if given.
* sysdeps/common/error.c (glibtop_error_r): Use abort () instead
of exit () if LIBGTOP_ENABLE_DEBUG.
(glibtop_error_io_r): Likewise.
(glibtop_warn_r): Call abort () if LIBGTOP_FATAL_WARNINGS.
(glibtop_warn_io_r): Likewise.
[NOTE: To get a core dump of the libgtop_server, you need to
remove all suid/sgid bits and invoke it as a priviledged user.]
typedef struct _glibtop_proc_args glibtop_proc_args;
struct _glibtop_proc_args
{
u_int64_t flags,
size; /* GLIBTOP_PROC_ARGS_SIZE */
};
Returns a string containing all command line arguments of the process,
the `unsigned' parameter is the maximum length of this string; if it
is zero then no limit will be set.
extern const char *glibtop_get_proc_args_l __P((glibtop *, glibtop_proc_args *, pid_t, unsigned));
enum {
GLIBTOP_PPP_STATE_UNKNOWN = 0,
GLIBTOP_PPP_STATE_HANGUP,
GLIBTOP_PPP_STATE_ONLINE
};
struct _glibtop_ppp
{
u_int64_t flags,
state, /* GLIBTOP_PPP_STATE */
bytes_in, /* GLIBTOP_PPP_BYTES_IN */
bytes_out; /* GLIBTOP_PPP_BYTES_OUT */
};
Currently only implemented in the FreeBSD port with ISDN via I4B. - Martin
1998-08-29 Martin Baulig <martin@home-of-linux.org>
* LIBGTOP-VERSION (LIBGTOP_INTERFACE_AGE, LIBGTOP_BINARY_AGE): Added.
* configure.in (LIBGTOP_INTERFACE_AGE, LIBGTOP_BINARY_AGE): AC_SUBST.
(LT_RELEASE, LT_CURRENT, LT_REVISION, LT_AGE): AC_SUBST.
(LT_VERSION_INFO): Sets `-version-info' for libtool.
* */Makefile.am: We now use the correct `-version-info' parameter
for libtool.
1998-08-25 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/command.h (glibtop_call): Third argument is
now `const void *'.
* include/glibtop/xmalloc.h (glibtop_free): Now taking a
`const void *'.
1998-08-17 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/procmap (glibtop_map_entry): Added `offset' and
`perm' fields.
* src/inodedb: New directory.
* src/inodedb/README: New file - read it to know what this is about.
* configure.in (--with-libgtop-inodedb): New `configure' parameter.
* include/glibtop/inodedb.h: New file.
* sysdeps/common/inodedb.c: New file.
1998-08-10 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/procmap.h (glibtop_proc_map): New file.
* features.def: Added definition of `proc_map'.
1998-08-07 Martin Baulig <martin@home-of-linux.org>
* src/server: Removed.
* src/daemon/{server, version}.c: New files.
* src/daemon/Makefile.am: Added `libgtop_server'; this has been
moved here from `src/server' since it shares some source code files
with the `libgtop_daemon'.
* LIBGTOP-VERSION: Added `LIBGTOP_SERVER_VERSION'.
* src/daemon/gnuserv.c, lib/open.c: Improved version check between
client and server.
* include/glibtop/output.h: Removed.
* sysdeps/stub_suid: New directory. This is mainly used as example
for people porting libgtop to other systems.
* sysdeps/common/sysdeps_suid.c: New file.
Defines `glibtop_init_hook_p'.
* sysdeps/osf1/*.c (glibtop_init_<no-suid-feature>_s): New functions.
(glibtop_init_<suid-feature>_p): New functions.
1998-08-06 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/*.h: Using `GLIBTOP_GUILE' instead of `HAVE_GUILE'
so one should be able to use libgtop without guile in an application
even if guile is installed.
* sysdeps/common/mountlist.c: Fixed some `xstrdup' problems.
* lib/open.c: Now correctly reading server features for
`GLIBTOP_METHOD_PIPE'.
* sysdeps/freebsd: New directory.
1998-07-30 Martin Baulig <martin@home-of-linux.org>
* sysdeps/common/gnuslib.c: Using `0xffffffff' instead of -1
as error code for inet_addr () since on 64bit systems,
`inet_addr (some_error) != (INET_ADDR) -1'.
1998-07-29 Martin Baulig <martin@home-of-linux.org>
* guile/ChangeLog: New file.
* features.def: New format - now includes type of return value
and parameters.
* lib/lib.awk: Changed to use new `features.def'.
* sysdeps/guile/guile.awk: Dito;
* sysdeps/guile/names/guile-names.awk: Dito.
* libgtopConf.sh.in: Added
`LIBGTOP_NAMES_LIBS', `LIBGTOP_NAMES_INCS',
`LIBGTOP_GUILE_NAMES_LIBS', `LIBGTOP_GUILE_NAMES_INCS',
`LIBGTOP_MAJOR_VERSION', `LIBGTOP_MINOR_VERSION'
`LIBGTOP_VERSION', `libgtop_sysdeps_dir'.
* acinclude.m4 (AC_LC_SYSDEPS): Removed since this has been
replaced with `GNOME_LIBGTOP_SYSDEPS' long ago.
* LIBGTOP-VERSION: New file.
* */Makefile.am (INCLUDES): Removed; now defined in `configure.in'.
* sysdeps/names/mountlist.c: New file.
* lib/{init, open}.c (GTOP_SERVER): Renamed to `LIBGTOP_SERVER'.
* configure.in (INCLUDES): Added definition.
(libgtop_want_names): Always true; `libgtop_names.la' is now
always created since some other programs rely upon it - but
have to use `LIBGTOP_NAMES_LIBS' and `LIBGTOP_NAMES_INCS' to
use it in your application.
(libgtop_want_guile_names): Always true; but you have to use
`LIBGTOP_GUILE_NAMES_LIBS' and `LIBGTOP_GUILE_NAMES_INCS' to
use it in your application.
(LIBGTOP_LIBS): Removed `-lgtop_names' and `-lgtop_guile_names'.
(LIBGTOP_NAMES_LIBS): New variable. Use it to link your
application with the names interface.
(LIBGTOP_NAMES_INCS): New variable. Also #defines `GLIBTOP_NAMES'
which is now required if your application wants to use the names
interface.
(LIBGTOP_GUILE_NAMES_LIBS): New variable. Use it to link your
application with the guile names interface.
(LIBGTOP_GUILE_NAMES_INCS): New variable. Also #defines
`GLIBTOP_NAMES' and `GLIBTOP_GUILE_NAMES' which are now required
if your application wants to use the guile names interface.
1998-07-22 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/fsusage.h: New file.
* features.def: Added new feature `fsusage'.
* sysdeps/common/fsusage.c (glibtop_get_fsusage_s): New function.
(get_fs_usage): Declared as `static'.
* sysdeps/names/fsusage.c: New file.
1998-07-22 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/mountlist.h: New file.
* features.def: Added new feature `mountlist'.
* sysdeps/common/mountlist.c (glibtop_get_mountlist_s): New function.
(read_filesystem_list): Declared as `static'.
* Splitted `libgtop_sysdeps.la' into `libgtop_sysdeps.la' and
`libgtop_sysdeps_suid.la'.
Everything that needs to be suid/sgid is in `libgtop_sysdeps_suid.la'
and the rest in `libgtop_sysdeps.la'.
The functions from `libgtop_sysdeps_suid.la' have the `_p' prefix and
the ones from `libgtop_sysdeps.la' the `_s' prefix.
The suid library uses `glibtop_open_p' and `glibtop_close_p', the
normal one `glibtop_init_s' (found in lib/init.c), `glibtop_open_s'
and `glibtop_close_s'.
* Added `libgtop_suid_common.la' containing stuff from sysdeps/common
that is required from the suid server (currently everything from
error.c and xmalloc.c).
This means, we can add some more stuff to `libgtop_common.la' without
the risk that it may be dangerous in the suid server.
* The ``library order'' is much clearer now:
-> `libgtop.la' (from lib/) contains user-level stuff;
all functions except `glibtop_init_r' have the `_l'
suffix.
-> `libgtop_common.la' (from sysdeps/common/) contains stuff
that is common among the sysdeps directories.
use anything from `libgtop_sysdeps.la' and
`libgtop_sysdeps_suid.la'.
-> `libgtop_sysdeps.la' (from sysdeps/<sysdeps_dir>/) contains
everything from the sysdeps directory that doesn't need to
be suid/sgid.
-> `libgtop_suid_common.la' (from sysdeps/common/) is used from
the suid server instead of `libgtop_common.la'.
-> `libgtop_sysdeps_suid.la' (from sysdeps/<sysdeps_dir>/) contains
everything from the sysdeps directory that needs to be in the
suid server.
* To summarize: the server is linked only with functions that need
to be suid and everything else is linked only with functions that
do not need to be suid.
Martin
1998-07-22 Martin Baulig <martin@home-of-linux.org>
* lib/init.c (glibtop_init_s): Added this init function of
the sysdeps directory `libgtop_sysdeps.la'.
* lib/open.c (glibtop_open_l): Unconditionally calling
`glibtop_init_s' after server initialization.
* lib/lib.awk: Removed references to functions from
`libgtop_sysdeps_suid.la' to avoid undefined symbols.
* sysdeps/stub/open.c (glibtop_open_s): Renamed this
function from `glibtop_open_r'.
* sysdeps/stub/close.c (glibtop_close_s): Renamed this
function from `glibtop_close_l'.
* sysdeps/kernel/open.c (glibtop_open_s): Renamed this
function from `glibtop_open_r'.
* sysdeps/kernel/close.c (glibtop_close_s): Renamed this
function from `glibtop_close_l'.
* sysdeps/linux/open.c (glibtop_open_s): Renamed this
function from `glibtop_open_r'.
* sysdeps/linux/close.c (glibtop_close_s): Renamed this
function from `glibtop_close_l'.
* sysdeps/osf1/Makefile.am (lib_LTLIBRARIES): Added
`libgtop_sysdeps_suid.la' for the suid server.
* sysdeps/osf1/open_suid.c (glibtop_open_p): New file.
Contains all stuff that was formerly in `open.c'.
* sysdeps/osf1/open.c: Moved everything from here into
the new file `open_suid.c'.
* sysdeps/osf1/open.c (glibtop_open_s): New function.
* sysdeps/osf1/close_suid.c (glibtop_close_p): New file.
* sysdeps/osf1/close.c (glibtop_close_s): New function.
* sysdeps/osf1/*.c: Using the new init, open and close
functions.
* sysdeps/sun4/Makefile.am (lib_LTLIBRARIES): Added
`libgtop_sysdeps_suid.la' for the suid server.
* sysdeps/sun4/nosuid.c (glibtop_open_s, glibtop_close_s): New file
* sysdeps/sun4/*.c: All functions now have the `_p' suffix.
* sysdeps/common/Makefile.am (lib_LTLIBRARIES): Added
`libgtop_suid_common.la' which only contains stuff that is
needed in the suid parts.
* sysdeps/common/xmalloc.c: Using `glibtop_error_io_r' instead
of `glibtop_error_r'.
* sysdeps/{kernel, linux, osf1, sun4, stub}/init.c: Removed.
`glibtop_init_s' has been moved into `lib/init.c' since it's the
same in all the sysdeps directories.
* src/server/main.c: It is now an error to request a feature that
does not need the suid server.
* src/proxy: Removed.
1998-07-17 Martin Baulig <baulig@Stud.Informatik.uni-trier.de>
* sysdeps/common/sysdeps.c (glibtop_get_sysdeps_r): Using
library functions with '_l' prefix instead of directly calling
sysdeps code with '_r' prefix. This is necessary for client/server
mode.
1998-07-14 Martin Baulig <martin@home-of-linux.org>
* src/daemon/slave.c: New file.
* src/daemon/*.c: Done some more work on the daemon.
* sysdeps/common/gnuslib.c: Removed IPC stuff.
* include/glibtop/gnuserv.h: Removed IPC stuff.
* include/glibtop/command.h (glibtop_response_unit): Added
typedef for `struct _glibtop_response_unit'.
* lib/Makefile.am: Using `$(top_srcdir)/features.def'
instead of `$(top_builddir)/features.def'.
* sysdeps/guile/Makefile.am: Using `$(top_srcdir)/features.def'
instead of `$(top_builddir)/features.def'.
* sysdeps/guile/names/Makefile.am: Dito.
* sysdeps/stub/*.c: changed suffix of all functions
from '_s' to '_r'; see also ChangeLog entry from Jun 6.
1998-07-06 Martin Baulig <martin@home-of-linux.org>
* sysdeps/common/mountlist.c: using functions from `xmalloc.c'.
* sysdeps/common/error.c: all functions now accept NULL as
`server' argument.
1998-06-14 Martin Baulig <martin@home-of-linux.org>
* include/glibtop/gnuserv.h: New file. Imported from xemacs 20.3.
* sysdeps/common/gnuslib.c: New file. Imported from xemacs 20.3
* lib/gnuclient.c: New file. Imported from xemacs 20.3
* sysdeps/daemon/gnuserv.c: New file. Imported from xemacs 20.3
* sysdeps/daemon: New directory.
* configure.in (LIBGTOP_LIBS, LIBGTOP_GUILE_LIBS): Added
`$X_LIBS -lXau' when we have xauth.