1
0
mirror of https://github.com/samba-team/samba.git synced 2025-11-19 04:23:48 +03:00
Commit Graph

253 Commits

Author SHA1 Message Date
Andrew Tridgell
6a47cd65a8 r11713: separate out the setting of the fde in the packet context from the
enabling of packet serialisation
2007-10-10 13:46:17 -05:00
Stefan Metzmacher
43aa5cffd3 r11669: - make sure req is initialized
- call async callback on error

metze
2007-10-10 13:46:10 -05:00
Andrew Tridgell
d19235ede5 r11660: - the libcli/raw/ lib no longer uses the SMBCLI_REQUEST_SEND state, or
the associated send queue

- fixed negnowait to not watch for the SMBCLI_REQUEST_SEND state
2007-10-10 13:46:08 -05:00
Stefan Metzmacher
e6eb0fd2c2 r11649: - add support for ntcancel replies (they only happen in error cases,
e.g when you supply an invalid TID or VUID)
- as we don't yet understand how to check the smb_signing of this
  replies, we just ignore the whole packet

abartlet,jra,tridge:
can someone try to find out how to create and verify
the signatures for this replies.
what I noticed is that still use the increment by one for the request,
and later requests are still generated fine, only the generating and verifying
of the ntcancel replies make problems

metze
2007-10-10 13:46:08 -05:00
Stefan Metzmacher
356e7d037c r11647: add smbcli_ prefix
metze
2007-10-10 13:46:07 -05:00
Stefan Metzmacher
16f2d92618 r11644: free the buffer when it's not used
metze
2007-10-10 13:46:07 -05:00
Andrew Tridgell
ba7864b07e r11636: a bit neater solution to the nt_cancel problem 2007-10-10 13:46:03 -05:00
Stefan Metzmacher
97cd824e44 r11635: fix a handling of packet_send in the smb client lib
this was cause of the PANIC on the build farm on metze01

as we use req->out.buffer from the old request in the smb_raw_ntcancel()
and send a 0 TID, that causes our server code to crash
(a fix for the server code will follow)

metze
2007-10-10 13:46:03 -05:00
Andrew Tridgell
fa904afed9 r11632: removed 2 unused functions 2007-10-10 13:46:02 -05:00
Tim Potter
03c7da27a0 r11626: Fix unhandled enum in case statement warnings by noting appropriately
that some values aren't handled.  The remaining warnings I think are
actual bugs or required functionality that is missing (mostly lack of
server side Unix extensions).
2007-10-10 13:46:01 -05:00
Andrew Tridgell
d2b568a111 r11609: fixed handling of one way requests with new send code 2007-10-10 13:45:58 -05:00
Andrew Tridgell
0bcea45b15 r11606: use the generic packet send code in libcli/raw/ 2007-10-10 13:45:57 -05:00
Andrew Tridgell
f8d43f1f67 r11596: switched the libcli/raw/ code over to using the lib/stream/ generic
packet parsing code. This simplifies the logic in the raw client
library a fair bit
2007-10-10 13:45:56 -05:00
Andrew Bartlett
6535959fd7 r11466: Clear up some memory leaks in smbclient.
Andrew Bartlett
2007-10-10 13:45:40 -05:00
Volker Lendecke
5718df44d9 r11369: Implement socket_connect_multi: Connect to multiple ipv4 tcp ports in
sequence, with a 2-millisecond timeout between firing the syn packets. Build
smbcli_sock_connect_send upon that.

Volker
2007-10-10 13:45:27 -05:00
Volker Lendecke
deb127e04e r10878: Reply to some comments by tridge and metze:
* rename the composite helper functions from comp_* to composite_*

* Move the lsa initialization to wb_connect_lsa.c

* Equip smb_composite_connect with a fallback_to_anonymous

The latter two simplify wb_init_domain.c quite a bit.

