diff options
author | Stefan Metzmacher <metze@samba.org> | 2004-02-01 11:26:25 +0000 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2004-02-01 11:26:25 +0000 |
commit | 670ccc7d643b8e04743542b4336f6830ac065463 (patch) | |
tree | 0b39213b540cc5b6165881bf5c8ef4fd06d5da94 /source4/libads/ldap_printer.c | |
parent | 0d90f4b47b463b2e68dd63ab30a2f022ddece14b (diff) | |
download | samba-670ccc7d643b8e04743542b4336f6830ac065463.tar.gz samba-670ccc7d643b8e04743542b4336f6830ac065463.tar.bz2 samba-670ccc7d643b8e04743542b4336f6830ac065463.zip |
merge:
ldap and krb5 configure tests
libads/*.c and libcli/raw/clikrb5.c from 3.0
metze
(This used to be commit 64b5bfcd73d7626d6f687a641b11e64821144df7)
Diffstat (limited to 'source4/libads/ldap_printer.c')
-rw-r--r-- | source4/libads/ldap_printer.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/source4/libads/ldap_printer.c b/source4/libads/ldap_printer.c index f5cd4f2885..1448074ea0 100644 --- a/source4/libads/ldap_printer.c +++ b/source4/libads/ldap_printer.c @@ -1,7 +1,7 @@ /* Unix SMB/CIFS implementation. ads (active directory) printer utility library - Copyright (C) Jim McDonough 2002 + Copyright (C) Jim McDonough <jmcd@us.ibm.com> 2002 This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -31,7 +31,7 @@ ADS_STATUS ads_find_printer_on_server(ADS_STRUCT *ads, void **res, const char *printer, const char *servername) { ADS_STATUS status; - char *srv_dn, **srv_cn, *exp; + char *srv_dn, **srv_cn, *s; const char *attrs[] = {"*", "nTSecurityDescriptor", NULL}; status = ads_find_machine_acct(ads, res, servername); @@ -44,15 +44,29 @@ ADS_STATUS ads_find_printer_on_server(ADS_STRUCT *ads, void **res, srv_cn = ldap_explode_dn(srv_dn, 1); ads_msgfree(ads, *res); - asprintf(&exp, "(cn=%s-%s)", srv_cn[0], printer); - status = ads_search(ads, res, exp, attrs); + asprintf(&s, "(cn=%s-%s)", srv_cn[0], printer); + status = ads_search(ads, res, s, attrs); ldap_memfree(srv_dn); ldap_value_free(srv_cn); - free(exp); + free(s); return status; } +ADS_STATUS ads_find_printers(ADS_STRUCT *ads, void **res) +{ + char *ldap_expr; + const char *attrs[] = { "objectClass", "printerName", "location", "driverName", + "serverName", "description", NULL }; + + /* For the moment only display all printers */ + + ldap_expr = "(&(!(showInAdvancedViewOnly=TRUE))(uncName=*)" + "(objectCategory=printQueue))"; + + return ads_search(ads, res, ldap_expr, attrs); +} + /* modify a printer entry in the directory */ @@ -338,4 +352,3 @@ BOOL get_local_printer_publishing_data(TALLOC_CTX *mem_ctx, } #endif - |