Ejemplo n.º 1
0
    def Load(self):
        fname = User.User.OwnFile(self._name, "usermemo")

        try:
            os.stat(fname)
        except OSError as exc:
            data = self.read()
            if (data is None):
                raise ServerError("can't load usermemo for %s" % self._name)

            try:
                with open(fname, "wb") as f:
                    f.write(data)
            except IOError:
                raise ServerError("can't write usermemo for %s" % self._name)

        try:
            fmemo = open(fname, "r+b")
        except IOError:
            raise ServerError("can't open usermemo for %s" % self._name)

        (self._memo, _) = Util.Mmap(fmemo, mmap.PROT_READ | mmap.PROT_WRITE,
                                    mmap.MAP_SHARED)
        fmemo.close()
        if (self._memo == None):
            raise ServerError("can't mmap usermemo for %s" % self._name)

        return True
Ejemplo n.º 2
0
 def map_dir(self):
     if self.fileptr is None:
         if self.fd is None:
             self.fd = open(self.filename, "r+b")
             self.needclosefd = True
         (self.fileptr,
          self.size) = Util.Mmap(self.fd, mmap.PROT_READ | mmap.PROT_WRITE,
                                 mmap.MAP_SHARED)
         if self.fileptr is None:
             if self.needclosefd:
                 self.fd.close()
             return False
     return True