Add a Configuration::removeParam to support such cases.tags/v1.8.90
@@ -1,5 +1,6 @@ | |||
/* Copyright (C) 2002-2005 RealVNC Ltd. All Rights Reserved. | |||
* Copyright 2004-2005 Cendio AB. | |||
* Copyright 2017 Peter Astrand <astrand@cendio.se> for Cendio AB | |||
* | |||
* This is free software; you can redistribute it and/or modify | |||
* it under the terms of the GNU General Public License as published by | |||
@@ -166,6 +167,23 @@ void Configuration::list(int width, int nameWidth) { | |||
} | |||
bool Configuration::remove(const char* param) { | |||
VoidParameter *current = head; | |||
VoidParameter **prevnext = &head; | |||
while (current) { | |||
if (strcasecmp(current->getName(), param) == 0) { | |||
*prevnext = current->_next; | |||
return true; | |||
} | |||
prevnext = ¤t->_next; | |||
current = current->_next; | |||
} | |||
return false; | |||
} | |||
// -=- VoidParameter | |||
VoidParameter::VoidParameter(const char* name_, const char* desc_, |
@@ -80,6 +80,9 @@ namespace rfb { | |||
// - List the parameters of this Configuration group | |||
void list(int width=79, int nameWidth=10); | |||
// - Remove a parameter from this Configuration group | |||
bool remove(const char* param); | |||
// - readFromFile | |||
// Read configuration parameters from the specified file. | |||
void readFromFile(const char* filename); | |||
@@ -116,6 +119,9 @@ namespace rfb { | |||
static void listParams(int width=79, int nameWidth=10) { | |||
global()->list(width, nameWidth); | |||
} | |||
static bool removeParam(const char* param) { | |||
return global()->remove(param); | |||
} | |||
private: | |||
friend class VoidParameter; |
@@ -258,6 +258,9 @@ int main(int argc, char** argv) | |||
Configuration::enableServerParams(); | |||
// Disable configuration parameters which we do not support | |||
Configuration::removeParam("AcceptSetDesktopSize"); | |||
for (int i = 1; i < argc; i++) { | |||
if (Configuration::setParam(argv[i])) | |||
continue; |