From fe5f4d91ce5067c4222648967719f67f6e670642 Mon Sep 17 00:00:00 2001 From: Andrew Tridgell Date: Fri, 6 Aug 2010 13:06:42 +1000 Subject: s3-printing: cope with missing printers in print migration MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The printers database may be completely missing in a new install, and we may have SECDESC entries for printers that have been removed. Don't consider these fatal errors in the migration. Signed-off-by: Günther Deschner --- source3/printing/nt_printing_migrate.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'source3/printing/nt_printing_migrate.c') diff --git a/source3/printing/nt_printing_migrate.c b/source3/printing/nt_printing_migrate.c index 1ee5578818..7e7db562ec 100644 --- a/source3/printing/nt_printing_migrate.c +++ b/source3/printing/nt_printing_migrate.c @@ -420,6 +420,10 @@ static NTSTATUS migrate_secdesc(TALLOC_CTX *mem_ctx, &hnd, &result); if (!NT_STATUS_IS_OK(status)) { + if (W_ERROR_EQUAL(WERR_INVALID_PRINTER_NAME, result)) { + DEBUG(3, ("Ignoring missing printer %s\n", key_name)); + return NT_STATUS_OK; + } if (!W_ERROR_IS_OK(result)) { status = werror_to_ntstatus(result); } @@ -493,6 +497,12 @@ static NTSTATUS migrate_internal(TALLOC_CTX *mem_ctx, int rc; tdb = tdb_open_log(tdb_path, 0, TDB_DEFAULT, O_RDONLY, 0600); + if (tdb == NULL && errno == ENOENT) { + /* if we have no printers database then migration is + considered successful */ + DEBUG(4, ("No printers database to migrate in %s\n", tdb_path)); + return NT_STATUS_OK; + } if (tdb == NULL) { DEBUG(2, ("Failed to open tdb file: %s\n", tdb_path)); return NT_STATUS_NO_SUCH_FILE; -- cgit