- Doxygen additions
authorOlle Johansson <oej@edvina.net>
Mon, 3 Apr 2006 18:38:28 +0000 (18:38 +0000)
committerOlle Johansson <oej@edvina.net>
Mon, 3 Apr 2006 18:38:28 +0000 (18:38 +0000)
- Formatting fixes (read guidelines :-) )
- Removing compilation warnings

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@17105 65c4cc65-6c06-0410-ace0-fbb531ad65f3

http.c
include/asterisk/doxyref.h
include/asterisk/http.h
manager.c

diff --git a/http.c b/http.c
index c52fb20..8341d63 100644 (file)
--- a/http.c
+++ b/http.c
 
 /*!
  * \file 
- * \brief http server
+ * \brief http server for AMI access
  *
+ * \author Mark Spencer <markster@digium.com>
  * This program implements a tiny http server supporting the "get" method
  * only and was inspired by micro-httpd by Jef Poskanzer 
+ * 
+ * \ref AstHTTP - AMI over the http protocol
  */
 
 #include <sys/types.h>
@@ -41,6 +44,9 @@
 #include <pthread.h>
 
 #include "asterisk.h"
+
+ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
+
 #include "asterisk/cli.h"
 #include "asterisk/http.h"
 #include "asterisk/utils.h"
@@ -67,7 +73,7 @@ static int prefix_len = 0;
 static struct sockaddr_in oldsin;
 static int enablestatic=0;
 
