summaryrefslogtreecommitdiff
path: root/classes
AgeCommit message (Collapse)Author
2010-01-15Fix for background recalculation of groups; needs to get Group objects not ↵Brion Vibber
IDs; also don't list any groups for repeats to match saveGroups behavior todo: merge calculation portion with saveGroups so they don't get out of sync
2010-01-15Fix since_id and max_id API parameters for inbox-based loads; was failing if ↵Brion Vibber
the exact id mentioned wasn't present in the inbox (or had been trimmed out)
2010-01-13do since_id and max_id in inboxEvan Prodromou
2010-01-13go straight to the DB for inbox before insertEvan Prodromou
2010-01-13don't write Inbox if on a read-only page, but encacheEvan Prodromou
2010-01-13make sure whoGets() doesn't write anythingEvan Prodromou
2010-01-13Fix regressions in XMPP output during inbox refactoringBrion Vibber
- NOTICE_INBOX_SOURCE_* constants moved to common.php since Notice_inbox.php not always loaded - fixed typo in User::staticGet() call which caused user #1 to receive messages once for each subscriber instead of for him/herself - 'continue' -> 'continue 2' inside switch() statement to fix loop escape (PHP considers switch() a looping construct for break & continue)
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