diff options
Diffstat (limited to 'source3/rpc_server')
-rw-r--r-- | source3/rpc_server/srv_lsa.c | 5 | ||||
-rw-r--r-- | source3/rpc_server/srv_spoolss_nt.c | 16 |
2 files changed, 14 insertions, 7 deletions
diff --git a/source3/rpc_server/srv_lsa.c b/source3/rpc_server/srv_lsa.c index 5855f6c030..da8929bbc6 100644 --- a/source3/rpc_server/srv_lsa.c +++ b/source3/rpc_server/srv_lsa.c @@ -324,6 +324,11 @@ BOOL winbind_lookup_sid(DOM_SID *sid, fstring dom_name, fstring name, if (result == WINBINDD_OK) { parse_domain_user(response.data.name.name, dom_name, name); *name_type = response.data.name.type; + } else { + sid_copy(&tmp_sid, sid); + sid_split_rid(&tmp_sid, &rid); + return map_domain_sid_to_name(&tmp_sid, dom_name) && + lookup_local_rid(rid, name, name_type); } return (result == WINBINDD_OK); diff --git a/source3/rpc_server/srv_spoolss_nt.c b/source3/rpc_server/srv_spoolss_nt.c index b8b25a1ecb..d1ff58404e 100644 --- a/source3/rpc_server/srv_spoolss_nt.c +++ b/source3/rpc_server/srv_spoolss_nt.c @@ -413,7 +413,7 @@ static BOOL set_printer_hnd_printername(POLICY_HND *hnd, char *printername) if ( !(lp_snum_ok(snum) && lp_print_ok(snum) ) ) continue; - DEBUGADD(5,("share:%s\n",lp_servicename(snum))); + DEBUGADD(5,("set_printer_hnd_printername: share:%s\n",lp_servicename(snum))); if (get_a_printer(&printer, 2, lp_servicename(snum))!=0) continue; @@ -441,7 +441,9 @@ static BOOL set_printer_hnd_printername(POLICY_HND *hnd, char *printername) } snum--; - DEBUGADD(4,("Printer found: %s -> %s[%x]\n",printer->info_2->printername, lp_servicename(snum),snum)); + DEBUGADD(4,("set_printer_hnd_printername: Printer found: %s -> %s[%x]\n", + printer->info_2->printername, lp_servicename(snum),snum)); + ZERO_STRUCT(Printer->dev.printername); strncpy(Printer->dev.printername, lp_servicename(snum), strlen(lp_servicename(snum))); @@ -1667,11 +1669,11 @@ static BOOL construct_printer_info_0(PRINTER_INFO_0 *printer, int snum, fstring /* the description and the name are of the form \\server\share */ slprintf(chaine,sizeof(chaine)-1,"\\\\%s\\%s",servername, ntprinter->info_2->printername); - - init_unistr(&(printer->printername), chaine); + + init_unistr(&printer->printername, chaine); slprintf(chaine,sizeof(chaine)-1,"\\\\%s", servername); - init_unistr(&(printer->servername), chaine); + init_unistr(&printer->servername, chaine); printer->cjobs = count; printer->total_jobs = 0; @@ -1801,8 +1803,8 @@ static DEVICEMODE *construct_dev_mode(int snum, char *servername) goto fail; DEBUGADD(8,("loading DEVICEMODE\n")); - snprintf(adevice, sizeof(adevice), "\\\\%s\\%s", global_myname, - printer->info_2->printername); + snprintf(adevice, sizeof(adevice), "%s", printer->info_2->printername); + init_unistr(&devmode->devicename, adevice); snprintf(aform, sizeof(aform), ntdevmode->formname); |