|
|
1.1 ! root 1: #include "mgr.h" ! 2: ! 3: /* ! 4: * create a new request. the request is staticly allocated since ! 5: * only one exists per process. ! 6: */ ! 7: Request * ! 8: newrequest(ip, sp) ! 9: ipcinfo *ip; ! 10: Service *sp; ! 11: { ! 12: static Request r; ! 13: ! 14: r.i = ip; ! 15: r.s = sp; ! 16: r.line = r.args = r.term = NULL; ! 17: r.errfd = -1; ! 18: return &r; ! 19: } ! 20: ! 21: freerequest(rp) ! 22: Request *rp; ! 23: { ! 24: if(rp->line) ! 25: free(rp->line); ! 26: if(rp->args) ! 27: free(rp->args); ! 28: } ! 29: ! 30: /* ! 31: * execute a request ! 32: */ ! 33: doreq(rp) ! 34: Request *rp; ! 35: { ! 36: Action *ap; ! 37: ! 38: for(ap=rp->s->ap; ap; ap=ap->next) { ! 39: if((*ap->func)(rp, ap)<0) ! 40: return; ! 41: } ! 42: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.