summaryrefslogtreecommitdiff
path: root/source3/printing/load.c
AgeCommit message (Collapse)AuthorFilesLines
2021-12-10s3:printing: Move pcap_cache_loaded() to load.cVolker Lendecke1-0/+15
A future patch will remove the PRINTING dependency from smbd, but in delete_and_reload_printers() we still reference it. Maybe at some later stage we can remove reload_printers() overall, we don't really need to load the full printer list into every smbd. All we need is to load them on-demand for explicit listing functions, but there we can throw them away again. And when someone connects to the printer, we can also load them on demand. Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Samuel Cabrero <scabrero@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
2021-03-19s3:param: Fix segfault trying to add pcap printer without a [printers] shareAndreas Schneider1-1/+4
#0 0x00007fb264e75bea in __GI___wait4 (pid=21966, stat_loc=stat_loc@entry=0x7ffdf83a9bc8, options=options@entry=0, usage=usage@entry=0x0) at ../sysdeps/unix/sysv/linux/wait4.c:30 sc_ret = -512 sc_ret = <optimized out> #1 0x00007fb264e75bab in __GI___waitpid (pid=<optimized out>, stat_loc=stat_loc@entry=0x7ffdf83a9bc8, options=options@entry=0) at waitpid.c:38 No locals. #2 0x00007fb264df33a3 in do_system (line=<optimized out>) at ../sysdeps/posix/system.c:172 __result = <optimized out> _buffer = { __routine = 0x7fb264df35d0 <cancel_handler>, __arg = 0x7ffdf83a9bd0, __canceltype = 0, __prev = 0x0 } _avail = 1 cancel_args = { quit = 0x7fb264f6f200 <quit>, intr = 0x7fb264f6f2a0 <intr>, pid = 21966 } status = -1 ret = 0 pid = 21966 sa = { __sigaction_handler = { sa_handler = 0x1, sa_sigaction = 0x1 }, sa_mask = { __val = {[0] = 65536, [1] = 94088581545700, [2] = 0, [3] = 0, [4] = 0, [5] = 0, [6] = 0, [7] = 1703897678, [8] = 140404174928432, [9] = 140404179009536, [10] = 0, [11] = 140728768044480, [12] = 140404185491504, [13] = 18446744073709551615, [14] = 100, [15] = 140404180125856} }, sa_flags = 0, sa_restorer = 0x7ffdf83a9df0 } omask = { __val = {[0] = 7296, [1] = 140404179695051, [2] = 94088578316976, [3] = 140404180018176, [4] = 140404180017664, [5] = 140404185449449, [6] = 140728768044176, [7] = 140404185448599, [8] = 140404185458050, [9] = 100, [10] = 140404180125856, [11] = 7322926704, [12] = 140728768044432, [13] = 140404185491192, [14] = 112, [15] = 100} } reset = { __val = {[0] = 6, [1] = 5372865792, [2] = 94088581545600, [3] = 140728768044624, [4] = 100, [5] = 100, [6] = 101, [7] = 94088581545600, [8] = 140728768044288, [9] = 140404173470464, [10] = 140406703357952, [11] = 94088581545600, [12] = 94088581545600, [13] = 94088581545600, [14] = 94088581545600, [15] = 94088581545700} } spawn_attr = { __flags = 12, __pgrp = 0, __sd = { __val = {[0] = 6, [1] = 5372865792, [2] = 94088581545600, [3] = 140728768044624, [4] = 100, [5] = 100, [6] = 101, [7] = 94088581545600, [8] = 140728768044288, [9] = 140404173470464, [10] = 140406703357952, [11] = 94088581545600, [12] = 94088581545600, [13] = 94088581545600, [14] = 94088581545600, [15] = 94088581545700} }, __ss = { __val = {[0] = 7296, [1] = 140404179695051, [2] = 94088578316976, [3] = 140404180018176, [4] = 140404180017664, [5] = 140404185449449, [6] = 140728768044176, [7] = 140404185448599, [8] = 140404185458050, [9] = 100, [10] = 140404180125856, [11] = 7322926704, [12] = 140728768044432, [13] = 140404185491192, [14] = 112, [15] = 100} }, __sp = { sched_priority = 0 }, __policy = 0, __pad = {[0] = 0 <repeats 16 times>} } #3 0x00007fb2654289f6 in smb_panic_s3 (why=0x7ffdf83a9fd0 "Signal 11: Segmentation fault") at ../../source3/lib/util.c:839 lp_sub = 0x7fb265461a60 <s3_global_substitution> cmd = 0x5592b47afe30 "/home/asn/workspace/projects/samba/selftest/gdb_backtrace 21964" result = 32690 __FUNCTION__ = "smb_panic_s3" #4 0x00007fb2658f6f09 in smb_panic (why=0x7ffdf83a9fd0 "Signal 11: Segmentation fault") at ../../lib/util/fault.c:197 No locals. #5 0x00007fb2658f6a39 in fault_report (sig=11) at ../../lib/util/fault.c:81 counter = 1 signal_string = "Signal 11: Segmentation fault\000\000\000\000\240:\370\375\177\000\000\000m?@/\214؊\377\245:\370\375\177\000\000\000m?@/\214؊\000\242:\370\375\177", '\000' <repeats 11 times>, "\242:\370\375\177\000\000\351C\231e\262\177\000\000`\240:\370\375\177\000\000\002:\231e\262\177\000\000Р:\370\375\177\000\000\a\000\000\000\061\000\000" #6 0x00007fb2658f6a4e in sig_fault (sig=11) at ../../lib/util/fault.c:92 No locals. #7 <signal handler called> No locals. #8 0x00007fb2653762b4 in copy_service (pserviceDest=0x5592b4657940, pserviceSource=0x0, pcopymapDest=0x0) at ../../lib/param/loadparm.c:896 src_ptr = 0x1 dest_ptr = 0x5592b4657941 i = 1 bcopyall = true data = 0x5592b44a9020 #9 0x00007fb2653e1e16 in add_a_service (pservice=0x0, name=0x5592b4476130 "laserjet1102w") at ../../source3/param/loadparm.c:1486 i = 13 tsp = 0x5592b44a9020 __FUNCTION__ = "add_a_service" #10 0x00007fb2653e2846 in lp_add_printer (pszPrintername=0x5592b4476130 "laserjet1102w", iDefaultService=-1) at ../../source3/param/loadparm.c:1666 comment = 0x7fb2654339ec "From Printcap" i = 21906 __FUNCTION__ = "lp_add_printer" #11 0x00007fb2653e59b8 in lp_add_one_printer (name=0x5592b4476130 "laserjet1102w", comment=0x5592b512d5a0 "HP LaserJet Professional p 1102w, hpcups 3.19.6, requires proprietary plugin", location=0x5592b4476200 "", pdata=0x0) at ../../source3/param/loadparm.c:2988 printers = -1 i = 1700139171 #12 0x00007fb26556112f in printer_list_exec_fn (rec=0x7ffdf83aa7e0, private_data=0x7ffdf83aa9f0) at ../../source3/printing/printer_list.c:446 state = 0x7ffdf83aa9f0 time_h = 0 time_l = 17286 name = 0x5592b4476130 "laserjet1102w" comment = 0x5592b512d5a0 "HP LaserJet Professional p 1102w, hpcups 3.19.6, requires proprietary plugin" location = 0x5592b4476200 "" ret = 100 key = { dptr = 0x5592b456fdd0 "PRINTERLIST/PRN/LASERJET1102W", dsize = 30 } value = { dptr = 0x5592b456fdee "", dsize = 100 } __FUNCTION__ = "printer_list_exec_fn" #13 0x00007fb2646fc747 in db_tdb_traverse_read_func (tdb=0x5592b5377090, kbuf=..., dbuf=..., private_data=0x7ffdf83aa920) at ../../lib/dbwrap/dbwrap_tdb.c:399 ctx = 0x7ffdf83aa920 rec = { db = 0x5592b4957500, key = { dptr = 0x5592b456fdd0 "PRINTERLIST/PRN/LASERJET1102W", dsize = 30 }, value = { dptr = 0x5592b456fdee "", dsize = 100 }, value_valid = true, storev = 0x7fb2646fc672 <db_tdb_storev_deny>, delete_rec = 0x7fb2646fc68b <db_tdb_delete_deny>, private_data = 0x5592b5249b50 } #14 0x00007fb26372c08d in ?? () from /usr/lib64/libtdb.so.1 No symbol table info available. #15 0x00007fb26372c21d in tdb_traverse_read () from /usr/lib64/libtdb.so.1 No symbol table info available. #16 0x00007fb2646fc7b7 in db_tdb_traverse_read (db=0x5592b4957500, f=0x7fb265561001 <printer_list_exec_fn>, private_data=0x7ffdf83aa9f0) at ../../lib/dbwrap/dbwrap_tdb.c:413 db_ctx = 0x5592b5249b50 ctx = { db = 0x5592b4957500, f = 0x7fb265561001 <printer_list_exec_fn>, private_data = 0x7ffdf83aa9f0 } #17 0x00007fb2646f83ad in dbwrap_traverse_read (db=0x5592b4957500, f=0x7fb265561001 <printer_list_exec_fn>, private_data=0x7ffdf83aa9f0, count=0x0) at ../../lib/dbwrap/dbwrap.c:412 ret = 0 #18 0x00007fb265560d9b in printer_list_traverse (fn=0x7fb265561001 <printer_list_exec_fn>, private_data=0x7ffdf83aa9f0, read_only=true) at ../../source3/printing/printer_list.c:328 db = 0x5592b4957500 status = { v = 0 } #19 0x00007fb2655611cc in printer_list_read_run_fn (fn=0x7fb2653e5970 <lp_add_one_printer>, private_data=0x0) at ../../source3/printing/printer_list.c:464 state = { fn = 0x7fb2653e5970 <lp_add_one_printer>, private_data = 0x0, status = { v = 0 } } status = { v = 0 } #20 0x00007fb26555c9e6 in load_printers () at ../../source3/printing/load.c:86 status = { v = 0 } __func__ = "load_printers" #21 0x00007fb265599457 in delete_and_reload_printers () at ../../source3/smbd/server_reload.c:80 n_services = -130372992 pnum = 12 snum = 12 pname = 0x5592b55626f0 "\340=\277\264\222U" ok = true pcap_last_update = 17286 frame = 0x5592b4797d70 lp_sub = 0x7fb265461a60 <s3_global_substitution> __FUNCTION__ = "delete_and_reload_printers" #22 0x00007fb2655404d7 in delete_and_reload_printers_full (ev=0x5592b44a6940, msg_ctx=0x5592b44a92c0) at ../../source3/printing/queue_process.c:131 session_info = 0x5592b55626f0 pinfo2 = 0x0 lp_sub = 0x7fb265461a60 <s3_global_substitution> n_services = 13 pnum = -1 snum = 13 pname = 0x5592b45003d0 "\240\247F\264\222U" sname = 0x7ffdf83aab00 "\200\253:\370\375\177" status = { v = 0 } __FUNCTION__ = "delete_and_reload_printers_full" #23 0x00007fb265540523 in reload_pcap_change_notify (ev=0x5592b44a6940, msg_ctx=0x5592b44a92c0) at ../../source3/printing/queue_process.c:150 No locals. #24 0x00007fb265555855 in cups_async_callback (event_ctx=0x5592b44a6940, event=0x5592b5562570, flags=1, p=0x5592b4a9b160) at ../../source3/printing/print_cups.c:571 frame = 0x5592b4e26960 cb_args = 0x5592b4a9b160 tmp_pcap_cache = 0x5592b45003d0 ret_ok = true pcap_data = { status = { v = 0 }, count = 1, printers = 0x5592b5393800 } pcap_blob = { data = 0x5592b47a48e0 "\001", length = 157 } ndr_ret = NDR_ERR_SUCCESS i = 1 __FUNCTION__ = "cups_async_callback" #25 0x00007fb26548b88c in tevent_common_invoke_fd_handler (fde=0x5592b5562570, flags=1, removed=0x0) at ../../lib/tevent/tevent_fd.c:138 handler_ev = 0x5592b44a6940 #26 0x00007fb265496148 in epoll_event_loop (epoll_ev=0x5592b4a30eb0, tvalp=0x7ffdf83aac50) at ../../lib/tevent/tevent_epoll.c:736 fde = 0x5592b5562570 flags = 1 mpx_fde = 0x0 ret = 1 i = 0 events = {[0] = { events = 17, data = { ptr = 0x5592b5562570, fd = -1252645520, u32 = 3042321776, u64 = 94088595907952 } }} timeout = 750000 wait_errno = 0 #27 0x00007fb26549678f in epoll_event_loop_once (ev=0x5592b44a6940, location=0x7fb2657c54e0 "../../source3/printing/queue_process.c:424") at ../../lib/tevent/tevent_epoll.c:937 epoll_ev = 0x5592b4a30eb0 tval = { tv_sec = 749, tv_usec = 999054 } panic_triggered = false #28 0x00007fb2654930fa in std_event_loop_once (ev=0x5592b44a6940, location=0x7fb2657c54e0 "../../source3/printing/queue_process.c:424") at ../../lib/tevent/tevent_standard.c:110 glue_ptr = 0x5592b44aa700 glue = 0x5592b44aa700 ret = 21906 #29 0x00007fb26548aaf7 in _tevent_loop_once (ev=0x5592b44a6940, location=0x7fb2657c54e0 "../../source3/printing/queue_process.c:424") at ../../lib/tevent/tevent.c:772 ret = 21906 nesting_stack_ptr = 0x0 #30 0x00007fb26548ae1e in tevent_common_loop_wait (ev=0x5592b44a6940, location=0x7fb2657c54e0 "../../source3/printing/queue_process.c:424") at ../../lib/tevent/tevent.c:895 ret = 32690 #31 0x00007fb26549319c in std_event_loop_wait (ev=0x5592b44a6940, location=0x7fb2657c54e0 "../../source3/printing/queue_process.c:424") at ../../lib/tevent/tevent_standard.c:141 glue_ptr = 0x5592b44aa700 glue = 0x5592b44aa700 ret = 32690 #32 0x00007fb26548aec1 in _tevent_loop_wait (ev=0x5592b44a6940, location=0x7fb2657c54e0 "../../source3/printing/queue_process.c:424") at ../../lib/tevent/tevent.c:914 No locals. #33 0x00007fb265541028 in start_background_queue (ev=0x5592b44a6940, msg_ctx=0x5592b44a92c0, logfile=0x0) at ../../source3/printing/queue_process.c:424 fde = 0x5592b53bcee0 ret = 21906 status = { v = 0 } pid = 0 state = 0x5592b4bf3d50 pause_pipe = {[0] = -1, [1] = 48} __FUNCTION__ = "start_background_queue" #34 0x00007fb265541154 in printing_subsystem_init (ev_ctx=0x5592b44a6940, msg_ctx=0x5592b44a92c0, dce_ctx=0x5592b44ae3e0, start_daemons=true, background_queue=true) at ../../source3/printing/queue_process.c:457 pid = -1 #35 0x00005592b436b820 in main (argc=5, argv=0x7ffdf83ab2e8) at ../../source3/smbd/server.c:2131 bgq = true ok = false is_daemon = true interactive = false Fork = false no_process_group = false log_stdout = true ports = 0x0 profile_level = 0x0 opt = -1 pc = 0x5592b4496df0 print_build_options = false main_server_id = { pid = 21931, task_id = 0, vnn = 4294967295, unique_id = 7715839874465799134 } OPT_DAEMON = OPT_DAEMON OPT_INTERACTIVE = OPT_INTERACTIVE OPT_FORK = OPT_FORK OPT_NO_PROCESS_GROUP = OPT_NO_PROCESS_GROUP OPT_LOG_STDOUT = OPT_LOG_STDOUT long_options = {[0] = { longName = 0x0, shortName = 0 '\000', argInfo = 4, arg = 0x7fb2650d9400 <poptHelpOptions>, val = 0, descrip = 0x5592b43732e1 "Help options:", argDescrip = 0x0 }, [1] = { longName = 0x5592b43732ef "daemon", shortName = 68 'D', argInfo = 0, arg = 0x0, val = 1000, descrip = 0x5592b43732f6 "Become a daemon (default)", argDescrip = 0x0 }, [2] = { longName = 0x5592b4373310 "interactive", shortName = 105 'i', argInfo = 0, arg = 0x0, val = 1001, descrip = 0x5592b4373320 "Run interactive (not a daemon) and log to stdout", argDescrip = 0x0 }, [3] = { longName = 0x5592b4373351 "foreground", shortName = 70 'F', argInfo = 0, arg = 0x0, val = 1002, descrip = 0x5592b4373360 "Run daemon in foreground (for daemontools, etc.)", argDescrip = 0x0 }, [4] = { longName = 0x5592b4373391 "no-process-group", shortName = 0 '\000', argInfo = 0, arg = 0x0, val = 1003, descrip = 0x5592b43733a8 "Don't create a new process group", argDescrip = 0x0 }, [5] = { longName = 0x5592b43733c9 "log-stdout", shortName = 83 'S', argInfo = 0, arg = 0x0, val = 1004, descrip = 0x5592b43733d4 "Log to stdout", argDescrip = 0x0 }, [6] = { longName = 0x5592b43733e2 "build-options", shortName = 98 'b', argInfo = 0, arg = 0x0, val = 98, descrip = 0x5592b43733f0 "Print build options", argDescrip = 0x0 }, [7] = { longName = 0x5592b4373404 "port", shortName = 112 'p', argInfo = 1, arg = 0x7ffdf83ab158, val = 0, descrip = 0x5592b4373409 "Listen on the specified ports", argDescrip = 0x0 }, [8] = { longName = 0x5592b4373427 "profiling-level", shortName = 80 'P', argInfo = 1, arg = 0x7ffdf83ab150, val = 0, descrip = 0x5592b4373437 "Set profiling level", argDescrip = 0x5592b437344b "PROFILE_LEVEL" }, [9] = { longName = 0x0, shortName = 0 '\000', argInfo = 4, arg = 0x7fb2654a8140 <popt_common_samba>, val = 0, descrip = 0x5592b4373459 "Common samba options:", argDescrip = 0x0 }, [10] = { longName = 0x0, shortName = 0 '\000', argInfo = 0, arg = 0x0, val = 0, descrip = 0x0, argDescrip = 0x0 }} parent = 0x5592b44addf0 frame = 0x5592b448d6b0 status = { v = 0 } ev_ctx = 0x5592b44a6940 msg_ctx = 0x5592b44a92c0 dce_ctx = 0x5592b44ae3e0 server_id = { pid = 21931, task_id = 0, vnn = 4294967295, unique_id = 5659117256920205400 } se = 0x5592b44c0f90 profiling_level = 0 np_dir = 0x5592b4f2bdc0 "/home/asn/workspace/projects/samba/st/fl2003dc/ncalrpc/np" lp_sub = 0x7fb265461a60 <s3_global_substitution> smbd_shim_fns = { send_stat_cache_delete_message = 0x7fb26563ba6e <smbd_send_stat_cache_delete_message>, change_to_root_user = 0x7fb265613e99 <smbd_change_to_root_user>, become_authenticated_pipe_user = 0x7fb265613f4b <smbd_become_authenticated_pipe_user>, unbecome_authenticated_pipe_user = 0x7fb265614067 <smbd_unbecome_authenticated_pipe_user>, contend_level2_oplocks_begin = 0x7fb2656bb8df <smbd_contend_level2_oplocks_begin>, contend_level2_oplocks_end = 0x7fb2656bb902 <smbd_contend_level2_oplocks_end>, become_root = 0x7fb2656142cc <smbd_become_root>, unbecome_root = 0x7fb2656142f5 <smbd_unbecome_root>, exit_server = 0x7fb2656add55 <smbd_exit_server>, exit_server_cleanly = 0x7fb2656add72 <smbd_exit_server_cleanly> } __FUNCTION__ = "main" __func__ = "main" Signed-off-by: Andreas Schneider <asn@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org> Autobuild-User(master): Jeremy Allison <jra@samba.org> Autobuild-Date(master): Fri Mar 19 18:56:33 UTC 2021 on sn-devel-184
2021-03-16printing: Introduce printer_list_printername_exists()Volker Lendecke1-1/+1
Replace pcap_printername_ok(). Slightly different semantics: If the printer list db has a corrupted record, this is not detected. Why this patch? pcap_printername_ok() is a simple wrapper around the tdb accessing function, and this reduces a dependency on pcap.c Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2021-03-16printing: Remove simple wrapper function pcap_printer_read_fn()Volker Lendecke1-3/+16
There's only one caller that was trivial to convert Signed-off-by: Volker Lendecke <vl@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2019-11-27smbdotconf: mark "auto services" with substitution="1"Ralph Boehme1-1/+3
Signed-off-by: Ralph Boehme <slow@samba.org> Reviewed-by: Stefan Metzmacher <metze@samba.org>
2019-02-01printing: drop pcap_cache_loaded() guard around load_printers()David Disseldorp1-1/+3
Add the pcap_cache_loaded() check to load_printers() and return early if it returns false. This simplifies callers in preparation for checking lp_load_printers() in the printcap cache update code-path. Bug: https://bugzilla.samba.org/show_bug.cgi?id=13766 Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Noel Power <npower@samba.org>
2018-06-14printing: remove unused arguments from load_printers()Stefan Metzmacher1-2/+1
Signed-off-by: Stefan Metzmacher <metze@samba.org> Reviewed-by: Jeremy Allison <jra@samba.org>
2014-08-08printing: return last change time with pcap_cache_loaded()David Disseldorp1-1/+1
Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652 Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
2014-08-08printing: traverse_read the printer list for share updatesDavid Disseldorp1-1/+1
The printcap update procedure involves the background printer process obtaining the printcap information from the printing backend, writing this to printer_list.tdb, and then notifying all smbd processes of the new list. The processes then all attempt to simultaneously traverse printer_list.tdb, in order to update their local share lists. With a large number of printers, and a large number of per-client smbd processes, this traversal results in significant lock contention, mostly due to the fact that the traversal is unnecessarily done with an exclusive (write) lock on the printer_list.tdb database. This commit changes the share update code path to perform a read-only traversal. Bug: https://bugzilla.samba.org/show_bug.cgi?id=10652 Reported-by: Alex K <korobkin+samba@gmail.com> Reported-by: Franz Pförtsch <franz.pfoertsch@brose.com> Signed-off-by: David Disseldorp <ddiss@samba.org> Reviewed-by: Andreas Schneider <asn@samba.org>
2012-07-18loadparm: make the source3/ lp_ functions take an explicit TALLOC_CTX *.Rusty Russell1-1/+1
They use talloc_tos() internally: hoist that up to the callers, some of whom don't want to us talloc_tos(). A simple patch, but hits a lot of files. Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
2012-05-31Forward port of Richard Sharpe's <realrichardsharpe@gmail.com> fix for bug ↵Jeremy Allison1-1/+6
#8970 - Possible memory leaks in the samba master process.
2011-06-29param: Merge param headers into lib/param/loadparm.hAndrew Bartlett1-0/+1
This defines a common table format, so we can in future define a common table. Andrew Bartlett
2011-02-22s3-printing: only include printing where really needed.Günther Deschner1-1/+1
Guenther
2011-01-07s3-printing: reload shares after pcap cache fillDavid Disseldorp1-4/+2
Since commit eada8f8a, updates to the cups pcap cache are performed asynchronously - cups_cache_reload() forks a child process to request cups printer information and notify the parent smbd on completion. Currently printer shares are reloaded immediately following the call to cups_cache_reload(), this occurs prior to smbd receiving new cups pcap information from the child process. Such behaviour can result in stale print shares as outlined in bug 7836. This fix ensures print shares are only reloaded after new pcap data has been received. Pair-Programmed-With: Lars Müller <lars@samba.org>
2010-08-16s3-printing: fix BUG 7280 - auto printers not loading with registryJim McDonough1-0/+4
config
2010-08-08s3: Remove the smbd_messaging_context from load_printersVolker Lendecke1-3/+3
2010-08-08s3: Remove the smbd_messaging_context from pcap_cache_reloadVolker Lendecke1-2/+4
2010-05-14s3-printing: explicitly include "printing/pcap.h" as there is ↵Günther Deschner1-1/+1
/usr/include/pcap.h. Thanks metze for pointing this out. Simo, please check. Guenther
2010-05-14Make pcap headers privateSimo Sorce1-0/+1
Signed-off-by: Günther Deschner <gd@samba.org>
2008-10-10If you have a large number of cups printers, then scanning for print info ↵Jeremy Allison1-1/+1
can cause a client to timeout (it takes longer than 30 seconds to enumerate them). Make scanning for printers async with a callback from the main loop. This fixes a bug that was irritating *me* :-). Jeremy.
2008-01-23strtok -> strtok_rVolker Lendecke1-1/+3
(This used to be commit fd34ce437057bb34cdc37f4b066e424000d36789)
2007-10-10r23784: use the GPLv3 boilerplate as recommended by the FSF and the license textAndrew Tridgell1-2/+1
(This used to be commit b0132e94fc5fef936aa766fb99a306b3628e9f07)
2007-10-10r23779: Change from v2 or later to v3 or later.Jeremy Allison1-1/+1
Jeremy. (This used to be commit 407e6e695b8366369b7c76af1ff76869b45347b3)
2007-10-10r4539: patch from Rob -- adding real printcap name cache function to speed ↵Gerald Carter1-29/+19
up printcap reloads (This used to be commit 1cad5250932b963c2eb9b775221b13db386d601b)
2007-10-10r4088: Get medieval on our ass about malloc.... :-). Take control of all our ↵Jeremy Allison1-1/+1
allocation functions so we can funnel through some well known functions. Should help greatly with malloc checking. HEAD patch to follow. Jeremy. (This used to be commit 620f2e608f70ba92f032720c031283d295c5c06a)
2002-08-17Sync 3.0 branch with HEADJelmer Vernooij1-4/+4
(This used to be commit eac75549c398f208484ae735d5a5931fed6d0e99)
2002-01-30Removed version number from file header.Tim Potter1-2/+1
Changed "SMB/Netbios" to "SMB/CIFS" in file header. (This used to be commit 6a58c9bd06d0d7502a24bf5ce5a2faf0a146edfa)
2001-09-17move to SAFE_FREE()Simo Sorce1-2/+2
(This used to be commit 09bf4425492fd96672ddd7a31d88854adcf7f0fe)
2001-03-11Merge of new 2.2 code into HEAD (Gerald I hate you :-) :-). Allows new SAMRJeremy Allison1-4/+4
RPC code to merge with new passdb code. Currently rpcclient doesn't compile. I'm working on it... Jeremy. (This used to be commit 0be41d5158ea4e645e93e8cd30617c038416e549)
2001-01-17Changes from APPLIANCE_HEAD:David O'Neill1-2/+7
source/rpc_server/srv_spoolss_nt.c - Unrolled construct_notify_jobs_info() loop to only fetch printer info_2 structure once rather than num_print_jobs times. - convert command to unix codepage. - remove lp_remove_service() call as it prevents lp_killservice() from working. - Modified some DEBUG and DEBUGADD statements. source/param/loadparm.c source/param/params.c - change printer, preload, auto services to FLAG_DOS_STRING, reverted earlier changes to szPrintername et al, add comments. source/printing/load.c - fix bug with lp_auto_services() and strtok() source/printing/nt_printing.c source/printing/printing.c - remove redundant test that used SERVICE(snum) source/printing/pcap.c - add unix_to_dos() calls, add notes wrt FIXMEs for xxx_printer_fn() functions. source/web/swat.c - added FIXME comment. source/smbd/service.c - added comment re: dos codepage (This used to be commit 7b774b72c2857af9519012106714a9e2cb099da3)
2000-07-31Added John Reilly's enumports/addprinter/delprinter scripting code plus theJeremy Allison1-1/+1
fix for the Win9x printer drivers. Changed command names to add "command" string on the end for some consistancy with the other scripting commands. Added '%P' option to tdbpack/unpack to store long comment string. Made port name be "Samba Printer Port" if no enum port script given. Fixed prs_uint32_pre code to cope with null args. Jeremy. (This used to be commit 902ada63799cf27924c72e24e7593a8c9fb5eba9)
2000-04-16the bulk of the changes. Also split the loadparm related code into ↵Andrew Tridgell1-0/+69
printing/load.c so swat can get it without linking to the backend code ------------ The following series of commits are for the new tdb based printing backend. This completely replaces our old printing backend. Major changes include: - all print ops are now done in printing/*.c rather than scattered all over the place - system job ids are decoupled from SMB job ids - the lpq parsers don't need to be nearly so smart, they only need to parse the filename, the status and system job id - we can store lots more info about a job, including the full job name - the queue cache control is much better I also added a new utility routine file_lines_load() that loads a text file and parses it into lines. This is used in out lpq parsing and I also want to use it to replace all of our fgets() based code in other places. (This used to be commit a902caf8d78ae4cb11ea3776d10273cb37d5fcd0)