~ubuntu-branches/ubuntu/trusty/isdnutils/trusty

« back to all changes in this revision

Viewing changes to ant-phone/src/isdntree.c

  • Committer: Package Import Robot
  • Author(s): Steve Langasek
  • Date: 2013-11-15 00:02:58 UTC
  • mfrom: (1.1.8) (31.1.1 trusty-proposed)
  • Revision ID: package-import@ubuntu.com-20131115000258-tt9v3gasgrdml07k
Tags: 1:3.25+dfsg1-3.3ubuntu1
* Merge from Debian unstable:
  - resolves licensing issues with package contents.  LP: #511988.
  - includes proper upstream fix for ipppd on ARM.  LP: #453159.
  - resolves isdnutils-base removal failures.  LP: #813771.
  - fixes capiutils init script to not try to mount obsolete capifs.
    LP: #1064347.
* Remaining changes:
  - Switch libreadline5-dev to libreadline-gplv2-dev since this package
    appears to be GPLv2
  - debian/patches/no-imake.patch: Don't build xisdnload/xmonisdn using
    xmkmf/imake.  This patch was dropped in Debian without explanation;
    it still applies and seems to still be a good idea for eventual
    upstreaming, since imake is quite obsolete.
  - capi.conf: Fix typo for fcdsl2 firmware. LP: #189132.
  - Remove dependencies on /etc/inittab.
    - Disable the installation code to modify /etc/inittab.
    - isdnutils-base: Add ttyI0 example script, which needs to be installed
      in /etc/event.d/ttyI0.
    - isdnvboxserver: Add ttyI1 example script, which needs to be installed
      in /etc/event.d/ttyI1.
    - The two upstart scripts need to be edited.
    - Further improvements and documentation welcome.
* Changes included in Debian:
  - replace calls to ./MAKEDEV with /sbin/MAKEDEV
  - Build-depend on ppp-dev.
  - Switch to newer tcl -dev.
  - update to newer automake
  - debian/rules: use autoreconf to update the autotools in the capi20
    directory
  - debian/{compat,rules,*.files,.dirs}: Convert to Multi-arch.
  - debian/libcapi20-dev.install: Remove .la files (no builds use them).
* Changes included upstream:
  - fix for ARM FTBFS.
  - fix bashisms in vboxplay.
  - debian/patches/{config_libdir,toplevel-make}.patch: add CONFIG_LIBDIR
    override to upstream build system to support Multi-arch.
* Dropped changes:
  - kick dpatch to the curb.
* Handle migrating the blacklist file from
  /etc/modprobe.d/blacklist-capiutils.conf to the path used in Debian,
  /etc/modprobe.d/capiutils.conf.
* Handle rename of /etc/ppp/ip-down.d/99-ipppd and /etc/ppp/ip-up.d/00-ipppd
  to /etc/ppp/ip-down.d/ipppd and /etc/ppp/ip-up.d/ipppd
* Handle rename of /etc/init.d/isdnutils to /etc/init.d/isdnutils-base
* Restore standard.tcl to /usr/share/isdnvboxserver/default; maintainer
  scripts must not depend on contents of /usr/share/doc.
* Apply patches that were preserved in the 3.0 (quilt) migration, but
  were inadvertently not applied:
  - debian/patches/capifax.additional_error_codes.patch
  - debian/patches/capifax.3_1kHz_audio.patch
* Drop debian/isdnutils-base.cron.d, which isn't a cronjob example at all
  but an inittab example gone astray.
* debian/dotconfig*: don't use embedded quotes for paths; this confuses
  vbox's Makefiles something fierce, and causes files to be missed from
  debian/tmp'/usr/share/man/' at install time.
* Fix isdnlog and ipppd to not ship files used in the postinst under
  /usr/share/doc.
* Modernize the upstart examples.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/*
2
 
 * isdn4linux options file tree support
3
 
 *
4
 
 * This file is part of ANT (Ant is Not a Telephone)
5
 
 *
6
 
 * Copyright 2003 Roland Stigge
7
 
 *
8
 
 * ANT is free software; you can redistribute it and/or modify
9
 
 * it under the terms of the GNU General Public License as published by
10
 
 * the Free Software Foundation; either version 2 of the License, or
11
 
 * (at your option) any later version.
12
 
 *
13
 
 * ANT is distributed in the hope that it will be useful,
14
 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
 
 * GNU General Public License for more details.
17
 
 *
18
 
 * You should have received a copy of the GNU General Public License
19
 
 * along with ANT; if not, write to the Free Software
20
 
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
21
 
 *
22
 
 */
23
 
 
24
 
/* GNU headers */
25
 
#include <stdio.h>
26
 
#include <stdlib.h>
27
 
 
28
 
/* own headers */
29
 
#include "isdntree.h"
30
 
 
31
 
isdn_tree_node_t* isdn_tree;
32
 
 
33
 
/*
34
 
 * helper function for isdn_tree_dump recursively dumping the tree
35
 
 */
36
 
static void isdn_tree_dump_list(isdn_tree_node_t* list, int indent) {
37
 
  while (list != NULL) {
38
 
    switch (list->type) {
39
 
      case ISDN_NODE_TYPE_ENTRY:
40
 
        printf("%*sEntry \"%s\" => \"%s\"\n",
41
 
               indent, "", list->name, list->content.value);
42
 
        break;
43
 
      case ISDN_NODE_TYPE_SECTION:
44
 
        printf("%*sSection [%s]:\n",
45
 
               indent, "", list->name);
46
 
        isdn_tree_dump_list(list->content.section, indent + 2);
47
 
        break;
48
 
      case ISDN_NODE_TYPE_SUBSECTION:
49
 
        printf("%*sSubsection \"%s\":\n",
50
 
               indent, "", list->name);
51
 
        isdn_tree_dump_list(list->content.subsection, indent + 2);
52
 
        break;
53
 
      default:
54
 
        fprintf(stderr, "Unknown ISDN_NODE_TYPE\n");
55
 
    }
56
 
    
57
 
    list = list->next;
58
 
  }
59
 
}
60
 
 
61
 
/*
62
 
 * dump whole tree to stdout
63
 
 */
64
 
void isdn_tree_dump() {
65
 
  printf("ISDN config dump:\n");
66
 
  isdn_tree_dump_list(isdn_tree, 2);
67
 
}
68
 
 
69
 
/*
70
 
 * helper for isdn_tree_free
71
 
 * -> recursive release of memory from tree
72
 
 */
73
 
static void isdn_tree_free_list(isdn_tree_node_t* list) {
74
 
  while (list != NULL) {
75
 
    isdn_tree_node_t* temp;
76
 
 
77
 
    free(list->name);
78
 
 
79
 
    switch (list->type) {
80
 
      case ISDN_NODE_TYPE_ENTRY:
81
 
        free(list->content.value);
82
 
        break;
83
 
      case ISDN_NODE_TYPE_SECTION:
84
 
        isdn_tree_free_list(list->content.section);
85
 
        break;
86
 
      case ISDN_NODE_TYPE_SUBSECTION:
87
 
        isdn_tree_free_list(list->content.subsection);
88
 
        break;
89
 
      default:
90
 
        fprintf(stderr, "Unknown ISDN_NODE_TYPE\n");
91
 
    }
92
 
    
93
 
    temp = list->next;
94
 
    free(list);
95
 
    list = temp;
96
 
  }
97
 
}
98
 
 
99
 
/*
100
 
 * cleans up: releases all memory associated with tree
101
 
 */
102
 
void isdn_tree_free() {
103
 
  isdn_tree_free_list(isdn_tree);
104
 
}
105