📄 smbresponse.c
字号:
#include "headers.h"voidsmbresponsereset(SmbSession *s){ smbbufferreset(s->response);}voidsmbresponseinit(SmbSession *s, ushort maxlen){ smbbufferfree(&s->response); s->response = smbbuffernew(maxlen);}intsmbresponsealignl2(SmbSession *s, int l2a){ return smbbufferalignl2(s->response, l2a);}intsmbresponseputheader(SmbSession *s, SmbHeader *h, uchar errclass, ushort error){ h->errclass = errclass; h->error = error; return smbbufferputheader(s->response, h, &s->peerinfo);}intsmbresponseputb(SmbSession *s, uchar b){ return smbbufferputb(s->response, b);}ushortsmbresponsespace(SmbSession *sess){ return smbbufferwritespace(sess->response);}intsmbresponseskip(SmbSession *sess, ushort amount){ return smbbufferputbytes(sess->response, nil, amount);}intsmbresponseoffsetputs(SmbSession *sess, ushort offset, ushort s){ return smbbufferoffsetputs(sess->response, offset, s);}intsmbresponseputs(SmbSession *sess, ushort s){ return smbbufferputs(sess->response, s);}intsmbresponseputl(SmbSession *s, ulong l){ return smbbufferputl(s->response, l);}intsmbresponsecpy(SmbSession *s, uchar *data, ushort datalen){ return smbbufferputbytes(s->response, data, datalen);}intsmbresponseputstring(SmbSession *s, int mustalign, char *string){ return smbbufferputstring(s->response, &s->peerinfo, mustalign ? 0 : SMB_STRING_UNALIGNED, string);}intsmbresponseputstr(SmbSession *s, char *string){ return smbbufferputstring(s->response, nil, SMB_STRING_ASCII, string);}ushortsmbresponseoffset(SmbSession *s){ return smbbufferwriteoffset(s->response);}SmbProcessResultsmbresponsesend(SmbSession *s){ uchar cmd; SmbProcessResult pr; assert(smbbufferoffsetgetb(s->response, 4, &cmd));smbloglock();smblogprint(cmd, "sending:\n");smblogdata(cmd, smblogprint, smbbufferreadpointer(s->response), smbbufferreadspace(s->response), 256);smblogunlock(); if (s->nbss) { NbScatterGather a[2]; a[0].p = smbbufferreadpointer(s->response); a[0].l = smbbufferreadspace(s->response); a[1].p = nil; nbssgatherwrite(s->nbss, a); pr = SmbProcessResultOk; } else if (s->cifss) { ulong l = smbbufferreadspace(s->response); uchar nl[4]; hnputl(nl, l); write(s->cifss->fd, nl, 4); write(s->cifss->fd, smbbufferreadpointer(s->response), l); pr = SmbProcessResultOk; } else pr = SmbProcessResultDie; smbbufferreset(s->response); return pr;}intsmbresponseputandxheader(SmbSession *s, SmbHeader *h, ushort andxcommand, ulong *andxoffsetfixupp){ return smbbufferputandxheader(s->response, h, &s->peerinfo, andxcommand, andxoffsetfixupp);}intsmbresponseputerror(SmbSession *s, SmbHeader *h, uchar errclass, ushort error){ h->wordcount = 0; return smbresponseputheader(s, h, errclass, error) && smbresponseputs(s, 0);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -