40 lines · 641 B · C
RawDownload
#include <u.h>#include <libc.h>#include <auth.h>#include <fcall.h>#include <thread.h>#include <9p.h> voiddirread9p(Req *r, Dirgen *gen, void *aux){	int start;	uchar *p, *ep;	uint rv;	Dir d; 	if(r->ifcall.offset == 0)		start = 0;	else		start = r->fid->dirindex; 	p = (uchar*)r->ofcall.data;	ep = p+r->ifcall.count; 	while(p < ep){		memset(&d, 0, sizeof d);		if((*gen)(start, &d, aux) < 0)			break;		rv = convD2M(&d, p, ep-p);		free(d.name);		free(d.muid);		free(d.uid);		free(d.gid);		if(rv <= BIT16SZ)			break;		p += rv;		start++;	}	r->fid->dirindex = start;	r->ofcall.count = p - (uchar*)r->ofcall.data;}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t