/brz/remove-bazaar

To get this branch, use:
bzr branch http://gegoxaren.bato24.eu/bzr/brz/remove-bazaar

« back to all changes in this revision

Viewing changes to bzrlib/smart/server.py

  • Committer: Vincent Ladeuil
  • Date: 2011-05-31 21:08:52 UTC
  • mfrom: (5743.12.19 config-options)
  • mto: This revision was merged to the branch mainline in revision 5945.
  • Revision ID: v.ladeuil+lp@free.fr-20110531210852-0uyfsjkws5zbfs8m
Merge trunk resolving conflicts

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
# Copyright (C) 2006-2010 Canonical Ltd
 
1
# Copyright (C) 2006-2011 Canonical Ltd
2
2
#
3
3
# This program is free software; you can redistribute it and/or modify
4
4
# it under the terms of the GNU General Public License as published by
254
254
            "Called by the bzr server when it stops serving a directory. "
255
255
            "server_stopped is called with the same parameters as the "
256
256
            "server_started hook: (backing_urls, public_url).", (0, 16))
 
257
        self.add_hook('server_exception',
 
258
            "Called by the bzr server when an exception occurs. "
 
259
            "server_exception is called with the sys.exc_info() tuple "
 
260
            "return true for the hook if the exception has been handled, "
 
261
            "in which case the server will exit normally.", (2, 4))
257
262
 
258
263
SmartTCPServer.hooks = SmartServerHooks()
259
264
 
373
378
        for cleanup in reversed(self.cleanups):
374
379
            cleanup()
375
380
 
376
 
 
377
381
def serve_bzr(transport, host=None, port=None, inet=False):
378
382
    """This is the default implementation of 'bzr serve'.
379
383
    
385
389
    try:
386
390
        bzr_server.set_up(transport, host, port, inet)
387
391
        bzr_server.smart_server.serve()
 
392
    except:
 
393
        hook_caught_exception = False
 
394
        for hook in SmartTCPServer.hooks['server_exception']:
 
395
            hook_caught_exception = hook(sys.exc_info())
 
396
        if not hook_caught_exception:
 
397
            raise
388
398
    finally:
389
399
        bzr_server.tear_down()
390