mirror of
https://github.com/samba-team/samba.git
synced 2025-01-11 05:18:09 +03:00
printing: Create default architecture directories on init.
Reviewed-by: Guenther Deschner <gd@samba.org> Autobuild-User(master): Andreas Schneider <asn@cryptomilk.org> Autobuild-Date(master): Thu Jan 17 20:36:17 CET 2013 on sn-devel-104
This commit is contained in:
parent
79fa78e285
commit
d34cd6d061
@ -74,6 +74,61 @@ static const struct print_architecture_table_node archi_table[]= {
|
||||
{NULL, "", -1 }
|
||||
};
|
||||
|
||||
static bool print_driver_directories_init(void)
|
||||
{
|
||||
int service, i;
|
||||
char *driver_path;
|
||||
bool ok;
|
||||
TALLOC_CTX *mem_ctx = talloc_stackframe();
|
||||
|
||||
service = lp_servicenumber("print$");
|
||||
if (service < 0) {
|
||||
/* We don't have a print$ share */
|
||||
DEBUG(5, ("No print$ share has been configured.\n"));
|
||||
return true;
|
||||
}
|
||||
|
||||
driver_path = lp_pathname(mem_ctx, service);
|
||||
if (driver_path == NULL) {
|
||||
return false;
|
||||
}
|
||||
|
||||
ok = directory_create_or_exist(driver_path, sec_initial_uid(), 0755);
|
||||
if (!ok) {
|
||||
DEBUG(1, ("Failed to create printer driver directory %s\n",
|
||||
driver_path));
|
||||
talloc_free(mem_ctx);
|
||||
return false;
|
||||
}
|
||||
|
||||
for (i = 0; archi_table[i].long_archi != NULL; i++) {
|
||||
const char *arch_path;
|
||||
|
||||
arch_path = talloc_asprintf(mem_ctx,
|
||||
"%s/%s",
|
||||
driver_path,
|
||||
archi_table[i].short_archi);
|
||||
if (arch_path == NULL) {
|
||||
talloc_free(mem_ctx);
|
||||
return false;
|
||||
}
|
||||
|
||||
ok = directory_create_or_exist(arch_path,
|
||||
sec_initial_uid(),
|
||||
0755);
|
||||
if (!ok) {
|
||||
DEBUG(1, ("Failed to create printer driver "
|
||||
"architecture directory %s\n",
|
||||
arch_path));
|
||||
talloc_free(mem_ctx);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
talloc_free(mem_ctx);
|
||||
return true;
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
Open the NT printing tdbs. Done once before fork().
|
||||
****************************************************************************/
|
||||
@ -82,6 +137,10 @@ bool nt_printing_init(struct messaging_context *msg_ctx)
|
||||
{
|
||||
WERROR win_rc;
|
||||
|
||||
if (!print_driver_directories_init()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!nt_printing_tdb_upgrade()) {
|
||||
return false;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user