ThomasV
5c73bc5bc7
interface: init ping_time with 0 so that the client sends version message
10 years ago
ThomasV
2a92a310ba
typo
10 years ago
ThomasV
8c07bdc3bc
do not timeout if interface is receiving data
10 years ago
Neil Booth
97b5f6d6a3
Fix two races in interface.py.
First, close the socket from the thread itself rather than from
the stop() function. This prevents another thread closing the
socket that the interface thread is simultaneously using.
Second, it occasionally would happen that the parent thread such as
network.py start() an interface, do a send_request() and timeout
waiting for a response (timeouts are 0.1s). It would check
is_connected(), get False, and assume the connection has failed.
In fact the thread hadn't even been scheduled or gotten around to
completing the socket connection. Fix by having self.connected
start out True. If the connection fails or times out, we set
connected to False soon enough.
Finally for correctness we need to deepcopy a send_request() rather
than take a reference to it.
10 years ago
ThomasV
8656785aa7
fix: use request_time for interface timeout
10 years ago
ThomasV
45fd3ef343
interface: send from same thread and simplify timeouts
10 years ago
ThomasV
78f5dbb72e
revert c64e0c0e64
10 years ago
Neil Booth
6171779442
Move response getting to its own function.
This makes the operation of run() more clear.
No essential change in functionality.
10 years ago
Neil Booth
0cfcd2c7b2
Remove self.lock
It is now unused; all necesary locking is done by the Queue objects.
10 years ago
Neil Booth
c64e0c0e64
Send requests only from the interface thread.
Currently requests are sent from the requestor's thread. The lock is
not properly held where necessary so this is not thread-safe. For example
it can race with the thread stopping and closing the socket the
requestor is trying to use to send with.
Resolve such races by having send_request() simply queue the requests,
which are asynchronously sent from the interface thread itself.
10 years ago
Neil Booth
6920747a5d
Move ping functionality into its own function.
First step in cleaning up the run() function.
Calls stop() rather than setting is_connected to False on
case of timeout, which cleanly closes the socket.
10 years ago
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().
10 years ago
Neil Booth
9cf2eff16b
Make is_connected into a member function. No change in logic.
10 years ago
Neil Booth
4d55cb9528
First of several incremental patches tightening up interface.py.
Remove some unneeded imports, a constant and a line of dead code.
Document the current external API interface.py provides.
10 years ago
ThomasV
f32f1183fc
print_error methods. request timeout for interface
10 years ago
ThomasV
799a08514b
move proxy logic to network.py. reload socket module if proxy is disabled
10 years ago
ThomasV
ae7405a10f
remove old http interface code, not used
10 years ago
ThomasV
92987d9019
add comment about proxy side effect
10 years ago
ThomasV
73d8ba24d9
fix network connection issues
10 years ago
ThomasV
fdaf4e42a9
print reason if connection fails
10 years ago
ThomasV
b3364b87d1
interface: don't show traceback on error 104
10 years ago
ThomasV
992a634a77
serialize: handle case where proxy is None
10 years ago
ThomasV
30763a6555
fix config: serialize/deserialize proxy
10 years ago
ThomasV
c225795793
use ssl.PROTOCOL_SSLv23
10 years ago
Tafelpoot
d9c5250a6f
removed trailing whitespace and fixed indentation in history widget
10 years ago
ThomasV
60e5450a0e
rm print statement
10 years ago
ThomasV
0c0da6a36d
use certs from request module in interface.py
10 years ago
ThomasV
52450289ff
we must check host name if cert is signed by CA
10 years ago
ThomasV
889ac782c1
simplify interface.get_socket, and fix a bug with new certificates
10 years ago
ThomasV
dd849964d1
interface: forward errors
10 years ago
ThomasV
8ca42bbf43
accept ssl certs signed by CA
11 years ago
ThomasV
ae56de3160
rm dead code
11 years ago
ThomasV
3a9bb3cd43
interface: print debug message with the correct id
11 years ago
ThomasV
efa0972971
use ping time to determine if we are disconnected
11 years ago
ThomasV
411a87e0a3
fix disconnection error
11 years ago
ThomasV
58c817f81a
close interfaces on shutdown
11 years ago
ThomasV
44072a4f48
separate interface classes
11 years ago
ThomasV
ed8f9666df
remove interface.synchronous_get
11 years ago
ThomasV
fb878e1045
fix: catch server.version
11 years ago
ThomasV
28df27fba2
update interface.py
11 years ago
ThomasV
9efc25bdba
interface: use parse_json
11 years ago
ThomasV
9a07c1cb44
rename process_response
11 years ago
ThomasV
191520f064
interface.py: print -> print_error
11 years ago
ThomasV
f9985ae233
use x509 to check if server certificate has expired
11 years ago
ThomasV
80a988e337
slightly better notifications. at least, it fixes #652
11 years ago
ThomasV
696766c370
json-friendly debug messages. fix #659
11 years ago
ThomasV
268a099f87
sync_get
11 years ago
dmcdad
292ab39553
Update interface.py
Fix timeout problem under Python 2.7.1 where a socket.error 60 is thrown instead of socket.timeout exception.
11 years ago
ThomasV
f4f418e9ec
return message ids with send_http too
11 years ago
ThomasV
de94eaadeb
fix issue occuring with set_server
11 years ago