Volker
2007-10-10 13:39:39 -05:00
Andrew Tridgell
b714ab64fd r10754: fixed a valgrind error for unmatched SMB replies 2007-10-10 13:39:26 -05:00
Stefan Metzmacher
e06ca726f3 r10542: if the transport is dead we need to return
tridge: I think this is correct, comments?

metze
2007-10-10 13:39:03 -05:00
Stefan Metzmacher
4527815a0a r10504: - seperate implementation specific stuff, from the generic composite
stuff.
- don't use SMBCLI_REQUEST_* state's in the genreic composite stuff
- move monitor_fn to libnet.

NOTE: I have maybe found some bugs, in code that is dirrectly in DONE or ERROR
      state in the _send() function. I haven't fixed this bugs in this
      commit! We may need some composite_trigger_*() functions or so.
      And maybe some other generic helper functions...

metze
2007-10-10 13:38:57 -05:00
Andrew Tridgell
b3d491b210 r9702: r9680@blu: tridge | 2005-08-27 18:45:08 +1000
- fixed ncacn_ip_tcp to use the generic async name resolution methods,
   so NBT names now work (as requested several times by abartlet!)

 - changed resolve_name() to take an event_context, so it doesn't cause
   the whole process to block

 - cleaned up the talloc_find_parent_bytype() calls to go via a cleaner
   event_context_find() call
2007-10-10 13:34:51 -05:00
Alexander Bokovoy
4f9f4312e9 r9479: More fixes for explicit ignoring of returned result to fix Coverity warnings 2007-10-10 13:34:20 -05:00
Alexander Bokovoy
d1b7a4a24c r9476: Make intention to ignore result of receiving excplicit. Fixes warning found by Coverity 2007-10-10 13:34:20 -05:00
Tim Potter
9e5ce3a288 r9291: Add a stub for smb_raw_lpq() which is in smb_interfaces.h but doesn't
seem to be used anywhere yet.
2007-10-10 13:33:21 -05:00
Tim Potter
5e6d330e73 r9223: Rename smb_raw_session_setup() to smb_raw_sesssetup(). 2007-10-10 13:31:33 -05:00
Tim Potter
26b191b3c9 r9222: Rename smb_tree_connect() to smb_raw_tcon() to match other raw function
names.
2007-10-10 13:31:33 -05:00
Jelmer Vernooij
fac77f5fa2 r8811: Fix the build.. 2007-10-10 13:30:07 -05:00
Andrew Tridgell
a58ea6b385 r8520: fixed a pile of warnings from the build farm gcc -Wall output on
S390. This is an attempt to avoid the panic we're seeing in the
automatic builds.

The main fixes are:

 - assumptions that sizeof(size_t) == sizeof(int), mostly in printf formats

 - use of NULL format statements to perform dn searches.

 - assumption that sizeof() returns an int
2007-10-10 13:29:34 -05:00
Andrew Tridgell
4e66f682e4 r8407: fixed a bug left over from our old socket code.
Thanks to lha for giving me a login on a netbsd machine to see this
2007-10-10 13:22:58 -05:00
Stefan Metzmacher
f308b72b19 r8134: remove unused var
metze
2007-10-10 13:19:12 -05:00
Andrew Tridgell
f21274e07b r8111: fixed the client library to work against w2k3 with nt status codes
disabled. The main change is to turn off spnego, which cannot work at
all without nt status codes (w2k3 gives a ERRHRD:ERRgeneral error when
you try)

I also modified NT_STATUS_EQUAL() to allow for nt->dos code equality,
but only when nt status codes are disabled in smb.conf. That keeps all
the existing torture code working, while still allowing us to
correctly catch the cases where forced dos error codes are needed

The dos->ntstatus mapping table has been removed completely, as it
doesn't really make sense, is impossible to get right, and with the
new dos status handling isn't needed. When matching a nt status code
to a dos status code it makes far more sense to map from the nt code
to the dos code and compare, rather than the reverse, as the nt->dos
mapping is what windows has to do internally, so there really is a
valid mapping table.
2007-10-10 13:19:09 -05:00
Andrew Tridgell
ff5549e87f r8104: - added support for our client library to not negotiate nt status codes, controlled
with 'nt status support' option.

