| plan 9 kernel history: overview | file list | diff list |
1991/1112/port/dev.c (diff list | history)
| 1991/1109/sys/src/9/port/dev.c:38,45 – 1991/1112/sys/src/9/port/dev.c:38,45 (short | long | prev | next) | ||
|
Performance: replace memmove with strncpy. Compute access modes for permission.
rsc Fri Mar 4 12:44:25 2005 | ||
| 1990/0227 | db->mtime = db->atime; db->hlength = 0; db->length = length; | |
| 1991/0318 |
| |
| 1991/1112 | strncpy(db->uid, user, NAMELEN); strncpy(db->gid, eve, NAMELEN); | |
| 1990/0227 | } int | |
| 1991/1109/sys/src/9/port/dev.c:170,175 – 1991/1112/sys/src/9/port/dev.c:170,176 | ||
| 1990/0227 | { int i; Dir dir; | |
| 1991/1112 | ulong t, mode; | |
| 1990/0227 | static int access[] = { 0400, 0200, 0600, 0100 }; for(i=0;; i++) | |
| 1991/1109/sys/src/9/port/dev.c:180,187 – 1991/1112/sys/src/9/port/dev.c:181,196 | ||
| 1990/0227 | case 0: break; case 1: | |
| 1990/11211 |
| |
| 1990/0227 |
| |
| 1991/1112 | if(eqqid(c->qid, dir.qid)) { if(strcmp(u->p->user, dir.uid) == 0) /* User */ mode = dir.mode; else if(strcmp(u->p->user, eve) == 0) /* Bootes is group */ mode = dir.mode<<3; else mode = dir.mode<<6; /* Other */ t = access[omode&3]; if((t & mode) == t) | |
| 1990/0227 | goto Return; | |
| 1990/11211 | error(Eperm); | |
| 1990/0227 | } | |