int smbclienttrans2(SmbClient *c, uchar scount, ushort *setup, SmbBuffer *inparam, SmbBuffer *outparam, SmbBuffer *outdata, SmbHeader *rh, char **errmsgp) { SmbTransaction transaction; SmbHeader h; memset(&transaction, 0, sizeof(transaction)); transaction.in.scount = scount; transaction.in.setup = setup; transaction.in.parameters = smbbufferreadpointer(inparam); transaction.in.tpcount = smbbufferreadspace(inparam); transaction.in.maxpcount = smbbufferwritespace(outparam); transaction.in.maxdcount = smbbufferwritespace(outdata); transaction.out.parameters = outparam; transaction.out.data = outdata; h = c->protoh; h.tid = c->sharetid; h.mid = 0; return smbtransactionexecute(&transaction, &h, &c->peerinfo, c->b, &method, c, rh, errmsgp); }
int smbclientrap(SmbClient *c, SmbBuffer *inparam, SmbBuffer *outparam, SmbBuffer *outdata, char **errmsgp) { SmbTransaction transaction; SmbHeader h; memset(&transaction, 0, sizeof(transaction)); transaction.in.name = smbglobals.pipelanman; transaction.in.parameters = smbbufferreadpointer(inparam); transaction.in.tpcount = smbbufferreadspace(inparam); transaction.in.maxpcount = smbbufferwritespace(outparam); transaction.in.maxdcount = smbbufferwritespace(outdata); transaction.out.parameters = outparam; transaction.out.data = outdata; h = c->protoh; h.tid = c->ipctid; h.mid = 0; return smbtransactionexecute(&transaction, &h, &c->peerinfo, c->b, &smbtransactionmethodrap, c, nil, errmsgp); }