implement reload
authorJeremy McNamara <jj@nufone.net>
Sun, 14 Sep 2003 00:05:37 +0000 (00:05 +0000)
committerJeremy McNamara <jj@nufone.net>
Sun, 14 Sep 2003 00:05:37 +0000 (00:05 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1510 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_skinny.c

index 3784b06..c50b49a 100755 (executable)
@@ -2601,6 +2601,45 @@ static int reload_config(void)
        return 0;
 }
 
+void delete_devices(void)
+{
+       struct skinny_device *d, *dlast;
+       struct skinny_line *l, *llast;
+       struct skinny_subchannel *sub, *slast;
+       
+       ast_mutex_lock(&devicelock);
+       
+       /* Delete all devices */
+       for (d=devices;d;) {
+               
+               /* Delete all lines for this device */
+               for (l=d->lines;l;) {
+                       /* Delete all subchannels for this line */
+                       for (sub=l->sub;sub;) {
+                               slast = sub;
+                               sub = sub->next;
+                               free(slast);
+                       }
+                       llast = l;
+                       l = l->next;
+                       free(llast);
+               }
+               dlast = d;
+               d = d->next;
+               free(dlast);
+       }
+       devices=NULL;
+       ast_mutex_unlock(&devicelock);
+}
+
+int reload(void)
+{
+       delete_devices();
+       reload_config();
+       restart_monitor();
+       return 0;
+}
+
 
 int load_module()
 {