Commit Graph

407 Commits

Author SHA1 Message Date
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
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
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
51e52401fe
Windows plaform check pythonic
- moved to .startswith instead of 'in'
- thanks @Lvl4sword
2017-05-25 15:00:10 +02:00
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
34084bbc80
Total setup.py cleanup and simple script installation 2017-02-28 15:51:49 +02:00
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
e664746f04
More knownNodes init
- also init children if they are missing
2017-02-08 20:52:18 +01:00
35a712d11d
KnownNodes missing init
- init knownnodes when connecting to a stream
2017-02-08 20:48:22 +01:00
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
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
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
4f70eaa01f
Fix curses mode 2017-02-02 15:48:56 +01:00
fa0a3135e7
Fixes pointed out by landscape.io
- missing/wrong/obsolete imports
- logger formatting
2017-01-11 17:26:25 +01:00
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
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
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
60c447f56b
Merge commit 'd3a0404274e5105b9d6279901246af8f7009eb6d' into v0.6
- "env python2.7.x" was causing problems
2016-08-14 12:44:18 +02:00
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
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
d3e8771aed
Lock file fixes
- daemon mode lock file didn't work correctly in the last commit
2016-06-30 13:07:28 +02:00
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
Jonathan Warren
a2a7edc9be resolve merge conflict 2014-07-14 19:29:47 -04:00
Luke Montalvo
01003fc56c Merge branch 'master' of https://github.com/Bitmessage/PyBitmessage 2014-04-29 00:09:30 -05:00
Luke Montalvo
813f4c7ed9 + Add dependency list
+ Add stderr capturing
+ Add identities and network status tabs
+ Add dialogs to configure identities
+ Add color pair definitions
+ Add the '-c' flag to use the curses interface
* Reorganize imports
* Switch logger to file_only mode when running with curses
2014-04-19 13:45:37 -05:00
Neil Roberts
7da6ea958f Add support for IPv6
It will now listen on an IPv6 socket if possible or fall back to IPv4
if that doesn't work. It will no longer filter out all IPv6 addresses
and instead it will only filter out those that point to the local
network.

It looks like the DNS bootstrapping should just automatically work
because getaddrinfo already returns IPv6 addresses from the AAAA
record.

In order to convert from the ASCII representation of IPv6 addresses
and back we need inet_ntop and inet_pton. Python 2 doesn't currently
provide these for Windows so instead this patch provides a hot patch
to the socket module which wraps WSAStringToAddress and
WSAAddressToString using ctypes.
2014-03-12 01:48:48 +00:00
Jonathan Warren
c98ca590a8 Fix #566 2014-01-20 15:25:02 -05:00
Jonathan Warren
0b81e9b206 rename bitmessageapi.py to api.py 2014-01-12 19:56:30 -05:00
Jonathan Warren
6af92a5e09 fix line which keeps user from running more than once Bitmessage instance 2014-01-12 19:50:44 -05:00
Jonathan Warren
d150476e98 Added comments and console output to expain that you cannot run bitmessageapi.py directly 2014-01-12 19:30:01 -05:00
Eino Mäkitalo
baf634f89b Merge with original upstream changes
Conflicts:
	src/bitmessagemain.py
