Skip to content

Commit 7f74317

Browse files
committedFeb 5, 2014
Remove blank default values for emergequeue_limit_* settings
Add checks for invalid user input for important settings Rename Settings::tryGet* to Settings::get*NoEx for consistency
1 parent c6c5edd commit 7f74317

File tree

6 files changed

+32
-26
lines changed

6 files changed

+32
-26
lines changed
 

‎src/defaultsettings.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -219,8 +219,6 @@ void set_default_settings(Settings *settings)
219219
settings->setDefault("remote_media", "");
220220
settings->setDefault("debug_log_level", "2");
221221
settings->setDefault("emergequeue_limit_total", "256");
222-
settings->setDefault("emergequeue_limit_diskonly", "");
223-
settings->setDefault("emergequeue_limit_generate", "");
224222
settings->setDefault("num_emerge_threads", "1");
225223

226224
// physics stuff

‎src/emerge.cpp

+16-8
Original file line numberDiff line numberDiff line change
@@ -102,17 +102,25 @@ EmergeManager::EmergeManager(IGameDef *gamedef) {
102102
// if unspecified, leave a proc for the main thread and one for
103103
// some other misc thread
104104
int nthreads = 0;
105-
if (!g_settings->tryGetS16("num_emerge_threads", nthreads))
105+
if (!g_settings->getS16NoEx("num_emerge_threads", nthreads))
106106
nthreads = porting::getNumberOfProcessors() - 2;
107107
if (nthreads < 1)
108108
nthreads = 1;
109109

110110
qlimit_total = g_settings->getU16("emergequeue_limit_total");
111-
if (!g_settings->tryGetU16("emergequeue_limit_diskonly", qlimit_diskonly))
111+
if (!g_settings->getU16NoEx("emergequeue_limit_diskonly", qlimit_diskonly))
112112
qlimit_diskonly = nthreads * 5 + 1;
113-
if (!g_settings->tryGetU16("emergequeue_limit_generate", qlimit_generate))
113+
if (!g_settings->getU16NoEx("emergequeue_limit_generate", qlimit_generate))
114114
qlimit_generate = nthreads + 1;
115115

116+
// don't trust user input for something very important like this
117+
if (qlimit_total < 1)
118+
qlimit_total = 1;
119+
if (qlimit_diskonly < 1)
120+
qlimit_diskonly = 1;
121+
if (qlimit_generate < 1)
122+
qlimit_generate = 1;
123+
116124
for (int i = 0; i != nthreads; i++)
117125
emergethread.push_back(new EmergeThread((Server *)gamedef, i));
118126

@@ -352,13 +360,13 @@ void EmergeManager::loadParamsFromSettings(Settings *settings) {
352360
std::string seed_str;
353361
const char *setname = (settings == g_settings) ? "fixed_map_seed" : "seed";
354362

355-
if (settings->tryGet(setname, seed_str))
363+
if (settings->getNoEx(setname, seed_str))
356364
params.seed = read_seed(seed_str.c_str());
357365

358-
settings->tryGet("mg_name", params.mg_name);
359-
settings->tryGetS16("water_level", params.water_level);
360-
settings->tryGetS16("chunksize", params.chunksize);
361-
settings->tryGetFlagStr("mg_flags", params.flags, flagdesc_mapgen);
366+
settings->getNoEx("mg_name", params.mg_name);
367+
settings->getS16NoEx("water_level", params.water_level);
368+
settings->getS16NoEx("chunksize", params.chunksize);
369+
settings->getFlagStrNoEx("mg_flags", params.flags, flagdesc_mapgen);
362370

363371
delete params.sparams;
364372
params.sparams = createMapgenParams(params.mg_name);

‎src/mapgen_indev.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ MapgenIndevParams::MapgenIndevParams() {
164164
void MapgenIndevParams::readParams(Settings *settings) {
165165
MapgenV6Params::readParams(settings);
166166

167-
settings->tryGetS16("mgindev_float_islands", float_islands);
167+
settings->getS16NoEx("mgindev_float_islands", float_islands);
168168

169169
settings->getNoiseIndevParams("mgindev_np_terrain_base", npindev_terrain_base);
170170
settings->getNoiseIndevParams("mgindev_np_terrain_higher", npindev_terrain_higher);

‎src/mapgen_v6.cpp

+3-3
Original file line numberDiff line numberDiff line change
@@ -112,9 +112,9 @@ MapgenV6Params::MapgenV6Params() {
112112

113113

114114
void MapgenV6Params::readParams(Settings *settings) {
115-
settings->tryGetFlagStr("mgv6_spflags", spflags, flagdesc_mapgen_v6);
116-
settings->tryGetFloat("mgv6_freq_desert", freq_desert);
117-
settings->tryGetFloat("mgv6_freq_beach", freq_beach);
115+
settings->getFlagStrNoEx("mgv6_spflags", spflags, flagdesc_mapgen_v6);
116+
settings->getFloatNoEx("mgv6_freq_desert", freq_desert);
117+
settings->getFloatNoEx("mgv6_freq_beach", freq_beach);
118118

119119
settings->getNoiseParams("mgv6_np_terrain_base", np_terrain_base);
120120
settings->getNoiseParams("mgv6_np_terrain_higher", np_terrain_higher);

‎src/mapgen_v7.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ MapgenV7Params::MapgenV7Params() {
126126

127127

128128
void MapgenV7Params::readParams(Settings *settings) {
129-
settings->tryGetFlagStr("mgv7_spflags", spflags, flagdesc_mapgen_v7);
129+
settings->getFlagStrNoEx("mgv7_spflags", spflags, flagdesc_mapgen_v7);
130130

131131
settings->getNoiseParams("mgv7_np_terrain_base", np_terrain_base);
132132
settings->getNoiseParams("mgv7_np_terrain_alt", np_terrain_alt);

‎src/settings.h

+11-11
Original file line numberDiff line numberDiff line change
@@ -745,7 +745,7 @@ class Settings
745745
}
746746

747747
//////////// Try to get value, no exception thrown
748-
bool tryGet(std::string name, std::string &val)
748+
bool getNoEx(std::string name, std::string &val)
749749
{
750750
try {
751751
val = get(name);
@@ -755,7 +755,7 @@ class Settings
755755
}
756756
}
757757

758-
bool tryGetFlagStr(std::string name, u32 &val, FlagDesc *flagdesc)
758+
bool getFlagStrNoEx(std::string name, u32 &val, FlagDesc *flagdesc)
759759
{
760760
try {
761761
val = getFlagStr(name, flagdesc);
@@ -765,7 +765,7 @@ class Settings
765765
}
766766
}
767767

768-
bool tryGetFloat(std::string name, float &val)
768+
bool getFloatNoEx(std::string name, float &val)
769769
{
770770
try {
771771
val = getFloat(name);
@@ -775,7 +775,7 @@ class Settings
775775
}
776776
}
777777

778-
bool tryGetU16(std::string name, int &val)
778+
bool getU16NoEx(std::string name, int &val)
779779
{
780780
try {
781781
val = getU16(name);
@@ -785,7 +785,7 @@ class Settings
785785
}
786786
}
787787

788-
bool tryGetU16(std::string name, u16 &val)
788+
bool getU16NoEx(std::string name, u16 &val)
789789
{
790790
try {
791791
val = getU16(name);
@@ -795,7 +795,7 @@ class Settings
795795
}
796796
}
797797

798-
bool tryGetS16(std::string name, int &val)
798+
bool getS16NoEx(std::string name, int &val)
799799
{
800800
try {
801801
val = getU16(name);
@@ -805,7 +805,7 @@ class Settings
805805
}
806806
}
807807

808-
bool tryGetS16(std::string name, s16 &val)
808+
bool getS16NoEx(std::string name, s16 &val)
809809
{
810810
try {
811811
val = getS16(name);
@@ -815,7 +815,7 @@ class Settings
815815
}
816816
}
817817

818-
bool tryGetS32(std::string name, s32 &val)
818+
bool getS32NoEx(std::string name, s32 &val)
819819
{
820820
try {
821821
val = getS32(name);
@@ -825,7 +825,7 @@ class Settings
825825
}
826826
}
827827

828-
bool tryGetV3F(std::string name, v3f &val)
828+
bool getV3FNoEx(std::string name, v3f &val)
829829
{
830830
try {
831831
val = getV3F(name);
@@ -835,7 +835,7 @@ class Settings
835835
}
836836
}
837837

838-
bool tryGetV2F(std::string name, v2f &val)
838+
bool getV2FNoEx(std::string name, v2f &val)
839839
{
840840
try {
841841
val = getV2F(name);
@@ -845,7 +845,7 @@ class Settings
845845
}
846846
}
847847

848-
bool tryGetU64(std::string name, u64 &val)
848+
bool getU64NoEx(std::string name, u64 &val)
849849
{
850850
try {
851851
val = getU64(name);

0 commit comments

Comments
 (0)
Please sign in to comment.