Commit Graph

10100 Commits

Author SHA1 Message Date
Joshua Colp
68ccfe6e5e Merged revisions 45928 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r45928 | file | 2006-10-22 20:27:39 -0400 (Sun, 22 Oct 2006) | 10 lines

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

........
r45927 | file | 2006-10-22 20:25:28 -0400 (Sun, 22 Oct 2006) | 2 lines

Don't leak memory mmmk?

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45929 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-23 00:33:20 +00:00
Christian Richter
3e5df80477 Merged revisions 45916 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r45916 | crichter | 2006-10-22 23:44:46 +0200 (Sun, 22 Oct 2006) | 9 lines

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

........
r45808 | crichter | 2006-10-21 14:35:13 +0200 (Sat, 21 Oct 2006) | 1 line

fixed issue, that if chan_misdn is loaded and couldn't be initialized it would cause a segfault after 'reload'. Reported by Drew/Matt thx.
........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45917 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 21:57:11 +00:00
Luigi Rizzo
dc83868813 more streamlining of check_user_full
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45915 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 21:08:07 +00:00
Luigi Rizzo
e7c0a0524a simplify the flow of function check_user_full()
A large block needs reindentation now, but we don't do that because
it can be moved to a separate function.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45905 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 20:59:38 +00:00
Luigi Rizzo
36d7b8f488 put duplicated code in functions.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45904 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 20:51:05 +00:00
Russell Bryant
b5ec2ec48a regenerate the configure script and autoconfig.h.in to reflect recent changes
for https support for the built in http server


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45893 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 19:34:30 +00:00
Luigi Rizzo
c15f7953c8 Fix a few issues in the previous (disabled) HTTPS code,
and support linux as well (using fopencookie(), which should
be available in glibc).

Update configure.ac to check for funopen (BSD) and fopencookie(glibc),
and while we are at it also for gethostbyname_r
(the generated files need to be updated, or you need
to run bootstrap.sh yourself).

Document the new options in http.conf.sample
(names are only tentative, better ones are welcome).

At this point we can safely enable the option.
Anyone willing to try this on Sun and Apple platforms ?



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45892 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 19:09:25 +00:00
Luigi Rizzo
e8a65b7155 Implement https support.
The changes are not large. Most of the diff comes from putting the
global variables describing an accept session into a structure, so
we can reuse the existing code for running multiple accept threads
on different ports.

Once this is done, and if your system has the funopen() library
function (and ssl, of course), it is just a matter of calling
the appropriate functions to set up the ssl connection on the
existing socket, and everything works on the secure channel now.

At the moment, the code is disabled because i have not implemented yet
the autoconf code to detect the presence of funopen(), and add -lssl
to main/Makefile if ssl libraries are present. And a bit of documentation
on the http.conf arguments, too.


If you want to manually enable https support, that is very simple
(step 0 1 2 will be eventually detected by ./configure, the
rest is something you will have to do anyways).

0. make sure your system has funopen(3). FreeBSD does, linux probably
   does too, not sure about other systems.

1. uncomment the following line in main/http.c
   // #define      DO_SSL  /* comment in/out if you want to support ssl */

2. add -lssl to AST_LIBS in main/Makefile

3. add the following options to http.conf

	sslenable=yes
	sslbindport=4433	; pick one you like
	sslcert=/tmp/foo.pem		; path to your certificate file.

