Rev 9: Trivial support for listening on a TCP/IP port. in file:///home/jelmer/bzr/bzrsvnserve/
Jelmer Vernooij
jelmer at samba.org
Mon Jan 22 13:13:34 GMT 2007
------------------------------------------------------------
revno: 9
revision-id: jelmer at samba.org-20070122131330-os8xa31ka1vyfjml
parent: jelmer at samba.org-20070122125840-sib4iysnuz238g2k
committer: Jelmer Vernooij <jelmer at samba.org>
branch nick: bzrsvnserve
timestamp: Mon 2007-01-22 14:13:30 +0100
message:
Trivial support for listening on a TCP/IP port.
modified:
__init__.py __init__.py-20061015145107-e1erl7tzb3zk831k-1
svnserver.py svnserver.py-20061015150253-0jjovnw1ax00rjlb-1
tests/test_server.py test_server.py-20070122114402-zcwhr4cxc67jvakf-1
=== modified file '__init__.py'
--- a/__init__.py 2007-01-22 12:58:40 +0000
+++ b/__init__.py 2007-01-22 13:13:30 +0000
@@ -15,6 +15,7 @@
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
from bzrlib.commands import Command, register_command, Option
+from bzrlib.trace import info
import os
import sys
@@ -41,7 +42,10 @@
directory = os.getcwd()
if inet:
- server = SVNServer(directory, sys.stdin, sys.stdout)
+ def send_fn(data):
+ sys.stdout.write(data)
+ sys.stdout.flush()
+ server = SVNServer(directory, sys.stdin.read, send_fn)
server.serve()
else:
if port is None:
@@ -49,7 +53,15 @@
else:
port = int(port)
- TCPServer(port)
+ import socket
+ server_sock = socket.socket()
+ server_sock.bind(('127.0.0.1', port))
+ server_sock.listen(1)
+ sock, client_addr = server_sock.accept()
+ server = SVNServer(directory, lambda: sock.recv(1024),
+ sock.send)
+ server.serve()
+
register_command(cmd_svnserve)
=== modified file 'svnserver.py'
--- a/svnserver.py 2007-01-22 12:58:40 +0000
+++ b/svnserver.py 2007-01-22 13:13:30 +0000
@@ -22,10 +22,10 @@
from marshall import marshall, unmarshall, literal
class SVNServer:
- def __init__(self, rootdir, instr, outstr):
+ def __init__(self, rootdir, recv_fn, send_fn):
self.rootdir = rootdir
- self.instr = instr
- self.outstr = outstr
+ self.recv_fn = recv_fn
+ self.send_fn = send_fn
self.inbuffer = ""
def send_greeting(self):
@@ -107,12 +107,11 @@
# FIXME: Blocking read?
while True:
try:
- self.inbuffer += self.instr.read()
+ self.inbuffer += self.recv_fn()
(self.inbuffer, ret) = unmarshall(self.inbuffer)
return ret
except IndexError:
pass
def send_msg(self, data):
- self.outstr.write(marshall(data))
- self.outstr.flush()
+ self.send_fn(marshall(data))
=== modified file 'tests/test_server.py'
--- a/tests/test_server.py 2007-01-22 12:58:40 +0000
+++ b/tests/test_server.py 2007-01-22 13:13:30 +0000
@@ -28,7 +28,7 @@
self.branch_path = os.path.join(self.test_dir, 'a')
self.branch = Branch.initialize(self.branch_path)
self.outstr = StringIO()
- self.server = SVNServer(self.branch_path, None, self.outstr)
+ self.server = SVNServer(self.branch_path, None, self.outstr.send)
def test_send_greeting(self):
self.server.send_greeting()
More information about the bazaar-commits
mailing list