Commit Graph

115 Commits

Author SHA1 Message Date
Russell Bryant
0a9750ef9f Merged revisions 60603 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r60603 | russell | 2007-04-06 15:58:43 -0500 (Fri, 06 Apr 2007) | 13 lines

To be able to achieve the things that we would like to achieve with the
Asterisk GUI project, we need a fully functional HTTP interface with access
to the Asterisk manager interface.  One of the things that was intended to be
a part of this system, but was never actually implemented, was the ability for
the GUI to be able to upload files to Asterisk.  So, this commit adds this in
the most minimally invasive way that we could come up with.

A lot of work on minimime was done by Steve Murphy.  He fixed a lot of bugs in
the parser, and updated it to be thread-safe.  The ability to check
permissions of active manager sessions was added by Dwayne Hubbard.  Then,
hacking this all together and do doing the modifications necessary to the HTTP
interface was done by me.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@60604 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-06 21:16:38 +00:00
Russell Bryant
5f629360ec Merged revisions 60137 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r60137 | russell | 2007-04-04 12:40:10 -0500 (Wed, 04 Apr 2007) | 14 lines

Merged revisions 60134 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r60134 | russell | 2007-04-04 12:38:47 -0500 (Wed, 04 Apr 2007) | 6 lines

It is valid to redirect channels via the manager interface that are not in the
UP state.  Instead of checking for that to prevent to ensure a dead channel
doesn't get redirected, just use the ast_check_hangup() API call.
(issue #9457, reported by Callmewind, patch by me)
(related to issue #8977)

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@60141 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-04-04 17:41:37 +00:00
Russell Bryant
53dca1a7e4 Merged revisions 58165 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r58165 | russell | 2007-03-06 18:25:19 -0600 (Tue, 06 Mar 2007) | 12 lines

Merged revisions 58164 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r58164 | russell | 2007-03-06 18:20:13 -0600 (Tue, 06 Mar 2007) | 4 lines

If the channels acquired using the manager Redirect action are not up, then
don't attempt to do anything with them.  It could lead to weird behavior,
including crashes.  (issue #8977)

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@58166 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-03-07 00:26:01 +00:00
Olle Johansson
e916cf45da Doxygen updates and corrections
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@56648 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-24 19:49:11 +00:00
Russell Bryant
0d3a211335 Introduce a new manager action, GetConfigJSON, which is intended to improve
performance of the GUI.  This encodes the configuration into the JSON format
in a manager header, "JSON: ".  The encoded information can be directly used
as a javascript object, so no parsing is needed.  For large configuration
files, this can greatly improve loading times in the GUI. Furthermore, the 
encoding takes up a lot less space when being transmitted than the other 
alternatives.  (Inspired by discussion with Pari)

Here is an example of what you get:
http://localhost:8088/asterisk/rawman?action=getconfigjson&filename=users.conf

Response: Success
JSON: {"general":["hasvoicemail=yes"],"6000":["fullname=russell","secret=1234"]}


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@56323 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-23 00:45:04 +00:00
Joshua Colp
cd56d84085 Properly handle an error result from a manager action. This could have left the action list permanently locked for reading.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@54711 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-16 00:10:17 +00:00
Olle Johansson
8ac0fb2bc3 New CLI command "Core show settings" to list some core settings
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@54464 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-14 20:22:20 +00:00
Joshua Colp
cd1973e4bc It is with pleasure that I announce the return of rawman support through the HTTP server. (issue #9013 reported by Jynger)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53635 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-08 20:39:41 +00:00
Tilghman Lesher
5f3b3d2358 Merged revisions 53246 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r53246 | tilghman | 2007-02-06 01:00:52 -0600 (Tue, 06 Feb 2007) | 10 lines

Merged revisions 53245 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r53245 | tilghman | 2007-02-06 00:58:28 -0600 (Tue, 06 Feb 2007) | 2 lines

Issue 8987 - Status could return two responses (mnicholson)

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53247 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-02-06 07:07:22 +00:00
Russell Bryant
b233892198 Merged revisions 53046 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r53046 | russell | 2007-01-31 15:32:08 -0600 (Wed, 31 Jan 2007) | 11 lines

Merged revisions 53045 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.2

........
r53045 | russell | 2007-01-31 15:25:11 -0600 (Wed, 31 Jan 2007) | 3 lines

Fix a bunch of places where pthread_attr_init() was called, but
pthread_attr_destroy() was not.

........

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@53047 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-31 21:35:15 +00:00
Russell Bryant
9e1370e6c6 Merged revisions 52688 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r52688 | russell | 2007-01-29 16:55:41 -0600 (Mon, 29 Jan 2007) | 3 lines

Remove a recursive lock of the manager session.  This was pointed out by 
zandbelt in issue #8711.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@52692 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-29 22:57:16 +00:00
Russell Bryant
9540b7fcea The changes for trunk are less extensive, but include
- changing the actionlock to a rwlock
 - not locking the session before doing the action callback
The crash issue in 8711 should not be an issue here.


Merged revisions 52611 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r52611 | russell | 2007-01-29 14:39:20 -0600 (Mon, 29 Jan 2007) | 10 lines

The session lock can not be held while calling action callbacks.  If so, then
when the WaitEvent callback gets called, then no event can happen because the
session can't be locked by another thread.  Also, the session needs to be
locked in the HTTP callback when it reads out the output string.  This fixes
the deadlock reported in both 8711 and 8934.
Regarding issue 8711, there still may be an issue.  If there is a second action
requested before the processing of the first action is finished, there could
still be some corruption of the output string buffer used to build the result.
(issue #8711, #8934)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@52613 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-29 20:51:24 +00:00
Joshua Colp
68c1f5338f Close file after we do the translation, and map memory for both reading/writing. (issue #8886 reported by cwegener)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51831 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-24 00:22:50 +00:00
Russell Bryant
ac884e0c3a Merged revisions 51781 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r51781 | russell | 2007-01-23 16:04:01 -0600 (Tue, 23 Jan 2007) | 6 lines

Fix some bugs in process_message().  The manager session lock needs to be held
when sending some sort of response, or calling one of the manager action
callbacks.  This resolves an issue where people using the GUI would get random
crashes when they start clicking around a lot.
(issue #8711, reported and debugged by zandbelt)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51787 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-23 22:09:23 +00:00
Russell Bryant
8137080816 Merged revisions 51750 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r51750 | russell | 2007-01-23 15:33:15 -0600 (Tue, 23 Jan 2007) | 4 lines

When traversing the list of manager actions, the iterator needs to be
initialized to the list head *after* locking the list.  Also, lock the actions
list in one place it is being accessed where it was not being done.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51751 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-23 21:38:31 +00:00
Russell Bryant
606ee0dab4 Break out of the config processing loop for manager.conf once the correct user
has been found so that 'cat' is non-NULL.  This way, users.conf is only checked
when necessary.  (issue #8852, akohlsmith, committed patch a bit different)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51296 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-19 16:30:00 +00:00
Russell Bryant
0e8bd82efe Fix trunk version of manager support for users.conf. Now it actually pays
attention to the "hasmanager" option.

(Thanks to Anthony L. for pointing out that this was broken!)


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51247 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-18 18:54:51 +00:00
Russell Bryant
2c5d2168c1 Merged revisions 51233 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r51233 | russell | 2007-01-18 11:18:43 -0600 (Thu, 18 Jan 2007) | 3 lines

Make the "hasmanager" option in users.conf actually have an effect.
(issue #8740, LnxPrgr3)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@51234 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-18 17:33:33 +00:00
Joshua Colp
2964e9eab6 Merged revisions 50895 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r50895 | file | 2007-01-15 11:36:07 -0500 (Mon, 15 Jan 2007) | 2 lines

Move event processing into do_message so that it gets executed again when events are tripped.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50896 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-15 16:40:48 +00:00
Joshua Colp
e82a8a1d0a Exit from session loop upon error (ie: they disconnected) and don't do any buffer manipulation in do_message. get_input will handle it.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50629 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-12 18:13:50 +00:00
Joshua Colp
c64ced140f Merged revisions 50602 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r50602 | file | 2007-01-12 11:42:33 -0500 (Fri, 12 Jan 2007) | 2 lines

We need to check for res being 0 in do_message itself, otherwise our headers will get lost.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@50603 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-12 16:47:20 +00:00
Kevin P. Fleming
4a6ed271f5 probably shouldn't leave the mmap'ed file hanging around in memory
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49735 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-06 00:02:06 +00:00
Kevin P. Fleming
d0f3b18d16 a little more const-ification
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49727 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-05 23:58:53 +00:00
Kevin P. Fleming
d0542012c0 Merged revisions 49680 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r49680 | kpfleming | 2007-01-05 16:52:37 -0600 (Fri, 05 Jan 2007) | 2 lines

don't 'consume' the params list before we try to use it again

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49681 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-05 22:53:38 +00:00
Kevin P. Fleming
3d376fca97 use mmap() to read in the results of the manager action for an HTTP request, instead of reading it into a buffer
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49679 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-05 22:52:16 +00:00
Kevin P. Fleming
87b9abc892 Merged revisions 49676 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r49676 | kpfleming | 2007-01-05 16:16:33 -0600 (Fri, 05 Jan 2007) | 2 lines

reduce stack consumption for AMI and AMI/HTTP requests by nearly 20K in most cases

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49678 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-05 22:43:18 +00:00
Joshua Colp
af3e5903c8 It's pretty difficult to pthread_kill a thread that doesn't exist. (issue #8681 reported by bkruse)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49525 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-04 21:40:54 +00:00
Olle Johansson
e5b5a92a56 Fix manager too.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49094 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2007-01-01 19:52:22 +00:00
Kevin P. Fleming
adca0ff14b Merged revisions 49006 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r49006 | kpfleming | 2006-12-27 16:06:56 -0600 (Wed, 27 Dec 2006) | 2 lines

since these variables all have static duration, none of them need initializers (they default to zero anyway)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@49008 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-27 22:14:33 +00:00
Russell Bryant
08cfbe97b8 Remove a debug message. If this is still needed for debugging something,
it should be made a LOG_DEBUG message.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48929 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-23 20:08:16 +00:00
Luigi Rizzo
79fb4e4579 Replace ast_build_string with ast_str_*().
On passing remove presumably duplicate code to generate
the message for the manager_hooks:

in the previous version, the message was almost the same as the one sent
to regular sessions, with the exception of the empty line at the end, and
a few (presumably unintentional) differences e.g.  timestamps,
debugging, and lowercase headers for "event" and "privilege".

now we reuse the same message as before.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48553 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-18 11:28:37 +00:00
Luigi Rizzo
20b382cfff replace ast_build_string() with ast_str_*() functions.
This makes the code easier to follow and saves some
copies to intermediate buffers.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48515 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-16 09:33:31 +00:00
Luigi Rizzo
055abfe9d9 simplify the ast_dynamic_str_*.... routines by
renaming them to ast_str ... and putting the
struct ast_threadstorage pointer into the struct ast_str.

This makes the code a lot more readable.

At this point we can use these routines also to
replace ast_build_string().



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48510 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 23:10:42 +00:00
Luigi Rizzo
4e427d84bd unbreak the output for http session.
Not long ago i replaced lseek() with fseek() but
forgot that filr FILE's you need ftell to
give you the current position.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48501 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-15 18:37:29 +00:00
Luigi Rizzo
77e986e0d0 properly initialize a malloc'ed buffer
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48410 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-12 10:36:15 +00:00
Luigi Rizzo
1b45dc4eee normalize the scanning of "general" options in the config file.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-12 10:35:10 +00:00
Luigi Rizzo
f6c706c71b make sure the argument to ast_malloc() is > 0.
Long explaination:

The behaviour of the underlying malloc(0) differs depending on the
operating system.  Some return NULL (SysV behaviour); some still
allocate a small chunk of memory and return a valid pointer (e.g.
traditional BSD); some (e.g. FreeBSD 6.x) return a non-null pointer
that causes a memory fault if used, even just for reading.

Given the above variety, better never call malloc(0).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48389 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-11 18:11:58 +00:00
Luigi Rizzo
437f4288cd - Generalize the function ssl_setup() so that the certificate info
are passed as an argument.

- Update the code in main/http.c to use the new interface
  (the diff is large but mostly mechanical, due to the name change of
  several variables);

- And since now it is trivial, implement "AMI over TLS", and document
  the possible options in manager.conf

- And since the test client (openssl s_client -connect host:port )
  does not generate \r\n as a line terminator, make get_input()
  also accept just a \n as a line terminator (Mac users: do you
  also need the \r-only version ?)
 
The option parsing in manager.conf is not very efficient, and needs
to be cleaned up and made similar to what we have in http.conf



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48351 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-07 16:42:29 +00:00
Steve Murphy
cb5e37e56c Merged revisions 47986,47995,47997,48001,48003-48004,48008-48014,48016,48018-48019 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk

................
r47986 | oej | 2006-11-24 07:00:19 -0700 (Fri, 24 Nov 2006) | 6 lines

Doxygen update
- Document cause codes
- Document a bit more on channel variables - global, predefined and local
- Fix some doxygen in channel.h. Adding one comment for two definitions does not
  work. They won't be copied to each.

................
r47995 | murf | 2006-11-24 10:40:49 -0700 (Fri, 24 Nov 2006) | 1 line

This fix inspired by a patch supplied in bug 8189, which points out problems with the PLC code
................
r47997 | murf | 2006-11-24 11:17:25 -0700 (Fri, 24 Nov 2006) | 1 line

removed the svnmerge-integrated property from trunk; it's confusing svnmerge in newly created branches
................
r48001 | rizzo | 2006-11-25 02:02:42 -0700 (Sat, 25 Nov 2006) | 5 lines

set pointers to NULL after freeing memory to avoid multiple free()

probably 1.4/1.2 issue as well if someone can look into that.


................
r48003 | oej | 2006-11-25 02:45:57 -0700 (Sat, 25 Nov 2006) | 9 lines

- Adding comment on suspicious memory allocation. Seems like it's never freed, but I don't
  have a clear understanding of the frame allocation/deallocation, so I just mark this
  for investigation. (Reported by Ed Guy). We're trying to see if a free() hurts...

- Doxygen comments on p2p rtp bridge stuff.  I am a bit worried about shortcutting
  rtcp this way, but will need feedback from rtcp gurus. This should work for 
  video calls too, and possibly UDPTL.


................
r48004 | oej | 2006-11-25 02:48:30 -0700 (Sat, 25 Nov 2006) | 2 lines

Changing ERROR to lesser level. Imported from 1.2/1.4

................
r48008 | rizzo | 2006-11-25 10:37:04 -0700 (Sat, 25 Nov 2006) | 7 lines

generalize a bit the functions used to create an tcp socket
and then run a service on it.
The code in manager.c does essentially the same things,
so we will be able to reuse the code in here (probably
moving it to netsock.c or another appropriate library file).


................
r48009 | mattf | 2006-11-25 13:30:04 -0700 (Sat, 25 Nov 2006) | 1 line

Updates to show linkset command
................
r48010 | mattf | 2006-11-25 13:54:38 -0700 (Sat, 25 Nov 2006) | 2 lines

Add ss7 show linkset command

................
r48011 | mattf | 2006-11-25 14:32:33 -0700 (Sat, 25 Nov 2006) | 1 line

Make sure we don't send a group reset on a group larger than 32 CICs
................
r48012 | mattf | 2006-11-25 14:35:23 -0700 (Sat, 25 Nov 2006) | 1 line

bug fix
................
r48013 | mattf | 2006-11-25 14:46:58 -0700 (Sat, 25 Nov 2006) | 1 line

Make compiler happier
................
r48014 | mattf | 2006-11-25 14:50:42 -0700 (Sat, 25 Nov 2006) | 1 line

Little fix so we use the right message
................
r48016 | murf | 2006-11-25 17:15:42 -0700 (Sat, 25 Nov 2006) | 9 lines

Merged revisions 48015 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r48015 | murf | 2006-11-25 17:01:34 -0700 (Sat, 25 Nov 2006) | 1 line

A little bit of func_cdr documentation upgrade-- no bug# involved, although 8221 may have inspired it.
........

................
r48018 | murf | 2006-11-25 17:31:13 -0700 (Sat, 25 Nov 2006) | 9 lines

Merged revisions 48017 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r48017 | murf | 2006-11-25 17:26:16 -0700 (Sat, 25 Nov 2006) | 1 line

might as well also document the raw values of the flag vars
........

................
r48019 | russell | 2006-11-25 23:55:33 -0700 (Sat, 25 Nov 2006) | 6 lines

- Add some comments on thread storage with a brief explanation of what it is
  as well as what the motivation is for using it.
- Add a comment by the declaration of ast_inet_ntoa() noting that this function
  is not reentrant, and the result of a previous call to the function is no
  longer valid after calling it again.

................


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48350 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-07 16:03:56 +00:00
Luigi Rizzo
605b9a914e remove duplicated code to start the server threads, use
the infrastructure exposed in http.c earlier today.

As a bonus, now we can restart the session on a different
port just reloading the module.

On passing, fix a bug in the handling of 'enabled' in the configuration
file - previously, a missing "enabled=" line in manager.conf meant
"whatever the state was before" instead of a specific value.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48338 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-06 20:46:01 +00:00
Luigi Rizzo
ce6804c877 Part of the transformations necessary to add TLS support,
as described in
http://lists.digium.com/pipermail/asterisk-dev/2006-December/025213.html

In detail, this commit does the following:

b) change the function get_input() to use fread() instead of read()
   to collect the data. One can still do the ast_wait_for_input() on
   the original descriptor returned by accept().

c) change the function send_string() to work on the FILE *.
   As a side effect, this change now really guarantees that
   we don't spend more than "writetimeout" milliseconds on
   each line sent.

d) modify the function action_command() so that it creates a
   temporary file descriptor to be passed to ast_cli_command(),
   and then read back the data from the temp file and write it
   to the output with send_string(). The code is similar to
   what is done in generic_http_callback() to support AMI-over-HTTP.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48332 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-12-06 18:45:19 +00:00
Luigi Rizzo
0b798e298d don't use outputstr in the struct mansession, it's just
an extra allocation on a path where we have way too many already.

Unfortunately the AMI-over-HTTP requires multiple copies,
because we need to generate a header, then the raw output to
an intermediate buffer, then convert it to html/xml, and
finally copy everything into a malloc'ed buffer because
that's what the generic_http_callback interface expects.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48090 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 17:08:19 +00:00
Luigi Rizzo
3dbc33ed4f initialize the dynamic string in a sane way.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48086 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 15:53:12 +00:00
Luigi Rizzo
29985ff8c3 do not return 500 Internal error if the AMI command provides
no output.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48083 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 13:08:56 +00:00
Luigi Rizzo
77ae04d7c1 mosty comment and documentation cleanup on waitevent.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48082 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 12:05:25 +00:00
Luigi Rizzo
0153bdd72c Move the code to purge stale sessions to a function,
to simplify the body of the main loop of the accepting thread.
Rename purge_unused() to purge_events() so one knows what the
function does.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48081 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 11:20:39 +00:00
Luigi Rizzo
5ce08d37ca Various simplifications of the code:
+ use a wrapper around ast_carefulwrite(), used in two places,
  to make life easier when we decide to use a different interface
  to the socket.

+ put an ast_verbose() message on astman_append on a case that
  should never happen now that we use a temporary file for
  AMI-over-HTTP sessions

+ document and slightly simplify process_events() by removing
  unnecessary parentheses.

+ in get_input(), use ast_wait_for_input() instead of poll().

  We may want to move to a completely non-blocking


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48080 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 10:23:25 +00:00
Luigi Rizzo
1c570d9ba0 More informative message on invalid commands.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48079 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 09:43:44 +00:00
Luigi Rizzo
a8e9428317 another normalization of AMI vs HTTP identification.
Should really define a macro IS_AMI(s) so it is clear what
we want to do.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48078 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 09:39:16 +00:00
Luigi Rizzo
d1dcb0de2a always use managerid to determine whether this is an AMI or HTTP session,
and document it.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@48077 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-11-28 09:27:37 +00:00