]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
fixed the crypt_keys stuff
authorChristian Richter <christian.richter@beronet.com>
Tue, 13 Mar 2007 12:58:32 +0000 (12:58 +0000)
committerChristian Richter <christian.richter@beronet.com>
Tue, 13 Mar 2007 12:58:32 +0000 (12:58 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@58850 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_misdn.c

index 7910be6fc1827ffa33af409995ca356d981a1d3e..c340f84b8b20688bf0f2dec95015a811abcbdfeb 100644 (file)
@@ -4531,16 +4531,22 @@ static int misdn_set_opt_exec(struct ast_channel *chan, void *data)
                case 'c':
                        keyidx=atoi(++tok);
       
-                       if (keyidx > misdn_key_vector_size  || keyidx < 0 ) {
-                               ast_log(LOG_WARNING, "You entered the keyidx: %d but we have only %d keys\n",keyidx, misdn_key_vector_size );
-                               continue; 
+                       char keys[4096];
+                       char *key=NULL, *tmp;
+                       int i;
+                       misdn_cfg_get( 0, MISDN_GEN_CRYPT_KEYS, keys, sizeof(keys));
+
+                       tmp=keys;
+
+                       for (i=0; i<keyidx; i++) {
+                               key=strsep(&tmp,",");
                        }
-      
-                       {
-                               ast_copy_string(ch->bc->crypt_key,  misdn_key_vector[keyidx], sizeof(ch->bc->crypt_key));
+
+                       if (key) {
+                               ast_copy_string(ch->bc->crypt_key, key, sizeof(ch->bc->crypt_key));
                        }
                        
-                       chan_misdn_log(0, ch->bc->port, "SETOPT: crypt with key:%s\n",misdn_key_vector[keyidx]);
+                       chan_misdn_log(0, ch->bc->port, "SETOPT: crypt with key:%s\n",ch->bc->crypt_key);
                        break;
 
                case 'e':