⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 aclfs.fist

📁 Solaris操作系统下的过滤驱动程序, C源码程序.
💻 FIST
字号:
// warning: fist templates may not support all of the features for aclfs!mntstyle overlay;filter name;debug off;ioctl:fromuser SETACL {int u_num; int g_num;};fileformat ACLDATA {int us; int gr;};%%%op:ioctl:SETACL {  if ($0.owner == %uid) {    int u2, g2;    if (fistGetIoctlData(SETACL, u_num, &u2) < 0 ||	fistGetIoctlData(SETACL, g_num, &g2) < 0)      fistSetErr(EFAULT);    else {      fistSetFileData(".acl", ACLDATA, us, u2);      fistSetFileData(".acl", ACLDATA, gr, g2);    }  } else    fistSetErr(EPERM);}%op:lookup:postcall {  if (fistLastErr() == EPERM) {    int tmp_u, tmp_g;    if (fistGetFileData(".acl", ACLDATA, us, tmp_u) >= 0 &&	fistGetFileData(".acl", ACLDATA, gr, tmp_g) >= 0 &&	(%uid == tmp_u || %gid == tmp_g)) {      fistLookup($dir:1, name, $1,		 $dir:1.owner, $dir:1.group);    }  }}%op:lookup:precall {  if (fistStrEq(name, ".acl") &&      $dir.owner != %uid) {    fistReturnErr(ENOENT);  }}%op:readdir:call {  if (fistStrEq(name, ".acl"))    fistSkipName(name);}%%intaclfs_encode_filename(const char *name, int length, char **encoded_name, int skip_dots, const vnode_t *vp, const vfs_t *vfsp){    int encoded_length;    encoded_length = length + 1;    *encoded_name = fistMalloc(encoded_length);    fistMemCpy(*encoded_name, name, length);    (*encoded_name)[length] = '\0';    return encoded_length;}/* returns length of decoded string, or -1 if error */intaclfs_decode_filename(const char *name, int length, char **decoded_name, int skip_dots, const vnode_t *vp, const vfs_t *vfsp){    int error = 0;    *decoded_name = fistMalloc(length);    fistMemCpy(*decoded_name, name, length);    error = length;    return error;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -