pkg/kamailio/fedora/16: Updated rel in .spec to dev2
[sip-router] / str_list.c
1 /*
2  * Copyright (C) 2001-2003 FhG Fokus
3  *
4  * This file is part of sip-router, a free SIP server.
5  *
6  * sip-router is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version
10  *
11  * sip-router is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License 
17  * along with this program; if not, write to the Free Software 
18  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19  */
20
21 /**
22  * @file 
23  * @brief Simple str type list and helper functions
24  */
25
26
27 #include "str.h"
28 #include "mem/mem.h"
29 #include "str_list.h"
30
31
32 /**
33  * @brief Add a new allocated list element to an existing list
34  * 
35  * Add a new allocated list element to an existing list, the allocation is done
36  * from the private memory pool
37  * @param s input character
38  * @param len length of input character
39  * @param last existing list
40  * @param total length of total characters in list
41  * @return extended list
42  */
43 struct str_list *append_str_list(char *s, int len, struct str_list **last, int *total)
44 {
45         struct str_list *new;
46         new = pkg_malloc(sizeof(struct str_list));
47         if (!new) {
48                 PKG_MEM_ERROR;
49                 return 0;
50         }
51         new->s.s = s;
52         new->s.len = len;
53         new->next = 0;
54
55         (*last)->next = new;
56         *last = new;
57         *total += len;
58         return new;
59 }