As per bug 8859 (Add option to revert old ChanIsAvail() with 's' option behavior...
[asterisk/asterisk.git] / pbx / dundi-parser.c
old mode 100755 (executable)
new mode 100644 (file)
index ff6f2fe..14ef9e7
@@ -1,27 +1,45 @@
 /*
- * Distributed Universal Number Discovery (DUNDi)
+ * Asterisk -- An open source telephony toolkit.
  *
- * Copyright (C) 2004 - 2005, Digium Inc.
+ * Copyright (C) 1999 - 2005, Digium, Inc.
  *
- * Written by Mark Spencer <markster@digium.com>
+ * Mark Spencer <markster@digium.com>
+ *
+ * See http://www.asterisk.org for more information about
+ * the Asterisk project. Please do not directly contact
+ * any of the maintainers of this project for assistance;
+ * the project provides a web site, mailing lists and IRC
+ * channels for your use.
+ *
+ * This program is free software, distributed under the terms of
+ * the GNU General Public License Version 2. See the LICENSE file
+ * at the top of the source tree.
+ */
+
+/*! \file
+ *
+ * \brief Distributed Universal Number Discovery (DUNDi)
  *
- * This program is Free Software distributed under the terms of
- * of the GNU General Public License.
  */
 
+#include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
 #include <sys/types.h>
 #include <sys/socket.h>
 #include <string.h>
 #include <netinet/in.h>
-#include <asterisk/frame.h>
-#include <asterisk/utils.h>
 #include <arpa/inet.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdio.h>
-#include <asterisk/dundi.h>
+
+#include "asterisk/frame.h"
+#include "asterisk/utils.h"
+#include "asterisk/dundi.h"
 #include "dundi-parser.h"
-#include <asterisk/dundi.h>
+#include "asterisk/dundi.h"
 
 static void internaloutput(const char *str)
 {
@@ -111,7 +129,7 @@ static void dump_string(char *output, int maxlen, void *value, int len)
        maxlen--;
        if (maxlen > len)
                maxlen = len;
-       strncpy(output,value, maxlen);
+       strncpy(output, value, maxlen);
        output[maxlen] = '\0';
 }
 
@@ -456,7 +474,6 @@ void dundi_showframe(struct dundi_hdr *fhi, int rx, struct sockaddr_in *sin, int
        char *subclass;
        char tmp[256];
        char retries[20];
-       char iabuf[INET_ADDRSTRLEN];
        if (ntohs(fhi->dtrans) & DUNDI_FLAG_RETRANS)
                strcpy(retries, "Yes");
        else
@@ -481,7 +498,7 @@ void dundi_showframe(struct dundi_hdr *fhi, int rx, struct sockaddr_in *sin, int
        snprintf(tmp, (int)sizeof(tmp), 
                "%s     Flags: %s STrans: %5.5d  DTrans: %5.5d [%s:%d]%s\n", (rx > 1) ? "     " : "",
                subclass, ntohs(fhi->strans) & ~DUNDI_FLAG_RESERVED, ntohs(fhi->dtrans) & ~DUNDI_FLAG_RETRANS,
-               ast_inet_ntoa(iabuf, sizeof(iabuf), sin->sin_addr), ntohs(sin->sin_port),
+               ast_inet_ntoa(sin->sin_addr), ntohs(sin->sin_port),
                fhi->cmdresp & 0x80 ? " (Final)" : "");
        outputf(tmp);
        dump_ies(fhi->ies, rx > 1, datalen);
@@ -502,7 +519,7 @@ int dundi_ie_append_raw(struct dundi_ie_data *ied, unsigned char ie, void *data,
        return 0;
 }
 
-int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, unsigned char *data)
+int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned char cause, char *data)
 {
        char tmp[256];
        int datalen = data ? strlen(data) + 1 : 1;
@@ -519,7 +536,7 @@ int dundi_ie_append_cause(struct dundi_ie_data *ied, unsigned char ie, unsigned
        return 0;
 }
 
-int dundi_ie_append_hint(struct dundi_ie_data *ied, unsigned char ie, unsigned short flags, unsigned char *data)
+int dundi_ie_append_hint(struct dundi_ie_data *ied, unsigned char ie, unsigned short flags, char *data)
 {
        char tmp[256];
        int datalen = data ? strlen(data) + 2 : 2;
@@ -558,7 +575,7 @@ int dundi_ie_append_encdata(struct dundi_ie_data *ied, unsigned char ie, unsigne
        return 0;
 }
 
-int dundi_ie_append_answer(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid, unsigned char protocol, unsigned short flags, unsigned short weight, unsigned char *data)
+int dundi_ie_append_answer(struct dundi_ie_data *ied, unsigned char ie, dundi_eid *eid, unsigned char protocol, unsigned short flags, unsigned short weight, char *data)
 {
        char tmp[256];
        int datalen = data ? strlen(data) + 11 : 11;
@@ -604,7 +621,7 @@ int dundi_ie_append_short(struct dundi_ie_data *ied, unsigned char ie, unsigned
        return dundi_ie_append_raw(ied, ie, &newval, (int)sizeof(newval));
 }
 
-int dundi_ie_append_str(struct dundi_ie_data *ied, unsigned char ie, unsigned char *str)
+int dundi_ie_append_str(struct dundi_ie_data *ied, unsigned char ie, char *str)
 {
        return dundi_ie_append_raw(ied, ie, str, strlen(str));
 }
@@ -671,10 +688,10 @@ int dundi_parse_ies(struct dundi_ies *ies, unsigned char *data, int datalen)
                                ies->reqeid = (dundi_eid *)(data + 2);
                        break;
                case DUNDI_IE_CALLED_CONTEXT:
-                       ies->called_context = data + 2;
+                       ies->called_context = (char *)data + 2;
                        break;
                case DUNDI_IE_CALLED_NUMBER:
-                       ies->called_number = data + 2;
+                       ies->called_number = (char *)data + 2;
                        break;
                case DUNDI_IE_ANSWER:
                        if (len < sizeof(struct dundi_answer)) {
@@ -726,7 +743,7 @@ int dundi_parse_ies(struct dundi_ies *ies, unsigned char *data, int datalen)
                case DUNDI_IE_CAUSE:
                        if (len >= 1) {
                                ies->cause = data[2];
-                               ies->causestr = data + 3;
+                               ies->causestr = (char *)data + 3;
                        } else {
                                snprintf(tmp, (int)sizeof(tmp), "Expected at least one byte cause, but was %d long\n", len);
                                errorf(tmp);
@@ -741,28 +758,28 @@ int dundi_parse_ies(struct dundi_ies *ies, unsigned char *data, int datalen)
                        }
                        break;
                case DUNDI_IE_DEPARTMENT:
-                       ies->q_dept = data + 2;
+                       ies->q_dept = (char *)data + 2;
                        break;
                case DUNDI_IE_ORGANIZATION:
-                       ies->q_org = data + 2;
+                       ies->q_org = (char *)data + 2;
                        break;
                case DUNDI_IE_LOCALITY:
-                       ies->q_locality = data + 2;
+                       ies->q_locality = (char *)data + 2;
                        break;
                case DUNDI_IE_STATE_PROV:
-                       ies->q_stateprov = data + 2;
+                       ies->q_stateprov = (char *)data + 2;
                        break;
                case DUNDI_IE_COUNTRY:
-                       ies->q_country = data + 2;
+                       ies->q_country = (char *)data + 2;
                        break;
                case DUNDI_IE_EMAIL:
-                       ies->q_email = data + 2;
+                       ies->q_email = (char *)data + 2;
                        break;
                case DUNDI_IE_PHONE:
-                       ies->q_phone = data + 2;
+                       ies->q_phone = (char *)data + 2;
                        break;
                case DUNDI_IE_IPADDR:
-                       ies->q_ipaddr = data + 2;
+                       ies->q_ipaddr = (char *)data + 2;
                        break;
                case DUNDI_IE_ENCDATA:
                        /* Recalculate len as the remainder of the message, regardless of