summaryrefslogtreecommitdiffstats
path: root/src/server/image.c
diff options
context:
space:
mode:
authorSimon Rettberg2017-11-08 15:34:03 +0100
committerSimon Rettberg2017-11-08 15:34:03 +0100
commit5440febba42d0f46572d0617f0fdd5d2d38922de (patch)
tree6032fdf2bd19bda0c7504b445dcf96b3514ccddc /src/server/image.c
parent[SERVER] altservers: Tweak, cleanup, refactor, rename (diff)
downloaddnbd3-5440febba42d0f46572d0617f0fdd5d2d38922de.tar.gz
dnbd3-5440febba42d0f46572d0617f0fdd5d2d38922de.tar.xz
dnbd3-5440febba42d0f46572d0617f0fdd5d2d38922de.zip
[SERVER] Add multiple config options for limiting stuff
maxClients, maxImages, maxPayload, maxReplicationSize Refs #3231
Diffstat (limited to 'src/server/image.c')
-rw-r--r--src/server/image.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/image.c b/src/server/image.c
index 45463a0..ca00c63 100644
--- a/src/server/image.c
+++ b/src/server/image.c
@@ -762,7 +762,7 @@ static bool image_addToList(dnbd3_image_t *image)
break;
}
if ( i >= _num_images ) {
- if ( _num_images >= SERVER_MAX_IMAGES ) {
+ if ( _num_images >= _maxImages ) {
spin_unlock( &imageListLock );
return false;
}
@@ -1270,7 +1270,10 @@ static dnbd3_image_t *loadImageProxy(char * const name, const uint16_t revision,
if ( revision != 0 && remoteRid != revision ) goto server_fail; // Want specific revision but uplink supplied different rid
if ( revision == 0 && image != NULL && image->rid >= remoteRid ) goto server_fail; // Not actually a failure: Highest remote rid is <= highest local rid - don't clone!
if ( remoteImageSize < DNBD3_BLOCK_SIZE || remoteName == NULL || strcmp( name, remoteName ) != 0 ) goto server_fail;
- if ( remoteImageSize > SERVER_MAX_PROXY_IMAGE_SIZE ) goto server_fail;
+ if ( remoteImageSize > _maxReplicationSize ) {
+ logadd( LOG_MINOR, "Won't proxy '%s:%d': Larger than maxReplicationSize", name, (int)revision );
+ goto server_fail;
+ }
pthread_mutex_lock( &reloadLock );
ok = image_ensureDiskSpace( remoteImageSize )
&& image_clone( sock, name, remoteRid, remoteImageSize ); // This sets up the file+map+crc and loads the img