mercurial/hgweb/protocol.py
changeset 9694 8269fe2d48f6
parent 9198 061eeb602354
child 9713 d193cc97c4e8
equal deleted inserted replaced
9693:c40a1ee20aa5 9694:8269fe2d48f6
   179             finally:
   179             finally:
   180                 lock.release()
   180                 lock.release()
   181         except ValueError, inst:
   181         except ValueError, inst:
   182             raise ErrorResponse(HTTP_OK, inst)
   182             raise ErrorResponse(HTTP_OK, inst)
   183         except (OSError, IOError), inst:
   183         except (OSError, IOError), inst:
   184             filename = getattr(inst, 'filename', '')
       
   185             # Don't send our filesystem layout to the client
       
   186             if filename.startswith(repo.root):
       
   187                 filename = filename[len(repo.root)+1:]
       
   188             else:
       
   189                 filename = ''
       
   190             error = getattr(inst, 'strerror', 'Unknown error')
   184             error = getattr(inst, 'strerror', 'Unknown error')
   191             if inst.errno == errno.ENOENT:
   185             if inst.errno == errno.ENOENT:
   192                 code = HTTP_NOT_FOUND
   186                 code = HTTP_NOT_FOUND
   193             else:
   187             else:
   194                 code = HTTP_SERVER_ERROR
   188                 code = HTTP_SERVER_ERROR
   195             raise ErrorResponse(code, '%s: %s' % (error, filename))
   189             filename = getattr(inst, 'filename', '')
       
   190             # Don't send our filesystem layout to the client
       
   191             if filename and filename.startswith(repo.root):
       
   192                 filename = filename[len(repo.root)+1:]
       
   193                 text = '%s: %s' % (error, filename)
       
   194             else:
       
   195                 text = error.replace(repo.root + os.path.sep, '')
       
   196             raise ErrorResponse(code, text)
   196     finally:
   197     finally:
   197         fp.close()
   198         fp.close()
   198         os.unlink(tempname)
   199         os.unlink(tempname)
   199 
   200 
   200 def stream_out(repo, req):
   201 def stream_out(repo, req):