isisd: Fix LSPs not being regenerated after adjacency change

In isisd LSP's are not regenerated after a change in adjacency if
lsp-gen-interval has expired.
I have tested this on Debian 6.0 with zebra and level1 isisd with point
to point links. This problem is also listed in Test ISIS-18.3 on the
opensourcerouting.org wiki:
http://confluence.isc.org/display/osr/ANVL+ISIS+Compliance+Test+Plan
http://confluence.isc.org/display/osr/ANVL+ISIS+Results
diff --git a/isisd/isis_lsp.c b/isisd/isis_lsp.c
index 0b1dac1..0470c5b 100644
--- a/isisd/isis_lsp.c
+++ b/isisd/isis_lsp.c
@@ -1789,7 +1789,18 @@
         }
       else
         {
-          lsp_regenerate (area, lvl);
+          /*
+           * lsps are not regenerated if lsp_regenerate function is called
+           * directly. However if the lsp_regenerate call is queued for
+           * later execution it works.
+           */
+          area->lsp_regenerate_pending[lvl - 1] = 1;
+          if (lvl == IS_LEVEL_1)
+            THREAD_TIMER_ON (master, area->t_lsp_refresh[lvl - 1],
+                             lsp_l1_refresh, area, 0);
+          else if (lvl == IS_LEVEL_2)
+            THREAD_TIMER_ON (master, area->t_lsp_refresh[lvl - 1],
+                             lsp_l2_refresh, area, 0);
         }
     }