2013-12-30 10:55:06 +02:00
Eino Mäkitalo
b0c582605f Cleaning imports and separating API to another file. PyLint fixes for main file 2013-12-30 02:53:44 +02:00
Jonathan Warren
08b92541c6 Merge pull request #588 from BioGeek/patch-1
remove duplicate code
2013-12-29 15:35:11 -08:00
Jonathan Warren
12adccf965 Merge pull request #576 from yurivict/tray_inbox_unread_indicator
[NEW FEATURE] Implemented the indicator in tray icon that there are unread messages
2013-12-24 21:31:49 -08:00
Jeroen Van Goey
90b0d4c640 remove duplicate code
There was twice a check for the Python version on OSX, but the logging in the second check was never reached
2013-12-09 00:32:19 +01:00
Jeroen Van Goey
fb98cd0fc8 remove duplicate code
There was twice a check for the Python version on OSX but the logging in the second step could never be reached.
2013-12-09 00:25:07 +01:00
Jonathan Warren
df7116bd72 on close, save objectProcessorQueue to disk 2013-12-02 01:35:34 -05:00
Yuri
42faf2aaa0 [NEW FEATURE] Implemented the indicator in tray icon that there are unread messages. 2013-11-28 17:05:53 -08:00
Jonathan Warren
45a0046e7d completed work on objectProcessorThread 2013-11-20 01:29:37 -05:00
Jonathan Warren
a4b5ded803 we no longer need to add chans to our address book 2013-11-02 00:02:46 -04:00
Jonathan Warren
6abb589f01 Merge branch 'master' of github.com:Atheros1/PyBitmessage 2013-11-01 20:56:50 -04:00
Jonathan Warren
41c3b73343 comment 2013-10-26 18:49:22 -04:00
Jonathan Warren
9dd674a117 Merge pull request #535 from Atheros1/master
API commands: createChan, joinChan, leaveChan, deleteAddress
2013-10-25 16:59:24 -07:00
Jonathan Warren
12edee4ac4 added API commands: createChan, joinChan, leaveChan, deleteAddress 2013-10-25 19:35:59 -04:00
Jonathan Warren
19eb77fb4f Merge branch 'master' of git://github.com/Eylrid/PyBitmessage into Eylrid-master 2013-10-25 17:46:33 -04:00
Joshua Noble
ed0a57d998 Fixed typo in getInboxMessagesByAddress 2013-10-12 00:33:19 -04:00
John Kozan
6787e4b932 == should be = 2013-10-06 22:04:09 -06:00
fuzzgun
b37e0ec027 Changelog update for 0.4.0 2013-09-28 13:09:15 +01:00
amos
379d27b5d8 update address versions in addChan 2013-09-23 23:00:50 -07:00
amos
000fe293d6 Merge branch 'decodeAddress2'
Conflicts:
	src/bitmessagemain.py
