summaryrefslogtreecommitdiffstats
path: root/src/server
Commit message (Collapse)AuthorAgeFilesLines
...
* [SERVER] Refactor uplink/cache handling, improve crc checkingSimon Rettberg2018-07-048-289/+350
| | | | | | | | | | | | | The cacheFd is now moved to the uplink data structure and will only be handled by the uplink thread. The integrity checker now supports checking all blocks of an image. This will be triggered automatically whenever a check for a single block failed. Also, if a crc check on startup fails, the image won't be discarded anymore, but rather a full check will be initiated. Furthermore, when calling image_updateCacheMap() on an image that was previously complete, the cache map will now be re-initialized, and a new uplink connection created.
* [SERVER] Use likely/unlikely in uplink disk writing loopSimon Rettberg2018-06-251-4/+4
|
* [SERVER] Try to re-open cacheFd if writing failsSimon Rettberg2018-06-253-7/+58
| | | | | | | In scenarios where the proxy is using an NFS server as storage (for whatever crazy reason) or when the cacheFd goes bad through e.g. a switchroot, try to re-open it instead of just disabling caching forever.
* [SERVER] Make sure image has read fd before readingSimon Rettberg2018-06-133-29/+60
|
* [SERVER] Print info about signal senderSimon Rettberg2018-05-031-5/+46
|
* [SERVER] Don't spam log in vmdkLegacyMode for unknown imagesSimon Rettberg2018-05-021-3/+7
|
* [SERVER] Proper exit code and message when shutting down due to error or signalSimon Rettberg2018-04-271-2/+6
|
* [SERVER] Fix deadlock on shutdown (via image_tryFreeAll)Simon Rettberg2018-04-241-4/+8
| | | | | imageListLock was locked on twice in the call stack, which is bad if you're using non-recursive locks.
* [SERVER] Acquire write lock before initializing arraySimon Rettberg2018-04-161-1/+5
|
* [SERVER] Add bgrMinClients: Thresold to control when BGR startsSimon Rettberg2018-04-123-5/+16
| | | | | Background replication will not kick in if there aren't at least that many clients connected.
* [SERVER] Mark spammy replication messages as DEBUG2 instead of 1Simon Rettberg2018-04-111-3/+3
|
* [SERVER] Option to disable timestamps on stdout/console (default: disabled)Simon Rettberg2018-04-111-1/+3
|
* [SERVER] More error handling and logging when caching received data to diskSimon Rettberg2018-04-101-4/+13
|
* [SERVER] Ignore SIGPIPESimon Rettberg2018-04-101-0/+1
|
* [SERVER] Error handling and logging when saving cache mapSimon Rettberg2018-04-101-24/+37
|
* [SERVER] Delete image files after releasing image to get rid of stale .map filesSimon Rettberg2018-03-191-7/+9
|
* [SERVER] image.c: Add size to RPC data, rename bytesReceived, always add ↵Simon Rettberg2018-03-191-7/+11
| | | | uplink if existent
* [SERVER] Increase read() block size when calculating CRC32Simon Rettberg2018-03-191-1/+1
|
* [SERVER] image_getCompletenessEstimate: Fix reversed logic in timeout checkSimon Rettberg2018-03-191-1/+3
|
* [SERVER] Fix int overflows on 32bit builds in CRC generationSimon Rettberg2018-03-162-7/+7
|
* [SERVER] Make sparse file mode actually workSimon Rettberg2018-03-163-9/+24
|
* [SERVER] Experimental support for sparse files in proxy modeSimon Rettberg2018-03-155-11/+67
| | | | | | | | | | | | Will not preallocate images in this mode. Old images are only deleted if the disk is full, determined by write() calls to the cache file yielding ENOSPC or EDQUOT. In such a case, the least recently used image(s) will be deleted to free up at least 256MiB, and then the write() call will be repeated. This *should* work somewhat reliably unless the cache partition is ridiculously small. Performance might suffer a little, and disk fragmentation might occur much faster than in prealloc mode. Testing is needed.
* [SERVER] Make TSAN happySimon Rettberg2017-12-191-1/+3
|
* [SERVER] jansson < 2.6 compatSimon Rettberg2017-11-101-0/+5
|
* [SERVER] Check RLIMIT_NOFILE on startup and try to increase if requiredSimon Rettberg2017-11-081-0/+39
|
* [SERVER] altservers: Short timeout during RTT measurement, round request rangeSimon Rettberg2017-11-082-5/+10
| | | | | Rounding to 4k so caching works efficiently This should now close #3231
* [SERVER] rpc: Add q=logfile, q=altservers and q=config to /querySimon Rettberg2017-11-083-0/+70
|
* [SERVER] Add multiple config options for limiting stuffSimon Rettberg2017-11-085-19/+183
| | | | | maxClients, maxImages, maxPayload, maxReplicationSize Refs #3231
* [SERVER] altservers: Tweak, cleanup, refactor, renameSimon Rettberg2017-11-084-22/+32
|
* [SERVER] Properly clamp to 4k borders in updateCachemap()Simon Rettberg2017-11-071-2/+9
| | | | Refs #3231
* [SERVER] Use multiConnect() to find uplink for replicationSimon Rettberg2017-11-072-13/+38
| | | | | Just as in the fuse client, this will speed things up if we have several alt-servers in our list which are not reachable.
* [SERVER] Support finer control over replication when a proxy connects to a proxySimon Rettberg2017-11-025-4/+33
| | | | | | | Introduce new flag in "select image" message to tell the uplink server whether we have background replication enabled or not. Also reject a connecting proxy if the connecting proxy uses BGR but we don't, as this would basically force the image to be replicated locally too.
* [SERVER] Add --errormsg to only serve HTTP-JSON error codeSimon Rettberg2017-11-023-29/+65
| | | | | This could have been an external tool, but this didn't add much code and has the benefit of honoring the config file for port and bind address.
* [SERVER] Ignore invalid basePath in globals.c, do bailout in server.cSimon Rettberg2017-11-021-9/+12
|
* [SERVER] Clean up arguments, show version on startupSimon Rettberg2017-11-021-13/+8Star
|
* [SERVER] rpc: Keep track of and cap number of active http sessionsSimon Rettberg2017-11-011-11/+57
|
* [SERVER] rpc: Remove old TODO, set thread name for persistent connectionsSimon Rettberg2017-11-011-1/+5
|
* [SERVER] Since fuse client assumed no backwards compat before v3, lie to clientsSimon Rettberg2017-11-011-1/+1
| | | | | | If client reports protocol version < 3 on connect, just pretend we're at the same version. This sucks but we can't update servers before clients otherwise. :(
* [*] Mark logadd() as printf-style function, fix errors that it revealedSimon Rettberg2017-10-314-7/+8
| | | | ...there were quite a few format string errors as it turns out :/
* [SERVER] net.c: Refactoring and renamingSimon Rettberg2017-10-311-58/+33Star
| | | | | | Less copy & paste for sendfile alternatives, changed naming of old dnbd3_* functions moved over from server.c a while ago.
* [SERVER] Image list private to image.cSimon Rettberg2017-10-312-5/+2Star
|
* [SERVER] rpc: encoding of our reply is utf-8, add to reply headerSimon Rettberg2017-10-301-1/+1
|
* [SERVER] Add AFL supportSimon Rettberg2017-10-304-4/+84
| | | | | | | | | | | AFL is an instrumenting fuzzer. It expects to pass input to the program to be tested via command line (file name) or via stdin. This adds support for reading messages that normally would arrive via network directly from stdin. In this mode, the server is pretty useless otherwise. http://lcamtuf.coredump.cx/afl/
* [SERVER] Missed occurence of AF_INET(6) -> HOST_IP[46]Simon Rettberg2017-10-301-3/+6
|
* [SERVER] rpc: Honor client's Connection header, add some commentsSimon Rettberg2017-10-301-35/+106
|
* [SERVER] Don't send error 500 to client on local connection timeoutSimon Rettberg2017-10-301-1/+3
|
* [*] Introduce constants for IPv4/6 in dnbd3_host_tSimon Rettberg2017-10-284-12/+12
| | | | | | | AF_INET luckily was "2" on all platforms checked, so no problems there with interoperation, but AF_INET6 is different between Linux, BSD, Windows and possibly others, so map back and forth between AF_INET/AF_INET6 and HOST_IP4/HOST_IP6 to fix this.
* [SERVER] Add function to parse x-www-form-urlencoded stringsSimon Rettberg2017-10-284-26/+126
| | | | | | Use it to properly parse RPC queries. Will also come in handy when parsing POST body for calls that actually trigger any actions in the server (reload, alt-servers, ...)
* [SERVER] Use picohttpparser from h2oSimon Rettberg2017-10-264-48/+884
| | | | | | | Simple and lean interface, no bloat, noice. Slighly modified to use a simple string struct for passing around strings that are not null terminated, instead of separate char* and length.
* [SERVER] net: Simplify check for HTTPSimon Rettberg2017-10-261-10/+11
| | | | | Pretty loose guesswork, but preventing the false positives would not lead to any meaningful result anyways, so why bother.