-
- if (itmp.address != ip_address_pool[i].address)
- {
- LOG(0, 0, 0, 0, "Mismatched ip %d from state file: pool may only be extended\n", i);
- exit(1);
- }
-
- memcpy(&ip_address_pool[i], &itmp, sizeof(itmp));
- }
-
- if (fread(buf, sizeof(buf), 1, f) != 1 || buf[0] != MAXTUNNEL || buf[1] != sizeof(tunnelt))
- {
- LOG(0, 0, 0, 0, "Error/mismatch reading tunnel header from state file\n");
- exit(1);
- }
-
- LOG(2, 0, 0, 0, "Loading %u tunnels\n", MAXTUNNEL);
- if (fread(tunnel, sizeof(tunnelt), MAXTUNNEL, f) != MAXTUNNEL)
- {
- LOG(0, 0, 0, 0, "Error reading tunnel data from state file\n");
- exit(1);
- }
-
- for (i = 0; i < MAXTUNNEL; i++)
- {
- tunnel[i].controlc = 0;
- tunnel[i].controls = NULL;
- tunnel[i].controle = NULL;
- if (*tunnel[i].hostname)
- LOG(3, 0, 0, 0, "Created tunnel for %s\n", tunnel[i].hostname);
- }
-
- if (fread(buf, sizeof(buf), 1, f) != 1 || buf[0] != MAXSESSION || buf[1] != sizeof(sessiont))
- {
- LOG(0, 0, 0, 0, "Error/mismatch reading session header from state file\n");
- exit(1);
- }
-
- LOG(2, 0, 0, 0, "Loading %u sessions\n", MAXSESSION);
- if (fread(session, sizeof(sessiont), MAXSESSION, f) != MAXSESSION)
- {
- LOG(0, 0, 0, 0, "Error reading session data from state file\n");
- exit(1);
- }
-
- for (i = 0; i < MAXSESSION; i++)
- {
- session[i].tbf_in = 0;
- session[i].tbf_out = 0;
- if (session[i].opened)