xref: /plan9-contrib/sys/src/cmd/aquarela/smbfile.c (revision 8ccd4a6360d974db7bd7bbd4f37e7018419ea908)
1 #include "headers.h"
2 
3 static void
smbfilefree(SmbFile ** fp)4 smbfilefree(SmbFile **fp)
5 {
6 	SmbFile *f;
7 	f = *fp;
8 	if (f) {
9 		smbsharedfileput(f, f->sf, f->share);
10 		if (f->fd >= 0)
11 			close(f->fd);
12 		free(f->name);
13 		free(f);
14 		*fp = nil;
15 	}
16 }
17 
18 void
smbfileclose(SmbSession * s,SmbFile * f)19 smbfileclose(SmbSession *s, SmbFile *f)
20 {
21 	smblogprintif(smbglobals.log.fids, "smbfileclose: 0x%.4ux/0x%.4ux %s%s\n",
22 		f->t->id, f->id, f->t->serv->path, f->name);
23 	smbidmapremove(s->fidmap, f);
24 	smbfilefree(&f);
25 }
26