mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 12:36:58 +00:00
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/branches/1.4@60603 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -2448,6 +2448,43 @@ static struct mansession *find_session(unsigned long ident)
|
||||
return s;
|
||||
}
|
||||
|
||||
int astman_verify_session_readpermissions(unsigned long ident, int perm)
|
||||
{
|
||||
int result = 0;
|
||||
struct mansession *s;
|
||||
|
||||
AST_LIST_LOCK(&sessions);
|
||||
AST_LIST_TRAVERSE(&sessions, s, list) {
|
||||
ast_mutex_lock(&s->__lock);
|
||||
if ((s->managerid == ident) && (s->readperm & perm)) {
|
||||
result = 1;
|
||||
ast_mutex_unlock(&s->__lock);
|
||||
break;
|
||||
}
|
||||
ast_mutex_unlock(&s->__lock);
|
||||
}
|
||||
AST_LIST_UNLOCK(&sessions);
|
||||
return result;
|
||||
}
|
||||
|
||||
int astman_verify_session_writepermissions(unsigned long ident, int perm)
|
||||
{
|
||||
int result = 0;
|
||||
struct mansession *s;
|
||||
|
||||
AST_LIST_LOCK(&sessions);
|
||||
AST_LIST_TRAVERSE(&sessions, s, list) {
|
||||
ast_mutex_lock(&s->__lock);
|
||||
if ((s->managerid == ident) && (s->writeperm & perm)) {
|
||||
result = 1;
|
||||
ast_mutex_unlock(&s->__lock);
|
||||
break;
|
||||
}
|
||||
ast_mutex_unlock(&s->__lock);
|
||||
}
|
||||
AST_LIST_UNLOCK(&sessions);
|
||||
return result;
|
||||
}
|
||||
|
||||
enum {
|
||||
FORMAT_RAW,
|
||||
|
Reference in New Issue
Block a user