- make nt_errstr() display nice strings for dos status codes encoded
  using NT_STATUS_DOS()

- no longer map between dos and nt status codes in the client library,
  instead return using NT_STATUS_DOS()

- fixed the RAW-CONTEXT test to look for
  NT_STATUS_DOS(ERRSRV, ERRbaduid) instead of NT_STATUS_INVALID_HANDLE
2007-10-10 13:19:08 -05:00
Andrew Tridgell
b4f2d17ace r8003: ensure that we don't try to send a trans request with more than 64k data or params 2007-10-10 13:18:57 -05:00
Andrew Bartlett
817160ec1a r7970: This SMB signing code (merged from 3.0) turned out to be bogus.
Andrew Bartlett
2007-10-10 13:18:55 -05:00
Andrew Tridgell
0163d7fe99 r7705: prevent SIGPIPE. this is what causes BASE-NEGNOWAIT to sometimes fail 2007-10-10 13:18:24 -05:00
Andrew Tridgell
72c6988767 r7654: - add a timeout to all smb requests (default 60 seconds)
- add a request destructor, to make it safe to destroy a pending
   request with talloc_free()
2007-10-10 13:18:17 -05:00
Andrew Tridgell
3a3025485b r7633: this patch started as an attempt to make the dcerpc code use a given
event_context for the socket_connect() call, so that when things that
use dcerpc are running alongside anything else it doesn't block the
whole process during a connect.

Then of course I needed to change any code that created a dcerpc
connection (such as the auth code) to also take an event context, and
anything that called that and so on .... thus the size of the patch.

There were 3 places where I punted:

  - abartlet wanted me to add a gensec_set_event_context() call
    instead of adding it to the gensec init calls. Andrew, my
    apologies for not doing this. I didn't do it as adding a new
    parameter allowed me to catch all the callers with the
    compiler. Now that its done, we could go back and use
    gensec_set_event_context()

  - the ejs code calls auth initialisation, which means it should pass
    in the event context from the web server. I punted on that. Needs fixing.

  - I used a NULL event context in dcom_get_pipe(). This is equivalent
    to what we did already, but should be fixed to use a callers event
    context. Jelmer, can you think of a clean way to do that?

I also cleaned up a couple of things:

 - libnet_context_destroy() makes no sense. I removed it.

 - removed some unused vars in various places
2007-10-10 13:18:15 -05:00
Tim Potter
64fb327ccf r7569: Fix typo in comments. 2007-10-10 13:18:10 -05:00
Andrew Tridgell
2acc069185 r6342: fixed a bad union assumption that caused ACLs to fail on 64 bit machines
Thanks to lars and agruen for finding this
2007-10-10 13:11:33 -05:00
Andrew Bartlett
2301a4b38a r6028: A MAJOR update to intergrate the new credentails system fully with
GENSEC, and to pull SCHANNEL into GENSEC, by making it less 'special'.

GENSEC now no longer has it's own handling of 'set username' etc,
instead it uses cli_credentials calls.

In order to link the credentails code right though Samba, a lot of
interfaces have changed to remove 'username, domain, password'
arguments, and these have been replaced with a single 'struct
cli_credentials'.

In the session setup code, a new parameter 'workgroup' contains the
client/server current workgroup, which seems unrelated to the
authentication exchange (it was being filled in from the auth info).

This allows in particular kerberos to only call back for passwords
when it actually needs to perform the kinit.

The kerberos code has been modified not to use the SPNEGO provided
'principal name' (in the mechListMIC), but to instead use the name the
host was connected to as.  This better matches Microsoft behaviour,
is more secure and allows better use of standard kerberos functions.

To achieve this, I made changes to our socket code so that the
hostname (before name resolution) is now recorded on the socket.