-/* Limit the kinds of files we're willing to serve up */
+/*! \brief Limit the kinds of files we're willing to serve up */
 static struct {
        char *ext;
        char *mtype;
@@ -360,18 +366,21 @@ static void *ast_httpd_helper_thread(void *data)
        if (fgets(buf, sizeof(buf), ser->f)) {
                /* Skip method */
                uri = buf;
-               while(*uri && (*uri > 32)) uri++;
+               while(*uri && (*uri > 32))
+                       uri++;
                if (*uri) {
                        *uri = '\0';
                        uri++;
                }
 
                /* Skip white space */
-               while (*uri && (*uri < 33)) uri++;
+               while (*uri && (*uri < 33))
+                       uri++;
 
                if (*uri) {
                        c = uri;
-                       while (*c && (*c > 32)) c++;
+                       while (*c && (*c > 32))
+                                c++;
                        if (*c) {
                                *c = '\0';
                        }
@@ -492,7 +501,7 @@ static void *http_root(void *data)
        return NULL;
 }
 
-char *ast_http_setcookie(const char *var, const char *val, int expires, char *buf, int buflen)
+char *ast_http_setcookie(const char *var, const char *val, int expires, char *buf, size_t buflen)
 {
        char *c;
        c = buf;
@@ -575,6 +584,7 @@ static int __ast_http_load(int reload)
        struct hostent *hp;
        struct ast_hostent ahp;
        char newprefix[MAX_PREFIX];
+
        memset(&sin, 0, sizeof(sin));
        sin.sin_port = 8088;
        strcpy(newprefix, DEFAULT_PREFIX);
@@ -654,7 +664,7 @@ static char show_http_help[] =
 
 static struct ast_cli_entry http_cli[] = {
        { { "show", "http", NULL }, handle_show_http,
-         "Display HTTP status", show_http_help },
+         "Display HTTP server status", show_http_help },
 };
 
 int ast_http_init(void)
index f46e621..1ada58c 100644 (file)
@@ -37,6 +37,7 @@
  *  \arg \ref AstREADME
  *  \arg \ref AstVar
  *  \arg \ref AstENUM : The IETF way to redirect from phone numbers to VoIP calls
+ *  \arg \ref AstHTTP
  *  \arg \ref ConfigFiles
  *  \arg \ref SoundFiles included in the Asterisk distribution
  *  \arg \ref AstCREDITS : A Thank You to contributors
@@ -446,3 +447,12 @@ DUNDi is not itself a Voice-over IP signaling or media protocol. Instead, it pub
  *  \par See also
  *  \arg \ref codecs 
  */
+
+/*! \page AstHTTP AMI over HTTP support
+ * The http.c file includes support for manager transactions over
+ * http.
+ *  \section ami AMI - The manager Interface
+ *  \arg \link Config_ami Configuration file \endlink
+ *  \verbinclude http.txt
+ */
+
index 9156db0..0551163 100644 (file)
  * at the top of the source tree.
  */
 
-/*
- * DNS SRV record support
- */
-
 #ifndef _ASTERISK_HTTP_H
 #define _ASTERISK_HTTP_H
 
   \brief Support for Private Asterisk HTTP Servers.
   \note Note: The Asterisk HTTP servers are extremely simple and minimal and
         only support the "GET" method.
+  \author Mark Spencer <markster@digium.com>
 */
 
-/* HTTP Callbacks take the socket, the method and the path as arguments and should
+/*! \brief HTTP Callbacks take the socket, the method and the path as arguments and should
    return the content, allocated with malloc().  Status should be changed to reflect
    the status of the request if it isn't 200 and title may be set to a malloc()'d string
    to an appropriate title for non-200 responses.  Content length may also be specified. 
@@ -49,16 +46,16 @@ struct ast_http_uri {
        ast_http_callback callback;
 };
 
-/* Link into the Asterisk HTTP server */
+/*! \brief Link into the Asterisk HTTP server */
 int ast_http_uri_link(struct ast_http_uri *urihandler);
 
-/* Return a malloc()'d string containing an HTTP error message */
+/*! \brief Return a malloc()'d string containing an HTTP error message */
 char *ast_http_error(int status, const char *title, const char *extra_header, const char *text);
 
-/* Destroy an HTTP server */
+/*! \brief Destroy an HTTP server */
 void ast_http_uri_unlink(struct ast_http_uri *urihandler);
 
-char *ast_http_setcookie(const char *var, const char *val, int expires, char *buf, int buflen);
+char *ast_http_setcookie(const char *var, const char *val, int expires, char *buf, size_t buflen);
 
 int ast_http_init(void);
 int ast_http_reload(void);
index 3a2be6d..d66cebf 100644 (file)
--- a/manager.c
+++ b/manager.c
@@ -237,7 +237,7 @@ static char *complete_show_mancmd(const char *line, const char *word, int pos, i
        return ret;
 }
 
-static void xml_copy_escape(char **dst, int *maxlen, const char *src, int lower)
+static void xml_copy_escape(char **dst, size_t *maxlen, const char *src, int lower)
 {
        while (*src && (*maxlen > 6)) {
                switch(*src) {
@@ -273,6 +273,7 @@ static void xml_copy_escape(char **dst, int *maxlen, const char *src, int lower)
                src++;
        }
 }
+
 static char *xml_translate(char *in, struct ast_variable *vars)
 {
        struct ast_variable *v;
@@ -281,12 +282,13 @@ static char *xml_translate(char *in, struct ast_variable *vars)
        char *objtype=NULL;
        int colons = 0;
        int breaks = 0;
-       int len;
+       size_t len;
        int count = 1;
        int escaped = 0;
        int inobj = 0;
        int x;
        v = vars;
+
        while(v) {
                if (!dest && !strcasecmp(v->name, "ajaxdest"))
                        dest = v->value;
@@ -298,7 +300,7 @@ static char *xml_translate(char *in, struct ast_variable *vars)
                dest = "unknown";
        if (!objtype)
                objtype = "generic";
-       for (x=0;in[x];x++) {
+       for (x=0; in[x]; x++) {
                if (in[x] == ':')
                        colons++;
                else if (in[x] == '\n')
@@ -306,14 +308,15 @@ static char *xml_translate(char *in, struct ast_variable *vars)
                else if (strchr("&\"<>", in[x]))
                        escaped++;
        }
-       len = strlen(in) + colons * 5 + breaks * (40 + strlen(dest) + strlen(objtype)) + escaped * 10; /* foo="bar", "<response type=\"object\" id=\"dest\"", "&amp;" */
+       len = (size_t) (strlen(in) + colons * 5 + breaks * (40 + strlen(dest) + strlen(objtype)) + escaped * 10); /* foo="bar", "<response type=\"object\" id=\"dest\"", "&amp;" */
        out = malloc(len);
        if (!out)
                return 0;
        tmp = out;
        while(*in) {
                var = in;
-               while (*in && (*in >= 32)) in++;
+               while (*in && (*in >= 32))
+                       in++;
                if (*in) {
                        if ((count > 3) && inobj) {
                                ast_build_string(&tmp, &len, " /></response>\n");
@@ -353,10 +356,11 @@ static char *html_translate(char *in)
        int x;
        int colons = 0;
        int breaks = 0;
-       int len;
+       size_t len;
        int count=1;
        char *tmp, *var, *val, *out;
-       for (x=0;in[x];x++) {
+
+       for (x=0; in[x]; x++) {
                if (in[x] == ':')
                        colons++;
                if (in[x] == '\n')
@@ -369,7 +373,8 @@ static char *html_translate(char *in)
        tmp = out;
        while(*in) {
                var = in;
-               while (*in && (*in >= 32)) in++;
+               while (*in && (*in >= 32))
+                       in++;
                if (*in) {
                        if ((count % 4) == 0){
                                ast_build_string(&tmp, &len, "<tr><td colspan=\"2\"><hr></td></tr>\r\n");
@@ -405,20 +410,20 @@ void astman_append(struct mansession *s, const char *fmt, ...)
        va_end(ap);
        if (res == -1) {
                ast_log(LOG_ERROR, "Memory allocation failure\n");
-       } else {
-               if (s->fd > -1)
-                       ast_carefulwrite(s->fd, stuff, strlen(stuff), s->writetimeout);
-               else {
-                       tmp = realloc(s->outputstr, (s->outputstr ? strlen(s->outputstr) : 0) + strlen(stuff) + 1);
-                       if (tmp) {
-                               if (!s->outputstr)
-                                       tmp[0] = '\0';
-                               s->outputstr = tmp;
-                               strcat(s->outputstr, stuff);
-                       }
+               return;
+       } 
+       if (s->fd > -1)
+               ast_carefulwrite(s->fd, stuff, strlen(stuff), s->writetimeout);
+       else {
+               tmp = realloc(s->outputstr, (s->outputstr ? strlen(s->outputstr) : 0) + strlen(stuff) + 1);
+               if (tmp) {
+                       if (!s->outputstr)
+                               tmp[0] = '\0';
+                       s->outputstr = tmp;
+                       strcat(s->outputstr, stuff);
                }
-               free(stuff);
        }
+       free(stuff);
 }
 
 static int handle_showmancmd(int fd, int argc, char *argv[])
@@ -2139,7 +2144,7 @@ static char *generic_http_callback(int format, struct sockaddr_in *requestor, co
        char workspace[256];
        char cookie[128];
        char iabuf[INET_ADDRSTRLEN];
-       int len = sizeof(workspace);
+       size_t len = sizeof(workspace);
        int blastaway = 0;
        char *c = workspace;
        char *retval=NULL;