aboutsummaryrefslogtreecommitdiffstats
path: root/main/http.c
AgeCommit message (Collapse)AuthorFilesLines
2009-01-17Fix qualify for TCP peertwilson1-8/+8
(closes issue #14192) Reported by: pabelanger Patches: asterisk-bug14192.diff.txt uploaded by jamesgolovich (license 176) Tested by: jamesgolovich git-svn-id: http://svn.digium.com/svn/asterisk/trunk@169080 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-13Merge ast_str_opaque branch (discontinue usage of ast_str internals)tilghman1-3/+3
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@163991 f38db490-d61c-443f-a65b-d21fe96a405b
2008-12-05Janitor, use ARRAY_LEN() when possible.eliel1-1/+1
(closes issue #13990) Reported by: eliel Patches: array_len.diff uploaded by eliel (license 64) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@161218 f38db490-d61c-443f-a65b-d21fe96a405b
2008-11-02bring over all the fixes for the warnings found by gcc 4.3.x from the 1.4 ↵kpfleming1-3/+9
branch, and add the ones needed for all the new code here too git-svn-id: http://svn.digium.com/svn/asterisk/trunk@153616 f38db490-d61c-443f-a65b-d21fe96a405b
2008-10-19cleaup of the TCP/TLS socket API:kpfleming1-20/+21
1) rename 'struct server_args' to 'struct ast_tcptls_session_args', to follow coding guidelines 2) make ast_make_file_from_fd() static and rename it to something that indicates what it really is for (again coding guidelines) 3) rename address variables inside 'struct ast_tcptls_session_args' to be more descriptive (dare i say it... coding guidelines) 4) change ast_tcptls_client_start() to use the new 'remote_address' field of the session args for the destination of the connection, and use the 'local_address' field to bind() the socket to the proper source address, if one is supplied 5) in chan_sip, ensure that we pass in the PP address we are bound to when creating outbound (client) connections, so that our connections will appear from the correct address git-svn-id: http://svn.digium.com/svn/asterisk/trunk@151101 f38db490-d61c-443f-a65b-d21fe96a405b
2008-09-12Create a new config file status, CONFIG_STATUS_FILEINVALID for differentiatingtilghman1-1/+2
when a file is invalid from when a file is missing. This is most important when we have two configuration files. Consider the following example: Old system: sip.conf users.conf Old result New result ======== ========== ========== ========== Missing Missing SIP doesn't load SIP doesn't load Missing OK SIP doesn't load SIP doesn't load Missing Invalid SIP doesn't load SIP doesn't load OK Missing SIP loads SIP loads OK OK SIP loads SIP loads OK Invalid SIP loads incompletely SIP doesn't load Invalid Missing SIP doesn't load SIP doesn't load Invalid OK SIP doesn't load SIP doesn't load Invalid Invalid SIP doesn't load SIP doesn't load So in the case when users.conf doesn't load because there's a typo that disrupts the syntax, we may only partially load users, instead of failing with an error, which may cause some calls not to get processed. Worse yet, the old system would do this with no indication that anything was even wrong. (closes issue #10690) Reported by: dtyoo Patches: 20080716__bug10690.diff.txt uploaded by Corydon76 (license 14) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@142992 f38db490-d61c-443f-a65b-d21fe96a405b
2008-08-10Another big chunk of changes from the RSW branch. Bunch of stuff from main/seanbright1-4/+4
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@137082 f38db490-d61c-443f-a65b-d21fe96a405b
2008-08-04HTTP module memory leakstilghman1-0/+6
(closes issue #13230) Reported by: eliel Patches: res_http_post_leak.patch uploaded by eliel (license 64) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@135476 f38db490-d61c-443f-a65b-d21fe96a405b
2008-08-01Fix mime parsing by re-adding support for passing headers to callback functionstwilson1-0/+19
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@135235 f38db490-d61c-443f-a65b-d21fe96a405b
2008-07-31Merged revisions 134983 via svnmerge from kpfleming1-4/+4
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r134983 | kpfleming | 2008-07-31 17:18:11 -0500 (Thu, 31 Jul 2008) | 3 lines accomodate users who seem to lack a sense of humor :-) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@135016 f38db490-d61c-443f-a65b-d21fe96a405b
2008-07-29Fix deadlock when unloading res_http_post because the uris lock was still ↵bbryant1-0/+1
locked. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@134253 f38db490-d61c-443f-a65b-d21fe96a405b
2008-07-25Committing a fix that was introduced a long timebkruse1-3/+6
ago (does not affect 1.4), where you would pass a pointer to the end of a character array, and ast_uri_decode would do no good. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@133651 f38db490-d61c-443f-a65b-d21fe96a405b
2008-07-02Expose the prefix variable so that it can be used by modules depending on ↵twilson1-0/+7
http support git-svn-id: http://svn.digium.com/svn/asterisk/trunk@127545 f38db490-d61c-443f-a65b-d21fe96a405b
2008-06-17Updates all usages of ast_tcptls_session_instance to be managed by reference ↵bbryant1-1/+2
counts so that they only get destroyed when all threads are done using them, and memory does not get free'd causing strange issues with SIP. This code was originally written by russellb in the team/group/issue_11972/ branch. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@123546 f38db490-d61c-443f-a65b-d21fe96a405b
2008-05-23Add new functionality to http server that requires manager authentication ↵bbryant1-2/+22
for any path that includes a directory named 'private'. This patch also requires manager authentication for any POST's being sent to the server as well to help secure uploads. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@118161 f38db490-d61c-443f-a65b-d21fe96a405b
2008-05-20Document the possible presence of multiple variables with therizzo1-7/+27
same name in http queries, which might confuse the manager. Replace calls to ast_uri_decode() with a local function that also replaces '+' with ' ', as this is the normal encoding for spaces in http requests. This allows passing cli commands to the manager through the http interface. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@117295 f38db490-d61c-443f-a65b-d21fe96a405b
2008-05-20Reverse the check for Cookie: and remove leftover code implementingrizzo1-26/+3
the same thing. Add an ast_debug() call to help debugging the url matching. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@117266 f38db490-d61c-443f-a65b-d21fe96a405b
2008-04-23Merged revisions 114600 via svnmerge from russell1-45/+42
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r114600 | russell | 2008-04-23 17:18:12 -0500 (Wed, 23 Apr 2008) | 6 lines Improve some broken cookie parsing code. Previously, manager login over HTTP would only work if the mansession_id cookie was first. Now, the code builds a list of all of the cookies in the Cookie header. This fixes a problem observed by users of the Asterisk GUI. (closes AST-20) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@114601 f38db490-d61c-443f-a65b-d21fe96a405b
2008-04-02Re-add HTTP post support by moving to res_http_post.ctwilson1-333/+16
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@112426 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-31Yeah, simplify that logic a bit...twilson1-1/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@112035 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-31Handle blank prefix= in http.conftwilson1-2/+2
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@112033 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-27Fix another little http problem. In making it match coding guidelines, a ↵twilson1-1/+1
comparison was dropped git-svn-id: http://svn.digium.com/svn/asterisk/trunk@111500 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-26Stupid strcasecmp function :-)twilson1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@111213 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-26Add the "config reload <conffile>" command, which allows you to tell Asterisktilghman1-1/+1
to reload any file that references a given configuration file. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@111012 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-19actually implement HTTP request dispatching based on both URI and method; ↵kpfleming1-81/+101
reduce duplication of data when generating responses using ast_http_error() git-svn-id: http://svn.digium.com/svn/asterisk/trunk@109912 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-19clean up code to conform to coding guidelineskpfleming1-127/+232
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@109909 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-19Minor change to use Asterisk macrosrussell1-2/+5
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@109841 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-18start the process of changing HTTP request dispatching to do it based on ↵kpfleming1-5/+8
*both* URI and method, so that POST support can move into a module; move http.c's private function prototypes into _private.h git-svn-id: http://svn.digium.com/svn/asterisk/trunk@109762 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-17Replace minimime with superior GMime library so that the entire contents of ↵twilson1-85/+126
an http post are not read into memory. This does introduce a dependency on the GMime library for handling HTTP POSTs, but it is available in most distros. If the library is present, then the compile flag for ENABLE_UPLOADS is enabled by default in menuselect. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@109229 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-12Make the default prefix empty, like it was in Asterisk 1.4.russell1-4/+1
(closes issue #12198, reported by bkruse, patched by me) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@108346 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-12Rename ast_tcptls_server_instance to session_instance, since this pertains torussell1-6/+6
server and client usage. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@108295 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-04add a destroy API call for a server instancerussell1-1/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@105804 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-04More public API name changes to use an appropriate ast_ prefixrussell1-5/+5
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@105785 f38db490-d61c-443f-a65b-d21fe96a405b
2008-03-04Rename public object server_instance to ast_tcptls_server_instancerussell1-5/+5
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@105773 f38db490-d61c-443f-a65b-d21fe96a405b
2008-02-26Rename version.h to ast_version.h. Next, I will be re-adding version.h as anrussell1-1/+1
automatically generated file like it used to be. This still needs to be there for modules that have to check it to compile against multiple asterisk versions. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@104244 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-18Merge changes from team/group/sip-tcptlsrussell1-196/+4
This set of changes introduces TCP and TLS support for chan_sip. There are various new options in configs/sip.conf.sample that are used to enable these features. Also, there is a document, doc/siptls.txt that describes some things in more detail. This code was implemented by Brett Bryant and James Golovich. It was reviewed by Joshua Colp and myself. A number of other people participated in the testing of this code, but since it was done outside of the bug tracker, I do not have their names. If you were one of them, thanks a lot for the help! (closes issue #4903, but with completely different code that what exists there.) git-svn-id: http://svn.digium.com/svn/asterisk/trunk@99085 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-12merging a comment added in 1.4pari1-0/+4
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@98514 f38db490-d61c-443f-a65b-d21fe96a405b
2008-01-05Now that the version.h file was getting properly regenerated every time the svnrussell1-2/+2
revision changed, every module that used the version was getting rebuilt after every svn update. This severly annoyed me pretty quickly, so I have improved the situation. Now, instead of generating version.h, main/version.c is generated. version.c includes the version information, as well as a couple of API calls for modules to retrieve the version. So now, only version.c will get rebuilt, and the main asterisk binary relinked, which is must faster than rebuilding http.c, manager.c, asterisk.c, relinking the asterisk binary, chan_sip.c, func_version.c, res_agi ... The only minor change in behavior here is that the version information reported by chan_sip, for example, is the version of the Asterisk core, and not necessarily the Asterisk version that the chan_sip module came from. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@96717 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-24remove some unnecessary includesrizzo1-1/+0
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89542 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-21remove a bunch of useless #include "options.h"rizzo1-1/+0
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89511 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-20move asterisk/paths.h outside asterisk.h and into those filesrizzo1-0/+1
who really need it. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89466 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-19another bunch of include removals (errno.h and asterisk/logger.h)rizzo1-1/+0
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89425 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-17trim more redundant headersrizzo1-3/+1
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89384 f38db490-d61c-443f-a65b-d21fe96a405b
2007-11-16Start untangling header inclusion in a way that does not affectrizzo1-5/+0
build times - tested, there is no measureable difference before and after this commit. In this change: use asterisk/compat.h to include a small set of system headers: inttypes.h, unistd.h, stddef.h, stddint.h, sys/types.h, stdarg.h, stdlib.h, alloca.h, stdio.h Where available, the inclusion is conditional on HAVE_FOO_H as determined by autoconf. Normally, source files should not include any of the above system headers, and instead use either "asterisk.h" or "asterisk/compat.h" which does it better. For the time being I have left alone second-level directories (main/db1-ast, etc.). git-svn-id: http://svn.digium.com/svn/asterisk/trunk@89333 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-22Switch from AST_CLI (formerly NEW_CLI) to AST_CLI_DEFINE, since the former ↵qwell1-1/+1
didn't make much sense git-svn-id: http://svn.digium.com/svn/asterisk/trunk@86820 f38db490-d61c-443f-a65b-d21fe96a405b
2007-10-19Convert NEW_CLI to AST_CLI.qwell1-1/+1
Closes issue #11039, as suggested by seanbright. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@86536 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-18(issue #10724)qwell1-27/+30
Reported by: eliel Patches: res_features.c.patch uploaded by eliel (license 64) res_agi.c.patch uploaded by seanbright (license 71) res_musiconhold.c.patch uploaded by seanbright (license 71) pbx.c.patch uploaded by moy (license 222) logger.c.patch uploaded by moy (license 222) frame.c.patch uploaded by moy (license 222) manager.c.patch uploaded by moy (license 222) http.c.patch uploaded by moy (license 222) dnsmgr.c.patch uploaded by moy (license 222) res_realtime.c.patch uploaded by eliel (license 64) res_odbc.c.patch uploaded by seanbright (license 71) res_jabber.c.patch uploaded by eliel (license 64) chan_local.c.patch uploaded by eliel (license 64) chan_agent.c.patch uploaded by eliel (license 64) chan_alsa.c.patch uploaded by eliel (license 64) chan_features.c.patch uploaded by eliel (license 64) chan_sip.c.patch uploaded by eliel (license 64) RollUp.1.patch (includes all of the above patches) uploaded by seanbright (license 71) Convert many CLI commands to the NEW_CLI format. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82930 f38db490-d61c-443f-a65b-d21fe96a405b
2007-09-17Fix memory leak introduced when POST support was added.dbailey1-0/+3
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@82568 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-29This code was in team/murf/bug8684-trunk; it should fix bug 8684 in trunk. I ↵murf1-3/+3
didn't add it to 1.4 yet, because it's not entirely clear to me if this is a bug fix or an enhancement. A lot of files were affected by small changes like ast_variable_new getting an added arg, for the file name the var was defined in; ast_category_new gets added args of filename and lineno; ast_category and ast_variable structures now record file and lineno for each entry; a list of all #include and #execs in a config file (or any of its inclusions are now kept in the ast_config struct; at save time, each entry is put back into its proper file of origin, in order. #include and #exec directives are folded in properly. Headers indicating that the file was generated, are generated also for each included file. Some changes to main/manager.c to take care of file renaming, via the UpdateConfig command. Multiple inclusions of the same file are handled by exploding these into multiple include files, uniquely named. There's probably more, but I can't remember it right now. git-svn-id: http://svn.digium.com/svn/asterisk/trunk@81361 f38db490-d61c-443f-a65b-d21fe96a405b
2007-08-16Don't reload a configuration file if nothing has changed.tilghman1-1/+4
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@79747 f38db490-d61c-443f-a65b-d21fe96a405b