In schannel, most of the code from librpc/rpc/dcerpc_schannel.c is now
in libcli/auth/schannel.c, and it looks much more like a standard
GENSEC module.  The actual sign/seal code moved to
libcli/auth/schannel_sign.c in a previous commit.

The schannel credentails structure is now merged with the rest of the
credentails, as many of the values (username, workstation, domain)
where already present there.  This makes handling this in a generic
manner much easier, as there is no longer a custom entry-point.

The auth_domain module continues to be developed, but is now just as
functional as auth_winbind.  The changes here are consequential to the
schannel changes.

The only removed function at this point is the RPC-LOGIN test
(simulating the load of a WinXP login), which needs much more work to
clean it up (it contains copies of too much code from all over the
torture suite, and I havn't been able to penetrate its 'structure').

Andrew Bartlett
2007-10-10 13:11:15 -05:00
Andrew Bartlett
0453f9d05d r5941: Commit this patch much earlier than I would normally prefer, but metze needs a working tree...
The main volume of this patch was what I started working on today:
 - Cleans up memory handling around DCE/RPC pipes, to have a parent talloc context.
 - Uses sepereate inner loops for some of the DCE/RPC tests

The other and more important part of this patch fixes issues
surrounding the new credentials framwork:

This makes the struct cli_credentials always a talloc() structure,
rather than on the stack.  Parts of the cli_credentials code already
assumed this.

There were other issues, particularly in the DCERPC over SMB handling,
as well as little things that had to be tidied up before test_w2k3.sh
would start to pass.

Andrew Bartlett
2007-10-10 13:11:11 -05:00
Jelmer Vernooij
4ad481cfe5 r5929: Use cli_credentials for the SMB functions as well.
Fix a couple of bugs in the new cli_credentials code
2007-10-10 13:11:09 -05:00
Andrew Tridgell
c5aef260c4 r5371: on port 139 the called name needs to be in uppercase 2007-10-10 13:09:48 -05:00
Andrew Tridgell
80ffcc650c r5322: removed a whole bunch of #include lines that minimal_includes.pl
thinks are not needed. Now to see how this fares on the build farm :)
2007-10-10 13:09:41 -05:00
Andrew Tridgell
b902ea546d r5304: removed lib/socket/socket.h from includes.h 2007-10-10 13:09:39 -05:00
Andrew Tridgell
9db6c79e90 r5298: - got rid of pstring.h from includes.h. This at least makes it a bit
less likely that anyone will use pstring for new code

 - got rid of winbind_client.h from includes.h. This one triggered a
   huge change, as winbind_client.h was including system/filesys.h and
   defining the old uint32 and uint16 types, as well as its own
   pstring and fstring.
2007-10-10 13:09:38 -05:00
Andrew Tridgell
7f54c8a339 r5197: moved events code to lib/events/ (suggestion from metze) 2007-10-10 13:09:30 -05:00
Andrew Tridgell
236403cc4d r5195: most events don't need the time of the event, so save a gettimeofday() call
and just use timeval_current() when its actually needed
2007-10-10 13:09:30 -05:00
Andrew Tridgell
d7b4b6de51 r5185: make all the events data structures private to events.c. This will
make it possible to add optimisations to the events code such as
keeping the next timed event in a sorted list, and using epoll for
file descriptor events.

I also removed the loop events code, as it wasn't being used anywhere,
and changed timed events to always be one-shot (as adding a new timed
event in the event handler is so easy to do if needed)
2007-10-10 13:09:29 -05:00
Andrew Tridgell
cf11d05e35 r5126: the composite code is no longer client specific or smb specific, so
rename the core structure to composite_context and the wait routine to
composite_wait() (suggestion from metze)
2007-10-10 13:09:25 -05:00
Andrew Tridgell
ec32b22ed5 r5037: got rid of all of the TALLOC_DEPRECATED stuff. My apologies for the
large commit. I thought this was worthwhile to get done for
consistency.
2007-10-10 13:09:15 -05:00