Skip to content

Commit

Permalink
[#89] Multiple servers in configuration
Browse files Browse the repository at this point in the history
  • Loading branch information
jesperpedersen committed Jul 15, 2020
1 parent 12340f7 commit cf7b98b
Showing 1 changed file with 7 additions and 9 deletions.
16 changes: 7 additions & 9 deletions src/libpgagroal/configuration.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ pgagroal_read_configuration(char* filename, void* shmem)
char* ptr = NULL;
size_t max;
struct configuration* config;
int idx_server = -1;
int idx_server = 0;
struct server srv;

file = fopen(filename, "r");
Expand All @@ -169,19 +169,18 @@ pgagroal_read_configuration(char* filename, void* shmem)
memcpy(&section, line + 1, max);
if (strcmp(section, "pgagroal"))
{
idx_server++;

if (idx_server > 0 && idx_server < NUMBER_OF_SERVERS)
if (idx_server > 0 && idx_server <= NUMBER_OF_SERVERS)
{
memcpy(&(config->servers[idx_server]), &srv, sizeof(struct server));
memcpy(&(config->servers[idx_server - 1]), &srv, sizeof(struct server));
}
else if (idx_server >= NUMBER_OF_SERVERS)
else if (idx_server > NUMBER_OF_SERVERS)
{
printf("Maximum number of servers exceeded\n");
}

memset(&srv, 0, sizeof(struct server));
memcpy(&srv.name, &section, strlen(section));
idx_server++;
}
}
}
Expand Down Expand Up @@ -679,10 +678,9 @@ pgagroal_read_configuration(char* filename, void* shmem)
}
}

if (idx_server != -1 && strlen(srv.name) > 0)
if (strlen(srv.name) > 0)
{
memcpy(&(config->servers[idx_server]), &srv, sizeof(struct server));
idx_server++;
memcpy(&(config->servers[idx_server - 1]), &srv, sizeof(struct server));
}

config->number_of_servers = idx_server;
Expand Down

0 comments on commit cf7b98b

Please sign in to comment.