diff options
author | Stefan Metzmacher <metze@samba.org> | 2009-07-13 12:25:40 +0200 |
---|---|---|
committer | Stefan Metzmacher <metze@samba.org> | 2009-07-15 10:57:32 +0200 |
commit | da737f2447c925726fb944fc08683ffaf6cf8a63 (patch) | |
tree | 3cc15d001dcc974635fba1abd2cf43c6526fe9eb /source4/libcli/smb2/request.c | |
parent | af3444e6117de7d24bc2e3b61436f2804bfa1e4e (diff) | |
download | samba-da737f2447c925726fb944fc08683ffaf6cf8a63.tar.gz samba-da737f2447c925726fb944fc08683ffaf6cf8a63.tar.bz2 samba-da737f2447c925726fb944fc08683ffaf6cf8a63.zip |
s4:libcli/smb2: add smb2_transport_credits_set_charge() to change the CreditsCharge value for the next request
metze
Diffstat (limited to 'source4/libcli/smb2/request.c')
-rw-r--r-- | source4/libcli/smb2/request.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/source4/libcli/smb2/request.c b/source4/libcli/smb2/request.c index f3684ed280..5d09a5083a 100644 --- a/source4/libcli/smb2/request.c +++ b/source4/libcli/smb2/request.c @@ -78,9 +78,11 @@ struct smb2_request *smb2_request_init(struct smb2_transport *transport, uint16_ req = talloc(transport, struct smb2_request); if (req == NULL) return NULL; - seqnum = transport->seqnum++; - if (seqnum == UINT64_MAX) { - seqnum = transport->seqnum++; + seqnum = transport->seqnum; + if (transport->credits.charge > 0) { + transport->seqnum += transport->credits.charge; + } else { + transport->seqnum += 1; } req->state = SMB2_REQUEST_INIT; @@ -131,7 +133,7 @@ struct smb2_request *smb2_request_init(struct smb2_transport *transport, uint16_ SIVAL(req->out.hdr, 0, SMB2_MAGIC); SSVAL(req->out.hdr, SMB2_HDR_LENGTH, SMB2_HDR_BODY); - SSVAL(req->out.hdr, SMB2_HDR_EPOCH, 0); + SSVAL(req->out.hdr, SMB2_HDR_EPOCH, transport->credits.charge); SIVAL(req->out.hdr, SMB2_HDR_STATUS, 0); SSVAL(req->out.hdr, SMB2_HDR_OPCODE, opcode); SSVAL(req->out.hdr, SMB2_HDR_CREDIT, transport->credits.ask_num); |