move ast_carefulwrite from manager.c to utils.c so that cli.c and
authorRussell Bryant <russell@russellbryant.com>
Fri, 5 May 2006 21:01:39 +0000 (21:01 +0000)
committerRussell Bryant <russell@russellbryant.com>
Fri, 5 May 2006 21:01:39 +0000 (21:01 +0000)
res_agi.c no longer depend on manager.h (issue #6397, casper)

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

cli.c
include/asterisk/manager.h
include/asterisk/utils.h
manager.c
res/res_agi.c
utils.c

diff --git a/cli.c b/cli.c
index 333286d..0980395 100644 (file)
--- a/cli.c
+++ b/cli.c
@@ -44,7 +44,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/module.h"
 #include "asterisk/pbx.h"
 #include "asterisk/channel.h"
-#include "asterisk/manager.h"
 #include "asterisk/utils.h"
 #include "asterisk/app.h"
 #include "asterisk/lock.h"
index 4541e7f..71b5a59 100644 (file)
@@ -81,8 +81,6 @@ struct manager_action {
        struct manager_action *next;
 };
 
-int ast_carefulwrite(int fd, char *s, int len, int timeoutms);
-
 /* External routines may register/unregister manager callbacks this way */
 #define ast_manager_register(a, b, c, d) ast_manager_register2(a, b, c, d, NULL)
 
index 9a61f57..d2db42e 100644 (file)
@@ -217,6 +217,17 @@ const char *ast_inet_ntoa(char *buf, int bufsiz, struct in_addr ia);
 int ast_utils_init(void);
 int ast_wait_for_input(int fd, int ms);
 
+/*! ast_carefulwrite
+       \brief Try to write string, but wait no more than ms milliseconds
+       before timing out.
+
+       \note If you are calling ast_carefulwrite, it is assumed that you are calling
+       it on a file descriptor that _DOES_ have NONBLOCK set.  This way,
+       there is only one system call made to do a write, unless we actually
+       have a need to wait.  This way, we get better performance.
+*/
+int ast_carefulwrite(int fd, char *s, int len, int timeoutms);
+
 /*! Compares the source address and port of two sockaddr_in */
 static force_inline int inaddrcmp(const struct sockaddr_in *sin1, const struct sockaddr_in *sin2)
 {
index 06f996a..bf70166 100644 (file)
--- a/manager.c
+++ b/manager.c
@@ -168,38 +168,6 @@ static struct mansession {
 static struct manager_action *first_action = NULL;
 AST_MUTEX_DEFINE_STATIC(actionlock);
 
-/*! If you are calling ast_carefulwrite, it is assumed that you are calling
-   it on a file descriptor that _DOES_ have NONBLOCK set.  This way,
-   there is only one system call made to do a write, unless we actually
-   have a need to wait.  This way, we get better performance. */
-int ast_carefulwrite(int fd, char *s, int len, int timeoutms) 
-{
-       /* Try to write string, but wait no more than ms milliseconds
-          before timing out */
-       int res = 0;
-       struct pollfd fds[1];
-       while (len) {
-               res = write(fd, s, len);
-               if ((res < 0) && (errno != EAGAIN)) {
-                       return -1;
-               }
-               if (res < 0)
-                       res = 0;
-               len -= res;
-               s += res;
-               res = 0;
-               if (len) {
-                       fds[0].fd = fd;
-                       fds[0].events = POLLOUT;
-                       /* Wait until writable again */
-                       res = poll(fds, 1, timeoutms);
-                       if (res < 1)
-                               return -1;
-               }
-       }
-       return res;
-}
-
 /*! authority_to_str: Convert authority code to string with serveral options */
 static char *authority_to_str(int authority, char *res, int reslen)
 {
index 0b88b89..c4df242 100644 (file)
@@ -59,7 +59,6 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
 #include "asterisk/app.h"
 #include "asterisk/dsp.h"
 #include "asterisk/musiconhold.h"
-#include "asterisk/manager.h"
 #include "asterisk/utils.h"
 #include "asterisk/lock.h"
 #include "asterisk/strings.h"
diff --git a/utils.c b/utils.c
index 807df16..ccc87f2 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -591,6 +591,34 @@ int ast_wait_for_input(int fd, int ms)
        return poll(pfd, 1, ms);
 }
 
+int ast_carefulwrite(int fd, char *s, int len, int timeoutms) 
+{
+       /* Try to write string, but wait no more than ms milliseconds
+          before timing out */
+       int res = 0;
+       struct pollfd fds[1];
+       while (len) {
+               res = write(fd, s, len);
+               if ((res < 0) && (errno != EAGAIN)) {
+                       return -1;
+               }
+               if (res < 0)
+                       res = 0;
+               len -= res;
+               s += res;
+               res = 0;
+               if (len) {
+                       fds[0].fd = fd;
+                       fds[0].events = POLLOUT;
+                       /* Wait until writable again */
+                       res = poll(fds, 1, timeoutms);
+                       if (res < 1)
+                               return -1;
+               }
+       }
+       return res;
+}
+
 char *ast_strip_quoted(char *s, const char *beg_quotes, const char *end_quotes)
 {
        char *e;