Commit Graph

713 Commits

Author SHA1 Message Date
Michael 355346298b LD signatures will now be checked when receiving messages 2018-09-21 03:39:32 +00:00
Michael 752b5fe284 Outgoing posts are now signed 2018-09-20 21:45:23 +00:00
Michael 11310f4cf0 Relocated AP signature functions, reduced magic auth functions 2018-09-20 18:16:14 +00:00
Michael 0866fbaf8c Code cleaning / wrong table for flags 2018-09-20 09:50:03 +00:00
Michael 0d51474e73 Relocated function 2018-09-20 05:37:01 +00:00
Michael 34cb0aa406 JSON-LD stuff is now in a separate file 2018-09-20 05:30:07 +00:00
Michael Vogel e68c48e88f
Merge pull request #5763 from MrPetovan/task/improve-getsiteinfo
Use OEmbed data when available no matter the type
2018-09-17 06:40:04 +00:00
Hypolite Petovan 102adf86ae Restore partial condition in OEmbed block of ParseUrl::getSiteInfo 2018-09-16 09:18:31 -04:00
Hypolite Petovan 5b5e5ef4db Use OEmbed data when available no matter the type 2018-09-13 21:50:52 -04:00
Michael 8c00e88f79 The endless saga of the fight against notices continues 2018-09-13 21:11:52 +00:00
Michael 99244d33f5 Fix for #5732 - too much links had been detected as photos 2018-09-07 06:10:33 +00:00
Michael 2592c3891c forgotten $ 2018-09-06 21:10:48 +00:00
Michael 1d4a5402ff Picture posts do work again - everything else should work as well 2018-09-06 20:30:16 +00:00
Michael 04fb885857 Fix: Posts with pictures will now look good again on connector networks 2018-09-06 04:24:34 +00:00
Hypolite Petovan 59d06b6c78
Merge pull request #5719 from annando/notices-yeah
Good news, everyone - again somce notices removed
2018-09-04 19:09:11 -04:00
Michael 821429fdf1 Good news, everyone - again somce notices removed 2018-09-04 17:48:09 +00:00
Hypolite Petovan 9744f0e780 Update ParseUrl::getSiteinfo type recognition
- Added obsolete twitter card type provision
2018-09-02 17:50:27 -04:00
Hypolite Petovan 8bcc3c6860 Fix formatting in Util/ParseUrl
- Remove commented out code
- Replace double quotes with simple quotes
- Remove parentheses for language construct
- Add spaces around operators
- Rename variables
2018-09-02 17:46:28 -04:00
Michael fd7e45042a The days are getting shorter, like the list of removed notices ... 2018-09-02 07:47:48 +00:00
Michael 2079caea14 Issue 3501: Mail contacts can be added again 2018-08-26 19:49:39 +00:00
Michael Vogel 20127a77b3 Removing a small notice in the network.php (#5652) 2018-08-22 18:46:44 -04:00
Hypolite Petovan c0e728e7e5 Fix query string parsing border case in Util\Proxy 2018-08-05 15:57:04 +02:00
Michael Vogel 2c8c803d64 Avid notices and warnings (#5546) 2018-08-02 19:07:20 +02:00
Roland Häder 4d39164c1e [WIP] Rewrite to Proxy class: (#5507)
* Rewrite to Proxy class:
- introduced new Friendica\Network\Proxy class for in exchange of proxy_*()
  functions
- moved also all PROXY_* constants there as Proxy::*
- removed now no longer needed mod/proxy.php loading as composer's auto-load
  will do this for us
- renamed those proxy_*() functions to better names:
  + proxy_init()           -> Proxy::init()         (public)
  + proxy_url()            -> Proxy::proxifyUrl()   (public)
  + proxy_parse_html()     -> Proxy::proxifyHtml()  (public)
  + proxy_is_local_image() -> Proxy::isLocalImage() (private)
  + proxy_parse_query()    -> Proxy::parseQuery()   (private)
  + proxy_img_cb()         -> Proxy::replaceUrl()   (private)

* Ops, need to set $a here ...

* CR request:
- moved Proxy class to Friendica\Module
- extended BaseModule

* Ops, no need for own instance of $a when self::getApp() is around.

* Proxy-rewrite:
- proxy_url() and proxy_parse_html() are both non-module functions (now
  methods)
- so they must be splitted into a seperate class
- also the SIZE_* and DEFAULT_TIME constants are both not relevant to module

* No instances from utility classes

* Fixed error:
- proxify*() is now located in `Friendica\Util\ProxyUtils`

* Moved back to original place, ops? How did they move here? Well, it was not
intended by me.

* Removed duplicate (left-over from split) constants and static array. Thank to
MrPetovan finding it.

* Renamed ProxyUtils -> Proxy and aliased it back to ProxyUtils.
2018-07-30 22:06:22 -04:00
Roland Häder bf87ad4fcf Fixed E_NOTICE in listing worker queue and new utilities class added (#5521)
* Fixes for E_NOTICE in workqueue:
- introduced class `Friendica\Util\Arrays` which will hold static methods for
  handling arrays that cannot be done with PHP's functions, like implode() on
  multi-dimensional arrays
- rewrote old-school for() loop to foreach()

* Added intial unit test with some tests on empty delimiters and/or sinle and
multi-dim array.

* Added test for for 3-dimensional arrays, thanks to  nupplaphil's feedback.
2018-07-30 21:24:26 -04:00
Hypolite Petovan ecea7425f8 Rename DBA::is_result to DBA::isResult 2018-07-23 11:04:14 -04:00
Hypolite Petovan 0ec44f3e8a Rename DBM method calls to DBA method calls 2018-07-23 11:02:24 -04:00
Roland Häder c17adaf333 Uncommon logger levels in Friendica (#5453)
* "normal" is an uncommon logger level:
- changed LOGGER_NORMAL -> LOGGER_INFO
- added LOGGER_WARNING (a common logger level)

* Used constants instead of values (MrPetovan)
2018-07-22 14:07:44 -04:00
Hypolite Petovan af6dbc654f Rename Friendica\Database\dba to Friendica\Database\DBA 2018-07-20 08:19:26 -04:00
Hypolite Petovan daa1177e3a Update use statement lists with new Friendica\Database\dba class
- Remove unused use statement
- Remove superfluous use statements (classes in the same namespace)
- Add missing use statements
2018-07-19 22:15:21 -04:00
Hypolite Petovan 1b6727fb9c Fix notice in Util\Network 2018-07-17 21:00:22 -04:00
Hypolite Petovan 065d10e587 Fix function comments in Util\Network 2018-07-15 08:03:12 -04:00
Michael Vogel 0360f7197a Several more warnings ... (#5340)
* Some more warnings removed

* Even more warnings ...

* Will it ever end? ;-)

* Avoid warning in dbstructure

* Origin and OStatus ...

* There are more warnings solved ... yeah!

* And again ...

* We are not done yet

* And more ...

* And some new places ...

* And more in the feeds

* Avoid some more

* And some backend stuff

* Notifications cleared

* Some more stuff

* and again ...

* It's getting fewer ...

* Some warnings had been hidden in the notifications

* Fix the fix

* And another missing one ...

* We need the owner here, not the user

* Forgotten user

* And more ...

* And some more warnings disappeared ...

* Some more frontend warnings

* Some backend warnings removed

* Fixed sidebar for "vier"

* And more ...

* Some more ...

* And something for "remote self"

* Am I stuck in an endless loop?

* Fix: Clear tag and file field on update

* Preset page content
2018-07-10 08:27:56 -04:00
Michael 1d745c25a7 Some more places ... 2018-07-08 12:58:43 +00:00
Michael 7d6933c898 Avoid "Trying to get property of non-object" 2018-07-08 11:46:05 +00:00
Philipp Holzer 3f7e4f5bb6
redesign of locking & caching
- New Factory "CacheDriverFactory" for Cache and Locks
- Adding Redis/Memcached Locking
- Moved Lock to Core
- other improvements
2018-06-28 22:57:17 +02:00
Philipp Holzer acf6a5cb9e
minor changes 2018-06-26 23:44:30 +02:00
Philipp Holzer d409a92ca2
minor changes 2018-06-26 23:43:43 +02:00
Philipp Holzer dd085ae592
minor changes 2018-06-26 23:42:26 +02:00
Philipp Holzer 130893673c
Bugfixing ILockDriver (forgot isLocked) 2018-06-26 23:33:02 +02:00
Philipp Holzer a57e6cfa1b
Moved Lock.php back to Utils 2018-06-26 23:28:07 +02:00
Philipp Holzer 2260b9c873
Merge branch 'develop' of https://github.com/friendica/friendica into develop 2018-06-26 22:56:08 +02:00
Philipp Holzer 0218d16335
Lock abstraction (like the Cache)
- adding interface
- adding seperate drivers
- moving Lock to the Core package
2018-06-26 22:31:04 +02:00
Hypolite Petovan e3584daef9
Merge pull request #5167 from VVelox/develop
a domain name is unlikely to be both a CNAME and A record
2018-06-26 08:05:34 -04:00
Zane C. Bowers-Hadley 8875cc7419 remove duplicate check 2018-06-26 05:03:45 -05:00
Hypolite Petovan a5550b4702
Merge pull request #5253 from rabuzarus/20180616_-_magic_auth_test_2
Port hubzillas OpenWebAuth - remote authentification
2018-06-20 17:46:04 -04:00
rabuzarus 9f493357f4 port hubzillas OpenWebAuth - fix wrong table name + fix wrong method name 2018-06-20 20:11:26 +02:00
rabuzarus 149142b4bc port hubzillas OpenWebAuth - rename Verify class to OpenWebAuthToken 2018-06-20 19:24:02 +02:00
rabuzarus 1ab3f7bfc8 port hubzillas OpenWebAuth - HTTPSignature - comment out some ActivityPub parts 2018-06-20 19:05:33 +02:00
rabuzarus 863a49d8e7 port hubzillas OpenWebAuth - rework the HTTPHeaders class 2018-06-20 18:52:37 +02:00
rabuzarus 1148c29916 port hubzillas OpenWebAuth - use random_bytes() in crypto class + bugfixes 2018-06-20 18:45:37 +02:00
rabuzarus f0235c4a98 port hubzillas OpenWebAuth - rename some methods and classes 2018-06-20 18:38:23 +02:00
miqrogroove 79446a625d
Update Emailer.php 2018-06-19 16:58:06 -04:00
miqrogroove 5b8619f501
Add Missing Fifth Argument to mail() Function Call
This is desperately needed to fix Issue #5190.  In case of any unexpected problem, the admin can use

`$a->config['system']['sendmail_params'] = false;`
2018-06-19 16:23:42 -04:00
rabuzarus b65e4b278b port hubzillas OpenWebAuth - use Contact::getIdForURL to query for contact entry 2018-06-19 16:15:28 +02:00
rabuzarus 9195ea26b1 port hubzillas OpenWebAuth - add some notes to the doxygen to refer to hubzilla's source code 2018-06-19 13:30:55 +02:00
rabuzarus af9116635b port hubzillas OpenWebAuth - readd some ActivityPup code to HTTPSig 2018-06-19 13:18:35 +02:00
rabuzarus 1c7f4e3c63 port hubzillas OpenWebAuth - remote authentification 2018-06-18 23:05:44 +02:00
VVelox ea64ec21ac
a domain name is unlikely to be both a CNAME and A record 2018-06-03 04:29:06 -05:00
Andreas Neustifter 91e0a9227e Fix #4943.
PR #4939 introduced a bug that only surfaces when using Network from extern.
Use proper self reference to fix that.
2018-04-28 06:46:46 +00:00
Andreas Neustifter 9bf58e46f6 Changes requested by @MrPetovan. 2018-04-27 20:22:17 +00:00
Andreas Neustifter 70a781fa5a Proper error when rewrite fails during install.
When Curl tries to fetch the rewrite test URL and something goes wrong the user
has no clue what was the problem. This problems can include:
- The rewriting not working at all.
- HTTPS redirects do not work.
- Curl does not accept the presented SSL cert.

This commit fixes this by providing the Curl error message to the user to further
debug the problem.

Fixes #3629.~
2018-04-27 21:27:55 +02:00
Hypolite Petovan 00985fe340 Fix self warning in Util\Temporal 2018-04-23 00:03:27 -04:00
Marcus Müller f9c34fee5a
[BUGFIX] Network: Remove URL/domain DNS_PTR checks 2018-04-12 19:28:52 +02:00
Michael 211ba75b22 Avoid "Failed to parse time string (-001-11-30T00:00:00+00:00 + 32 days)" 2018-04-04 18:58:25 +00:00
Hypolite Petovan 7acb4b0434
Merge pull request #4676 from annando/clean-url
Handle URL with unicode characters
2018-03-24 15:31:07 -04:00
Michael 055855bf9b Handle URL with unicode characters 2018-03-23 18:41:59 +00:00
Hypolite Petovan 27d94023ee Merge branch 'master' into develop 2018-03-23 06:15:55 -04:00
Michael f4ba5d9799 Fix: Events on Diaspora now should look fine 2018-03-20 06:32:17 +00:00
Hypolite Petovan 542ff9b082 Move scripts/auth_ejabberd.php to bin/ 2018-03-18 23:17:31 -04:00
Michael 858fd127a1 Fix: subscribing to the old followers hadn't worked 2018-03-14 00:27:15 +00:00
Hypolite Petovan d419d07f73 [Scrutinizer] Fix undeclared variables in src/ (except Protocol/)
- Use dba::selectFirst to remove intermediate variables `$r`
- Remove unused variable `$url_recipients` in Worker\Dellivery
2018-02-14 00:05:00 -05:00
rabuzarus 342b9af734 fix undeclared variables or wrong variable names (/src) 2018-02-12 16:08:28 +01:00
Hypolite Petovan 4050a7b8dc Replace forgotten datetime_convert() instances 2018-02-03 20:47:37 -05:00
Hypolite Petovan cea80c78e4 Replace remaining functions in include/datetime by Temporal methods
- Fix uses statements
2018-02-03 20:47:37 -05:00
Hypolite Petovan 5cca8562bc Move datetimepicker javascript to field_datetime.tpl
- Add type hint to getDateTimeField() arguments
2018-02-03 09:53:45 -05:00
Hypolite Petovan 59a5b13d2a Remove stray semicolon in Util\Temporal 2018-02-03 08:56:55 -05:00
Hypolite Petovan bb5670016e Fix wrong self references in Util\Temporal 2018-02-03 08:56:55 -05:00
Hypolite Petovan 5e7285b9ba Move Temporal::convert() to DateTimeFormat::convert() 2018-02-03 08:56:55 -05:00
Hypolite Petovan 0bee706e51 Add Temporal::local() shorthand for Temporal::convert() 2018-02-03 08:56:53 -05:00
Hypolite Petovan a2ee2b56d2 Add Temporal::localNow() shorthand for Temporal::convert() 2018-02-03 08:56:53 -05:00
Hypolite Petovan 89602e44da Add Temporal::timezoneNow() shorthand for Temporal::convert() 2018-02-03 08:56:53 -05:00
Hypolite Petovan 35d06bd9eb Add Temporal::utc() shorthand to Temporal::convert() 2018-02-03 08:56:53 -05:00
Hypolite Petovan 8aff8a76eb Add Temporal::utcNow() 2018-02-03 08:56:52 -05:00
Hypolite Petovan 38ff1b455b Add Temporal::MYSQL constant
- Rename Temporal::convert() parameter names
2018-02-03 08:56:52 -05:00
Hypolite Petovan b854905150 Move ATOM_TIME to Temporal::ATOM 2018-02-03 08:56:52 -05:00
Hypolite Petovan dc366bf1f7 Refactor datetime_convert into Temporal::convert
- Changed parameter order to save space
- Refactor select_timezone into Temporal::getTimezoneSelect
- Refactor field_timezone into Temporal::getTimezoneField
2018-02-03 08:56:51 -05:00
Hypolite Petovan d478ef6c6d Add Util\Temporal to src
- Map include/datetime functions to Temporal methods
- Move update_contact_birthdays() to Model\Contact::updateBirthdays()
2018-02-03 08:56:51 -05:00
Hypolite Petovan ea01d7078a Remove require calls to library/asn* 2018-01-31 00:49:11 -05:00
Hypolite Petovan be4c237766 Remove library/slinky 2018-01-31 00:49:11 -05:00
Michael 630cdaeb96 Added some defaults 2018-01-28 16:16:21 +00:00
Adam Magness 3220c78d70 Missing uses
missing uses for dom
2018-01-27 12:13:46 -05:00
Adam Magness 275a0aa140 missed function rename
missed rename zfetchurl
2018-01-27 12:05:05 -05:00
Adam Magness 9b8599b619 Move functions to system
move some functions to system
2018-01-27 11:59:10 -05:00
Adam Magness f04d40a37e Review update
Rename function, move others
2018-01-27 11:13:41 -05:00
Adam Magness 0f1be37279 Remove old file
remove network.php and all require_once statements
2018-01-27 08:28:20 -05:00
Adam Magness ca76e49c23 Move remaining functions
update remaining function calls
2018-01-27 08:25:54 -05:00
Adam Magness 1eb7c19c1e Move multiple functions
move multiple smaller functions
2018-01-26 23:51:41 -05:00
Adam Magness a32ba32ff4 Move post_url
move post_url function
2018-01-26 23:24:23 -05:00
Adam Magness 2f9642392d Move z_fetch_url
move z_fetch_url method
2018-01-26 23:18:38 -05:00
Adam Magness c67452f72e Move fetch_url
move fetch_url function
2018-01-26 23:09:48 -05:00
Adam Magness 1b51777825 Create Network class
Create Network class and copy methods
2018-01-26 22:51:07 -05:00
Hypolite Petovan b0a764b14c Use password_hash() for passwords
- Use legacy_password to update double-hashed passwords
2018-01-20 22:29:03 -05:00
Adam Magness 11cf36105c Update Addon functions and calls
Update function names and calls for Addon class.
2018-01-20 07:48:22 -05:00
Hypolite Petovan e36f2bb1fb Use short form array syntax everywhere
- Add short form array syntax to po2php.php generation
2018-01-15 14:07:17 -05:00
Adam Magness a80705a836 Function calls
Rename function, update calls
2018-01-15 08:32:11 -05:00
Adam Magness 8e5e603008 Create mimetype class
move attach.php function to mimetype class
2018-01-15 08:30:12 -05:00
Hypolite Petovan ae66bcaff3 Rename selectOne to selectFirst 2018-01-10 12:57:21 -05:00
Hypolite Petovan da60893590 Replace dba::select(limit => 1) by dba::selectOne
- Convert array declarations to new style
2018-01-10 12:57:21 -05:00
Michael f7d3ba26c8 The internal authentication for XMPP does work again 2018-01-07 00:55:20 +00:00
Hypolite Petovan 1f805da94f Move ParseUrl to Util namespace 2018-01-04 12:03:15 -05:00
Adam Magness dc5de5adbd Public function
Make private function public.
2017-12-31 08:31:06 -05:00
Adam Magness db653e4451 Move salmonKey to Salmon class
move the salmonKey function from Crypto to Salmon
2017-12-31 08:04:36 -05:00
Adam Magness 0131fd5745 ASNValue
add missing ASNValue
2017-12-30 12:44:43 -05:00
Adam Magness a00303a6a0 Another ASN
attempt #2
2017-12-30 12:23:45 -05:00
Adam Magness 5d352641a8 ASN_BASE
error ASN_BASE not found. Probably a namespace thing.
2017-12-30 12:09:08 -05:00
Adam Magness 9e6bf79380 Crypto to src
move Crypto to src and Friendica\Util namespace
2017-12-30 11:51:49 -05:00
Michael 869af9f323 Some more logging for auth_ejabberd 2017-12-25 23:03:14 +00:00
Hypolite Petovan 2978b1eef0 Fix undefined variable/wrong parameter count/unknown functions 2017-12-17 15:33:45 -05:00
Hypolite Petovan 916236ce2f Fix docblocks types 2017-12-17 15:27:50 -05:00
Hypolite Petovan 10b72b0e9e PHPStan: Fix missing requires/namespaces 2017-12-17 15:26:43 -05:00
Michael 5a0260a10f The Map class is now done 2017-12-13 21:38:14 +00:00
Michael ea10a7c002 Map is moved to the new place 2017-12-13 21:37:34 +00:00
Michael 38d5932156 Reworked the pidfile class 2017-12-09 17:49:11 +00:00
Michael 0f149a691e Faster credentials check 2017-12-09 12:23:15 +00:00
Michael 8db5b121ff Prevent the running of multiple xmpp auth daemons at a time 2017-12-09 09:46:21 +00:00
Adam Magness 4a96f7b458 Pidfile to src
Move pidfile to Friendica\Util namespace
2017-12-04 13:12:22 -05:00
Adam Magness 9a4e741d1a Review Changes
renamed some functions and adjusted corresponding calls.
2017-12-01 21:05:06 -05:00
Adam Magness e90b0748aa Code Cleanup
Standards clean up
2017-12-01 18:13:39 -05:00
Adam Magness 6008e3df11 Email to src
Create Email class and update/rename functions and function calls.
2017-12-01 14:41:27 -05:00
Hypolite Petovan ec6f5193e2 Switch to User::authenticate
- Removed hash('whirlpool') to check password
2017-11-26 14:46:08 -05:00
Hypolite Petovan 40c37d76fe Don't cache the xmpp/password PConfig value 2017-11-23 20:34:35 -05:00
Hypolite Petovan d5887f9f9a Add use dba 2017-11-23 10:23:16 -05:00
Hypolite Petovan 93924ceac4 Move ExAuth class to src
- Move executed code to separate readStdin function
2017-11-23 09:46:04 -05:00
Adam Magness 1726ededac Emailer to src
Move emailer to src Friendica\Util namespace
2017-11-20 15:37:30 -05:00
Adam Magness ddacbf2c13 XML class standards
updated the xml class for PSR-2
2017-11-20 12:56:31 -05:00
Adam Magness 1115d19f79 More Standards
More coding standards updates.
2017-11-20 11:01:32 -05:00
Adam Magness bc49fc974c Capitalized XML
Acronym classes should be capitalized
2017-11-10 07:45:33 -05:00
Adam Magness 0226aa1f15 Spelling
spelling correction for simplexmlelement
2017-11-10 07:18:24 -05:00
Adam Magness d49da294b3 Add uses
added DomXPath and SimpleXMLElement
2017-11-10 07:18:24 -05:00
Adam Magness f245bc8359 Move xml to namespace
Relocate xml from include to src
Related to #3878
2017-11-10 07:18:24 -05:00
Adam Magness 4ca68c7af0 Class file relocations
Issue #3878
2017-11-08 08:37:03 -05:00
Adam Magness 6189f6c8e7 Relocate class files from /include to /src/
dbm, Diaspora, dfrn, and NotificationsManager moved to namespace. Includes and references in files updated.
2017-11-08 08:36:48 -05:00
Michael 42a8f27034 Semaphore lock deactivated for PHP lower 5.6.1 2017-09-30 07:51:09 +00:00
rabuzarus 28eb5d57a7 fix some method names (camelcase) in Probe.php and Lock.php 2017-08-02 13:09:42 +02:00
Alexandre Alapetite 080da4777d Use unset after unlock
https://github.com/friendica/friendica/pull/3554#issuecomment-313741392
2017-07-08 11:03:41 +02:00
Alexandre Alapetite 84972623f7 Order of semaphore processing 2017-07-07 18:26:43 +02:00
Alexandre Alapetite 329ab7d153 More general check for semaphore 2017-06-28 22:38:22 +02:00
Alexandre Alapetite 4eaa6b94a6 Hide semaphone warning
https://github.com/friendica/friendica/issues/3553
2017-06-28 18:38:18 +02:00
Michael 4515c36f69 Semaphore based locking and hopefully the fix for the workerqueue 2017-06-28 04:53:11 +00:00
Michael 1301a29505 It's faster without locks, gnarl ... 2017-06-12 19:20:50 +00:00
Michael 16df7715b9 Avoid locking problems in lock class 2017-06-12 15:42:54 +00:00
Hypolite Petovan 9c0d2c31e8 Replace AND and OR in PHP conditions by && and || 2017-06-07 22:00:59 -04:00
Michael e3d5dcf049 Beware of camels 2017-06-06 17:42:47 +00:00
Michael 286b2da7a9 Added documentation and renamed function 2017-06-06 17:25:28 +00:00
Michael 5dfa513b62 Only wait when you have a timout value at all 2017-06-06 04:22:18 +00:00
Michael 2b04865cdb We found the handbrake ... 2017-06-05 22:41:33 +00:00
Michael b86c4d539e Locking waits now for a shorter period. DB locking is used at other locations as well 2017-06-05 14:59:53 +00:00
Michael 30b24a2908 Locking seems to work great now 2017-06-04 18:59:50 +00:00
Michael bca5776e9c Lock now can use the memcache as well 2017-06-04 15:59:20 +00:00
Michael d2cb87a200 Database locks are now having its very own functions 2017-06-04 12:59:29 +00:00
Michael 5de03c1b27 Locks now work - ready to be used in the wild 2017-06-04 08:36:08 +00:00
Michael 32f61016d3 Overhauled "lock" functionality 2017-06-04 07:26:21 +00:00