Commit Graph

308 Commits

Author SHA1 Message Date
Peter Šurda c85d52b8e8
Asyncore updates
- asyncore is now on by default
- inv announcements implemented
- bandwidth limit implemented / fixed
- stats on download / upload speed now work
- make prints into logger
- limit knownNodes to 20k as it was before
- green light fixed
- other minor fixes
2017-05-29 00:24:07 +02:00
Peter Šurda f8b4b427fc
Asyncore update
- bugfixes
- UDP socket for local peer discovery
- new function assembleAddr to unify creating address command
- open port checker functionality (inactive)
- sendBigInv is done in a thread separate from the network IO
thread
2017-05-27 19:09:21 +02:00
Peter Šurda d699a28e49
Add variables to errno and socket
- to make sure they work cross platform without having to do
complicated tests
2017-05-27 19:00:19 +02:00
Peter Šurda e309a1edb3
Asyncore update
- separate queue for processing blocking stuff on reception
- rewrote write buffer as a queue
- some addr handling
- number of half open connections correct
2017-05-25 23:04:33 +02:00
Peter Šurda 51e52401fe
Windows plaform check pythonic
- moved to .startswith instead of 'in'
- thanks @Lvl4sword
2017-05-25 15:00:10 +02:00
Peter Šurda d635e515b9
Big Asyncore update
- most of the stuff is done so it partially works
- disabled pollers other than select (debugging necessary)
- can switch in the settings, section network, option asyncore (defaults
to False)
2017-05-24 16:51:49 +02:00
Dmitri Bogomolov 34084bbc80
Total setup.py cleanup and simple script installation 2017-02-28 15:51:49 +02:00
Peter Šurda 6062277d60
Rename configparser.py to bmconfigparser.py
- it was causing problems with py2app because the source of python's own
  CongigParser is also configparser.py
2017-02-22 09:34:54 +01:00
Peter Šurda e664746f04
More knownNodes init
- also init children if they are missing
2017-02-08 20:52:18 +01:00
Peter Šurda 35a712d11d
KnownNodes missing init
- init knownnodes when connecting to a stream
2017-02-08 20:48:22 +01:00
Peter Šurda 157881bc63
Cyclic import fix
- networkDefaultProofOfWorkNonceTrialsPerByte and
  networkDefaultPayloadLengthExtraBytes cyclic import fix
- PyBitmessage should launch now when there's no keys.dat
2017-02-08 20:37:42 +01:00
Peter Šurda 59f3a2fbe7
Reduce cyclic dependencies
- rearranged code to reduce cyclic dependencies
- doCleanShutdown is separated in shutdown.py
- shared queues are separated in queues.py
- some default values were moved to defaults.py
- knownnodes partially moved to knownnodes.py
2017-02-08 13:41:56 +01:00
Peter Šurda f6bdad18a3
Improved stream handling
- version command sends list of all participating streams
- biginv sends lists of hosts for all streams the peer wants (plus
  immediate children)
- objects will spread to all peers that advertise the associated stream
- please note these are just network subsystem adjustments, streams
  aren't actually usable yet
2017-02-06 17:47:05 +01:00
Peter Šurda 4f70eaa01f
Fix curses mode 2017-02-02 15:48:56 +01:00
Peter Šurda fa0a3135e7
Fixes pointed out by landscape.io
- missing/wrong/obsolete imports
- logger formatting
2017-01-11 17:26:25 +01:00
Peter Šurda ac348e4e6b
Fixes and refactoring
- fixes errors introduced in the earlier refactoring
- more variables moved to state.py
- path finding functions moved to paths.py
- remembers IPv6 network unreachable (in the future can be used to skip
  IPv6 for a while)
2017-01-11 17:00:00 +01:00
Peter Šurda 8bcfe80ad0
Refactoring of config parser and shared.py
- got rid of shared config parser and made it into a singleton
- refactored safeConfigGetBoolean as a method of the config singleton
- refactored safeConfigGet as a method of the config singleton
- moved softwareVersion from shared.py into version.py
- moved some global variables from shared.py into state.py
- moved some protocol-specific functions from shared.py into protocol.py
2017-01-11 14:27:19 +01:00
Peter Šurda e84b19613e
Inventory refactoring
- minor refactoring, made it into singleton instead of a shared global
  variable. This makes it a little bit cleaner and moves the class into
a separate file
- removed duplicate inventory locking
- renamed singleton.py to singleinstance.py (this is the code that
  ensures only one instance of PyBitmessage runs at the same time)
2017-01-10 21:15:35 +01:00
Peter Šurda 60c447f56b
Merge commit 'd3a0404274e5105b9d6279901246af8f7009eb6d' into v0.6
- "env python2.7.x" was causing problems
2016-08-14 12:44:18 +02:00
Peter Šurda 36a04fd7d9
Add SMTP server
- you can now use SMTP to send messages
- uses bmaddr.lan domain
- runs on 127.0.0.8425 if you set "smtpd" to True
- mandatory authentication with smtpdusername and smtpdpassword
2016-07-19 13:57:54 +02:00
ng0 d3a0404274 Fix python shebangs from `#!/usr/bin/env python2.7*' to `#!/usr/bin/python2.7'.
* src/bitmessagecli.py: fix it.
* src/bitmessagemain.py: same.

