Commit Graph

341 Commits

Author SHA1 Message Date
calzoneman 3b4800d045 Add database queryTime metric 2016-04-27 21:55:25 -07:00
calzoneman 72bd3e4c98 Add localStorage flag for connecting to alt server list 2016-04-26 21:57:11 -07:00
calzoneman a33f3d8bb0 Remove debug console.log 2016-04-23 19:54:32 -07:00
calzoneman b69bd82a72 Add DualClusterClient for live testing phase of backend/frontend split 2016-04-23 19:53:18 -07:00
calzoneman 295c2a41a8 Add socket.leave() support for proxy backend 2016-04-03 11:49:58 -07:00
calzoneman 0ee7f05213 Make polls more efficient
Instead of emitting frames to each individual socket, group them into
socket.io rooms of people who can see hidden poll results and people who
can't, then just do 2 broadcasts.
2016-04-02 11:57:26 -07:00
calzoneman 20538e328f Replace legacy emitter with EventEmitter prototype 2016-04-02 11:23:34 -07:00
calzoneman 9debebd4b9 /clean: error when no argument given 2016-03-28 22:31:35 -07:00
calzoneman 52e444ab64 ffmpeg: follow relative redirects 2016-03-26 11:43:26 -07:00
calzoneman 319c52911a Resolve #553 2016-03-23 23:04:58 -07:00
calzoneman 7448429341 Fix #566
Refactored the ffprobe stream-selection logic to handle rejected files
better:

  * Streams tagged as a non-default disposition are not considered
  * If a file has any video stream, the audio stream will be ignored

