From 5440febba42d0f46572d0617f0fdd5d2d38922de Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 8 Nov 2017 15:34:03 +0100 Subject: [SERVER] Add multiple config options for limiting stuff maxClients, maxImages, maxPayload, maxReplicationSize Refs #3231 --- src/server/image.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'src/server/image.c') 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 -- cgit v1.2.3-55-g7522