svn commit: samba r5774 - in trunk/source/printing: .
gd at samba.org
gd at samba.org
Sat Mar 12 15:40:27 GMT 2005
Author: gd
Date: 2005-03-12 15:40:26 +0000 (Sat, 12 Mar 2005)
New Revision: 5774
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=5774
Log:
Fix file_get_c_setprinter().
Guenther
Modified:
trunk/source/printing/printerdb_file.c
Changeset:
Modified: trunk/source/printing/printerdb_file.c
===================================================================
--- trunk/source/printing/printerdb_file.c 2005-03-12 15:08:07 UTC (rev 5773)
+++ trunk/source/printing/printerdb_file.c 2005-03-12 15:40:26 UTC (rev 5774)
@@ -35,15 +35,16 @@
char *file;
};
-static BOOL file_find(TALLOC_CTX *mem_ctx, struct file_list **list,
- const char *directory)
+static BOOL file_find(TALLOC_CTX *mem_ctx, const char *directory,
+ struct file_list **list, int *num_files)
{
DIR *dir;
struct file_list *entry;
char *path, *filename;
const char *dname;
- int num_files = 0;
+ *num_files = 0;
+
*list = TALLOC_ZERO_P(mem_ctx, struct file_list);
if (*list == NULL)
return False;
@@ -75,15 +76,15 @@
entry->file = filename;
DLIST_ADD(*list, entry);
- ++num_files;
+ ++(*num_files);
}
closedir(dir);
- if (num_files == 0)
+ if (*num_files == 0)
return False;
- DEBUG(0,("found: %d files\n", num_files));
+ DEBUG(0,("found: %d files\n", *num_files));
return True;
}
@@ -339,12 +340,13 @@
uint32 file_update_c_setprinter(BOOL initialize)
{
TALLOC_CTX *mem_ctx = talloc_init("file_update_c_setprinter");
- char *filename;
+ char *filename, *printerdir;
int len;
uint8_t *buf;
uint32 result = 0;
uint32 c_setprinter;
- uint32 printer_count = 23;
+ uint32 printer_count = 0;
+ struct file_list *file_list;
if (mem_ctx == NULL)
goto done;
@@ -354,8 +356,16 @@
if (filename == NULL)
goto done;
- /* FIXME */
+ printerdir = talloc_asprintf(mem_ctx, "%s/%s", file_root, PRINTERS_PREFIX);
+ if (printerdir == NULL)
+ goto done;
+
+ file_list = NULL;
+
+ if (!file_find(mem_ctx, printerdir, &file_list, &printer_count))
+ goto done;
+
if (!initialize)
c_setprinter = file_get_c_setprinter() + printer_count;
else
@@ -388,6 +398,7 @@
int i;
int n = 0;
char *dirname;
+ int num_files;
struct file_list *file_list, *temp_list;
if (mem_ctx == NULL)
@@ -399,7 +410,7 @@
file_list = NULL;
- if (!file_find(mem_ctx, &file_list, dirname))
+ if (!file_find(mem_ctx, dirname, &file_list, &num_files))
goto done;
for (temp_list = file_list; temp_list; temp_list = temp_list->next) {
@@ -433,7 +444,6 @@
if (mem_ctx != NULL)
talloc_destroy(mem_ctx);
- DEBUG(0,("file_get_forms: found %d forms\n", n));
return n;
}
@@ -545,6 +555,7 @@
struct file_list *file_list, *temp_list;
int n = 0;
fstring *loc_list;
+ int num_files;
/* never return -1 */
@@ -563,7 +574,7 @@
file_list = NULL;
- if (!file_find(mem_ctx, &file_list, filename)) {
+ if (!file_find(mem_ctx, filename, &file_list, &num_files)) {
goto done;
}
More information about the samba-cvs
mailing list