/*
- * "$Id: cupsaddsmb.c 5833 2006-08-16 20:05:58Z mike $"
+ * "$Id: cupsaddsmb.c 7033 2007-10-19 02:11:28Z mike $"
*
- * "cupsaddsmb" command for the Common UNIX Printing System (CUPS).
+ * "cupsaddsmb" command for CUPS.
*
+ * Copyright 2007-2011 by Apple Inc.
* Copyright 2001-2006 by Easy Software Products.
*
* These coded instructions, statements, and computer programs are the
- * property of Easy Software Products and are protected by Federal
- * copyright law. Distribution and use rights are outlined in the file
- * "LICENSE.txt" which should have been included with this file. If this
- * file is missing or damaged please contact Easy Software Products
- * at:
- *
- * Attn: CUPS Licensing Information
- * Easy Software Products
- * 44141 Airport View Drive, Suite 204
- * Hollywood, Maryland 20636 USA
- *
- * Voice: (301) 373-9600
- * EMail: cups-info@cups.org
- * WWW: http://www.cups.org
+ * property of Apple Inc. and are protected by Federal copyright
+ * law. Distribution and use rights are outlined in the file "LICENSE.txt"
+ * which should have been included with this file. If this file is
+ * file is missing or damaged, see the license at "http://www.cups.org/".
*
* Contents:
*
* Include necessary headers...
*/
-#include <stdio.h>
-#include <stdlib.h>
-#include <cups/string.h>
+#include <cups/cups-private.h>
#include <cups/adminutil.h>
-#include <cups/i18n.h>
-#include <cups/debug.h>
-#include <errno.h>
#include <fcntl.h>
#include <unistd.h>
#include <sys/wait.h>
cups_dest_t *dests; /* Printers */
- _cupsSetLocale();
+ _cupsSetLocale(argv);
/*
* Parse command-line arguments...
cupsSetEncryption(HTTP_ENCRYPT_REQUIRED);
#else
_cupsLangPrintf(stderr,
- _("%s: Sorry, no encryption support compiled in!\n"),
+ _("%s: Sorry, no encryption support."),
argv[0]);
#endif /* HAVE_SSL */
}
if ((http = httpConnectEncrypt(cupsServer(), ippPort(),
cupsEncryption())) == NULL)
{
- _cupsLangPrintf(stderr, _("%s: Unable to connect to server\n"), argv[0]);
+ _cupsLangPrintf(stderr, _("%s: Unable to connect to server."),
+ argv[0]);
exit(1);
}
}
if (SAMBAServer == NULL)
+ {
SAMBAServer = cupsServer();
+ if (SAMBAServer[0] == '/') /* Use localhost instead of domain socket */
+ SAMBAServer = "localhost";
+ }
+
if ((status = export_dest(http, argv[i])) != 0)
return (status);
}
if ((http = httpConnectEncrypt(cupsServer(), ippPort(),
cupsEncryption())) == NULL)
{
- _cupsLangPrintf(stderr, _("%s: Unable to connect to server\n"), argv[0]);
+ _cupsLangPrintf(stderr, _("%s: Unable to connect to server."), argv[0]);
exit(1);
}
*/
if (SAMBAServer == NULL)
+ {
SAMBAServer = cupsServer();
+ if (SAMBAServer[0] == '/') /* Use localhost instead of domain socket */
+ SAMBAServer = "localhost";
+ }
+
num_dests = cupsGetDests2(http, &dests);
for (j = 0, status = 0; j < num_dests; j ++)
int status; /* Status of export */
char ppdfile[1024], /* PPD file for printer drivers */
prompt[1024]; /* Password prompt */
+ int tries; /* Number of tries */
/*
if (!cupsAdminCreateWindowsPPD(http, dest, ppdfile, sizeof(ppdfile)))
{
_cupsLangPrintf(stderr,
- _("cupsaddsmb: No PPD file for printer \"%s\" - "
- "%s\n"),
+ _("cupsaddsmb: No PPD file for printer \"%s\" - %s"),
dest, cupsLastErrorString());
return (1);
}
* Try to export it...
*/
- for (status = 0; !status;)
+ for (status = 0, tries = 0; !status && tries < 3; tries ++)
{
/*
* Get the password, as needed...
status = cupsAdminExportSamba(dest, ppdfile, SAMBAServer,
SAMBAUser, SAMBAPassword,
Verbosity ? stderr : NULL);
+
+ if (!status && cupsLastError() == IPP_NOT_FOUND)
+ break;
}
unlink(ppdfile);
void
usage(void)
{
- _cupsLangPuts(stdout,
- _("Usage: cupsaddsmb [options] printer1 ... printerN\n"
- " cupsaddsmb [options] -a\n"
- "\n"
- "Options:\n"
- " -E Encrypt the connection to the server\n"
- " -H samba-server Use the named SAMBA server\n"
- " -U samba-user Authenticate using the named SAMBA user\n"
- " -a Export all printers\n"
- " -h cups-server Use the named CUPS server\n"
- " -v Be verbose (show commands)\n"));
+ _cupsLangPuts(stdout, _("Usage: cupsaddsmb [options] printer1 ... printerN"));
+ _cupsLangPuts(stdout, _(" cupsaddsmb [options] -a"));
+ _cupsLangPuts(stdout, "");
+ _cupsLangPuts(stdout, _("Options:"));
+ _cupsLangPuts(stdout, _(" -E Encrypt the connection to "
+ "the server."));
+ _cupsLangPuts(stdout, _(" -H samba-server Use the named SAMBA "
+ "server."));
+ _cupsLangPuts(stdout, _(" -U samba-user Authenticate using the "
+ "named SAMBA user."));
+ _cupsLangPuts(stdout, _(" -a Export all printers."));
+ _cupsLangPuts(stdout, _(" -h cups-server Use the named CUPS "
+ "server."));
+ _cupsLangPuts(stdout, _(" -v Be verbose (show "
+ "commands)."));
+
exit(1);
}
/*
- * End of "$Id: cupsaddsmb.c 5833 2006-08-16 20:05:58Z mike $".
+ * End of "$Id: cupsaddsmb.c 7033 2007-10-19 02:11:28Z mike $".
*/