diff options
Diffstat (limited to 'src/conf_class.c')
-rwxr-xr-x | src/conf_class.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/src/conf_class.c b/src/conf_class.c index 0d5d1b2..62da883 100755 --- a/src/conf_class.c +++ b/src/conf_class.c @@ -72,6 +72,13 @@ class_make(void) { struct ClassItem *class = MyMalloc(sizeof(*class)); + class->active = 1; + class->con_freq = DEFAULT_CONNECTFREQUENCY; + class->ping_freq = DEFAULT_PINGFREQUENCY; + class->max_total = MAXIMUM_LINKS_DEFAULT; + class->max_sendq = DEFAULT_SENDQ; + class->max_recvq = DEFAULT_RECVQ; + dlinkAdd(class, &class->node, &class_list); return class; @@ -92,15 +99,7 @@ class_free(struct ClassItem *class) void class_init(void) { - class_default = class_make(); - - class_default->name = xstrdup("default"); - class_default->active = 1; - class_default->con_freq = DEFAULT_CONNECTFREQUENCY; - class_default->ping_freq = DEFAULT_PINGFREQUENCY; - class_default->max_total = MAXIMUM_LINKS_DEFAULT; - class_default->max_sendq = DEFAULT_SENDQ; - class_default->max_recvq = DEFAULT_RECVQ; + (class_default = class_make())->name = xstrdup("default"); } const char * @@ -200,13 +199,8 @@ class_mark_for_deletion(void) { dlink_node *ptr = NULL; - DLINK_FOREACH(ptr, class_list.head) - { - struct ClassItem *class = ptr->data; - - if (class != class_default) - class->active = 0; - } + DLINK_FOREACH_PREV(ptr, class_list.tail->prev) + ((struct ClassItem *)ptr->data)->active = 0; } void |