2013-09-23 22:39:40 -07:00
amos
e878fb4c96 Add api method decodeAddress
Add decodeAddress as an api call. Like the addresses.decodeAddress function
it return status, addressVersion, streamNumber, and ripe. ripe is base64
encoded.
2013-09-23 22:37:50 -07:00
Jonathan Warren
7e07d7bc7e _verifyAddress support v4 addresses 2013-09-24 00:55:13 -04:00
amos
8a3028e7c1 Merge branch 'fixApi' 2013-09-23 21:26:30 -07:00
amos
cdf4d5d75c Change the accepted address versions
Update _verifyAddress to accept version 4.
2013-09-23 21:19:02 -07:00
amos
250f36b670 Merge branch 'master' of https://github.com/Bitmessage/PyBitmessage 2013-09-23 20:00:22 -07:00
Jonathan Warren
ef500501d7 small fixes to address generator and listAddresses2 2013-09-21 13:30:46 -04:00
Jonathan Warren
02ea2a50d3 more v4 address work. Should be done. 2013-09-18 00:04:01 -04:00
Jonathan Warren
56168e82b5 most initial work on v4 pubkeys completed 2013-09-13 00:27:34 -04:00
Amos Bairn
40033d9e87 add api method addChan
This solves issue #484
2013-09-11 23:04:16 -07:00
Jonathan Warren
33ea666df7 Merge pull request #494 from Atheros1/master
Smarter advertisement of object hashes and peers
2013-09-09 17:29:20 -07:00
Grant T. Olson
34203d73dd Only UPDATE readStatus if it changed 2013-09-07 13:35:10 -04:00
Jonathan Warren
a9b15f83ba initial testing inv refactorization 2013-09-06 18:55:12 -04:00
Jonathan Warren
477568f501 changed API commands which modify and list the address book per discussion in #482 2013-09-06 15:06:29 -04:00
Jonathan Warren
08024748b0 Merge pull request #482 from grant-olson/add_delete_addressbook
addAddressBook and deleteAddressBook API calls
2013-09-05 11:06:06 -07:00
Grant T. Olson
bfd79e0ae1 Use same argument order as addSubscription for addAddressBook 2013-09-05 06:42:12 -04:00
Grant T. Olson
db81f0c11e Add add/deleteAddressBook APIs, extract address verification into reuable code, and make some QT stuff re-renderable 2013-09-05 06:31:52 -04:00
Jonathan Warren
c8b727e82b Merge pull request #480 from grant-olson/chan_in_listAddress
Add chan true/false to listAddresses results
2013-09-04 17:20:49 -07:00
Jonathan Warren
c06bbc14f8 Give user feedback when disk is full 2013-09-04 20:14:25 -04:00
Grant T. Olson
48a3bdfefc Add chan true/false to listAddresses results 2013-09-04 19:25:44 -04:00
Jonathan Warren
1bbb8240ed modifications to API commands used by mobile device 2013-09-04 16:51:19 -04:00
Jonathan Warren
3ca4578f7f minor changes to previous commit- adding listAddressBook to API 2013-09-03 00:30:48 -04:00
Jonathan Warren
cf52d93a67 Merge branch 'master' of git://github.com/Eylrid/PyBitmessage into Eylrid-master 2013-09-03 00:26:43 -04:00
Jonathan Warren
e214f0bb66 Added ability to set a message's read status using getInboxMessageID. This rather than #368 2013-09-03 00:20:30 -04:00
Jonathan Warren
f64461feb0 fixes to new SQL refactoring 2013-09-02 23:14:43 -04:00
Jonathan Warren
ea3cf9e00e minor changes to previous commit 2013-09-02 18:24:22 -04:00
Grant T. Olson
03ce8ba8fb new API method needs to use helper_sql 2013-08-29 08:47:27 -04:00
Grant T. Olson
b5873187bf Merge branch 'master' into sql_refactor 2013-08-29 08:45:45 -04:00
Grant T. Olson
74cd6c24b2 Have API calls use sql helper 2013-08-27 09:55:37 -04:00
Joshua Noble
b5f42d7549 Added trashSentMessageByAckData API command 2013-08-26 22:29:57 -04:00
Jonathan Warren
3ae8dd8eee log traceback on API exception 2013-08-26 00:06:49 -04:00
Jonathan Warren
14a968b499 github demanded a manual merge 2013-08-25 22:52:38 -04:00
Jonathan Warren
0d69ebb125 Merge branch 'raise_api_error' of git://github.com/grant-olson/PyBitmessage into grant-olson-raise_api_error 2013-08-25 22:38:51 -04:00
Jonathan Warren
4396bc7f97 manually undid much of pull #287. Discussion in #398 2013-08-25 19:31:54 -04:00
Jonathan Warren
ea54f8e779 resolve merge conflict 2013-08-25 16:23:28 -04:00
Jonathan Warren
7146823b10 Merge branch 'daemon_spelling_error' of git://github.com/DivineOmega/PyBitmessage into DivineOmega-daemon_spelling_error 2013-08-25 16:02:02 -04:00
Jonathan Warren
4c920fd153 resolve merge conflict 2013-08-25 15:56:20 -04:00
Jonathan Warren
0132db33dc show number of each message type processed in the API command clientStatus 2013-08-24 19:40:48 -04:00
Amos Bairn
a290b61f1a Add listAddressbook to api
listAddressbook returns label and address for each address in the
addressbook.
2013-08-22 07:35:48 -07:00
Grant T. Olson
b222693d98 Have OSX check run before we import classes and error out 2013-08-15 11:37:23 -04:00
Jonathan Warren
27f10f6ac1 fix merge conflicts 2013-08-12 00:09:36 -04:00
Grant T. Olson
2526608c39 Convert 'API Error' to raise APIError()
Catch of unhandled exceptions and return them as new API Error 21 - Unexpected API Failure

