SOURCES: samba-printerlocation.patch - updated to 3.2.7
baggins
baggins at pld-linux.org
Mon Jan 19 12:04:11 CET 2009
Author: baggins Date: Mon Jan 19 11:04:11 2009 GMT
Module: SOURCES Tag: HEAD
---- Log message:
- updated to 3.2.7
---- Files affected:
SOURCES:
samba-printerlocation.patch (1.3 -> 1.4)
---- Diffs:
================================================================
Index: SOURCES/samba-printerlocation.patch
diff -u SOURCES/samba-printerlocation.patch:1.3 SOURCES/samba-printerlocation.patch:1.4
--- SOURCES/samba-printerlocation.patch:1.3 Thu Dec 4 15:33:48 2008
+++ SOURCES/samba-printerlocation.patch Mon Jan 19 12:04:06 2009
@@ -1,7 +1,7 @@
-diff -ur samba-3.0.25.orig/source/param/loadparm.c samba-3.0.25/source/param/loadparm.c
---- samba-3.0.25.orig/source/param/loadparm.c 2007-04-21 03:48:07.000000000 +0200
-+++ samba-3.0.25/source/param/loadparm.c 2007-05-15 09:06:42.000000000 +0200
-@@ -359,6 +359,7 @@
+diff -ur samba-3.2.7.orig/source/param/loadparm.c samba-3.2.7/source/param/loadparm.c
+--- samba-3.2.7.orig/source/param/loadparm.c 2009-01-19 10:58:56.000000000 +0100
++++ samba-3.2.7/source/param/loadparm.c 2009-01-19 11:01:03.000000000 +0100
+@@ -382,6 +382,7 @@
char *szHideFiles;
char *szVetoOplockFiles;
char *comment;
@@ -9,7 +9,7 @@
char *force_user;
char *force_group;
char **readlist;
-@@ -500,6 +501,7 @@
+@@ -525,6 +526,7 @@
NULL, /* szHideFiles */
NULL, /* szVetoOplockFiles */
NULL, /* comment */
@@ -17,7 +17,7 @@
NULL, /* force user */
NULL, /* force group */
NULL, /* readlist */
-@@ -2044,6 +2046,7 @@
+@@ -5227,6 +5229,7 @@
FN_LOCAL_STRING(lp_magicscript, szMagicScript)
FN_LOCAL_STRING(lp_magicoutput, szMagicOutput)
FN_LOCAL_STRING(lp_comment, comment)
@@ -25,16 +25,16 @@
FN_LOCAL_STRING(lp_force_user, force_user)
FN_LOCAL_STRING(lp_force_group, force_group)
FN_LOCAL_LIST(lp_readlist, readlist)
-@@ -4114,7 +4117,7 @@
+@@ -7789,7 +7792,7 @@
Auto-load one printer.
***************************************************************************/
--void lp_add_one_printer(char *name, char *comment)
-+void lp_add_one_printer(char *name, char *comment, char *location)
+-void lp_add_one_printer(const char *name, const char *comment, void *pdata)
++void lp_add_one_printer(const char *name, const char *comment, const char *location, void *pdata)
{
int printers = lp_servicenumber(PRINTERS_NAME);
int i;
-@@ -4123,6 +4126,7 @@
+@@ -7798,6 +7801,7 @@
lp_add_printer(name, printers);
if ((i = lp_servicenumber(name)) >= 0) {
string_set(&ServicePtrs[i]->comment, comment);
@@ -42,9 +42,10 @@
ServicePtrs[i]->autoloaded = True;
}
}
---- samba-3.0.29/source/printing/nt_printing.c.orig 2008-05-21 22:06:46.000000000 +0200
-+++ samba-3.0.29/source/printing/nt_printing.c 2008-05-27 17:36:02.366490355 +0200
-@@ -3300,7 +3300,39 @@
+diff -ur samba-3.2.7.orig/source/printing/nt_printing.c samba-3.2.7/source/printing/nt_printing.c
+--- samba-3.2.7.orig/source/printing/nt_printing.c 2008-12-19 14:57:33.000000000 +0100
++++ samba-3.2.7/source/printing/nt_printing.c 2009-01-19 11:00:06.000000000 +0100
+@@ -3499,7 +3499,39 @@
}
ads_destroy(&ads);
@@ -85,7 +86,7 @@
return WERR_OK;
}
-@@ -3782,7 +3814,7 @@
+@@ -4014,7 +4046,7 @@
fstrcpy(info->printprocessor, "winprint");
fstrcpy(info->datatype, "RAW");
@@ -94,7 +95,7 @@
if (get_loc_com && (enum printing_types)lp_printing(snum) == PRINT_CUPS ) {
/* Pull the location and comment strings from cups if we don't
already have one */
-@@ -3891,7 +3923,7 @@
+@@ -4129,7 +4161,7 @@
fstrcpy(info->printername, printername);
@@ -103,41 +104,66 @@
if (get_loc_com && (enum printing_types)lp_printing(snum) == PRINT_CUPS ) {
/* Pull the location and comment strings from cups if we don't
already have one */
-diff -ur samba-3.0.25.orig/source/printing/pcap.c samba-3.0.25/source/printing/pcap.c
---- samba-3.0.25.orig/source/printing/pcap.c 2005-10-18 04:44:57.000000000 +0200
-+++ samba-3.0.25/source/printing/pcap.c 2007-05-15 09:06:42.000000000 +0200
-@@ -67,12 +67,13 @@
- typedef struct pcap_cache {
+diff -ur samba-3.2.7.orig/source/printing/pcap.c samba-3.2.7/source/printing/pcap.c
+--- samba-3.2.7.orig/source/printing/pcap.c 2009-01-19 10:58:56.000000000 +0100
++++ samba-3.2.7/source/printing/pcap.c 2009-01-19 11:12:09.000000000 +0100
+@@ -66,13 +66,14 @@
+ struct pcap_cache {
char *name;
char *comment;
+ char *location;
struct pcap_cache *next;
- } pcap_cache_t;
+ };
- static pcap_cache_t *pcap_cache = NULL;
+ /* The systemwide printcap cache. */
+ static struct pcap_cache *pcap_cache = NULL;
--bool pcap_cache_add(const char *name, const char *comment)
-+bool pcap_cache_add(const char *name, const char *comment, const char *location)
+-bool pcap_cache_add_specific(struct pcap_cache **ppcache, const char *name, const char *comment)
++bool pcap_cache_add_specific(struct pcap_cache **ppcache, const char *name, const char *comment, const char *location)
{
- pcap_cache_t *p;
+ struct pcap_cache *p;
-@@ -81,6 +82,7 @@
+@@ -81,9 +82,10 @@
p->name = SMB_STRDUP(name);
p->comment = (comment && *comment) ? SMB_STRDUP(comment) : NULL;
+ p->location = (location && *location) ? SMB_STRDUP(location) : NULL;
- p->next = pcap_cache;
- pcap_cache = p;
-@@ -97,6 +99,7 @@
+- DEBUG(11,("pcap_cache_add_specific: Adding name %s info %s\n",
+- p->name, p->comment ? p->comment : ""));
++ DEBUG(11,("pcap_cache_add_specific: Adding name %s info %s, location %s\n",
++ p->name, p->comment ? p->comment : "", p->location ? p->location : ""));
+
+ p->next = *ppcache;
+ *ppcache = p;
+@@ -100,14 +102,15 @@
SAFE_FREE(p->name);
SAFE_FREE(p->comment);
+ SAFE_FREE(p->location);
SAFE_FREE(p);
}
+ *pp_cache = NULL;
+ }
+
+-bool pcap_cache_add(const char *name, const char *comment)
++bool pcap_cache_add(const char *name, const char *comment, const char *location)
+ {
+- return pcap_cache_add_specific(&pcap_cache, name, comment);
++ return pcap_cache_add_specific(&pcap_cache, name, comment, location);
+ }
+
+ bool pcap_cache_loaded(void)
+@@ -121,7 +124,7 @@
+
+ pcap_cache_destroy_specific(&pcap_cache);
+ for (p = pcache; p; p = p->next) {
+- pcap_cache_add(p->name, p->comment);
++ pcap_cache_add(p->name, p->comment, p->location);
+ }
}
-@@ -210,7 +213,7 @@
+
+@@ -235,7 +238,7 @@
if (printing == PRINT_LPRNG && *name == '.')
continue;
@@ -146,25 +172,32 @@
x_fclose(pcap_file);
goto done;
}
-@@ -252,12 +255,12 @@
-
- XXX: I'm not sure if this comment still applies.. Anyone? -Rob
+@@ -274,18 +277,18 @@
***************************************************************************/
--void pcap_printer_fn(void (*fn)(char *, char *))
-+void pcap_printer_fn(void (*fn)(char *, char *, char *))
+
+ void pcap_printer_fn_specific(const struct pcap_cache *pc,
+- void (*fn)(const char *, const char *, void *),
++ void (*fn)(const char *, const char *, const char *, void *),
+ void *pdata)
{
- pcap_cache_t *p;
+ const struct pcap_cache *p;
- for (p = pcap_cache; p != NULL; p = p->next)
-- fn(p->name, p->comment);
-+ fn(p->name, p->comment, p->location);
+ for (p = pc; p != NULL; p = p->next)
+- fn(p->name, p->comment, pdata);
++ fn(p->name, p->comment, p->location, pdata);
return;
}
-diff -ur samba-3.0.25.orig/source/printing/print_aix.c samba-3.0.25/source/printing/print_aix.c
---- samba-3.0.25.orig/source/printing/print_aix.c 2005-02-25 18:59:28.000000000 +0100
-+++ samba-3.0.25/source/printing/print_aix.c 2007-05-15 09:06:42.000000000 +0200
-@@ -75,7 +75,7 @@
+
+-void pcap_printer_fn(void (*fn)(const char *, const char *, void *), void *pdata)
++void pcap_printer_fn(void (*fn)(const char *, const char *, const char *, void *), void *pdata)
+ {
+ pcap_printer_fn_specific(pcap_cache, fn, pdata);
+ }
+diff -ur samba-3.2.7.orig/source/printing/print_aix.c samba-3.2.7/source/printing/print_aix.c
+--- samba-3.2.7.orig/source/printing/print_aix.c 2008-12-19 14:57:33.000000000 +0100
++++ samba-3.2.7/source/printing/print_aix.c 2009-01-19 11:00:06.000000000 +0100
+@@ -84,7 +84,7 @@
/* name is found without stanza device */
/* probably a good printer ??? */
iEtat = 0;
@@ -173,7 +206,7 @@
safe_free(line);
x_fclose(pfile);
TALLOC_FREE(ctx);
-@@ -89,7 +89,7 @@
+@@ -99,7 +99,7 @@
} else if (strstr_m(line, "device")) {
/* it's a good virtual printer */
iEtat = 0;
@@ -182,25 +215,68 @@
safe_free(line);
x_fclose(pfile);
TALLOC_FREE(ctx);
-diff -ur samba-3.0.25.orig/source/printing/print_cups.c samba-3.0.25/source/printing/print_cups.c
---- samba-3.0.25.orig/source/printing/print_cups.c 2007-04-09 19:30:57.000000000 +0200
-+++ samba-3.0.25/source/printing/print_cups.c 2007-05-15 09:06:42.000000000 +0200
-@@ -83,11 +83,13 @@
+diff -ur samba-3.2.7.orig/source/printing/print_cups.c samba-3.2.7/source/printing/print_cups.c
+--- samba-3.2.7.orig/source/printing/print_cups.c 2008-12-19 14:57:33.000000000 +0100
++++ samba-3.2.7/source/printing/print_cups.c 2009-01-19 11:27:29.000000000 +0100
+@@ -82,11 +82,12 @@
+ return http;
+ }
+
+-static void send_pcap_info(const char *name, const char *info, void *pd)
++static void send_pcap_info(const char *name, const char *info, const char *location, void *pd)
+ {
+ int fd = *(int *)pd;
+ size_t namelen = name ? strlen(name)+1 : 0;
+ size_t infolen = info ? strlen(info)+1 : 0;
++ size_t locationlen = location ? strlen(location)+1 : 0;
+
+ DEBUG(11,("send_pcap_info: writing namelen %u\n", (unsigned int)namelen));
+ if (sys_write(fd, &namelen, sizeof(namelen)) != sizeof(namelen)) {
+@@ -100,6 +101,12 @@
+ strerror(errno)));
+ return;
+ }
++ DEBUG(11,("send_pcap_info: writing locationlen %u\n", (unsigned int)locationlen));
++ if (sys_write(fd, &locationlen, sizeof(locationlen)) != sizeof(locationlen)) {
++ DEBUG(10,("send_pcap_info: locationlen write failed %s\n",
++ strerror(errno)));
++ return;
++ }
+ if (namelen) {
+ DEBUG(11,("send_pcap_info: writing name %s\n", name));
+ if (sys_write(fd, name, namelen) != namelen) {
+@@ -116,6 +123,14 @@
+ return;
+ }
+ }
++ if (locationlen) {
++ DEBUG(11,("send_pcap_info: writing location %s\n", location));
++ if (sys_write(fd, location, locationlen) != locationlen) {
++ DEBUG(10,("send_pcap_info: location write failed %s\n",
++ strerror(errno)));
++ return;
++ }
++ }
+ }
+
+ static bool cups_cache_reload_async(int fd)
+@@ -128,11 +143,13 @@
ipp_attribute_t *attr; /* Current attribute */
cups_lang_t *language = NULL; /* Default language */
char *name, /* printer-name attribute */
- *info; /* printer-info attribute */
+ *info, /* printer-info attribute */
-+ *location; /* printer-location attribute */
++ *location; /* printer-location attribute */
static const char *requested[] =/* Requested attributes */
{
"printer-name",
- "printer-info"
+- "printer-info"
++ "printer-info",
+ "printer-location"
- };
+ };
bool ret = False;
-@@ -161,6 +163,7 @@
+@@ -206,6 +223,7 @@
name = NULL;
info = NULL;
@@ -208,27 +284,29 @@
while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER) {
if (strcmp(attr->name, "printer-name") == 0 &&
-@@ -171,6 +174,10 @@
- attr->value_tag == IPP_TAG_TEXT)
- info = attr->values[0].string.text;
-
-+ if (strcmp(attr->name, "printer-location") == 0 &&
-+ attr->value_tag == IPP_TAG_TEXT)
-+ location = attr->values[0].string.text;
+@@ -222,6 +240,12 @@
+ attr->values[0].string.text);
+ }
+
++ if (strcmp(attr->name, "printer-location") == 0 &&
++ attr->value_tag == IPP_TAG_TEXT)
++ pull_utf8_talloc(frame,
++ &location,
++ attr->values[0].string.text);
+
attr = attr->next;
}
-@@ -181,7 +188,7 @@
+@@ -232,7 +256,7 @@
if (name == NULL)
break;
-- if (!pcap_cache_add(name, info)) {
-+ if (!pcap_cache_add(name, info, location)) {
+- if (!pcap_cache_add_specific(&tmp_pcap_cache, name, info)) {
++ if (!pcap_cache_add_specific(&tmp_pcap_cache, name, info, location)) {
goto out;
}
}
-@@ -241,6 +248,7 @@
+@@ -292,6 +316,7 @@
name = NULL;
info = NULL;
@@ -236,30 +314,98 @@
while (attr != NULL && attr->group_tag == IPP_TAG_PRINTER) {
if (strcmp(attr->name, "printer-name") == 0 &&
-@@ -251,6 +259,10 @@
- attr->value_tag == IPP_TAG_TEXT)
- info = attr->values[0].string.text;
+@@ -308,6 +333,12 @@
+ attr->values[0].string.text);
+ }
-+ if (strcmp(attr->name, "printer-location") == 0 &&
++ if (strcmp(attr->name, "printer-location") == 0 &&
+ attr->value_tag == IPP_TAG_TEXT)
-+ info = attr->values[0].string.text;
++ pull_utf8_talloc(frame,
++ &location,
++ attr->values[0].string.text);
+
attr = attr->next;
}
-@@ -261,7 +273,7 @@
+@@ -318,7 +349,7 @@
if (name == NULL)
break;
-- if (!pcap_cache_add(name, info)) {
-+ if (!pcap_cache_add(name, info, location)) {
+- if (!pcap_cache_add_specific(&tmp_pcap_cache, name, info)) {
++ if (!pcap_cache_add_specific(&tmp_pcap_cache, name, info, location)) {
goto out;
}
}
-diff -ur samba-3.0.25.orig/source/printing/print_iprint.c samba-3.0.25/source/printing/print_iprint.c
---- samba-3.0.25.orig/source/printing/print_iprint.c 2007-03-01 05:54:09.000000000 +0100
-+++ samba-3.0.25/source/printing/print_iprint.c 2007-05-15 09:06:42.000000000 +0200
-@@ -297,7 +297,7 @@
+@@ -412,8 +443,8 @@
+ "fd = %d\n", fd));
+
+ while (1) {
+- char *name = NULL, *info = NULL;
+- size_t namelen = 0, infolen = 0;
++ char *name = NULL, *info = NULL, *location = NULL;
++ size_t namelen = 0, infolen = 0, locationlen = 0;
+ ssize_t ret = -1;
+
+ ret = sys_read(fd, &namelen, sizeof(namelen));
+@@ -444,6 +475,20 @@
+ DEBUG(11,("cups_async_callback: read infolen %u\n",
+ (unsigned int)infolen));
+
++ ret = sys_read(fd, &locationlen, sizeof(locationlen));
++ if (ret == 0) {
++ /* EOF */
++ break;
++ }
++ if (ret != sizeof(locationlen)) {
++ DEBUG(10,("cups_async_callback: locationlen read failed %s\n",
++ strerror(errno)));
++ break;
++ }
++
++ DEBUG(11,("cups_async_callback: read locationlen %u\n",
++ (unsigned int)locationlen));
++
+ if (namelen) {
+ name = TALLOC_ARRAY(frame, char, namelen);
+ if (!name) {
+@@ -484,11 +529,32 @@
+ } else {
+ info = NULL;
+ }
++ if (locationlen) {
++ location = TALLOC_ARRAY(frame, char, locationlen);
++ if (!location) {
++ break;
++ }
++ ret = sys_read(fd, location, locationlen);
++ if (ret == 0) {
++ /* EOF */
++ break;
++ }
++ if (ret != locationlen) {
++ DEBUG(10,("cups_async_callback: location read failed %s\n",
++ strerror(errno)));
++ break;
++ }
++ DEBUG(11,("cups_async_callback: read location %s\n",
++ location));
++ } else {
++ location = NULL;
++ }
+
+ /* Add to our local pcap cache. */
+- pcap_cache_add_specific(&tmp_pcap_cache, name, info);
++ pcap_cache_add_specific(&tmp_pcap_cache, name, info, location);
+ TALLOC_FREE(name);
+ TALLOC_FREE(info);
++ TALLOC_FREE(location);
+ }
+
+ TALLOC_FREE(frame);
+diff -ur samba-3.2.7.orig/source/printing/print_iprint.c samba-3.2.7/source/printing/print_iprint.c
+--- samba-3.2.7.orig/source/printing/print_iprint.c 2008-12-19 14:57:33.000000000 +0100
++++ samba-3.2.7/source/printing/print_iprint.c 2009-01-19 11:00:06.000000000 +0100
+@@ -296,7 +296,7 @@
*/
if (name != NULL && !secure && smb_enabled)
@@ -268,10 +414,10 @@
}
out:
-diff -ur samba-3.0.25.orig/source/printing/print_svid.c samba-3.0.25/source/printing/print_svid.c
---- samba-3.0.25.orig/source/printing/print_svid.c 2005-12-02 20:21:45.000000000 +0100
-+++ samba-3.0.25/source/printing/print_svid.c 2007-05-15 09:06:42.000000000 +0200
-@@ -111,7 +111,7 @@
+diff -ur samba-3.2.7.orig/source/printing/print_svid.c samba-3.2.7/source/printing/print_svid.c
+--- samba-3.2.7.orig/source/printing/print_svid.c 2008-12-19 14:57:33.000000000 +0100
++++ samba-3.2.7/source/printing/print_svid.c 2009-01-19 11:00:06.000000000 +0100
+@@ -110,7 +110,7 @@
*tmp = '\0';
/* add it to the cache */
@@ -280,10 +426,10 @@
file_lines_free(lines);
return False;
}
-diff -ur samba-3.0.25.orig/source/rpcclient/cmd_spoolss.c samba-3.0.25/source/rpcclient/cmd_spoolss.c
---- samba-3.0.25.orig/source/rpcclient/cmd_spoolss.c 2007-05-11 00:09:33.000000000 +0200
-+++ samba-3.0.25/source/rpcclient/cmd_spoolss.c 2007-05-15 10:38:35.000000000 +0200
-@@ -476,19 +476,23 @@
+diff -ur samba-3.2.7.orig/source/rpcclient/cmd_spoolss.c samba-3.2.7/source/rpcclient/cmd_spoolss.c
+--- samba-3.2.7.orig/source/rpcclient/cmd_spoolss.c 2008-12-19 14:57:33.000000000 +0100
++++ samba-3.2.7/source/rpcclient/cmd_spoolss.c 2009-01-19 11:00:06.000000000 +0100
+@@ -475,19 +475,23 @@
fstring printername,
servername,
user,
@@ -312,7 +458,7 @@
slprintf(servername, sizeof(servername)-1, "\\\\%s", cli->cli->desthost);
strupper_m(servername);
slprintf(printername, sizeof(servername)-1, "%s\\%s", servername, argv[1]);
-@@ -513,12 +517,15 @@
+@@ -512,12 +516,15 @@
/* Modify the comment. */
init_unistr(&ctr.printers_2->comment, comment);
@@ -329,10 +475,10 @@
done:
if (opened_hnd)
-diff -ur samba-3.0.25.orig/source/rpc_server/srv_spoolss_nt.c samba-3.0.25/source/rpc_server/srv_spoolss_nt.c
---- samba-3.0.25.orig/source/rpc_server/srv_spoolss_nt.c 2007-05-11 00:09:35.000000000 +0200
-+++ samba-3.0.25/source/rpc_server/srv_spoolss_nt.c 2007-05-15 11:44:07.000000000 +0200
-@@ -2901,7 +2901,10 @@
+diff -ur samba-3.2.7.orig/source/rpc_server/srv_spoolss_nt.c samba-3.2.7/source/rpc_server/srv_spoolss_nt.c
+--- samba-3.2.7.orig/source/rpc_server/srv_spoolss_nt.c 2008-12-19 14:57:33.000000000 +0100
++++ samba-3.2.7/source/rpc_server/srv_spoolss_nt.c 2009-01-19 11:00:06.000000000 +0100
+@@ -2934,7 +2934,10 @@
smb_ucs2_t *temp = NULL;
uint32 len;
@@ -344,7 +490,7 @@
if (len == (uint32)-1) {
len = 0;
}
-@@ -4204,8 +4207,10 @@
+@@ -4213,8 +4216,10 @@
init_unistr(&printer->comment, lp_comment(snum)); /* comment */
else
init_unistr(&printer->comment, ntprinter->info_2->comment); /* saved comment. */
@@ -357,7 +503,7 @@
init_unistr(&printer->sepfile, ntprinter->info_2->sepfile); /* separator file */
init_unistr(&printer->printprocessor, ntprinter->info_2->printprocessor);/* print processor */
init_unistr(&printer->datatype, ntprinter->info_2->datatype); /* datatype */
-@@ -6341,6 +6346,13 @@
+@@ -6484,6 +6489,13 @@
/* Update printer info */
result = mod_a_printer(printer, 2);
================================================================
---- CVS-web:
http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/samba-printerlocation.patch?r1=1.3&r2=1.4&f=u
More information about the pld-cvs-commit
mailing list