Brion Vibber
5f5d9518bd
Avoid spewing giant debug backtrace into exception in certain OStatus subscription failure cases.
...
The code pattern 'new XXXException($e)' to chain exceptions doesn't actually work as intended, as exceptions are actually expecting a string message here.
This caused an implicit string conversion from HTTP_Request2_Exception, which is a PEAR_Exception, which defines an absurdly detailed __toString() method including a giant HTML table with a backtrace if you happen to be on a web request.
Simply passing $e->getMessage() instead clears this up, as we'll get the nice short message like 'Couldn't connect to tcp://blahblah:80'
2010-05-04 17:11:43 -07:00
James Walker
c6c4510192
move base64_url_(encode|decode) to static functions in Magicsig
2010-03-26 13:37:46 -04:00
James Walker
cfca789b34
Updated Math_Biginteger from upstream - removing safe* workarounds
2010-03-24 15:18:41 -04:00
James Walker
10410907a0
A bit safer checking in the keypair parsing
2010-03-24 14:27:35 -04:00
Brion Vibber
5f32cf32cd
Don't spew XML parse warnings to output when checking a remote XRD page
2010-03-23 14:18:45 -07:00
Brion Vibber
27bfd1211d
Math_BigInteger doesn't correctly handle serialization/deserialization for a value of 0, which can end up spewing notices to output and otherwise intefering with Salmon signature setup and verification when using memcached.
...
Worked around this with a subclass that fixes the wakeup, used for the stored 0 value in the subclassed Crypt_RSA.
2010-03-22 12:17:45 -07:00
James Walker
a20880ee1e
Fixing HTTP Header LRDD parsing (sites in subdirectories need this)
2010-03-22 13:45:13 -04:00
Brion Vibber
db0cf50f65
Avoid notices for accessing undefined array indices in hcard processing
2010-03-19 15:54:54 -07:00
Evan Prodromou
5092f98c0d
return empty hints if no hcard in the html
2010-03-19 15:28:06 -05:00
Evan Prodromou
1e03968d91
define a 'root' attribute for the channel or feed
2010-03-19 15:23:30 -05:00
Evan Prodromou
ac609e8040
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
...
Conflicts:
plugins/OStatus/extlib/hkit/hkit.class.php
plugins/OStatus/lib/discoveryhints.php
2010-03-18 20:57:38 -05:00
Evan Prodromou
17c50f338c
Remove hkit and do our own hcard parsing
...
Parsing hcards for the data we need wasn't hard enough to justify using
hkit. It was dependent on a number of external systems (something to
run tidy), and only could handle XHTML.
We now parse HTML with the PHP dom libraries used elsewhere, and
scrape out our own hcards. Seems to work nicer and faster and most of
all works with Google Buzz profile URLs.
2010-03-18 20:52:00 -05:00
Brion Vibber
4a6c9e4451
Work around weird bug with HTML normalization via PHP DOM module; if source had xmlns and xml:lang I ended up with double output, breaking the subsequent parsing. Will have to track this down later and report upstream if not already resolved.
2010-03-18 17:57:58 -07:00
Brion Vibber
1301877dfe
OStatus discover fixes:
...
* Subscription::start was sometimes passing users instead of profiles to hooks, which broke OStatus subscription notifications; now normalizing to profiles for processing.
* H-card parsing would trigger a lot of PHP warnings and notices in hKit. Now suppressing warnings and notices for the duration of the call to keep them out of output when display_errors is on.
* H-card parsing would trigger a PHP fatal error if the source page was not well-formed XML and Tidy was not present on the system. Switched normalization to use the PHP DOM module which is always present, as we have no need for Tidy's extra features here.
* Trying to fetch avatars from Google profiles failed and triggered a PHP warning due to the relative URL not being resolved during h-card parsing. Now passing profile page URL into hKit by sneaking a <base> tag in while we normalize the HTML source.
* Profile pages without a "Link" header could trigger PHP notices due to a bad NULL -> array(NULL) conversion in LinkHeader::getLink(). Now checking that there was a return value before converting single return value into array.
2010-03-18 17:08:19 -07:00
Evan Prodromou
4761c07ad8
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-03-17 09:38:39 -05:00
Evan Prodromou
f21f78364a
Change the workflow to get better discovery
...
Tried to re-structure the workflow of discovery to get more and richer
data and hints.
2010-03-16 11:25:18 -05:00
Brion Vibber
dfac4bfd09
Fix feed discovery: html:link@rel can contain multiple values; saw rel="updates alternate" in the wild at http://tantek.com/ which broke old discovery code.
2010-03-15 20:26:42 +00:00
James Walker
7aa49b5e87
use canonical user url in xrd
2010-03-15 15:17:31 -04:00
James Walker
85cf90cf0f
Performing & allowing host-meta discovery by http url (in addition to webfinger acct)
2010-03-13 18:35:00 -05:00
James Walker
512e511053
fix invalid separator in magic-public-key XRD and matching parsing.
2010-03-11 14:49:12 -05:00
James Walker
06612e35e4
remove hard-coded me:env check in magicenvelope
2010-03-11 14:49:12 -05:00
James Walker
89582e7226
base64_encode/decode -> base64_url_encode/decode
2010-03-11 14:49:12 -05:00
Brion Vibber
58192ad687
OStatus: fix exception thrown on HTTP error during feed discovery
2010-03-09 10:56:33 -08:00
James Walker
ddc4a7d2ff
Catch a previously uncaught exception and add some additional debug logs for signature verification
2010-03-04 01:46:34 -05:00
James Walker
1c8399fde1
refactor xrd to allow for ownerxrd - xrd document for the site owner.
...
introduced $config['webfinger']['owner'] for a custom xrd subject
2010-03-03 23:20:30 -05:00
Brion Vibber
24835c1164
OStatus: catchable exception instead of fatal when parsing valid XML that isn't a valid XRD doc
2010-03-03 18:31:35 -08:00
Brion Vibber
9fadf8da11
Put all required field setup into AtomUserNoticeFeed and AtomGroupNoticeFeed, consolidating some code. (RSS feeds pulling title, logo etc from the Atom data structure so we don't dupe it.)
...
OStatus now calling the feed classes directly instead of faking a call into the API, should be less flakey.
2010-03-03 16:33:20 -08:00
Brion Vibber
ffa1931c9d
Avoid warning/notice spew in XRD parser. Not all DOM nodes are elements.
2010-03-03 09:31:14 -08:00
Brion Vibber
e30af99873
Merge branch 'work' into testing
2010-03-01 16:57:58 -08:00
Brion Vibber
493b5479c1
OStatus: support @example.com/path/to/profile mentions as well as @profile@example.com (latter requires webfinger, former doesn't)
...
Plus misc warnings/notices cleanup in the submission path.
2010-03-01 16:43:36 -08:00
Brion Vibber
45e8819c1b
Fix a bunch of notice & warning-level messages that were breaking my inter-instance communications
2010-03-01 16:35:36 -08:00
James Walker
1cf08c7ad7
MagicEnvelope::parse shouldn't be called statically
2010-02-26 17:09:50 -05:00
James Walker
c82cee1876
removing some extraneous debug logging
2010-02-26 16:26:04 -05:00
James Walker
e4c462570f
move salmon posting to send application/magic-envelope+xml per http://salmon-protocol.googlecode.com/svn/trunk/draft-panzer-salmon-00.html#RPF
2010-02-26 15:39:58 -05:00
James Walker
223ebc765c
move signing to take a local actor profile and use local keys
2010-02-26 14:22:49 -05:00
James Walker
bbb0a7d5bc
updating to use latest salmon NS definitions
2010-02-26 14:22:49 -05:00
James Walker
ab8bb4d79e
more cleanup
2010-02-26 04:07:58 -05:00
James Walker
d1256b547f
bad merge.. cleaning up missing webfinger bits
2010-02-26 03:43:35 -05:00
James Walker
22062b665e
remove webfinger.php
2010-02-26 03:28:29 -05:00
James Walker
84d0c865c4
salmon actually fetching remote keypairs
2010-02-26 03:25:51 -05:00
James Walker
7c8031dc4b
Merge remote branch 'statusnet/testing' into testing
...
Conflicts:
plugins/OStatus/lib/webfinger.php
2010-02-25 23:49:45 -05:00
James Walker
855692141d
use a real keypair from discovery
2010-02-25 23:38:25 -05:00
Evan Prodromou
a43598c31e
cache Web responses in Webfinger library
2010-02-25 21:07:24 -05:00
Evan Prodromou
cc0670791e
use new hcard method for webfinger
2010-02-25 19:58:18 -05:00
James Walker
08413428a7
typo
2010-02-25 17:52:56 -05:00
James Walker
b2dabe6a48
removing the webfinger lib
2010-02-25 17:12:46 -05:00
James Walker
3d0ba3efc8
adding a new, more generic "discovery" class that does LRDD disco
...
(rather than webfinger specific)
2010-02-25 17:09:54 -05:00
James Walker
e62e49ed3b
adding some exception handling for magicenv parsing
2010-02-25 17:09:54 -05:00
Brion Vibber
b798faf9ea
OStatus: abort processing of this PuSH in item if we got an exception, rather than letting it be re-run.
2010-02-25 02:43:20 +00:00
Brion Vibber
93507a1927
OStatus: handle update-profile Salmon pings
2010-02-24 23:28:01 +00:00
Brion Vibber
c36bdc1ba5
- break OMB profile update pings to a background queue
...
- add event hooks to profile update pings
- send Salmon pings with custom update-profile event to OStatus subscribees and groups (subscribers will see it on your next post)
- fix OStatus queues with overlong transport names, should work on DB queues now
- Ostatus_profile::notifyActivity() and ::notifyDeferred() now can take XML, Notice, or Activity for convenience
2010-02-24 20:36:36 +00:00
Brion Vibber
2e58802cc9
OStatus: fix group delivery, send reply/group Salmon pings from background.
2010-02-24 02:20:31 +00:00
Brion Vibber
584b87cfe5
OStatus: consolidate the low-level notice save code between Salmon and PuSH input paths. Validation etc remains at higher levels.
2010-02-24 01:09:52 +00:00
James Walker
9494b0e5d7
magicsig shuffling
2010-02-22 23:30:32 -05:00
James Walker
cd561657c2
missing return value check
2010-02-22 23:30:31 -05:00
James Walker
cb32b676fa
moving magicsig.php to classes - to add storage
2010-02-22 23:30:31 -05:00
Zach Copley
cbf6ebae01
Merge branch 'rationalize-activity' into testing
...
* rationalize-activity:
Move ActivityObject and related stuff to core
Add PoCo bits, avatar link, geo point, etc. to person activity obj output
2010-02-22 17:12:33 -08:00
Zach Copley
6a711c6cdc
Move ActivityObject and related stuff to core
2010-02-22 17:10:50 -08:00
Brion Vibber
870e556faa
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-02-23 00:52:47 +00:00
Zach Copley
a3e800e67c
Add PoCo bits, avatar link, geo point, etc. to person activity obj output
2010-02-22 16:46:54 -08:00
Brion Vibber
d410df0406
OStatus group delivery initial implementation.
...
- added rel="ostatus:attention" links for group delivery
- added events for plugins to override group profile/permalink pages
- pulled Notice::saveGroups up to save-time so we can override;
it's relatively cheap and gives us a clean list of target
groups for distrib time even with customized delivery.
- fixed notice::getGroups to return group objects as expected
- added some doc on new parameters to Notice::saveNew
- 'groups' list of group IDs to push to in place of parsing
- messages that come in via PuSH and contain local group targets
are delivered to local group members
- messages that come in via PuSH and contain remote group targets
are delivered to local members of the remote group
Todo:
- handle group posts that only come through Salmon
- handle conflicts in case something comes in both through Salmon and PuSH
- better source verification
- need a cleaner interface to look up groups by URI
- need a way to handle remote groups with conflicting names
2010-02-23 00:44:45 +00:00
James Walker
caad5859b5
swapping pear error handling so Crypt_RSA can properly detect available
...
math libraries
2010-02-22 19:01:12 -05:00
Brion Vibber
06f155c02d
OStatus: initial hookup of remote group membership (notice delivery not yet working quite right)
...
- added a temp config var to disable salmon magic signatures until they're working consistently
2010-02-22 12:13:57 -08:00
James Walker
2f65fa646a
wiring in magicsig
2010-02-22 09:05:52 -05:00
James Walker
e0388cc1d3
adding magic sig stuff
2010-02-22 09:05:32 -05:00
Evan Prodromou
75fdef2092
handle poco nicknames in Ostatus_profile
2010-02-22 07:57:44 -05:00
Evan Prodromou
891e002883
don't calculate replies for remote notices
2010-02-21 23:56:48 -05:00
Evan Prodromou
48839a1fcf
change erroneous common_sql_time() to common_sql_date()
2010-02-21 23:19:29 -05:00
Evan Prodromou
e39e6cdcc5
was using HTMLPurifier::purify() as a static method, which it is not
2010-02-21 23:16:42 -05:00
Evan Prodromou
aab7ce70dc
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-02-21 23:08:01 -05:00
Evan Prodromou
17c329ba89
add HTMLPurifier config
2010-02-21 23:07:46 -05:00
Brion Vibber
5207783765
OStatus: record source profile & saving method in ostatus_source table; this allows us to distinguish posts that have come through an unverified group feed
2010-02-21 19:52:53 -08:00
Evan Prodromou
273c0e0363
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-02-21 21:39:50 -05:00
Evan Prodromou
fde64ddf26
make some of the Webfinger magic strings constants
2010-02-21 21:36:36 -05:00
Brion Vibber
aa0b2ce81a
OStatus PuSH fixlets:
...
- set minimal error page output on PuSH callback
- allow hub to retry ($config['ostatus']['hub_retries']), simplify internal iface a bit. Retries are pushed to end of queue but otherwise not delayed yet; makes delivery more robust to one-off transitory errors but not yet against downtime.
2010-02-21 14:28:06 -08:00
Evan Prodromou
37179a91d5
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-02-21 17:00:19 -05:00
Evan Prodromou
1c22bf20f1
fixup activity serialization so salmon notifications work
2010-02-21 17:00:05 -05:00
Brion Vibber
5349aa420e
OStatus feedsub fixlets:
...
- actually udpate feedsub.last_update when we get a new PuSH update in
- move incoming PuSH processing to a queue handler to minimize time spent before POST return, as recommended by PuSH spec. When queues are disabled this'll still be handled immediately.
2010-02-21 13:40:59 -08:00
Evan Prodromou
4209082677
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
2010-02-21 14:18:16 -05:00
Evan Prodromou
ad3406a919
use Ostatus_profile::ensureActivityObjectProfile() in SalmonAction::ensureProfile()
2010-02-21 14:17:37 -05:00
Brion Vibber
588fe5d603
OStatus: debug aid - log the received Salmon post when it can't be parsed properly as an <atom:entry>
2010-02-21 10:48:48 -08:00
Evan Prodromou
f83941a67b
correct name check in ActivityObject::fromProfile()
2010-02-21 13:31:31 -05:00
Evan Prodromou
d372a352ec
make avatar attribute explicit for ActivityObject
2010-02-21 12:55:40 -05:00
Evan Prodromou
09e2d181be
remove unused profile code from salmonaction
2010-02-21 12:54:52 -05:00
Evan Prodromou
ff2efd314f
let activities generate their own XML
2010-02-21 10:50:51 -05:00
Evan Prodromou
6169d8a877
saving notices in salmon actions
2010-02-21 09:16:27 -05:00
Evan Prodromou
229f9bd069
more complete content retrieval in ActivityObject::__construct()
2010-02-21 09:15:57 -05:00
Evan Prodromou
5565216b42
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
...
Conflicts:
plugins/OStatus/OStatusPlugin.php
2010-02-20 20:27:04 -05:00
Evan Prodromou
96c6019638
Add support for favor and disfavor notification
...
Added support for favoring and disfavoring in OStatusPlugin.
Needed to represent the Notice as an activity:object, so added
some code for that in lib/activity.php.
Also, made some small changes to OStatusPlugin so it handled
having a non-default argument $object correctly.
2010-02-20 19:58:20 -05:00
Brion Vibber
145a19954f
OStatus: Salmon favorite & unfavorite events now handled
2010-02-20 16:45:30 -08:00
Evan Prodromou
2df3bbc80b
Move some salmon processing to a superclass
...
Moved some salmon processing to a superclass so we could handle group
salmon posts, too.
2010-02-20 11:12:43 -05:00
Brion Vibber
557df3d3f7
OStatus: sub/unsub notifications working again. Fixed up autodetection of feed info at profile setup time
2010-02-19 16:21:17 -08:00
Evan Prodromou
48edade751
add ActivityContext class and test it
2010-02-18 22:18:14 -05:00
Brion Vibber
0dac13d197
OStatus refactoring to clean up profile vs feed and fix up subscription issues.
...
PuSH subscription maintenance broken back out to FeedSub, letting Ostatus_profile deal with the profile level (user or group, with unique id URI)
2010-02-18 16:50:53 -08:00
Brion Vibber
22ff358ba8
OStatus sub/unsub updates:
...
- fix for PuSH unsub verification
- send Salmon notification on unsub
2010-02-18 18:20:48 +00:00
Brion Vibber
454d0b5738
OStatus: moving parts of profile processing to Activity from feedmunger. Pausing before refactoring DB schema a bit to clean up feed vs person vs group info
2010-02-17 01:49:49 +00:00
Brion Vibber
014a32e6b8
OStatus: check only direct children in ActivityUtil::child; fixes pulling actor's info when we wanted post info
2010-02-16 23:04:39 +00:00
Brion Vibber
440ab90391
OStatus: fix up some recent regressions in subscription setup; fix state checks and verification token, and avatar save on setup. Needs updates for new atom code next...
2010-02-16 22:03:24 +00:00
Evan Prodromou
201110ffaa
restructure Activity classes to push more DOM stuff to ActivityUtils
2010-02-16 12:49:54 -05:00
Evan Prodromou
73e2264c6a
test parsing a default atom feed for activities
2010-02-14 13:19:32 -05:00