📄 smbtree.c
字号:
#include "headers.h"typedef struct DisconnectData { SmbSession *s; SmbTree *t;} DisconnectData;static voidsmbtreefree(SmbTree **tp){ SmbTree *t = *tp; if (t) { smbserviceput(t->serv); free(t); *tp = nil; }}static voidclosesearch(void *magic, void *a){ SmbSearch *search = a; DisconnectData *d = magic; if (search->t == d->t) smbsearchclose(d->s, search);}static voidclosefile(void *magic, void *a){ SmbFile *f = a; DisconnectData *d = magic; if (f->t == d->t) smbfileclose(d->s, f);}voidsmbtreedisconnect(SmbSession *s, SmbTree *t){ if (t) { DisconnectData data; smblogprintif(smbglobals.log.tids, "smbtreedisconnect: 0x%.4ux\n", t->id); data.s = s; data.t = t; smbserviceput(t->serv); smbidmapapply(s->sidmap, closesearch, &data); smbidmapapply(s->fidmap, closefile, &data); smbidmapremove(s->tidmap, t); smbtreefree(&t); }}voidsmbtreedisconnectbyid(SmbSession *s, ushort id){ smbtreedisconnect(s, smbidmapfind(s->tidmap, id));}SmbTree *smbtreeconnect(SmbSession *s, SmbService *serv){ SmbTree *t; if (s->tidmap == nil) s->tidmap = smbidmapnew(); t = smbemallocz(sizeof(*t), 1); smbidmapadd(s->tidmap, t); t->serv = serv; smbserviceget(serv); smblogprintif(smbglobals.log.tids, "smbtreeconnect: 0x%.4ux\n", t->id); return t;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -