| 150 | conns = {} |
| 151 | |
| 152 | def _connect(self, server): |
| 153 | host = server.host() |
| 154 | print 'connecting %r' % host |
| 155 | self.fill_menu() |
| 156 | def logfunc(msg): |
| 157 | print 'log! (%d bytes)' % len(msg) |
| 158 | self.logField.textStorage()\ |
| 159 | .appendAttributedString_(NSAttributedString.alloc()\ |
| 160 | .initWithString_(msg)) |
| 161 | self.logField.didChangeText() |
| 162 | def promptfunc(prompt): |
| 163 | print 'prompt! %r' % prompt |
| 164 | return askpass.askpass(prompt) |
| 165 | nets_mode = server.autoNets() |
| 166 | if nets_mode == models.NET_MANUAL: |
| 167 | manual_nets = ["%s/%d" % (i.subnet(), i.width()) |
| 168 | for i in server.nets()] |
| 169 | elif nets_mode == models.NET_ALL: |
| 170 | manual_nets = ['0/0'] |
| 171 | else: |
| 172 | manual_nets = [] |
| 173 | noLatencyControl = (server.latencyControl() != models.LAT_INTERACTIVE) |
| 174 | conn = Runner(sshuttle_args(host, |
| 175 | auto_nets = nets_mode == models.NET_AUTO, |
| 176 | auto_hosts = server.autoHosts(), |
| 177 | dns = server.useDns(), |
| 178 | nets = manual_nets, |
| 179 | debug = self.debugField.state(), |
| 180 | no_latency_control = noLatencyControl), |
| 181 | logfunc=logfunc, promptfunc=promptfunc, |
| 182 | serverobj=server) |
| 183 | self.conns[host] = conn |
| 184 | |
| 185 | def _disconnect(self, server): |
| 186 | host = server.host() |