do user authentication right
authorJeremy McNamara <jj@nufone.net>
Mon, 31 Mar 2003 20:26:08 +0000 (20:26 +0000)
committerJeremy McNamara <jj@nufone.net>
Mon, 31 Mar 2003 20:26:08 +0000 (20:26 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@733 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/h323/chan_h323.c
channels/h323/chan_h323.h

index 7ba3515..6e29330 100755 (executable)
@@ -256,6 +256,8 @@ static struct oh323_user *build_user(char *name, struct ast_variable *v)
                                        free(user);
                                        return NULL;
                                } 
+                               /* Let us know we need to use ip authentication */
+                               user->host = 1;
                        } else if (!strcasecmp(v->name, "amaflags")) {
                                format = ast_cdr_amaflags2int(v->value);
                                if (format < 0) {
@@ -957,9 +959,11 @@ int setup_incoming_call(call_details_t cd)
                        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);
                } else {
-                       if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){
-                               ast_log(LOG_ERROR, "Call from user '%s' rejected due to non-matching IP address: '%s'\n", user->name, cd.sourceIp);
-                                return 0;
+                       if (user->host) {
+                               if (strcasecmp(cd.sourceIp, inet_ntoa(user->addr.sin_addr))){
+                                       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->inUse >= user->incominglimit) {
index ec718f9..d30a42e 100755 (executable)
@@ -37,14 +37,15 @@ struct oh323_user {
        char callerid[80];
        char accountcode[20];
        int amaflags;
-       int     noFastStart;
-       int     noH245Tunneling;
-       int     noSilenceSuppression;
+       int noFastStart;
+       int noH245Tunneling;
+       int noSilenceSuppression;
        int inUse;
        int incominglimit;
        int bridge;
        int nat;
        int dtmfmode;
+       int host;
        struct ast_ha *ha;
        struct sockaddr_in addr;
        struct oh323_user *next;