_decode method that transforms "!!!".decode('hex')errors to new API Error 22: Decode Error
2013-08-11 16:22:03 -04:00
Jordan Hall
53ca5b03ff Changing text for API Error 0007 log warning (cont.) 2013-08-10 23:13:15 +01:00
Jordan Hall
2c09326c37 Changing text for API Error 0007 log warning 2013-08-10 23:10:21 +01:00
Jordan Hall
326e294932 Reverted back to importing only logger instead of all of shared 2013-08-09 23:32:49 +01:00
Jordan Hall
a69a00d186 Improved logger function calls and import shared here instead of debug 2013-08-09 23:26:16 +01:00
Jonathan Warren
176340c22d added api command: getPubkeyByHash 2013-08-08 17:50:12 -04:00
Jordan Hall
9710a86187 Minor spelling error: 'deamon' -> 'daemon' 2013-08-07 22:02:53 +01:00
merlink
7850e9aa68 Created Object for controlling bitmessage deamon 2013-08-07 21:46:23 +01:00
merlink
28acbac823 Added deamon modoe to main function 2013-08-07 21:46:22 +01:00
merlink
f8cdfbfaa0 Changed start code for deamon mode 2013-08-07 21:46:22 +01:00
Jordan Hall
13196233a9 Merge with upstream and fixed conflicts 2013-08-07 21:40:01 +01:00
Jordan Hall
ab4d53593b Fix to python version critical log message 2013-08-07 21:34:46 +01:00
Jordan Hall
b529280160 Further fixes 2013-08-07 21:22:23 +01:00
Jordan Hall
26b82984a2 Fixes to logger function calls 2013-08-07 21:12:32 +01:00
Jonathan Warren
107c9376c5 Merge branch 'master' of https://github.com/Bitmessage/PyBitmessage 2013-08-07 15:21:31 -04:00
Jordan Hall
0f357529ed bitmessagemain, changing prints tologger functions 2013-08-06 22:28:21 +01:00
Jonathan Warren
d51fe37a66 added requested API commands for mobile device 2013-08-06 13:19:26 -04:00
merlink
084f67b10f Created Object for controlling bitmessage deamon 2013-08-06 13:23:56 +02:00
merlink
86383f0a9f Added deamon modoe to main function 2013-08-06 10:37:31 +02:00
merlink
c5442029b5 Changed start code for deamon mode 2013-08-05 22:29:06 +02:00
Jonathan Warren
17533237fe some initial work done to support particular android client 2013-08-02 18:35:31 -04:00
Jonathan Warren
03200d3bb1 Small changes to API (backwards compatible) 2013-08-01 18:39:45 -04:00
Jonathan Warren
5c3bc63a1f Only allow 1 connection per IP 2013-08-01 12:16:31 -04:00
Grant T. Olson
04cb6575bd getInboxMessageIds and getSentMessageIds 2013-07-31 19:46:45 -04:00
Jonathan Warren
46c900f027 show Invalid Method error in same format as other API errors 2013-07-31 15:38:01 -04:00
Jonathan Warren
f8f940cf30 Merge branch 'master' of github.com:Atheros1/PyBitmessage 2013-07-31 12:37:06 -04:00
Jonathan Warren
cddfe2c44f Only return one item for certain API commands 2013-07-31 12:08:56 -04:00
Jonathan Warren
8c0450ce39 having parameters here doesn't hurt anything 2013-07-30 19:53:09 -04:00
Grant T. Olson
fbbc657380 Add listSubscriptions method to API 2013-07-30 19:41:40 -04:00
Jonathan Warren
aa66d74d8d Small backwards-compatible changes to API 2013-07-28 18:25:52 -04:00
Daniel Kraft
665659f214 Merge branch 'master' of https://github.com/Bitmessage/PyBitmessage into namecoin-id
Conflicts:
	src/bitmessageqt/bitmessageui.py
	src/helper_startup.py
2013-07-27 08:24:52 +02:00
Jordan Hall
82282b03fe Made inbox message retrieval API function also return read status 2013-07-27 00:38:38 +01:00
Jonathan Warren
c27494ace9 Further work to implement the Connect dialog on startup 2013-07-24 12:43:51 -04:00