fixed whitespace eating in plugin loader
authorAndreas Steffen <andreas.steffen@strongswan.org>
Tue, 20 May 2008 15:03:15 +0000 (15:03 -0000)
committerAndreas Steffen <andreas.steffen@strongswan.org>
Tue, 20 May 2008 15:03:15 +0000 (15:03 -0000)
src/libstrongswan/plugins/plugin_loader.c

index 44081d1..8d3d5e9 100644 (file)
@@ -97,30 +97,36 @@ static int load(private_plugin_loader_t *this, char *path, char *list)
        list = strdupa(list);
        while (TRUE)
        {
+               /* eat any whitespace in front */
+               while (*list == ' ')
+               {
+                       list++;
+               }
+               /* have we reached the end of the list? */
+               if (!*list)
+               {
+                       break;
+               }
                pos = strchr(list, ' ');
                if (pos)
                {
                        *pos++ = '\0';
-                       while (*pos == ' ')
-                       {
-                               pos++;
-                       }
-                       if (!*pos)
-                       {
-                               break;
-                       }
                }
+               DBG1("loaded plugin: '%s'", list);
                plugin = load_plugin(this, path, list);
                if (plugin)
                {       /* insert in front to destroy them in reverse order */
                        this->plugins->insert_last(this->plugins, plugin);
                        count++;
                }
-               if (!pos)
+               if (pos)
+               {
+                       list = pos;
+               }
+               else
                {
                        break;
                }
-               list = pos;
        }
        return count;
 }