and added files
[bcm963xx.git] / userapps / opensource / libosip2 / src / test / tfrom.c
1 /*
2   The oSIP library implements the Session Initiation Protocol (SIP -rfc2543-)
3   Copyright (C) 2001  Aymeric MOIZARD jack@atosc.org
4   
5   This library is free software; you can redistribute it and/or
6   modify it under the terms of the GNU Lesser General Public
7   License as published by the Free Software Foundation; either
8   version 2.1 of the License, or (at your option) any later version.
9   
10   This library is distributed in the hope that it will be useful,
11   but WITHOUT ANY WARRANTY; without even the implied warranty of
12   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13   Lesser General Public License for more details.
14   
15   You should have received a copy of the GNU Lesser General Public
16   License along with this library; if not, write to the Free Software
17   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18 */
19
20
21 #ifdef ENABLE_MPATROL
22 #include <mpatrol.h>
23 #endif
24
25
26 #include <stdio.h>
27 #include <stdlib.h>
28 #include <osip2/internal.h>
29 #include <osipparser2/osip_message.h>
30
31
32 int
33 main (int argc, char **argv)
34 {
35   FILE *froms_file;
36
37
38   osip_from_t *from;
39   char *a_from;
40   char *dest;
41   char *res;
42
43   froms_file = fopen (argv[1], "r");
44   if (froms_file == NULL)
45     {
46       fprintf (stdout, "Failed to open %s file.\nUsage: tfrom froms.txt\n",
47                argv[1]);
48       exit (0);
49     }
50
51   a_from = (char *) osip_malloc (200);
52   res = fgets (a_from, 200, froms_file);        /* lines are under 200 */
53   while (res != NULL)
54     {
55
56       int errcode;
57
58       /* remove the last '\n' before parsing */
59       strncpy (a_from + strlen (a_from) - 1, "\0", 1);
60
61       if (0 != strncmp (a_from, "#", 1))
62         {
63           /* allocate & init from */
64           osip_from_init (&from);
65           printf ("=================================================\n");
66           printf ("FROM TO PARSE: |%s|\n", a_from);
67           errcode = osip_from_parse (from, a_from);
68           if (errcode != -1)
69             {
70               if (osip_from_to_str (from, &dest) != -1)
71                 {
72                   printf ("result:        |%s|\n", dest);
73                   osip_free (dest);
74                 }
75             }
76           else
77             printf ("Bad from format: %s\n", a_from);
78           osip_from_free (from);
79           printf ("=================================================\n");
80         }
81       res = fgets (a_from, 200, froms_file);    /* lines are under 200 */
82     }
83   osip_free (a_from);
84   return 0;
85 }