r10656: BIG merge from trunk. Features not copied over
[ira/wip.git] / source3 / printing / printing_db.c
index ec33daea1a8e2fefd5fe9d7cbaf30b13bf465d26..adea10dfa691b5277152a65f1e63ad1f5a5e3677 100644 (file)
@@ -20,6 +20,7 @@
    Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 */
 
+#include "includes.h"
 #include "printing.h"
 
 static struct tdb_print_db *print_db_head;
@@ -36,6 +37,8 @@ struct tdb_print_db *get_print_db_byname(const char *printername)
        pstring printdb_path;
        BOOL done_become_root = False;
 
+       SMB_ASSERT(printername != NULL);
+
        for (p = print_db_head, last_entry = print_db_head; p; p = p->next) {
                /* Ensure the list terminates... JRA. */
                SMB_ASSERT(p->next != print_db_head);
@@ -77,7 +80,7 @@ struct tdb_print_db *get_print_db_byname(const char *printername)
        
        if (!p) {
                /* Create one. */
-               p = (struct tdb_print_db *)malloc(sizeof(struct tdb_print_db));
+               p = SMB_MALLOC_P(struct tdb_print_db);
                if (!p) {
                        DEBUG(0,("get_print_db: malloc fail !\n"));
                        return NULL;
@@ -95,7 +98,8 @@ struct tdb_print_db *get_print_db_byname(const char *printername)
                done_become_root = True;
        }
 
-       p->tdb = tdb_open_log(printdb_path, 0, TDB_DEFAULT, O_RDWR|O_CREAT, 0600);
+       p->tdb = tdb_open_log(printdb_path, 5000, TDB_DEFAULT, O_RDWR|O_CREAT, 
+               0600);
 
        if (done_become_root)
                unbecome_root();
@@ -154,7 +158,7 @@ TDB_DATA get_printer_notify_pid_list(TDB_CONTEXT *tdb, const char *printer_name,
 
        ZERO_STRUCT(data);
 
-       data = tdb_fetch_by_string( tdb, NOTIFY_PID_LIST_KEY );
+       data = tdb_fetch_bystring( tdb, NOTIFY_PID_LIST_KEY );
 
        if (!data.dptr) {
                ZERO_STRUCT(data);
@@ -163,7 +167,7 @@ TDB_DATA get_printer_notify_pid_list(TDB_CONTEXT *tdb, const char *printer_name,
 
        if (data.dsize % 8) {
                DEBUG(0,("get_printer_notify_pid_list: Size of record for printer %s not a multiple of 8 !\n", printer_name ));
-               tdb_delete_by_string(tdb, NOTIFY_PID_LIST_KEY );
+               tdb_delete_bystring(tdb, NOTIFY_PID_LIST_KEY );
                SAFE_FREE(data.dptr);
                ZERO_STRUCT(data);
                return data;
@@ -184,7 +188,7 @@ TDB_DATA get_printer_notify_pid_list(TDB_CONTEXT *tdb, const char *printer_name,
 
                /* Entry is dead if process doesn't exist or refcount is zero. */
 
-               while ((i < data.dsize) && ((IVAL(data.dptr, i + 4) == 0) || !process_exists(pid))) {
+               while ((i < data.dsize) && ((IVAL(data.dptr, i + 4) == 0) || !process_exists_by_pid(pid))) {
 
                        /* Refcount == zero is a logic error and should never happen. */
                        if (IVAL(data.dptr, i + 4) == 0) {