Neil Booth
05dd310431
Set 'connecting' status in one place.
...
Also means when switching to an already connected server our
status doesn't quickly change to connecting and back again.
2015-05-22 14:05:58 +09:00
Neil Booth
86626d8080
Consistency in handling of self.interface
...
switch_to_interface() becomes the common place where
self.interface is set; therefore self.interface is not None
precisely when self.default_server is connected. Previously some
places required it to be connected and some didn't. Also an
interface change now sends the 'updated' notification
consistently - previously some did and some didn't.
Have network_start() call start_interfaces() - this also means
network restarts now do this.
Fix apparent off-by-one in start_interfaces()
2015-05-22 09:13:09 +09:00
Neil Booth
c918e74039
Put common network start and stop code in one place.
...
Prefer to use safer self.is_connected() as it checks interface
is not None.
Using common code gives small observable changes in behaviour:
- slightly different print_error() messages
- network restarts now enter status 'connecting' which they
didn't before, which seems correct
- status 'connecting' is done with set_status() rather than
simply assigning the status, which seems more correct. Now
that the response_queue is available in the constructor this
works; it used to fail with 'response_queue is not defined'
2015-05-22 07:52:59 +09:00
ThomasV
8620019f92
Merge pull request #1222 from kyuupichan/if_notification
...
Put interface notification handling in its own function.
2015-05-21 15:05:07 +02:00
ThomasV
5bd22d2378
follow-up to bd781d600b8ce2bc9dcebebbdb0fb60ad2fb892e: use pipe
2015-05-21 12:50:26 +02:00
Neil Booth
c9a30eb5f2
Put interface notification handling in its own function.
2015-05-21 17:45:37 +09:00
Neil Booth
bd781d600b
Have queues passed to the network constructor.
...
This is somewhat cleaner as the proxy's pipe and network setup
was awkwardly interleaved. It also means network's constructor
is free to use both; currently some code is working around the
fact that the response queue doesn't exist in the constructor.
2015-05-21 12:49:39 +09:00
ThomasV
2104e96a66
network: use get_nowait on one of the two queues
2015-05-19 10:22:25 +02:00
Neil Booth
63733ccd2a
No need for thread to handle requests
...
Handle requests in the main loop.
Remove unused lock.
interface.py was reworked and send_request() no longer throws.
2015-05-19 14:29:10 +09:00
ThomasV
e33bc2473b
network: don't store unanswered request if result is in cache
2015-05-17 09:00:36 +02:00
ThomasV
6d0bc5d9b3
fix: nodes retry
2015-05-17 08:41:01 +02:00
ThomasV
44f06de796
network: when interface is disconnected, clear cache and resend unanswered requests
2015-05-15 14:47:59 +02:00
ThomasV
a1d1999545
move interfaces maintenance to its own function
2015-05-08 20:13:18 +02:00
ThomasV
f2c2f9d738
network: fix confusion between addresses and cached responses
2015-05-08 17:59:33 +02:00
ThomasV
233fd8ed77
revert 175bfae9e6
. store last known height in wallet instead
2015-05-08 13:43:42 +02:00
ThomasV
ffda5cd866
Merge pull request #1187 from kyuupichan/local_height
...
Move away from requiring network and blockchain objects to be able to re...
2015-05-06 17:45:42 +02:00
Neil Booth
c07e956127
Pass the response_queue to the constructor, not start().
...
Removes an unnecessary Thread base-class override. The python
documentation also strongly discourages overriding anything other
than run().
2015-05-05 20:37:25 +09:00
Neil Booth
9cf2eff16b
Make is_connected into a member function. No change in logic.
2015-05-05 20:00:10 +09:00
Neil Booth
175bfae9e6
Move away from requiring network and blockchain objects to be able to request local height.
...
We store it in the config object instead of in the blockchain object.
The blockchain object now refers to its config, and calls refresh_height() to update it.
The network objects also refer to the config rather than the blockchain.
This is the first of many small steps to untangle the verifier from stored state and so
permit the history tab to work in offline mode. The refactoring will simultaneously clean
up a lot of accumulated cruft.
2015-05-03 15:19:29 +09:00
ThomasV
cdd5d6e130
fix #1136
2015-04-09 19:05:11 +02:00
ThomasV
911a60c02d
separate timeouts for server and nodes retry
2015-04-02 15:12:01 +02:00
ThomasV
98cc9c53d1
do not write config file from network class
2015-04-02 10:50:09 +02:00
ThomasV
a805afa900
save recent_servers in separate file
2015-04-02 10:12:51 +02:00
ThomasV
cf0fcac9fa
fix deserialize_server bug
2015-03-28 19:17:07 +01:00
ThomasV
a4cb70649d
fix synchronizer hanging when not connected.
2015-03-14 08:43:43 +01:00
ThomasV
72688a5cfa
clean implementation of daemon threads
2015-03-13 23:04:29 +01:00
ThomasV
9e4eda24b5
fix #1082
2015-03-13 12:00:08 +01:00
ThomasV
f32f1183fc
print_error methods. request timeout for interface
2015-03-12 21:39:05 +01:00
ThomasV
1569cd0420
serialize/deserialize methods for servers
2015-03-12 18:06:28 +01:00
ThomasV
c4d0314817
network: separate interface management from reconnection logic
2015-03-12 17:44:16 +01:00
ThomasV
799a08514b
move proxy logic to network.py. reload socket module if proxy is disabled
2015-03-12 12:56:06 +01:00
ThomasV
0947eb7960
should test proxy_str. fixes issue #1073
2015-03-10 09:05:44 +01:00
ThomasV
73d8ba24d9
fix network connection issues
2015-03-07 22:47:25 +01:00
ThomasV
e9b06f494d
abort set_parameters if changes are not allowed by config
2015-03-01 07:27:05 +01:00
ThomasV
7a9141e509
deserialize network.proxy to prevent variability
2015-02-28 20:04:03 +01:00
ThomasV
510934d545
do not store protocol explicitly
2015-02-28 15:37:50 +01:00
ThomasV
f489466709
fix: notify proxy when switching server
2015-02-28 14:08:58 +01:00
ThomasV
761871b900
sanitize server and protocol
2015-02-25 17:14:31 +01:00
ThomasV
e389745491
remove appdata_dir and data_dir
2015-02-18 18:48:32 +01:00
ThomasV
03a88743a3
fix typo: stdout
2015-02-11 21:05:33 +01:00
ThomasV
3c6cfc8b70
disable server selector if server is passed from cmd line
2015-01-29 13:35:19 +01:00
ThomasV
8ca17a3e70
print traceback is an exception occurs in network.process_request
2015-01-29 11:32:58 +01:00
ThomasV
30763a6555
fix config: serialize/deserialize proxy
2015-01-29 11:21:17 +01:00
Tafelpoot
d9c5250a6f
removed trailing whitespace and fixed indentation in history widget
2014-10-21 19:05:51 +02:00
ThomasV
b8f971fcd6
force reconnect after delay
2014-09-16 12:21:01 +02:00
ThomasV
90590f70ab
reconnect to main server after timeout
2014-09-14 14:27:39 +02:00
Eagle[TM]
a7cd8b5e9f
Update default server list
2014-08-19 14:41:27 +02:00
ThomasV
854f49fbed
fix number of interfaces being opened
2014-08-17 11:48:46 +02:00
ThomasV
ecdb90b0b7
re-use pending_servers to avoid sending unnecessary notifications
2014-08-04 11:29:58 +02:00
ThomasV
642258ebaa
notify about interfaces
2014-07-30 11:27:52 +02:00