summaryrefslogtreecommitdiffstats
path: root/source
Commit message (Collapse)AuthorAgeFilesLines
* Fixed up the user/group contexts when using authenticated pipes.Jeremy Allison2000-08-046-7/+25
| | | | | | | | Added a become_root()/unbecome_root() (push/pop security context) around the initgroups() call to ensure it would succeed. Hmmm - I wonder if this call being done as non-root might explain any "group access" bugs we've had in the past.... Jeremy.
* Added an NT_USER_TOKEN structure that is copied/passed around associatedJeremy Allison2000-08-039-103/+246
| | | | | | | with the current user. This will allow se_access_check() to quickly do a SD check without having to translate uid/gid's to SIDs. Still needs work on pipe calls. Jeremy.
* Much though I hate to admit it - JF was completely correct. I cannotJeremy Allison2000-08-021-2/+2
| | | | | | | now reproduce the bug I had with adding a printer driver, and PrintMig.exe crashes if I use my SD code but works with his. I stand completely corrected :-). - So I'm reverting to his code as it works :-). Jeremy.
* Started to canonicalize our handling of uid -> sid code in order toJeremy Allison2000-08-0213-218/+251
| | | | | | | | | | | | | | | | | | | | | | | | | get ready and fix se_access_check(). Added cannonical lookup_name(), lookup_sid(), uid_to_sid(), gid_to_sid() functions that look via winbind first the fall back on local lookup. All Samba should use these rather than trying to call winbindd code directly. Added NT_USER_TOKEN struct in user_struct, contains list of NT sids associated with this user. se_access_check() should use this (cached) value rather than attempting to do the same thing itself when given a uid/gid pair. More work needs to be done to preserve these things accross security context changes (especially with the tricky pipe problem) but I'm beginning to see how this will be done..... probably by registering a new vuid for an authenticated RPC pipe and not treating the pipe calls specially. More thoughts needed - but we're almost there... Jeremy.
* Tidyup removing many of the 0xC0000000 | NT_STATUS_XXX stuff (only need ↵Jeremy Allison2000-08-0121-139/+97
| | | | | | | | NT_STATUS_XXX). Removed IS_BITS_xxx macros as they were just reproducing "C" syntax in a more obscure way. Jeremy.
* Added print job substitutions for %{printername}, %{sharename} and %{portname}Jeremy Allison2000-08-016-37/+93
| | | | | | from the NT printer tdb. Also added checks for time restrictions before allowing a job to print. Jeremy.
* Save & restore the port name correctly.Jeremy Allison2000-07-311-16/+1
| | | | Jeremy.
* Added John Reilly's enumports/addprinter/delprinter scripting code plus theJeremy Allison2000-07-3110-151/+359
| | | | | | | | | | 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.
* make protoGerald Carter2000-07-311-10/+13
|
* More work on rpcclient...Gerald Carter2000-07-311-7/+27
| | | | | | | | | | | | * Fixed to work with Jeremy's recent changes re: dunamic memory allocation when unmarshalling unistr[2] * included EnumPorts level 1 * more work on AddPrinterEx --jerry
* More work on rpcclient...Gerald Carter2000-07-316-116/+373
| | | | | | | | | | | | * Fixed to work with Jeremy's recent changes re: dunamic memory allocation when unmarshalling unistr[2] * included EnumPorts level 1 * more work on AddPrinterEx --jerry
* Fixed read overrun in init_string2()Tim Potter2000-07-281-2/+4
|
* remove warningsJean-François Micouleau2000-07-271-2/+2
| | | | J.F.
* fix the devmode.orientation being set to 0.Jean-François Micouleau2000-07-271-2/+8
| | | | | | that bug was *subtle* :-( J.F.
* Ok - this is a *BIG* change - but it fixes the problems with static stringsJeremy Allison2000-07-2726-412/+513
| | | | | | | | | | | | | | | | | | | | | | | | | | | | in the RPC code. This change was prompted by trying to save a long (>256) character comment in the printer properties page. The new system associates a TALLOC_CTX with the pipe struct, and frees the pool on return of a complete PDU. A global TALLOC_CTX is used for the odd buffer allocated in the BUFFERxx code, and is freed in the main loop. This code works with insure, and seems to be free of memory leaks and crashes (so far) but there are probably the occasional problem with code that uses UNISTRxx structs on the stack and expects them to contain storage without doing a init_unistrXX(). This means that rpcclient will probably be horribly broken. A TALLOC_CTX also needed associating with the struct cli_state also, to make the prs_xx code there work. The main interface change is the addition of a TALLOC_CTX to the prs_init calls - used for dynamic allocation in the prs_XXX calls. Now this is in place it should make dynamic allocation of all RPC memory on unmarshall *much* easier to fix. Jeremy.
* if no comment in TDB, use comment from print share.Jean-François Micouleau2000-07-261-4/+15
| | | | J.F.
* Found out that we are crashing spoolss in enumprinterdata.Jean-François Micouleau2000-07-264-14/+32
| | | | | | | | | So fixed enumprinterdatas in rpcclient to debug the server code, and found that the parsing code was missing 2 prs_align(). We are not crashing NT anymore. :-) J.F.
* Fixed memory leaks in root and non-root password changing.Tim Potter2000-07-261-7/+20
|
* Fixed memory leaks in _spoolss_addprinterdriver()Tim Potter2000-07-261-5/+9
|
* Fixed memory leak in modify_trust_password()Tim Potter2000-07-261-0/+4
|
* Fixed up error checking and move printer file code. Fixed a memory leak.Jeremy Allison2000-07-253-12/+38
| | | | Jeremy.
* make protoGerald Carter2000-07-251-0/+5
| | | | --jerry
* some initial code for AddPrinterEx() project. Most is ifdef'd outGerald Carter2000-07-253-3/+149
| | | | | | | 'cause it's not all written. -jerry
* if the sids are not the same pointer and either of the sids are NULLAndrew Tridgell2000-07-251-0/+3
| | | | then the two sids are not equal
* Added some error checking and returns to the new 'move' code.Jeremy Allison2000-07-254-16/+53
| | | | Jeremy.
* A rather big change set ! (listed in no particular order)Jean-François Micouleau2000-07-259-306/+494
| | | | | | | | | | | | | | | | | | | | | - changed the default forms flag to 2 - all short architecture name are uppercased - get_short_archi() is now case unsensitive - the drivers TDB is indexed by archi/version/name - implemented code to move drivers from the upload area to the download area. Someone else need to look at that code. - don't return anymore a default driver if it doesn't exist in the TDB. Instead return an error. - cleaned prs_unistr. - #ifdef out jeremy's new SD parsing in printer_info_2 - removed the unused MANGLE_CODE - #ifdef out the security checking in update_printer() as it doesn't work for me. Zap your ntdrivers.tdb, it won't work anymore. J.F.
* Fix for mounting a printer as a share. Not that there's anythingTim Potter2000-07-251-0/+5
| | | | | | | | | | specifically wrong with this, but Samba is fooled by the client into thinking the printer is a file share. Files copied to the share gather dust in the spool directory and aren't printed. This patch has the effect of not allowing printers to be mounted as file shares. Not sure whether this is the correct solution or not. {Jeremy,JF,Tridge} please check!
* Tidy up code to add printer. Always index in tdb by sharename. ThisJeremy Allison2000-07-251-5/+33
| | | | | is beginning to come together... Jeremy.
* Run main server loop with sys_select() instead of sys_select_intr(). TheTim Potter2000-07-241-2/+13
| | | | main daemon was not catching sighup and reloading the service file.
* Fixed open handle code in printers - 3 functions were always being doneJeremy Allison2000-07-225-155/+171
| | | | | | in order - moved them into open_printer_hnd(). Added saving of comment field. Jeremy.
* make protoGerald Carter2000-07-211-0/+13
|
* * Added EnumPorts()Gerald Carter2000-07-212-3/+137
| | | | | | | | * Fixed an off-by-one bug noticed by JF in GetPrinterDriverDirectory() jerry
* Added EnumPorts() and fixed up some problemsGerald Carter2000-07-211-48/+27
| | | | | | | | | with the other spoolss client calls. Also cleaned up output for 'help' command. jerry
* Added EnumPorts() and fixed up some problemsGerald Carter2000-07-213-0/+96
| | | | | | | | | | with the other spoolss client calls. Also cleaned up output for 'help' command. jerry
* Added functions for enumerating ports on remote print server.Gerald Carter2000-07-211-6/+48
| | | | | | | | | | Tim, You should also look at new_smb_io_printer_info_2() and see if the change from NULL to &i regarding the secdesc is ok. jerry
* make protoGerald Carter2000-07-201-0/+10
|
* readded util_list.c (just to the RPCCLIENT_OBJ). I need to splitGerald Carter2000-07-201-1/+1
| | | | | | | | the file up i think. Later. --jerry
* Fixed unitilized secdesc pointer which was causing spoolgetprinterGerald Carter2000-07-202-2/+7
| | | | | | | | | rpcclient command to fail on shared printers. jerry
* Modified the patch to look in the tdb *first* - thus allowing legacy textJeremy Allison2000-07-191-75/+91
| | | | | | filed to be ignored when an upload is done. Modified to code to goto err on problems, simplifies it. Jeremy.
* Code from John Reilly <jreilly@hp.com> to add tdb lookups into the Win95Jeremy Allison2000-07-193-7/+100
| | | | | printer driver download if looking for the default driver files fail. Jeremy.
* Instead of handing back a string (which might be a DNS name or an IPChristopher R. Hertel2000-07-195-48/+99
| | | | | | | | | | | | | | | | | | string), the wins_srv module now hands back a struct in_addr when it's called. It caches the IP address once it has been looked up. The IP is cleared (and must be looked up again) if the 'wins server' parameter is reread, or if the node is marked 'dead'. A dead node will not be re-tried for 10 minutes (per a #define in wins_srv.c). As it was, the code was reading the WINS server name or IP directly from lp_wins_server. That's okay, except that if the value was expressed as a name, then a DNS lookup would be done every time the client wanted to talk to the server. I still need to work out the implications of failover regarding the 'unicast subnet' list. Chris -)-----
* First cut toward adding WINS server failover.Christopher R. Hertel2000-07-197-17/+250
| | | | | | | | | | | | | | | | | | | | | | | | | | *Note: failover doesn't actually work yet!* It's just that the code I'm adding provides all of the pieces necessary. I do have one big question. Something that I'll have to ask Jeremy, I'm thinkin'. In nmbd/nmbd_subnetdb.c the IP of the WINS server is used to set up the Unicast subnet. ...so what happens if the WINS server changes? My guess is either: a) nothing. b) I'd have to change the unicast subnet entry whenever the WINS server changes. Urq. BTW, the lp_wins_server() function no longer returns the WINS server name or IP. It returns the list of WINS servers entered in smb.conf. To get the currently 'live' WINS server, use the wins_srv() function. Fun, eh? Chris -)-----
* Removed the sanity check on the WINS SERVER parameter because it simplyChristopher R. Hertel2000-07-181-17/+0
| | | | | | checked to see that only one server was listed. As I am working on an enhancement that allows multiple servers to be listed...this was a bit contrary. ;)
* rpc_parse/parse_prs.c: Removed extraneous ()'s.Jeremy Allison2000-07-183-43/+45
| | | | | | | | rpc_parse/parse_spoolss.c: Fixed the security descriptor marshalling in a INFO_2 struct. for some reason SD's should be done inline after the info2, not as the last buffer marshall. rpc_server/srv_spoolss_nt.c: Removed extraneous ()'s. Jeremy.
* remove util_list from LIB_OBJS since it broke smbd buildGerald Carter2000-07-181-1/+1
| | | | | | | | | | | | (undefined references in link). This is a quick fix. I'll resolve things later. Sorry everyone. jerry
* Added lib/util_list.[c|o] to Makefile.inGerald Carter2000-07-181-1/+1
| | | | --jerry
* Fixed some more client SPOOLSS functions. The followingGerald Carter2000-07-188-361/+445
| | | | | | | | | | | | | | | | | | | | | | | | | | | functions work now: - spoolenum - spoolopen - spoolgetprinter - spoolgetprinterdriver Items todo: - track down memory bug with spoolenumdata - fix spoolgetprinterdriverdir - fix spoolgetdata - fix display_job_info_ctr in spooljobs All part of the ongoing rpcclient work. Also included a new generic list ADT. Cleaner and simplier than the stuff in util_array.c i think (but then that's why I wrote it). --jerry
* fixed a bug (my own) in create_ntc_from_cli_state()Gerald Carter2000-07-181-2/+2
| | | | --jerry
* I really didn't like the way generic arrays (lists) wereGerald Carter2000-07-181-0/+321
| | | | | | | | | | | | | implemented in util_array.c so I wrote a smaller (and simplier package). I would like to replace the use of util_array.c functions in the rest of the source tree if no one objects. This will be an interface change, but not really a difference in the functionality provided. --jerry
* grab functions that return RPC_HND_NODE (declaredGerald Carter2000-07-181-1/+1
| | | | | | | | in include/util_list.h) -- jerry