aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--cli.c1
-rw-r--r--include/asterisk/manager.h2
-rw-r--r--include/asterisk/utils.h11
-rw-r--r--manager.c32
-rw-r--r--res/res_agi.c1
-rw-r--r--utils.c28
6 files changed, 39 insertions, 36 deletions
diff --git a/cli.c b/cli.c
index 333286dad..09803954f 100644
--- 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"
diff --git a/include/asterisk/manager.h b/include/asterisk/manager.h
index 4541e7f17..71b5a5966 100644
--- a/include/asterisk/manager.h
+++ b/include/asterisk/manager.h
@@ -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)
diff --git a/include/asterisk/utils.h b/include/asterisk/utils.h
index 9a61f573b..d2db42e07 100644
--- a/include/asterisk/utils.h
+++ b/include/asterisk/utils.h
@@ -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)
{
diff --git a/manager.c b/manager.c
index 06f996ab0..bf7016672 100644
--- 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)
{
diff --git a/res/res_agi.c b/res/res_agi.c
index 0b88b892c..c4df2421e 100644
--- a/res/res_agi.c
+++ b/res/res_agi.c
@@ -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 807df16b2..ccc87f21d 100644
--- 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;