and added files
[bcm963xx.git] / userapps / opensource / libosip2 / src / test / tcontact.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 #include <stdio.h>
26 #include <stdlib.h>
27 #include <osip2/internal.h>
28 #include <osipparser2/osip_message.h>
29
30
31 int
32 main (int argc, char **argv)
33 {
34   FILE *contacts_file;
35
36
37   osip_contact_t *contact;
38   char *a_contact;
39   char *dest;
40   char *res;
41
42   contacts_file = fopen (argv[1], "r");
43   if (contacts_file == NULL)
44     {
45       fprintf (stdout,
46                "Failed to open %s file.\nUsage: tcontact contacts.txt\n",
47                argv[1]);
48       exit (0);
49     }
50
51   a_contact = (char *) osip_malloc (200);
52   res = fgets (a_contact, 200, contacts_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_contact + strlen (a_contact) - 1, "\0", 1);
60
61       if (0 != strncmp (a_contact, "#", 1))
62         {
63           /* allocate & init contact */
64           osip_contact_init (&contact);
65           printf ("=================================================\n");
66           printf ("CONTACT TO PARSE: |%s|\n", a_contact);
67           errcode = osip_contact_parse (contact, a_contact);
68           if (errcode != -1)
69             {
70               if (osip_contact_to_str (contact, &dest) != -1)
71                 {
72                   printf ("result:           |%s|\n", dest);
73                   osip_free (dest);
74                 }
75             }
76           else
77             printf ("Bad contact format: %s\n", a_contact);
78           osip_contact_free (contact);
79           printf ("=================================================\n");
80         }
81       res = fgets (a_contact, 200, contacts_file);      /* lines are under 200 */
82     }
83   osip_free (a_contact);
84   return 0;
85 }