Commit cde72cab authored by Pavel Tikhomirov's avatar Pavel Tikhomirov Committed by Pavel Emelyanov

zdtm/net/ipv4: split save_and_set and check_and_restore

As changing disable_ipv6 sysctl for some device may change mtu sysctl
for it we need to first check mtu, and only then set disable_ipv6.
That can be done splitting our functions into two.
Signed-off-by: 's avatarPavel Tikhomirov <ptikhomirov@virtuozzo.com>
Reviewed-by: 's avatarAndrew Vagin <avagin@virtuozzo.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@virtuozzo.com>
parent 701faddc
...@@ -90,6 +90,22 @@ struct test_conf { ...@@ -90,6 +90,22 @@ struct test_conf {
char *dir4; char *dir4;
} lo, def; } lo, def;
static int save_conf(FILE *fp, int *conf, int *conf_rand,
struct range *range, char *path) {
int ret;
/*
* Save
*/
ret = fscanf(fp, "%d", conf);
if (ret != 1) {
pr_perror("fscanf");
return -1;
}
return 0;
}
static int rand_in_small_range(struct range *r) { static int rand_in_small_range(struct range *r) {
return lrand48() % (r->max - r->min + 1) + r->min; return lrand48() % (r->max - r->min + 1) + r->min;
} }
...@@ -113,25 +129,9 @@ static int rand_in_range(struct range *r) { ...@@ -113,25 +129,9 @@ static int rand_in_range(struct range *r) {
return rand_in_small_range(&small); return rand_in_small_range(&small);
} }
static int save_and_set(FILE *fp, int *conf, int *conf_rand, static int gen_conf(FILE *fp, int *conf, int *conf_rand,
struct range *range, char *path) { struct range *range, char *path) {
int ret; int ret;
/*
* Save
*/
ret = fscanf(fp, "%d", conf);
if (ret != 1) {
pr_perror("fscanf");
return -1;
}
ret = fseek(fp, 0, SEEK_SET);
if (ret) {
pr_perror("fseek");
return -1;
}
/* /*
* Set random value * Set random value
*/ */
...@@ -146,7 +146,7 @@ static int save_and_set(FILE *fp, int *conf, int *conf_rand, ...@@ -146,7 +146,7 @@ static int save_and_set(FILE *fp, int *conf, int *conf_rand,
return 0; return 0;
} }
static int check_and_restore(FILE *fp, int *conf, int *conf_rand, static int check_conf(FILE *fp, int *conf, int *conf_rand,
struct range *range, char *path) { struct range *range, char *path) {
int ret; int ret;
int val; int val;
...@@ -166,12 +166,12 @@ static int check_and_restore(FILE *fp, int *conf, int *conf_rand, ...@@ -166,12 +166,12 @@ static int check_and_restore(FILE *fp, int *conf, int *conf_rand,
return -1; return -1;
} }
ret = fseek(fp, 0, SEEK_SET); return 0;
if (ret) { }
pr_perror("fseek");
return -1;
}
static int restore_conf(FILE *fp, int *conf, int *conf_rand,
struct range *range, char *path) {
int ret;
/* /*
* Restore opt * Restore opt
*/ */
...@@ -228,22 +228,34 @@ int main(int argc, char **argv) ...@@ -228,22 +228,34 @@ int main(int argc, char **argv)
test_init(argc, argv); test_init(argc, argv);
ret = for_each_option_do(save_and_set, &lo); ret = for_each_option_do(save_conf, &lo);
if (ret < 0)
return -1;
ret = for_each_option_do(gen_conf, &lo);
if (ret < 0) if (ret < 0)
return -1; return -1;
ret = for_each_option_do(save_and_set, &def); ret = for_each_option_do(save_conf, &def);
if (ret < 0)
return -1;
ret = for_each_option_do(gen_conf, &def);
if (ret < 0) if (ret < 0)
return -1; return -1;
test_daemon(); test_daemon();
test_waitsig(); test_waitsig();
ret = for_each_option_do(check_and_restore, &lo); ret = for_each_option_do(check_conf, &lo);
if (ret < 0)
return -1;
ret = for_each_option_do(restore_conf, &lo);
if (ret < 0) if (ret < 0)
return -1; return -1;
ret = for_each_option_do(check_and_restore, &def); ret = for_each_option_do(check_conf, &def);
if (ret < 0)
return -1;
ret = for_each_option_do(restore_conf, &def);
if (ret < 0) if (ret < 0)
return -1; return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment