##// END OF EJS Templates
ssh: fix flakey ssh errors on BSD systems...
Durham Goode -
r34107:c037fd65 default
parent child Browse files
Show More
@@ -203,12 +203,21 b' class sshpeer(wireproto.wirepeer):'
203 self._pipei = doublepipe(self.ui, self._pipei, self._pipee)
203 self._pipei = doublepipe(self.ui, self._pipei, self._pipee)
204 self._pipeo = doublepipe(self.ui, self._pipeo, self._pipee)
204 self._pipeo = doublepipe(self.ui, self._pipeo, self._pipee)
205
205
206 def badresponse():
207 self._abort(error.RepoError(_('no suitable response from '
208 'remote hg')))
209
210 try:
206 # skip any noise generated by remote shell
211 # skip any noise generated by remote shell
207 self._callstream("hello")
212 self._callstream("hello")
208 r = self._callstream("between", pairs=("%s-%s" % ("0"*40, "0"*40)))
213 r = self._callstream("between", pairs=("%s-%s" % ("0"*40, "0"*40)))
214 except IOError:
215 badresponse()
216
209 lines = ["", "dummy"]
217 lines = ["", "dummy"]
210 max_noise = 500
218 max_noise = 500
211 while lines[-1] and max_noise:
219 while lines[-1] and max_noise:
220 try:
212 l = r.readline()
221 l = r.readline()
213 self._readerr()
222 self._readerr()
214 if lines[-1] == "1\n" and l == "\n":
223 if lines[-1] == "1\n" and l == "\n":
@@ -217,9 +226,10 b' class sshpeer(wireproto.wirepeer):'
217 self.ui.debug("remote: ", l)
226 self.ui.debug("remote: ", l)
218 lines.append(l)
227 lines.append(l)
219 max_noise -= 1
228 max_noise -= 1
229 except IOError:
230 badresponse()
220 else:
231 else:
221 self._abort(error.RepoError(_('no suitable response from '
232 badresponse()
222 'remote hg')))
223
233
224 self._caps = set()
234 self._caps = set()
225 for l in reversed(lines):
235 for l in reversed(lines):
General Comments 0
You need to be logged in to leave comments. Login now