do user authentication right

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@733 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.0
Jeremy McNamara 22 years ago
parent 33d20ff5ea
commit a54c71d4c3

@ -256,6 +256,8 @@ static struct oh323_user *build_user(char *name, struct ast_variable *v)
free(user); free(user);
return NULL; return NULL;
} }
/* Let us know we need to use ip authentication */
user->host = 1;
} else if (!strcasecmp(v->name, "amaflags")) { } else if (!strcasecmp(v->name, "amaflags")) {
format = ast_cdr_amaflags2int(v->value); format = ast_cdr_amaflags2int(v->value);
if (format < 0) { if (format < 0) {
@ -957,9 +959,11 @@ int setup_incoming_call(call_details_t cd)
strncpy(p->context, default_context, sizeof(p->context)-1); strncpy(p->context, default_context, sizeof(p->context)-1);
ast_log(LOG_DEBUG, "Sending %s to context [%s]\n", cd.call_source_aliases, p->context); ast_log(LOG_DEBUG, "Sending %s to context [%s]\n", cd.call_source_aliases, p->context);
} else { } else {
if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){ if (user->host) {
ast_log(LOG_ERROR, "Call from user '%s' rejected due to non-matching IP address: '%s'\n", user->name, cd.sourceIp); if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){
return 0; ast_log(LOG_ERROR, "Call from user '%s' rejected due to non-matching IP address of '%s'\n", user->name, cd.sourceIp);
return 0;
}
} }
if (user->incominglimit > 0) { if (user->incominglimit > 0) {
if (user->inUse >= user->incominglimit) { if (user->inUse >= user->incominglimit) {

@ -37,14 +37,15 @@ struct oh323_user {
char callerid[80]; char callerid[80];
char accountcode[20]; char accountcode[20];
int amaflags; int amaflags;
int noFastStart; int noFastStart;
int noH245Tunneling; int noH245Tunneling;
int noSilenceSuppression; int noSilenceSuppression;
int inUse; int inUse;
int incominglimit; int incominglimit;
int bridge; int bridge;
int nat; int nat;
int dtmfmode; int dtmfmode;
int host;
struct ast_ha *ha; struct ast_ha *ha;
struct sockaddr_in addr; struct sockaddr_in addr;
struct oh323_user *next; struct oh323_user *next;

Loading…
Cancel
Save