4. generate a suitable certificate e.g. (example from mini_httpd's Makefile:

	openssl req -new -x509 -days 365 -nodes -out /tmp/foo.pem -keyout /tmp/foo.pem

and here you go:

	https://localhost:4433/asterisk/manager

now works.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45869 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 12:02:35 +00:00
Luigi Rizzo
5aa25a8d33 it is useless and possibly wrong to use ast_cli() to send the
reply back to http clients.
Use fprintf/fwrite instead, since we are already using a FILE *
to read the input.

If you wonder why, this is because it makes it trivial to
implement https support (as long as your system has funopen()).

And this is what i am going to put in with the next few commits...



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45858 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 08:28:16 +00:00
Joshua Colp
e85da9be41 Let's have build.h created a bit earlier so that func_version can use it and not stop the build on a fresh machine that has never had Asterisk installed on it before...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45847 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-22 04:44:43 +00:00
Luigi Rizzo
a0ae6ebd8e the default port number was erroneously stored in host order,
and reading from the config file used ntohs instead of htons.

this ought to be merged to 1.4 as well.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45836 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-21 20:24:04 +00:00
Joshua Colp
62d3a11eb9 Merged revisions 45817 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r45817 | file | 2006-10-21 14:48:58 -0400 (Sat, 21 Oct 2006) | 2 lines

Don't use promotion on Darwin because it doesn't seem to work quite right in all cases, this should solve the unresolved symbol issue people have been seeing.

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45820 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-21 18:52:33 +00:00
Russell Bryant
d60f37384e Merged revisions 45818 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r45818 | russell | 2006-10-21 14:49:46 -0400 (Sat, 21 Oct 2006) | 3 lines

Add a couple missing unregistrations of manager actions and remove duplicate
unregistrations of applications.  (issue #8194, jmls)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45819 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-21 18:50:38 +00:00
Luigi Rizzo
70ee76d64b introduce sip_pvt_lock() and sip_pvt_unlock() wrappers to
lock these data structures.

This improve readability, and also hides the underlying
locking mechanism so it is a lot easier to add diagnostic
code, or move the object locks somewhere else, etc.

On passing, rename the lock field in sip_pvt to pvt_lock,
also for ease of readability.




git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45786 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-20 20:59:06 +00:00
Joshua Colp
63f236445e Merged revisions 45775 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r45775 | file | 2006-10-20 15:03:03 -0400 (Fri, 20 Oct 2006) | 2 lines

Pass DESTDIR and ASTSBINDIR so that the utilities get installed in the proper location (reported on asterisk-dev mailing list)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45776 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-20 19:04:23 +00:00
Russell Bryant
02ec7acf6a put the constants for whether methods can create a dialog or not in an enum
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45764 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-20 15:54:14 +00:00
Luigi Rizzo
edd8e11889 minor comment changes, code rearrangement and field renaming
to minimize diffs with future modifications.

The current implementation is problematic for the following reasons:
+ all insertions are O(N) because the event list does not have a tail
  pointer;
+ there is only a single lock protecting both session and users queues.
+ the implementation of the queue itself is not documented.
  I think i have figured it out, more or less, but am unclear on
  whether there is proper locking in place

The rewrite (which i have working locally) uses a tailq so insertions
are O(1), separate locks for the event and session queues, and has
a documented implementation so hopefully we can figure out if/where
bug exist.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45753 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-20 11:24:43 +00:00
Olle Johansson
d6602b1b5e Let's repair the SIP attack shield :-)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45743 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-20 08:14:14 +00:00
Olle Johansson
e19576388d Doxygen corrections
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45742 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-20 08:00:13 +00:00
Steve Murphy
647704aca5 This new function, VERSION(), created via bug report 8176, may help dialplan programmers in the future. In the meantime, they can use the algorithm I outline on the bug report notes; If anyone invents something better, I'd hope they post it
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45724 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 22:06:27 +00:00
Steve Murphy
d752a6e521 astman was slightly weirding out over the new Dial and Newcallerid events
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45712 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 19:32:25 +00:00
Luigi Rizzo
e7c2295b81 more fixes to comments and very minor code rearrangement.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45696 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 17:26:20 +00:00
Joshua Colp
5e8e7e0d48 Merged revisions 45694 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r45694 | file | 2006-10-19 13:24:40 -0400 (Thu, 19 Oct 2006) | 2 lines

Let's remember to unregister JabberStatus too (issue #8184 reported by jmls)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45695 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 17:25:43 +00:00
Joshua Colp
43b2735606 Merged revisions 45692 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

................
r45692 | file | 2006-10-19 13:19:47 -0400 (Thu, 19 Oct 2006) | 10 lines

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

........
r45691 | file | 2006-10-19 13:16:37 -0400 (Thu, 19 Oct 2006) | 2 lines

Respect language selection when seeing if the file exists (issue #8178 reported by mnicholson)

........

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


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45693 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 17:22:13 +00:00
Luigi Rizzo
32214ffc02 implement proper XML/HTML formatting of multiple messages
(e.g. the result of waitevent).

Also fix some comments.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45690 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 17:07:08 +00:00
Joshua Colp
ceb2c7bc48 Merged revisions 45678 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r45678 | file | 2006-10-19 12:03:09 -0400 (Thu, 19 Oct 2006) | 2 lines

If the jitterbuffer is forced on then we can't partially bridge (reported by wangster on #asterisk-dev)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45679 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 16:06:14 +00:00
Luigi Rizzo
293330e7a9 move a large block out of do_monitor() and into a function,
to improve readability.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45668 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 10:05:02 +00:00
Luigi Rizzo
d553659017 + move the definition of netlock as it was not related to the
comment just above;

+ decouple the struct definition and variable declaration (iflist);



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45658 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 09:54:51 +00:00
Luigi Rizzo
9934b7f4d2 more documentation of data structure and functions.
Of interest:
+ ast_get_manager_by_name_locked() is now without the ast_
  prefix as it is a local function;

+ unuse_eventqent() renamed to unref_event(), and returns
  the pointer to the next entry.

+ marked with XXX a couple of usages of unref_event()
  because i suspect we are addressing the wrong entry.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45648 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 07:43:43 +00:00
Olle Johansson
f2d11e403c Cleaning up... Removing duplicate (again)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45647 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 07:17:13 +00:00
Kevin P. Fleming
4b8e41c529 restore freeing of threadstorage objects without custom cleanup functions
allow custom threadstorage init functions to return failure
use a custom init function for chan_sip's temp_pvt, to improve performance a bit


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45634 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 02:16:34 +00:00
Russell Bryant
777d03bd17 Merge fix to not leak the stringfields of a thread speicif sip_pvt. This also
includes the fix not to leak the actual sip_pvt.


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

........
r45622 | russell | 2006-10-18 20:59:51 -0400 (Wed, 18 Oct 2006) | 2 lines

Don't leak the actual thread-specific sip_pvt struct

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45624 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 01:04:18 +00:00
Russell Bryant
bd53e7ee4c Extend the thread storage API such that a custom initialization function can
be called for each thread specific object after they are allocated.  Note that
there was already the ability to define a custom cleanup function.  Also, if
the custom cleanup function is used, it *MUST* call free on the thread
specific object at the end.  There is no way to have this magically done that
I can think of because the cleanup function registered with the pthread
implementation will only call the function back with a pointer to the
thread specific object, not the parent ast_threadstorage object.


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45623 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-19 01:00:57 +00:00
Luigi Rizzo
71c67605ca silent warning from a debugging message (which will go away
soon, anyways)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45611 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 22:40:02 +00:00
Joshua Colp
2ee00d58c7 Just for Nicholson - here's an option, C, to Meetme that will allow it to continue in the dialplan if the person is kicked out. (issue #7994 reported by mnicholson with mods by myself)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45610 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 22:19:57 +00:00
Luigi Rizzo
eee51dbd1c remove trailing whitespace
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45599 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 21:41:09 +00:00
Luigi Rizzo
9e9edb05ec ouch! remember to unlink temporary files once done with them.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45598 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 21:36:20 +00:00
Luigi Rizzo
3c2eaaf1f0 + move output_format variables in the http section of the file;
+ more comments on struct mansession and global variables;
+ small improvements to the session matching code so it supports
  multiple sessions from the same IP



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45597 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 21:30:21 +00:00
Joshua Colp
0ff90f87c5 Merged revisions 45595 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r45595 | file | 2006-10-18 17:03:34 -0400 (Wed, 18 Oct 2006) | 2 lines

Don't modify things if we are using vfork as this is very bad and may cause unexpected behavior (issue #7970 reported by Nick Gavrikov)

........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45596 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 21:05:52 +00:00
Luigi Rizzo
c046fb40d8 another bunch of comments on the data structures.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45583 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 17:53:47 +00:00
Luigi Rizzo
a518165207 despite the large changes, this commit only moves functions
around so that functions belonging to the same group are
close to each other.

At the beginning of each group i have added a bit of documentation
to explain what the group does and what is the typical flow - basically,
all i have learned by code inspection over the past few days should
be documented for you to read.

I have not put many doxygen annotations just because i am not
sure what are the proper ones. Hopefully some doxygen experts will jump in.

Next on the plate: try to figure out how "struct eventqent"
are supposed to work.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45582 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 17:45:50 +00:00
Luigi Rizzo
a18accc09e more comment and formatting fixes, small simplifications
to functions get_input() and session_do()



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45572 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 16:52:13 +00:00
Matt O'Gorman
1783aef1e8 rizzo compile then commit, maybe even run it too ^_^
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45571 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 16:45:22 +00:00
Luigi Rizzo
71cf14207c comment and cleanup the main thread.
On passing, fix a bug: close the socket if the allocation
of a structure for the new session fails.
(the bugfix is a candidate for 1.4)



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45561 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 15:49:40 +00:00
Luigi Rizzo
eb3767cafe create a new (internal, for the time being) function astman_start_ack()
to start manager responses that need further lines.
This removes a lot of duplicate code from the various handlers
that at the moment build an ActionID string themselves.

Once settled, the function should move to manager.h so
it can be used by other files (chan_agent, chan_iax2, chan_sip,
chan_zap, res_jabber and app_queue).

I am not totally clear if there is a preferred position for
the ActionID: line in a message. Some instances put it at
the end, but one would argue that it is preferable to have
it at the beginning.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45551 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 14:21:15 +00:00
Luigi Rizzo
df06a40b05 more indentation cleanup from previous commits,
and remove the "busy" field from struct mansession
as it was not used correctly anyways.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45541 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 13:42:14 +00:00
Luigi Rizzo
46b5c26399 create proper handlers for "Challenge" and "Login" actions,
rather than use inline code for them.
Things are more readable this way, and also error processing
is more consistent.



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45540 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 13:23:22 +00:00
Luigi Rizzo
becfe17739 fix indentation from a commit of a couple of days ago
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45530 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 12:55:12 +00:00
Luigi Rizzo
8e63fb21da another batch of simplifications to authenticate()
(they are committed a bit at a time so it is easier to
revert them in case we find a bug at a later time).



git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45529 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 12:38:24 +00:00
Olle Johansson
7db2dfaf4e Remove duplicate declarations...
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@45528 65c4cc65-6c06-0410-ace0-fbb531ad65f3
2006-10-18 12:15:23 +00:00