make range allocation dynamic
[debian/dhcpd-pools.git] / src / dhcpd-pools.c
index 1e1c377..db8495b 100644 (file)
@@ -114,7 +114,8 @@ int main(int argc, char **argv)
                        /* Output sorting option */
                        sorts = strlen(optarg);
                        if (5 < sorts) {
-                               warnx("main: only first 5 sort orders will be used");
+                               warnx
+                                   ("main: only first 5 sort orders will be used");
                                strncpy(config.sort, optarg, (size_t) 5);
                                sorts = 5;
                        } else {
@@ -150,7 +151,6 @@ int main(int argc, char **argv)
                case 'v':
                        /* Print version */
                        print_version();
-                       return (EXIT_SUCCESS);
                case 'h':
                        /* Print help */
                        usage(EXIT_SUCCESS);
@@ -193,12 +193,6 @@ int main(int argc, char **argv)
                     shared_net_names + strlen(shared_net_names) + 1,
                     shared_networks);
 
-       /* FIXME: move to output.c and use FILE *outfile */
-       if ((config.output_format[0] == 'x')
-           || (config.output_format[0] == 'X')) {
-               printf("<dhcpstatus>\n");
-       };
-
        parse_leases();
        prepare_data();
        do_counting();
@@ -211,19 +205,6 @@ int main(int argc, char **argv)
        }
        free(tmp_ranges);
        output_analysis();
-       /* After fopen in ouput ioctl does like /dev/null which
-        * cause ENOTTY, and clean_up will see that without this
-        * reset. At least linux does this, and possibly some
-        * other systems. There's a report from FreeBSD 8.0 which
-        * matches quite well with the symptom. */
-       if (errno == 25)
-               errno = 0;
-
-       /* FIXME: move to output.c and use FILE *outfile */
-       if ((config.output_format[0] == 'x')
-           || (config.output_format[0] == 'X')) {
-               printf("</dhcpstatus>\n");
-       };
 
        clean_up();
        return (EXIT_SUCCESS);
@@ -232,6 +213,7 @@ int main(int argc, char **argv)
 /* Global allocations, counter resets etc */
 int prepare_memory()
 {
+       RANGES = 64;
        num_ranges = num_shared_networks = 0;
        shared_networks =
            safe_malloc(sizeof(struct shared_network_t) * SHARED_NETWORKS);
@@ -239,6 +221,7 @@ int prepare_memory()
            safe_malloc(sizeof(char) * SHARED_NETWORKS_NAMES);
 
        ranges = safe_malloc(sizeof(struct range_t) * RANGES);
+       macaddr = NULL;
 
        /* First shared network entry is all networks */
        strcpy(shared_net_names, "All networks");