move a couple of functions from common code (options.c) to udhcpd private
authorPaul Fox <pgf@brightstareng.com>
Thu, 22 Sep 2005 19:03:24 +0000 (19:03 -0000)
committerPaul Fox <pgf@brightstareng.com>
Thu, 22 Sep 2005 19:03:24 +0000 (19:03 -0000)
code (files.c) to make udhcpc a little smaller.

networking/udhcp/files.c
networking/udhcp/files.h
networking/udhcp/options.c
networking/udhcp/options.h

index 73a3bbc6e9ec51e6ad82035bb26e1028df12cf3f..33cd25affe5cb6ff7f96d608cb92bc16cd5f5cca 100644 (file)
@@ -15,8 +15,8 @@
 #include "static_leases.h"
 
 #include "dhcpd.h"
-#include "files.h"
 #include "options.h"
+#include "files.h"
 #include "common.h"
 
 /*
@@ -93,6 +93,52 @@ static int read_yn(const char *line, void *arg)
 }
 
 
+/* find option 'code' in opt_list */
+struct option_set *find_option(struct option_set *opt_list, char code)
+{
+       while (opt_list && opt_list->data[OPT_CODE] < code)
+               opt_list = opt_list->next;
+
+       if (opt_list && opt_list->data[OPT_CODE] == code) return opt_list;
+       else return NULL;
+}
+
+
+/* add an option to the opt_list */
+void attach_option(struct option_set **opt_list, struct dhcp_option *option, char *buffer, int length)
+{
+       struct option_set *existing, *new, **curr;
+
+       /* add it to an existing option */
+       if ((existing = find_option(*opt_list, option->code))) {
+               DEBUG(LOG_INFO, "Attaching option %s to existing member of list", option->name);
+               if (option->flags & OPTION_LIST) {
+                       if (existing->data[OPT_LEN] + length <= 255) {
+                               existing->data = realloc(existing->data,
+                                               existing->data[OPT_LEN] + length + 2);
+                               memcpy(existing->data + existing->data[OPT_LEN] + 2, buffer, length);
+                               existing->data[OPT_LEN] += length;
+                       } /* else, ignore the data, we could put this in a second option in the future */
+               } /* else, ignore the new data */
+       } else {
+               DEBUG(LOG_INFO, "Attaching option %s to list", option->name);
+
+               /* make a new option */
+               new = xmalloc(sizeof(struct option_set));
+               new->data = xmalloc(length + 2);
+               new->data[OPT_CODE] = option->code;
+               new->data[OPT_LEN] = length;
+               memcpy(new->data + 2, buffer, length);
+
+               curr = opt_list;
+               while (*curr && (*curr)->data[OPT_CODE] < option->code)
+                       curr = &(*curr)->next;
+
+               new->next = *curr;
+               *curr = new;
+       }
+}
+
 /* read a dhcp option and add it to opt_list */
 static int read_opt(const char *const_line, void *arg)
 {
index 279738adf7162c7f66f95bcb971aa00c9b88907d..4af61b005d1f09bdb3d8325060a319d118a3b124 100644 (file)
@@ -14,4 +14,7 @@ int read_config(const char *file);
 void write_leases(void);
 void read_leases(const char *file);
 
+struct option_set *find_option(struct option_set *opt_list, char code);
+void attach_option(struct option_set **opt_list, struct dhcp_option *option, char *buffer, int length);
+
 #endif
index 000f86c79abd79064bd221d191707271b5f423fe..e81d0a7575d266a71afc338abefea217f562f9e5 100644 (file)
@@ -7,8 +7,8 @@
 #include <string.h>
 
 #include "dhcpd.h"
-#include "files.h"
 #include "options.h"
+#include "files.h"
 #include "common.h"
 
 
@@ -171,49 +171,3 @@ int add_simple_option(uint8_t *optionptr, uint8_t code, uint32_t data)
        return 0;
 }
 
-
-/* find option 'code' in opt_list */
-struct option_set *find_option(struct option_set *opt_list, char code)
-{
-       while (opt_list && opt_list->data[OPT_CODE] < code)
-               opt_list = opt_list->next;
-
-       if (opt_list && opt_list->data[OPT_CODE] == code) return opt_list;
-       else return NULL;
-}
-
-
-/* add an option to the opt_list */
-void attach_option(struct option_set **opt_list, struct dhcp_option *option, char *buffer, int length)
-{
-       struct option_set *existing, *new, **curr;
-
-       /* add it to an existing option */
-       if ((existing = find_option(*opt_list, option->code))) {
-               DEBUG(LOG_INFO, "Attaching option %s to existing member of list", option->name);
-               if (option->flags & OPTION_LIST) {
-                       if (existing->data[OPT_LEN] + length <= 255) {
-                               existing->data = realloc(existing->data,
-                                               existing->data[OPT_LEN] + length + 2);
-                               memcpy(existing->data + existing->data[OPT_LEN] + 2, buffer, length);
-                               existing->data[OPT_LEN] += length;
-                       } /* else, ignore the data, we could put this in a second option in the future */
-               } /* else, ignore the new data */
-       } else {
-               DEBUG(LOG_INFO, "Attaching option %s to list", option->name);
-
-               /* make a new option */
-               new = xmalloc(sizeof(struct option_set));
-               new->data = xmalloc(length + 2);
-               new->data[OPT_CODE] = option->code;
-               new->data[OPT_LEN] = length;
-               memcpy(new->data + 2, buffer, length);
-
-               curr = opt_list;
-               while (*curr && (*curr)->data[OPT_CODE] < option->code)
-                       curr = &(*curr)->next;
-
-               new->next = *curr;
-               *curr = new;
-       }
-}
index fbe54c884a4697c06102f4160b09e1b7e15eb422..4948bac0061855f913d5928ac402133e25dbdde0 100644 (file)
@@ -34,7 +34,5 @@ uint8_t *get_option(struct dhcpMessage *packet, int code);
 int end_option(uint8_t *optionptr);
 int add_option_string(uint8_t *optionptr, uint8_t *string);
 int add_simple_option(uint8_t *optionptr, uint8_t code, uint32_t data);
-struct option_set *find_option(struct option_set *opt_list, char code);
-void attach_option(struct option_set **opt_list, struct dhcp_option *option, char *buffer, int length);
 
 #endif