summaryrefslogtreecommitdiff
path: root/classes
AgeCommit message (Collapse)Author
2010-01-13add events for subscribing to people and joining groupsEvan Prodromou
2010-01-13Don't save reply info for repeatsEvan Prodromou
2010-01-13repeats don't get posted to groupsEvan Prodromou
2010-01-13remove vestiges of Notice_inbox from cache clearing code in NoticeEvan Prodromou
2010-01-13unimplement repeatedToMe() until we figure out howEvan Prodromou
2010-01-13memoize Notice::whoGets()Evan Prodromou
2010-01-12Merge branch '0.9.x' into inblobEvan Prodromou
2010-01-12remove transaction for Notice save; causes deadlocksEvan Prodromou
2010-01-12Major refactoring of queue handlers to support running multiple sites in one ↵Brion Vibber
daemon. Key changes: * Initialization code moved from common.php to StatusNet class; can now switch configurations during runtime. * As a consequence, configuration files must now be idempotent... Be careful with constant, function or class definitions. * Control structure for daemons/QueueManager/QueueHandler has been refactored; the run loop is now managed by IoMaster run via scripts/queuedaemon.php IoManager subclasses are woken to handle socket input or polling, and may cover multiple sites. * Plugins can implement notice queue handlers more easily by registering a QueueHandler class; no more need to add a daemon. The new QueueDaemon runs from scripts/queuedaemon.php: * This replaces most of the old *handler.php scripts; they've been refactored to the bare handler classes. * Spawns multiple child processes to spread load; defaults to CPU count on Linux and Mac OS X systems, or override with --threads=N * When multithreaded, child processes are automatically respawned on failure. * Threads gracefully shut down and restart when passing a soft memory limit (defaults to 90% of memory_limit), limiting damage from memory leaks. * Support for UDP-based monitoring: http://www.gitorious.org/snqmon Rough control flow diagram: QueueDaemon -> IoMaster -> IoManager QueueManager [listen or poll] -> QueueHandler XmppManager [ping & keepalive] XmppConfirmManager [poll updates] Todo: * Respawning features not currently available running single-threaded. * When running single-site, configuration changes aren't picked up. * New sites or config changes affecting queue subscriptions are not yet handled without a daemon restart. * SNMP monitoring output to integrate with general tools (nagios, ganglia) * Convert XMPP confirmation message sends to use stomp queue instead of polling * Convert xmppdaemon.php to IoManager? * Convert Twitter status, friends import polling daemons to IoManager * Clean up some error reporting and failure modes * May need to adjust queue priorities for best perf in backlog/flood cases Detailed code history available in my daemon-work branch: http://www.gitorious.org/~brion/statusnet/brion-fixes/commits/daemon-work
2010-01-12Avoid spewing warnings about returning by reference on memcached cache ↵Brion Vibber
misses by setting a var and returning it instead of trying to return false directly. This hacky workaround is brought to you by DB_DataObject's PHP 4 roots.
2010-01-11Merge branch '0.9.x' into inblobEvan Prodromou
2010-01-11Regression fix: don't spew notices to log every time we get a non-cached ↵Brion Vibber
user object
2010-01-11Merge branch 'sessionidparam' into 0.9.xEvan Prodromou
Conflicts: lib/command.php
2010-01-10Merge branch 'master' into 0.9.xEvan Prodromou
Conflicts: classes/Memcached_DataObject.php
2010-01-10check before saving a thumbnailEvan Prodromou
2010-01-10check before inserting File_oembed and File_thumbnailEvan Prodromou
2010-01-10don't put Users with object IDs in the cache, and don't fetch themEvan Prodromou
2010-01-10always set site/server to hostname if it existsEvan Prodromou
2010-01-09allow hostname with SSLEvan Prodromou
2010-01-09use nickname, not sitename, in domain for SSLEvan Prodromou
2010-01-09correct superglobal variable nameEvan Prodromou
2010-01-09redirect to sitename.wildcard for SSLEvan Prodromou
2010-01-09Redirect to a one-time-password when ssl and regular server are differentEvan Prodromou
2010-01-09whoGets() method for NoticeEvan Prodromou
2010-01-09create new Inbox from Notice_inbox if not exists at read/write timeEvan Prodromou
2010-01-09initialize an Inbox from Notice_inbox recordsEvan Prodromou
2010-01-09disable all Notice_inbox functionsEvan Prodromou
2010-01-09Revert "Replace Notice_inbox with Inbox"Evan Prodromou
We use Notice_inbox to transition to Inbox. This reverts commit 7640d3f07bad0710d69575efc7ceda115f24a60a.
2010-01-09some formatting changes to make inblobs workEvan Prodromou
2010-01-09Use inbox instead of notice_inboxEvan Prodromou
2010-01-09Replace Notice_inbox with InboxEvan Prodromou
2010-01-09flip exe bitEvan Prodromou
2010-01-09add inbox data classEvan Prodromou
2010-01-07Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2010-01-07Fixes to bugs where non-local messages were being wrong put in the public ↵Ciaran Gultnieks
timeline and public xmpp feed
2010-01-06fixup keytypes so it returns the types no matter what kind of class it isEvan Prodromou
2010-01-06Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
2010-01-06only encache new objects when insert was successfulEvan Prodromou
2010-01-06...and drop the unnecessary &reference from child class pkeyGet() overrides.Brion Vibber
2010-01-06Rearrange Memcached_DataObject::staticGet() to avoid "only variables can be ↵Brion Vibber
passed by reference" warnings when DB lookup fails and we return false. (We need to keep it returning a reference because the extlib parent class is stuck in PHP 4-land and uses references everywhere, including this function's return value. Yuck!) Also changed pkeyGet to drop the reference, since it doesn't have an upstream equivalent.
2010-01-06Fix for broken profile flag admin UI: delete stray flag entries when users ↵Brion Vibber
are deleted so broken entries don't litter the lookups. * added ProfileDeleteRelated event to match UserDeleteRelated, to allow plugins to add extra related tables on profile deletion * UserFlagPlugin: deleting flags when target profile is deleted * UserFlagPlugin: deleting flags when flagging user is deleted * UserFlagPlugin: fix for autoloader -- class names are case-insensitive. We may get lowercase class names coming in at times, such as when creating DB objects programatically from a table name. Note that any already-existing bogus entries need to be removed from the database: select * from user_flag_profile where (select id from profile where id=profile_id) is null; select * from user_flag_profile where (select id from user where id=user_id) is null;
2010-01-05encache on insert instead of decachingEvan Prodromou
2010-01-05Fix for overlong RT trimming: don't trim if textlimit is 0 (unlimited)Brion Vibber
2010-01-05Fix for overlong RT trimming: don't trim if textlimit is 0 (unlimited)Brion Vibber
2010-01-05Ticket 2135: trim overlong repeats with ellipsis rather than failing.Brion Vibber
In web interface and retweet/repeat API we show the original untrimmed text, but some back-compat API messages will still show the trimmed 'RT' version. This matches Twitter's behavior on overlong retweets, though we're outputting the RT version in more API results than they do.
2010-01-05Ticket 2135: trim overlong repeats with ellipsis rather than failing.Brion Vibber
In web interface and retweet/repeat API we show the original untrimmed text, but some back-compat API messages will still show the trimmed 'RT' version. This matches Twitter's behavior on overlong retweets, though we're outputting the RT version in more API results than they do.
2010-01-05Cache fixes:Brion Vibber
* We now cache negative lookups; clear them in Memcached_DataObject->insert() * Mark file.url as a unique key in statusnet.ini so its negative lookups are cleared properly (first save of a notice with a new URL was failing due to double-insert) * Now using serialization for default in-process cache instead of just saving objects; avoids potential corruption if you save an object to cache, change the original object, then fetch the same key from cache again
2010-01-05Require users to login to view attachments on private sitesCraig Andrews
Thank you jeff-themovie for this implementation!
2010-01-05Move Authorization and Authentication plugin structures into core, instead ↵Craig Andrews
of as plugins. This move makes sense as you can addPlugin('Authentication') for example - these are abstract classes designed to be implemented, not used directly.
2010-01-04Merge branch '0.9.x' of git@gitorious.org:statusnet/mainline into 0.9.xEvan Prodromou
Conflicts: classes/Memcached_DataObject.php