don't make expression evaluator allocate a memory buffer for each result
[asterisk/asterisk.git] / utils / astman.c
index 1fa4156..e6af191 100755 (executable)
@@ -7,11 +7,11 @@
  
 #include <newt.h>
 #include <stdio.h>
-#include <sys/socket.h>
 #include <sys/time.h>
 #include <netdb.h>
 #include <netinet/in.h>
 #include <arpa/inet.h>
+#include <sys/socket.h>
 #include <sys/select.h>
 #include <fcntl.h>
 #include <string.h>
 #include <unistd.h>
 #include <stdlib.h>
 
-#include <asterisk/md5.h>
-#include <asterisk/manager.h>
+#include "asterisk/md5.h"
+#include "asterisk/manager.h"
 
 #undef gethostbyname
 
 #define MAX_HEADERS 80
 #define MAX_LEN 256
 
+/*
+ * 2005.05.27 - different versions of newt define the type of the buffer
+ * for the 5th argument to newtEntry() as char ** or const char ** . To 
+ * let the code compile cleanly with -Werror, we cast it to void * through 
+ * _NEWT_CAST.
+ */
+#define _NEWT_CAST (void *)
+
 static struct ast_mansession {
        struct sockaddr_in sin;
        int fd;
@@ -45,6 +53,17 @@ static struct ast_chan {
        struct ast_chan *next;
 } *chans;
 
+/* dummy functions to be compatible with the Asterisk core for md5.c */
+void ast_register_file_version(const char *file, const char *version);
+void ast_register_file_version(const char *file, const char *version)
+{
+}
+
+void ast_unregister_file_version(const char *file);
+void ast_unregister_file_version(const char *file)
+{
+}
+
 static struct ast_chan *find_chan(char *name)
 {
        struct ast_chan *prev = NULL, *chan = chans;
@@ -178,8 +197,8 @@ static struct event {
 static int process_message(struct ast_mansession *s, struct message *m)
 {
        int x;
-       char event[80];
-       strncpy(event, get_header(m, "Event"), sizeof(event));
+       char event[80] = "";
+       strncpy(event, get_header(m, "Event"), sizeof(event) - 1);
        if (!strlen(event)) {
                fprintf(stderr, "Missing event in request");
                return 0;
@@ -436,7 +455,7 @@ static int get_user_input(char *msg, char *buf, int buflen)
 
        newtCenteredWindow(60,7, msg);
 
-       inpfield = newtEntry(5, 2, "", 50, &input, 0);
+       inpfield = newtEntry(5, 2, "", 50, _NEWT_CAST &input, 0);
        ok = newtButton(22, 3, "OK");
        cancel = newtButton(32, 3, "Cancel");
        form = newtForm(NULL, NULL, 0);
@@ -603,8 +622,8 @@ static int login(char *hostname)
        ulabel = newtLabel(4,2,"Username:");
        plabel = newtLabel(4,3,"Password:");
        
-       username = newtEntry(14, 2, "", 20, &user, 0);
-       password = newtEntry(14, 3, "", 20, &pass, NEWT_FLAG_HIDDEN);
+       username = newtEntry(14, 2, "", 20, _NEWT_CAST &user, 0);
+       password = newtEntry(14, 3, "", 20, _NEWT_CAST &pass, NEWT_FLAG_HIDDEN);
        
        form = newtForm(NULL, NULL, 0);
        newtFormAddComponents(form, username, password, login, cancel, label, ulabel, plabel,NULL);