コード例 #1
0
ファイル: chown.cpp プロジェクト: arrrrrrr/ebftpd
util::Error LookupOwner(const std::string& user, const std::string& group, fs::Owner& owner)
{
  auto dbConfig = config->Database();  
  try
  {
    mongo::DBClientConnection conn;
    conn.connect(dbConfig.Host());
    if (!dbConfig.Login().empty())
    {
      std::string errmsg;
      if (!conn.auth(dbConfig.Name(), dbConfig.Login(), dbConfig.Password(), errmsg))
        throw mongo::DBException("Authentication failed", 0);
    }
    
    owner = fs::Owner(user.empty() ? -1 : LookupUID(conn, user),
                      group.empty() ? -1 : LookupGID(conn, group));
  }
  catch (const mongo::DBException& e)
  {
    return util::Error::Failure(e.what());
  }
  catch (const util::RuntimeError& e)
  {
    return util::Error::Failure(e.Message());
  }
  
  return util::Error::Success();
}
コード例 #2
0
ファイル: FileSystem.c プロジェクト: ColumPaget/Movgrab
int FileChGroup(const char *FileName, const char *Group)
{
int gid, result;

gid=LookupGID(Group);
if (gid > -1) 
{
	result=chown(FileName, -1, gid);
	if (result==0) return(TRUE);
}
RaiseError(ERRFLAG_ERRNO, "FileChGroup", "failed to change group to group=%s gid=%d",Group,gid);
return(FALSE);
}