Пример #1
0
bool
afsroot::entryok (afsdirentry *de, sfs_aid aid)
{
  afsdir *d = userdir (aid);
  if (d && d->entryok (de, aid))
    return true;
  return afsdir::entryok (de, aid);
}
Пример #2
0
void
afsroot::nfs_lookup (svccb *sbp, str name)
{
  if (afsnode *e = lookup (name, sbp2aid (sbp)))
    lookup_reply (sbp, e);
  else
    userdir (sbp)->nfs_lookup (sbp, name);
}
Пример #3
0
afsdirentry *
afsroot::firstentry (sfs_aid aid)
{
  afsdir *d = userdir (aid);
  afsdirentry *de = afsdir::firstentry (aid);
  if (!d || !d->lookup (de->name, aid))
    return de;
  return nextentry (de, aid);
}
Пример #4
0
void
afsroot::nfs_remove (svccb *sbp)
{
  str name = sbp->vers () == 2
    ? str (sbp->Xtmpl getarg<diropargs> ()->name)
    : str (sbp->Xtmpl getarg<diropargs3> ()->name);

  if (srvinfo *si = srvinfo::lookup (name)) {
    si->unmount (0);
    nfs_error (sbp, nfsstat (EINPROGRESS));
  }
  else if (afsdir *d = userdir (sbp))
    d->nfs_remove (sbp);
  else
    nfs_error (sbp, NFSERR_ACCES);
}
Пример #5
0
void
afsroot::mkfattr3 (fattr3 *f, sfs_aid aid)
{
  /* BSD needs the seconds (not just milliseconds/nanoseconds) of the
   * mtime to change on every lookup/getattr in order to defeat the
   * name cache. */
  if (aid != lastaid) {
    lastaid = aid;
    bumpmtime ();
  }
  afsdir::mkfattr3 (f, aid);
  if (afsdir *d = userdir (aid)) {
    if (d != afs_naroot)
      f->mode |= 0222;
    f->nlink += d->getnlinks () - 2;
  }
}
Пример #6
0
//--------------------------------
GameProfile::GameProfile(QObject *parent) : QObject(parent),
  m_accel(false)
{
    userPath = QDir::homePath();
#ifdef Q_OS_WIN32
  userPath += "/Application Data/XlabSoft/chains/";
#else
  userPath += "/.xlabsoft/chains/";
#endif

    QDir userdir(userPath);
    if (!userdir.exists())
        userdir.mkpath(userPath);

    m_started = false;
    m_paused = false;

    scanThemes();
}
Пример #7
0
afsdirentry *
afsroot::nextentry (afsdirentry *de, sfs_aid aid)
{
  afsdir *d = userdir (aid);
  if (de->dir == this) {
    for (de = afsdir::nextentry (de, aid); de;
	 de = afsdir::nextentry (de, aid))
      if (!d || !d->lookup (de->name, aid))
	return de;
  }
  else {
    assert (de);
  }

  if (!d)
    return NULL;
  if (!de)
    return d->firstentry (aid);
  else
    return d->nextentry (de, aid);
}