diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-08-21 17:22:56 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-08-21 17:22:56 +0000 |
commit | 5148d49f37ad2648ef77159b0b2d1b332c584ed9 (patch) | |
tree | 5db7d9cb4929ea18160d7adb37d1635c63f59f03 /db2 | |
parent | 1ddf537f074f453f4d8b70c1b5df3f9ac728bec4 (diff) | |
download | glibc-5148d49f37ad2648ef77159b0b2d1b332c584ed9.zip glibc-5148d49f37ad2648ef77159b0b2d1b332c584ed9.tar.gz glibc-5148d49f37ad2648ef77159b0b2d1b332c584ed9.tar.bz2 |
Update.
1998-08-21 17:21 Ulrich Drepper <drepper@cygnus.com>
* sysdeps/unix/sysv/linux/glob64.c: Define __stat using __xstat64.
1998-08-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* Makefile (elf/ldso_install): Put back. The problem still persists.
* elf/Makefile (ldso_install): Likewise.
1998-08-20 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* db2/db/db.c (db_open) [_LIBC]: Rename to __nss_db_open and
create weak alias.
* include/db.h: Declare __nss_db_open.
* db2/Versions: Export it.
* db2/makedb.c: Convert to use db2 API.
* nss/nss_db/db-XXX.c: Likewise.
* nss/nss_db/db-netgrp.c: Likewise.
* nss/nss_db/db-alias.c: Likewise.
(_nss_db_getaliasent_r): Allow retrying with a larger buffer.
1998-08-19 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* sysdeps/unix/sysv/linux/Makefile (sysdep_routines): Remove
sys_setresuid, already built automatically (or not).
* sysdeps/unix/sysv/linux/syscalls.list: Define __setresuid
instead of __syscall_setresuid and add back setresuid.
* sysdeps/unix/sysv/linux/seteuid.c: Use __setresuid instead of
__syscall_setresuid.
1998-08-21 Andreas Jaeger <aj@arthur.rhein-neckar.de>
* sysdeps/unix/sysv/linux/sys/mount.h: Fix typo.
* libio/libioP.c (FILEBUF_LITERAL): Also initialize new _offset
Diffstat (limited to 'db2')
-rw-r--r-- | db2/Versions | 3 | ||||
-rw-r--r-- | db2/db/db.c | 10 | ||||
-rw-r--r-- | db2/makedb.c | 53 |
3 files changed, 46 insertions, 20 deletions
diff --git a/db2/Versions b/db2/Versions index c7821c0..af8558d 100644 --- a/db2/Versions +++ b/db2/Versions @@ -20,6 +20,9 @@ libdb { __memp_dump_region; __txn_init_print; + # Functions used by other libraries. + __nss_db_open; + # Constants db_rw_conflicts; db_riw_conflicts; diff --git a/db2/db/db.c b/db2/db/db.c index 9951ebd..755b34b 100644 --- a/db2/db/db.c +++ b/db2/db/db.c @@ -87,6 +87,11 @@ static int db_fd __P((DB *, int *)); } \ } +#ifdef _LIBC +#define db_open(fname, type, flags, mode, dbenv, dbinfo, dbpp) \ + __nss_db_open(fname, type, flags, mode, dbenv, dbinfo, dbpp) +#endif + /* * db_open -- * Main library interface to the DB access methods. @@ -691,6 +696,11 @@ err: /* Close the file descriptor. */ return (ret); } +#ifdef _LIBC +# undef db_open +weak_alias (__nss_db_open, db_open) +#endif + /* * db_close -- * Close a DB tree. diff --git a/db2/makedb.c b/db2/makedb.c index d20befc..f50b3b0 100644 --- a/db2/makedb.c +++ b/db2/makedb.c @@ -20,7 +20,7 @@ #include <argp.h> #include <ctype.h> -#include <db_185.h> +#include <db.h> #include <errno.h> #include <error.h> #include <fcntl.h> @@ -140,16 +140,17 @@ main (argc, argv) /* Special handling if we are asked to print the database. */ if (do_undo) { - db_file = dbopen (input_name, O_RDONLY, 0666, DB_BTREE, NULL); - if (db_file == NULL) + status = db_open (input_name, DB_BTREE, DB_RDONLY, 0666, NULL, NULL, + &db_file); + if (status != 0) error (EXIT_FAILURE, 0, gettext ("cannot open database file `%s': %s"), input_name, - errno == EINVAL ? gettext ("incorrectly formatted file") - : strerror (errno)); + (status == EINVAL ? gettext ("incorrectly formatted file") + : strerror (status))); status = print_database (db_file); - db_file->close (db_file); + db_file->close (db_file, 0); return status; } @@ -174,10 +175,10 @@ main (argc, argv) /* Open output file. This must not be standard output so we don't handle "-" and "/dev/stdout" special. */ - db_file = dbopen (output_name, O_CREAT | O_RDWR | O_TRUNC, mode, - DB_BTREE, NULL); - if (db_file == NULL) - error (EXIT_FAILURE, errno, gettext ("cannot open output file `%s'"), + status = db_open (output_name, DB_BTREE, DB_CREATE | DB_TRUNCATE, mode, + NULL, NULL, &db_file); + if (status != 0) + error (EXIT_FAILURE, status, gettext ("cannot open output file `%s'"), output_name); /* Start the real work. */ @@ -187,7 +188,7 @@ main (argc, argv) /* Close files. */ if (input_file != stdin) fclose (input_file); - db_file->close (db_file); + db_file->close (db_file, 0); return status; } @@ -307,18 +308,20 @@ process_input (input, inname, output, to_lowercase, be_quiet) continue; key.size = cp - (char *) key.data; + key.flags = 0; while (isspace (*cp)) ++cp; val.data = cp; val.size = (&line[n] - cp) + 1; + val.flags = 0; /* Store the value. */ - status = output->put (output, &key, &val, R_NOOVERWRITE); + status = output->put (output, NULL, &key, &val, DB_NOOVERWRITE); if (status != 0) { - if (status == 1) + if (status == DB_KEYEXIST) { if (!be_quiet) error_at_line (0, 0, inname, linenr, @@ -328,7 +331,7 @@ process_input (input, inname, output, to_lowercase, be_quiet) continue; } else - error (0, errno, gettext ("while writing database file")); + error (0, status, gettext ("while writing database file")); status = EXIT_FAILURE; @@ -353,20 +356,30 @@ print_database (db) { DBT key; DBT val; - int no_more; + DBC *cursor; + int status; + + status = db->cursor (db, NULL, &cursor); + if (status != 0) + { + error (0, status, gettext ("while reading database")); + return EXIT_FAILURE; + } - no_more = db->seq (db, &key, &val, R_FIRST); - while (!no_more) + key.flags = 0; + val.flags = 0; + status = cursor->c_get (cursor, &key, &val, DB_FIRST); + while (status == 0) { printf ("%.*s %s\n", (int) key.size, (char *) key.data, (char *) val.data); - no_more = db->seq (db, &key, &val, R_NEXT); + status = cursor->c_get (cursor, &key, &val, DB_NEXT); } - if (no_more == -1) + if (status != DB_NOTFOUND) { - error (0, errno, gettext ("while reading database")); + error (0, status, gettext ("while reading database")); return EXIT_FAILURE; } |