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