This should prevent videos from being misreported as invalid audio
codecs, etc.
2016-03-21 23:28:21 -07:00
calzoneman a96b85fa5b proxyinterceptor: handle SocketDisconnectEvent 2016-03-07 20:25:32 -08:00
calzoneman 76ef8d6906 Improve performance of mass connects by broadcasting usercount 2016-02-15 21:35:59 -08:00
calzoneman 98d3090c7d Move BackendModule import 2016-02-15 17:21:28 -08:00
calzoneman 39e3978161 Fix 2016-02-09 23:04:07 -08:00
calzoneman cada5f0b0a Actually make the legacy mode default 2016-02-09 22:59:48 -08:00
calzoneman e6234297a1 Merge 2016-02-09 20:13:58 -08:00
calzoneman b3c85e8534 Limit requestPlaylist to once per 60 seconds
If clients call it quickly in succession with large playlists, it can
cause node to get stuck stringifying socket.io frames and cause an out
of memory crash.
2016-02-06 19:40:50 -08:00
calzoneman 50124c8a45 Refactor backend initialization 2016-02-04 21:43:20 -08:00
calzoneman ba54848db5 mediarefresher: fix memory leak from dangling timers 2016-01-30 19:42:55 -08:00
calzoneman 86abebf9bf Add RedisClusterClient 2016-01-28 19:51:59 -08:00
calzoneman f8470fc8f6 Use new proxy address formatter 2016-01-23 12:46:04 -08:00
calzoneman dd73a8ee9a Automatically publish backend address to the pool 2016-01-20 23:11:55 -08:00
calzoneman f46891b6ed Defer to mediaquery for anonymous vimeo lookup 2016-01-07 17:38:05 -08:00
calzoneman eeaffe1f61 Update socket.io to version 1.4.0 2016-01-06 21:42:48 -08:00
calzoneman 1ac69709ee Minor fix to refcounter logic 2016-01-04 20:35:02 -08:00
calzoneman 8bef7924b2 Minor fix 2016-01-01 18:28:53 -08:00
calzoneman 28807344bc Import logger 2016-01-01 18:26:43 -08:00
calzoneman cdb20e8d40 Handle when a frontend disconnects 2016-01-01 18:25:12 -08:00
calzoneman 9a262da13d Set socketUser data from frontend 2015-12-30 21:57:46 -08:00
calzoneman 5b44117681 Use new protocol 2015-12-28 23:52:39 -08:00
calzoneman 9dd617d9fc Update to reflect change in endpoint key 2015-12-27 15:10:43 -08:00
calzoneman b536c15758 Initial hacks to get the split to work 2015-12-26 15:07:03 -08:00
calzoneman be4011cda1 Replace old ActiveLock system with a slightly better one
CyTube has been crashing recently due to things attempting to release
the reference after the channel was already closed (apparently the
uncaughtException handler isn't called for this?).  This newer
implementation keeps track of what is ref'ing and unref'ing it, so it
can log an error if it detects a discrepancy.

Also changed the server to not delete the refCounter field from the
channel when it's unloaded, so that should reduce the number of errors
stemming from it being null/undefined.
2015-12-25 17:07:25 -08:00
calzoneman 10d4ec8e60 Initial work for proxy connections 2015-12-24 16:24:07 -08:00
calzoneman e88971a011 Shorten index length for channel library table (#543) 2015-12-21 17:38:46 -08:00
calzoneman 5a2ef2d24d Minor fixes for queueWarn 2015-12-20 22:35:24 -08:00
calzoneman e9e3cbb575 Update migrator to allow blacklisting/whitelisting keys to backfill 2015-12-18 19:21:11 -08:00
calzoneman b4e7ab2443 Don't save a channel if it hasn't loaded yet 2015-12-18 19:20:57 -08:00
calzoneman 6f654b16b8 Prevent crash due to activeLock being destroyed before callback 2015-12-13 00:22:18 -08:00
calzoneman 9a4237cd00 Exclude siteadmins from channel limit (resolves #508) 2015-12-12 17:03:42 -08:00
calzoneman bfe76dae0e Check X-Forwarded-For on sockets (resolves #528) 2015-12-12 16:59:58 -08:00
calzoneman 80c35b4190 Remove unused code 2015-12-12 16:28:24 -08:00
calzoneman 27af66075e Centralize x-forwarded-proto handling; fixes #542 2015-12-12 16:26:14 -08:00
Calvin Montgomery 1f9e396e05 Merge pull request #541 from lolcow/patch-2
Fix uid variable name duplication/ambiguity
2015-12-11 20:45:47 -08:00
Lolcow Admin 29c0df4fcc Fix uid variable name duplication/ambiguity
`uid` is used twice, where it should be `uid` and `gid`, resulting in an attempted execution of something like `id -g 1500` rather than `id -g syncgroup`. These variable names are already confusing due to the nature of the functions, so I made it clear they're strings rather than numeric IDs.
2015-12-11 00:20:40 -05:00
Lolcow Admin baf302f12c Use absolute path for counters.log
Puts it in line with the other uses of `Logger.Logger`. Allows running outside of pwd.
2015-12-11 00:03:18 -05:00
calzoneman 11d4c4ca62 Reject blank emote names and images 2015-12-05 18:52:39 -08:00
calzoneman 59468ec77c Add safeguard to prevent #539 2015-12-02 20:59:46 -08:00
Calvin Montgomery b241a210f3 Fix for uniqueness of IP range bans 2015-11-23 18:22:51 -08:00
calzoneman fac11ee312 Fix variable misuse 2015-11-03 19:34:12 -08:00
calzoneman 04336c9712 Fix merge error 2015-11-02 21:13:02 -08:00
calzoneman 47ef670f34 Fix typo 2015-11-02 21:10:52 -08:00
calzoneman 5ead24e45e Merge branch '3.0' into web-refactoring 2015-11-02 21:07:50 -08:00
calzoneman 5c339656b7 Minor fixes 2015-11-02 20:52:57 -08:00
calzoneman 6505aa2f5e More refactoring 2015-11-01 17:42:20 -08:00
calzoneman 23333ee266 Remove console logging of clientErrors from HTTP/socket.io 2015-10-30 22:26:20 -07:00
calzoneman edcf17984f Fix socket.io counters 2015-10-30 22:25:00 -07:00
calzoneman a8cc8e4b04 Add more counters for diagnostic information 2015-10-28 23:38:17 -07:00
calzoneman c2726898e5 Move x-forwarded-for middleware 2015-10-27 23:54:32 -07:00
calzoneman 13d4a49976 Move contact page to its own route handler 2015-10-27 22:04:21 -07:00
calzoneman 88236e036c Add better error pages 2015-10-27 20:44:40 -07:00
calzoneman 26e8660af4 Change /logout from GET to POST (#515) 2015-10-26 23:21:09 -07:00
calzoneman 50ca141f1d Web refactoring 2015-10-26 22:56:53 -07:00
Calvin Montgomery 535b1d5d3a Merge pull request #522 from calzoneman/sioconfig-migration
Migrate socket.io configuration to new API
2015-10-25 17:25:00 -07:00
calzoneman 21c3a1b3cd API changes, add documentation 2015-10-25 17:20:39 -07:00
OurFlagIsMined 4809a3db00 more than one Play click deleted a playlist item
If two people tried to play the same playlist item, before the playlist updated, it would delete instead of playing.
The same would also happen if the play button was double-clicked instead of single-clicked.
Also, the active item's play button functioned as a delete button.

Fully tested. Still removes the item (if it was added as temporary) when it finishes playing, or if the play button of a *different* item is clicked.
2015-10-25 19:52:34 -04:00
calzoneman 7b5476874d Minor function change 2015-10-21 20:56:09 -07:00
calzoneman 40e2a608f6 Initial sioconfig migration work 2015-10-19 22:32:00 -07:00
calzoneman 8d39daf942 Factor out resumeAutolead() 2015-10-16 20:32:25 -07:00
calzoneman 217ed115a3 Fix #513 2015-10-16 20:23:41 -07:00
calzoneman 327b9faedb Add dbstore dumper script 2015-10-12 23:31:36 -07:00
calzoneman b4b442c897 bgtask: run channel saves serially to prevent thrashing 2015-10-09 23:16:21 -07:00
calzoneman 7d35df4f5a Fixes 2015-10-07 22:19:39 -07:00
Calvin Montgomery 9f4461a779 Merge pull request #507 from calzoneman/channel-store
Refactor channel storage to allow database store
2015-10-04 23:22:05 -07:00
calzoneman 2fe646ec03 Minor cleanup 2015-10-04 23:21:53 -07:00
calzoneman bed7e65fc0 channel_data value should be a mediumtext 2015-10-01 22:13:16 -07:00
calzoneman 56a2a52bdd Fixes 2015-10-01 22:02:59 -07:00
calzoneman 0e66875d27 Add workaround for migrator error 2015-09-30 22:12:43 -07:00
calzoneman 9c5ada6134 Add config key for selecting storage mode 2015-09-30 21:55:45 -07:00
calzoneman 27b501e655 Add /sioconfig.json 2015-09-30 18:36:50 -07:00
calzoneman a16f885fbd Fix custom embed invalid tag message 2015-09-28 17:31:37 -07:00
calzoneman e91635b6f9 Implement migrator 2015-09-27 11:07:57 -07:00
calzoneman 22a4115217 webserver: update matcher for HTTP 416 errors 2015-09-27 09:33:42 -07:00
calzoneman c5e73e156a channel/chat: don't allow users to unmute themselves 2015-09-26 19:54:20 -07:00
calzoneman 10dbbcd3ff Fixes; initial migrator work 2015-09-26 15:33:13 -07:00
calzoneman 4bdd7a1e3b Add DatabaseStore 2015-09-26 14:21:42 -07:00
calzoneman 1ad41d7e58 Remove debug override 2015-09-24 23:50:50 -07:00
calzoneman 20dc871303 Use create-error for better error creation 2015-09-24 23:36:05 -07:00
calzoneman 5ec9c2b029 Start refactoring channel storage 2015-09-23 21:56:04 -07:00
calzoneman 0109a87e55 package: build with babel for ES2015 support
* Rename lib/ -> src/
* Add `postinstall` npm target for compiling src files to lib
* Add `build-watch` npm target for development with babel --watch
* Add `lib/` to .gitignore
* Add `source-map-support` module for babel-generated sourcemaps
2015-09-23 19:27:04 -07:00