This fixes #887.
2016-07-16 15:42:19 +00:00
Peter Šurda 685ff6cecd
Startup fixes
- correctly test for "smtpdeliver" variable without crashing
- new method for safely getting values from config even if the option
  may be missing
2016-06-30 15:19:58 +02:00
Peter Šurda d3e8771aed
Lock file fixes
- daemon mode lock file didn't work correctly in the last commit
2016-06-30 13:07:28 +02:00
Peter Šurda 4865659d72
Main process fixes
- handles old dialog versions better if using curses
- can spawn SMTP delivery thread if configured (only when in daemon
  mode)
- daemonized mode now works more like it's properly supposed to on unix
  (double fork etc). You may have to adjust your init scripts, when
  when using upstart for example you should now use "expect daemon"
- daemon mode now cleanly shuts down when TERM/INT signal is received
2016-06-30 12:30:05 +02:00
mailchuck b724d3ee4f Copyright year updates 2016-05-02 15:00:26 +02:00
mirrorwish 554627dd92 Refactor Inventory 2016-05-02 15:00:25 +02:00
mailchuck 0ab0e6757a Restrict pending parallel requests on proxy
This saves some network resources if using Tor, for example.
2016-05-02 15:00:24 +02:00
mailchuck bcae62938a Unused variable 2016-05-02 15:00:23 +02:00
mailchuck 24a2deed8f Cleanup lockfile on exit
singleton.py design was broken.
Fixed Bitmessage#775
2016-05-02 15:00:23 +02:00
mailchuck 6a965cd31a Don't test for Qt in daemon mode
Initialisation of the daemon variable was missing at launch.

Fixes #161
2016-05-02 15:00:23 +02:00
mailchuck 549d91dc68 Re-disable windows SMP frozen support
The recommended workaround didn't work.
2016-05-02 15:00:22 +02:00
mailchuck d0b73eb211 SMP fix for frozen Windows 2016-05-02 15:00:21 +02:00
mailchuck d69c2e097f Cleaner shutdown
Addresses Bitmessage#549
2016-05-02 15:00:21 +02:00
mailchuck c03c563a74 Make UPnP into a thread
- UPnP is now a separate thread that will continue to setup UPnP
- shutdown waits for threads that shutdown correctly (Addresses
Bitmessage#549)
2016-05-02 15:00:21 +02:00
Denilson M. Amorim 28f46cb8b3 Dont run twice if daemon too 2016-05-02 15:00:21 +02:00
Denilson M. Amorim cf610080b9 Squash: Single instance and pop up old instance 2016-05-02 15:00:21 +02:00
lightrabbit f0f9f679e6 Add UPnP support. 2016-05-02 15:00:17 +02:00
sbkaf 800fd2a143 finished implementing more email client like interface 2016-05-02 15:00:17 +02:00
sbkaf 585873e4f3 interface 2016-05-02 15:00:17 +02:00
Jonathan Warren ba27f6e8a6 Made error message for Raspberry Pi users less serious-sounding 2015-03-19 18:09:04 -04:00
bmng-dev 23b55652b9 New depends module to check dependencies. Moved version check to new depends module. 2014-12-25 19:48:05 -05:00
Jonathan Warren fdb0d1e776 Merge branch 'master' into ProtoV3 2014-10-14 14:28:26 -04:00
Jonathan Warren 61653bdc0d Revert "Catch the standard Unix SIGTERM kill signal and do a graceful shutdown" 2014-10-14 14:25:13 -04:00
Jonathan Warren e096c37f7e save debug.log in correct directory 2014-10-13 01:59:16 -04:00
Jonathan Warren b6e0396333 resolve minor merge conflict with master 2014-10-12 23:33:09 -04:00
Jonathan Warren c306062282 Bitmessage Protocol Version Three 2014-08-27 03:14:32 -04:00
JonathanCoe 3b42805efc Catch the standard Unix SIGTERM kill signal and do a graceful shutdown of PyBitmessage.
We already do this for the SIGINT kill signal. The change allows us to do a clean
shutdown of PyBitmessage when its process has been separated from the terminal.
2014-08-26 13:55:42 +02:00
Jonathan Warren ea6f34ade6 removed use of memoryview so that we can support python 2.7.3 2014-08-06 15:54:59 -04:00
bmng-dev 4430ed0cb5 Improve version check
Move version check so it is the very first thing we do.
Perform version check for all platforms
Ensure backwards and forwards compatibility
2014-07-29 06:51:59 +00:00
Ruben de Vries c8bf3ccc63 moved the check for PyQt so that we don't need to install it when running -c 2014-07-15 17:32:00 +02:00