Get credentials before publishing printers.
authorJim McDonough <jmcd@samba.org>
Fri, 25 Apr 2003 21:51:26 +0000 (21:51 +0000)
committerJim McDonough <jmcd@samba.org>
Fri, 25 Apr 2003 21:51:26 +0000 (21:51 +0000)
(This used to be commit 674174fcca234a44d1778ee092998338cbd7a553)

source3/printing/nt_printing.c

index 266b63f71105a247b92dab3204b3112a6a64bc4e..685f5ff4999a10f0f43f20b4a3c0be9550a95794 100644 (file)
@@ -2607,6 +2607,10 @@ static WERROR publish_it(NT_PRINTER_INFO_LEVEL *printer)
                DEBUG(3, ("ads_init() failed\n"));
                return WERR_SERVER_UNAVAILABLE;
        }
+       setenv("KRB5CCNAME", "MEMORY:prtpub_cache", 1);
+       SAFE_FREE(ads->auth.password);
+       ads->auth.password = secrets_fetch_machine_password(lp_workgroup(),
+                                                           NULL, NULL);
        ads_rc = ads_connect(ads);
        if (!ADS_ERR_OK(ads_rc)) {
                DEBUG(3, ("ads_connect failed: %s\n", ads_errstr(ads_rc)));
@@ -2664,6 +2668,10 @@ WERROR unpublish_it(NT_PRINTER_INFO_LEVEL *printer)
                DEBUG(3, ("ads_init() failed\n"));
                return WERR_SERVER_UNAVAILABLE;
        }
+       setenv("KRB5CCNAME", "MEMORY:prtpub_cache", 1);
+       SAFE_FREE(ads->auth.password);
+       ads->auth.password = secrets_fetch_machine_password(lp_workgroup(),
+                                                           NULL, NULL);
        ads_rc = ads_connect(ads);
        if (!ADS_ERR_OK(ads_rc)) {
                DEBUG(3, ("ads_connect failed: %s\n", ads_errstr(ads_rc)));