2 |
- |
1 |
ushort smbnhgets(uchar *);
|
|
|
2 |
ulong smbnhgetl(uchar *);
|
|
|
3 |
vlong smbnhgetv(uchar *);
|
|
|
4 |
void smbhnputs(uchar *, ushort);
|
|
|
5 |
void smbhnputl(uchar *, ulong);
|
|
|
6 |
void smbhnputv(uchar *, vlong);
|
|
|
7 |
|
|
|
8 |
SMBPROCESSFN smbnegotiate;
|
|
|
9 |
SMBPROCESSFN smbcomsessionsetupandx;
|
|
|
10 |
SMBPROCESSFN smbcomtreeconnectandx;
|
|
|
11 |
SMBPROCESSFN smbcomtransaction;
|
|
|
12 |
SMBPROCESSFN smbcomcheckdirectory;
|
|
|
13 |
SMBPROCESSFN smbcomtransaction2;
|
|
|
14 |
SMBPROCESSFN smbcomecho;
|
|
|
15 |
SMBPROCESSFN smbcomopenandx;
|
|
|
16 |
SMBPROCESSFN smbcomcreate;
|
|
|
17 |
SMBPROCESSFN smbcomopen;
|
|
|
18 |
SMBPROCESSFN smbcomclose;
|
|
|
19 |
SMBPROCESSFN smbcomreadandx;
|
|
|
20 |
SMBPROCESSFN smbcomwriteandx;
|
|
|
21 |
SMBPROCESSFN smbcomqueryinformation;
|
|
|
22 |
SMBPROCESSFN smbcomfindclose2;
|
|
|
23 |
SMBPROCESSFN smbcomtreedisconnect;
|
|
|
24 |
SMBPROCESSFN smbcomqueryinformation2;
|
|
|
25 |
SMBPROCESSFN smbcomdelete;
|
|
|
26 |
SMBPROCESSFN smbcomflush;
|
|
|
27 |
SMBPROCESSFN smbcomwrite;
|
|
|
28 |
SMBPROCESSFN smbcomsetinformation2;
|
|
|
29 |
SMBPROCESSFN smbcomcreatedirectory;
|
|
|
30 |
SMBPROCESSFN smbcomdeletedirectory;
|
|
|
31 |
SMBPROCESSFN smbcomrename;
|
|
|
32 |
SMBPROCESSFN smbcomlockingandx;
|
|
|
33 |
SMBPROCESSFN smbcomsetinformation;
|
|
|
34 |
SMBPROCESSFN smbcomntcreateandx;
|
|
|
35 |
|
|
|
36 |
void *smbemalloc(ulong size);
|
|
|
37 |
void *smbemallocz(ulong size, int clear);
|
|
|
38 |
void smberealloc(void **pp, ulong size);
|
|
|
39 |
char *smbestrdup(char *s);
|
|
|
40 |
void smbfree(void **pp);
|
|
|
41 |
|
|
|
42 |
int smbcheckwordcount(char *name, SmbHeader *h, ushort wordcount);
|
|
|
43 |
int smbcheckwordandbytecount(char *name, SmbHeader *h, ushort wordcount, uchar **bdatap, uchar **edatap);
|
|
|
44 |
int smbsendunicode(SmbPeerInfo *i);
|
|
|
45 |
|
|
|
46 |
char *smbstringdup(SmbHeader *h, uchar *base, uchar **bdatap, uchar *edata);
|
|
|
47 |
char *smbstrdup(uchar **bdatap, uchar *edata);
|
|
|
48 |
char *smbstrinline(uchar **bdatap, uchar *edata);
|
|
|
49 |
int smbstrlen(char *string);
|
|
|
50 |
int smbstringlen(SmbPeerInfo *i, char *string);
|
|
|
51 |
void smbstringprint(char **p, char *fmt, ...);
|
|
|
52 |
|
|
|
53 |
int smbucs2len(char *string);
|
|
|
54 |
int smbstringput(SmbPeerInfo *p, ulong flags, uchar *buf, ushort n, ushort maxlen, char *string);
|
|
|
55 |
int smbstrput(ulong flags, uchar *buf, ushort n, ushort maxlen, char *string);
|
|
|
56 |
int smbstrnput(uchar *buf, ushort n, ushort maxlen, char *string, ushort size, int upcase);
|
|
|
57 |
int smbucs2put(ulong flags, uchar *buf, ushort n, ushort maxlen, char *string);
|
|
|
58 |
|
|
|
59 |
void smbresponseinit(SmbSession *s, ushort maxlen);
|
|
|
60 |
int smbresponsealignl2(SmbSession *s, int l2a);
|
|
|
61 |
ushort smbresponseoffset(SmbSession *s);
|
|
|
62 |
int smbresponseputheader(SmbSession *s, SmbHeader *h, uchar errclass, ushort error);
|
|
|
63 |
int smbresponseputandxheader(SmbSession *s, SmbHeader *h, ushort andxcommand, ulong *andxoffsetfixup);
|
|
|
64 |
int smbresponseputb(SmbSession *s, uchar b);
|
|
|
65 |
int smbresponseputs(SmbSession *s, ushort s);
|
|
|
66 |
int smbresponseputl(SmbSession *s, ulong l);
|
|
|
67 |
int smbresponseoffsetputs(SmbSession *s, ushort offset, ushort s);
|
|
|
68 |
int smbresponseputstring(SmbSession *s, int mustalign, char *string);
|
|
|
69 |
int smbresponseputstr(SmbSession *s, char *string);
|
|
|
70 |
SmbProcessResult smbresponsesend(SmbSession *s);
|
|
|
71 |
int smbresponseputerror(SmbSession *s, SmbHeader *h, uchar errclass, ushort error);
|
|
|
72 |
int smbresponseskip(SmbSession *s, ushort amount);
|
|
|
73 |
ushort smbresponsespace(SmbSession *s);
|
|
|
74 |
void smbresponsereset(SmbSession *s);
|
|
|
75 |
int smbresponsecpy(SmbSession *s, uchar *data, ushort datalen);
|
|
|
76 |
|
|
|
77 |
void smbtreedisconnect(SmbSession *s, SmbTree *t);
|
|
|
78 |
void smbtreedisconnectbyid(SmbSession *s, ushort id);
|
|
|
79 |
SmbTree *smbtreeconnect(SmbSession *s, SmbService *serv);
|
|
|
80 |
int smbchaincommand(SmbSession *s, SmbHeader *h, ulong andxfixupoffset, uchar cmd, ushort offset, SmbBuffer *b);
|
|
|
81 |
|
|
|
82 |
SmbService *smbservicefind(SmbSession *s, char *path, char *service, uchar *errclassp, ushort *errorp);
|
|
|
83 |
void smbserviceput(SmbService *serv);
|
|
|
84 |
void smbserviceget(SmbService *serv);
|
|
|
85 |
|
|
|
86 |
int smbrap2(SmbSession *s);
|
|
|
87 |
|
|
|
88 |
void smbglobalsguess(int client);
|
|
|
89 |
|
|
|
90 |
SmbBuffer *smbbuffernew(ulong maxlen);
|
|
|
91 |
void smbbufferfree(SmbBuffer **bp);
|
|
|
92 |
SmbBuffer *smbbufferinit(void *base, void *bdata, ulong blen);
|
|
|
93 |
ulong smbbufferwriteoffset(SmbBuffer *s);
|
|
|
94 |
ulong smbbufferwritemaxoffset(SmbBuffer *s);
|
|
|
95 |
ulong smbbufferreadoffset(SmbBuffer *s);
|
|
|
96 |
void *smbbufferwritepointer(SmbBuffer *s);
|
|
|
97 |
void *smbbufferreadpointer(SmbBuffer *s);
|
|
|
98 |
int smbbufferputheader(SmbBuffer *s, SmbHeader *h, SmbPeerInfo *p);
|
|
|
99 |
int smbbufferputandxheader(SmbBuffer *s, SmbHeader *h, SmbPeerInfo *p, uchar andxcommand, ulong *andxoffsetfixup);
|
|
|
100 |
int smbbufferputb(SmbBuffer *s, uchar b);
|
|
|
101 |
int smbbufferputs(SmbBuffer *s, ushort s);
|
|
|
102 |
int smbbufferputl(SmbBuffer *s, ulong l);
|
|
|
103 |
int smbbufferoffsetputs(SmbBuffer *s, ulong offset, ushort s);
|
|
|
104 |
int smbbufferputstring(SmbBuffer *b, SmbPeerInfo *p, ulong flags, char *string);
|
|
|
105 |
int smbbufferpututstring(SmbBuffer *b, SmbPeerInfo *p, int mustalign, char *string);
|
|
|
106 |
int smbbufferputucs2(SmbBuffer *b, int mustalign, char *string);
|
|
|
107 |
int smbbufferputstr(SmbBuffer *s, char *string);
|
|
|
108 |
int smbbufferputstrn(SmbBuffer *s, char *string, int len, int upcase);
|
|
|
109 |
int smbbufferputerror(SmbBuffer *s, SmbHeader *h, SmbPeerInfo *p, uchar errclass, ushort error);
|
|
|
110 |
int smbbufferskip(SmbBuffer *s, ulong amount);
|
|
|
111 |
ulong smbbufferspace(SmbBuffer *s);
|
|
|
112 |
void smbbufferreset(SmbBuffer *s);
|
|
|
113 |
int smbbufferputbytes(SmbBuffer *s, void *data, ulong datalen);
|
|
|
114 |
int smbbuffergetbytes(SmbBuffer *b, void *buf, ulong len);
|
|
|
115 |
void smbbuffersetreadlen(SmbBuffer *b, ulong len);
|
|
|
116 |
int smbbuffertrimreadlen(SmbBuffer *b, ulong len);
|
|
|
117 |
ulong smbbufferwritespace(SmbBuffer *b);
|
|
|
118 |
int smbbuffergets(SmbBuffer *b, ushort *sp);
|
|
|
119 |
int smbbuffergetstr(SmbBuffer *b, ulong flags, char **sp);
|
|
|
120 |
int smbbuffergetstrinline(SmbBuffer *b, char **sp);
|
|
|
121 |
int smbbuffergetstrn(SmbBuffer *b, ushort size, char **sp);
|
|
|
122 |
int smbbuffergetstring(SmbBuffer *b, SmbHeader *h, ulong flags, char **sp);
|
|
|
123 |
int smbbuffergetucs2(SmbBuffer *b, ulong flags, char **sp);
|
|
|
124 |
void *smbbufferpointer(SmbBuffer *b, ulong offset);
|
|
|
125 |
int smbbuffergetb(SmbBuffer *b, uchar *bp);
|
|
|
126 |
int smbbuffergetl(SmbBuffer *b, ulong *lp);
|
|
|
127 |
int smbbuffergetv(SmbBuffer *b, vlong *vp);
|
|
|
128 |
ulong smbbufferreadspace(SmbBuffer *b);
|
|
|
129 |
void smbbufferwritelimit(SmbBuffer *b, ulong limit);
|
|
|
130 |
int smbbufferreadskipto(SmbBuffer *b, ulong offset);
|
|
|
131 |
int smbbufferpushreadlimit(SmbBuffer *b, ulong offset);
|
|
|
132 |
int smbbufferpopreadlimit(SmbBuffer *b);
|
|
|
133 |
int smbbufferalignl2(SmbBuffer *b, int al2);
|
|
|
134 |
int smbbufferwritebackup(SmbBuffer *b, ulong offset);
|
|
|
135 |
int smbbufferreadbackup(SmbBuffer *b, ulong offset);
|
|
|
136 |
int smbbufferfixuprelatives(SmbBuffer *b, ulong fixupoffset);
|
|
|
137 |
int smbbufferfixuprelativel(SmbBuffer *b, ulong fixupoffset);
|
|
|
138 |
int smbbufferfixuprelativeinclusivel(SmbBuffer *b, ulong fixupoffset);
|
|
|
139 |
int smbbufferfixupabsolutes(SmbBuffer *b, ulong fixupoffset);
|
|
|
140 |
int smbbufferfixupabsolutel(SmbBuffer *b, ulong fixupoffset);
|
|
|
141 |
int smbbufferfixupl(SmbBuffer *b, ulong fixupoffset, ulong val);
|
|
|
142 |
int smbbufferputv(SmbBuffer *b, vlong v);
|
|
|
143 |
int smbbufferputack(SmbBuffer *b, SmbHeader *h, SmbPeerInfo *p);
|
|
|
144 |
int smbbufferfill(SmbBuffer *b, uchar c, ulong len);
|
|
|
145 |
int smbbufferoffsetgetb(SmbBuffer *b, ulong offset, uchar *bp);
|
|
|
146 |
int smbbuffercopy(SmbBuffer *to, SmbBuffer *from, ulong amount);
|
|
|
147 |
int smbbufferoffsetcopystr(SmbBuffer *b, ulong offset, char *buf, int buflen, int *lenp);
|
|
|
148 |
|
|
|
149 |
SmbClient *smbconnect(char *to, char *share, char **errmsgp);
|
|
|
150 |
void smbclientfree(SmbClient *s);
|
|
|
151 |
int smbsuccess(SmbHeader *h, char **errmsgp);
|
|
|
152 |
|
|
|
153 |
int smbtransactiondecodeprimary(SmbTransaction *t, SmbHeader *h, uchar *pdata, SmbBuffer *b, char **errmsgp);
|
|
|
154 |
int smbtransactiondecodeprimary2(SmbTransaction *t, SmbHeader *h, uchar *pdata, SmbBuffer *b, char **errmsgp);
|
|
|
155 |
void smbtransactionfree(SmbTransaction *t);
|
|
|
156 |
int smbtransactionencoderesponse(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob, char **errmsgp);
|
|
|
157 |
int smbtransactionencoderesponse2(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob, char **errmsgp);
|
|
|
158 |
int smbtransactionencodeprimary(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob,
|
|
|
159 |
uchar *wordcountp, ushort *bytecountp, char **errmsgp);
|
|
|
160 |
int smbtransactionencodeprimary2(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob,
|
|
|
161 |
uchar *wordcountp, ushort *bytecountp, char **errmsgp);
|
|
|
162 |
int smbtransactiondecoderesponse(SmbTransaction *t, SmbHeader *h, uchar *pdata, SmbBuffer *b, char **errmsgp);
|
|
|
163 |
int smbtransactiondecoderesponse2(SmbTransaction *t, SmbHeader *h, uchar *pdata, SmbBuffer *b, char **errmsgp);
|
|
|
164 |
int smbtransactionclientsend(void *magic, SmbBuffer *ob, char **errmsgp);
|
|
|
165 |
int smbtransactionclientreceive(void *magic, SmbBuffer *ib, char **errmsgp);
|
|
|
166 |
|
|
|
167 |
int smbtransactionexecute(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p,
|
|
|
168 |
SmbBuffer *ob, SmbTransactionMethod *method, void *magic, SmbHeader *rh, char **errmsgp);
|
|
|
169 |
int smbtransactionrespond(SmbTransaction *t, SmbHeader *h, SmbPeerInfo *p, SmbBuffer *ob,
|
|
|
170 |
SmbTransactionMethod *method, void *magic, char **errmsgp);
|
|
|
171 |
|
|
|
172 |
SmbProcessResult smbtrans2findfirst2(SmbSession *s, SmbHeader *h);
|
|
|
173 |
SmbProcessResult smbtrans2findnext2(SmbSession *s, SmbHeader *h);
|
|
|
174 |
SmbProcessResult smbtrans2queryfileinformation(SmbSession *s, SmbHeader *h);
|
|
|
175 |
SmbProcessResult smbtrans2queryfsinformation(SmbSession *s, SmbHeader *h);
|
|
|
176 |
SmbProcessResult smbtrans2querypathinformation(SmbSession *s, SmbHeader *h);
|
|
|
177 |
SmbProcessResult smbtrans2setfileinformation(SmbSession *s, SmbHeader *h);
|
|
|
178 |
SmbProcessResult smbtrans2setpathinformation(SmbSession *s, SmbHeader *h);
|
|
|
179 |
|
|
|
180 |
SmbIdMap *smbidmapnew(void);
|
|
|
181 |
long smbidmapadd(SmbIdMap *m, void *p);
|
|
|
182 |
void smbidmapremovebyid(SmbIdMap *m, long id);
|
|
|
183 |
void smbidmapremove(SmbIdMap *m, void *thing);
|
|
|
184 |
void smbidmapfree(SmbIdMap **mp, SMBIDMAPAPPLYFN *free, void *magic);
|
|
|
185 |
void smbidmapapply(SmbIdMap *mp, SMBIDMAPAPPLYFN *free, void *magic);
|
|
|
186 |
void *smbidmapfind(SmbIdMap *m, long id);
|
|
|
187 |
void smbidmapremoveif(SmbIdMap *m, int (*f)(void *p, void *arg), void *arg);
|
|
|
188 |
|
|
|
189 |
void smbsearchfree(SmbSearch **searchp);
|
|
|
190 |
void smbsearchclose(SmbSession *s, SmbSearch *search);
|
|
|
191 |
void smbsearchclosebyid(SmbSession *s, ushort sid);
|
|
|
192 |
|
|
|
193 |
void smbseterror(SmbSession *s, uchar errclass, ushort error);
|
|
|
194 |
|
|
|
195 |
void smbplan9time2datetime(ulong time, int tzoff, ushort *datep, ushort *timep);
|
|
|
196 |
ulong smbdatetime2plan9time(ushort date, ushort time, int tzoff);
|
|
|
197 |
vlong smbplan9time2time(ulong time);
|
|
|
198 |
ulong smbplan9time2utime(ulong time, int tzoff);
|
|
|
199 |
ulong smbutime2plan9time(ulong time, int tzoff);
|
|
|
200 |
ulong smbtime2plan9time(vlong);
|
|
|
201 |
void smbpathcanon(char *path);
|
|
|
202 |
void smbpathsplit(char *path, char **dirp, char **namep);
|
|
|
203 |
|
|
|
204 |
ushort smbplan9mode2dosattr(ulong mode);
|
|
|
205 |
ulong smbdosattr2plan9wstatmode(ulong oldmode, ushort attr);
|
|
|
206 |
ulong smbdosattr2plan9mode(ushort attr);
|
|
|
207 |
|
|
|
208 |
ulong smbplan9length2size32(vlong size);
|
|
|
209 |
|
|
|
210 |
void smbfileclose(SmbSession *s, SmbFile *f);
|
|
|
211 |
|
|
|
212 |
void smbloglock(void);
|
|
|
213 |
void smblogunlock(void);
|
|
|
214 |
int smblogvprint(int cmd, char *fmt, va_list ap);
|
|
|
215 |
int translogprint(int cmd, char *fmt, ...);
|
|
|
216 |
int smblogprint(int cmd, char *fmt, ...);
|
|
|
217 |
int smblogprintif(int v, char *fmt, ...);
|
|
|
218 |
void smblogdata(int cmd, int (*print)(int cmd, char *fmt, ...), void *p, long data, long limit);
|
|
|
219 |
|
|
|
220 |
SmbSharedFile *smbsharedfileget(Dir *d, int p9mode, int *sharep);
|
|
|
221 |
void smbsharedfileput(SmbFile *f, SmbSharedFile *sf, int share);
|
|
|
222 |
int smbsharedfilelock(SmbSharedFile *sf, SmbSession *s, ushort pid, vlong base, vlong limit);
|
|
|
223 |
int smbsharedfileunlock(SmbSharedFile *sf, SmbSession *s, ushort pid, vlong base, vlong limit);
|
|
|
224 |
|
|
|
225 |
vlong smbl2roundupvlong(vlong v, int l2);
|
|
|
226 |
|
|
|
227 |
int smblistencifs(SMBCIFSACCEPTFN *accept);
|
|
|
228 |
|
|
|
229 |
int smbnetserverenum2(SmbClient *c, ulong stype, char *domain, int *entriesp, SmbRapServerInfo1 **sip, char **errmsgp);
|
|
|
230 |
|
|
|
231 |
int smbbuffergetheader(SmbBuffer *b, SmbHeader *h, uchar **parametersp, ushort *bytecountp);
|
|
|
232 |
int smbbuffergetandcheckheader(SmbBuffer *b, SmbHeader *h, uchar command, int response,
|
|
|
233 |
uchar **pdatap, ushort *bytecountp, char **errmsgp);
|
|
|
234 |
int smbcheckheader(SmbHeader *h, uchar command, int response, char **errmsgp);
|
|
|
235 |
int smbcheckheaderdirection(SmbHeader *h, int response, char **errmsgp);
|
|
|
236 |
|
|
|
237 |
SmbDirCache *smbmkdircache(SmbTree *t, char *path);
|
|
|
238 |
void smbdircachefree(SmbDirCache **cp);
|
|
|
239 |
|
|
|
240 |
int smbmatch(char *name, Reprog *rep);
|
|
|
241 |
Reprog *smbmkrep(char *pattern);
|
|
|
242 |
|
|
|
243 |
int smbclientopen(SmbClient *c, ushort mode, char *name, uchar *errclassp, ushort *errorp, ushort *fid, ushort *attrp,
|
|
|
244 |
ulong *mtimep, ulong *sizep, ushort *accessallowedp, char **errmsgp);
|
|
|
245 |
|
|
|
246 |
Rune smbruneconvert(Rune r, ulong flags);
|
|
|
247 |
|
|
|
248 |
int smbslut(SmbSlut *table, char *name);
|
|
|
249 |
char *smbrevslut(SmbSlut *table, int val);
|
|
|
250 |
|
|
|
251 |
SmbProcessResult smbtruncatefile(SmbSession *s, SmbFile *f, vlong offset);
|
|
|
252 |
|
|
|
253 |
#ifdef LEAK
|
|
|
254 |
#define smbemallocz(n, z) mallocz(n, z)
|
|
|
255 |
#define smbemalloc(n) malloc(n)
|
|
|
256 |
#define smbestrdup(p) strcpy(malloc(strlen(p) + 1), p)
|
|
|
257 |
#endif
|
|
|
258 |
|
|
|
259 |
int smbremovefile(SmbTree *t, char *dir, char *name);
|
|
|
260 |
int smbbrowsesendhostannouncement(char *name, ulong periodms, ulong type, char *comment, char **errmsgp);
|