]> git.sur5r.net Git - bacula/bacula/commitdiff
Allow Plugin command without argument
authorEric Bollengier <eric@eb.homelinux.org>
Fri, 5 Nov 2010 13:43:37 +0000 (14:43 +0100)
committerEric Bollengier <eric@eb.homelinux.org>
Fri, 5 Nov 2010 13:44:06 +0000 (14:44 +0100)
bacula/src/filed/fd_plugins.c

index d235d0c18580c68a168a6181d970658c3b89eb9b..cc31de09b61134f54462b737e6a833befc9dc560 100644 (file)
@@ -232,23 +232,32 @@ bool plugin_check_file(JCR *jcr, char *fname)
  *  systemstate:/@SYSTEMSTATE/ 
  * => ret = 11
  * => can use strncmp(plugin_name, cmd, ret);
+ *
+ * The plugin command can contain only the plugin name
+ *  Plugin = alldrives
+ * => ret = 9
  */
 static bool get_plugin_name(JCR *jcr, char *cmd, int *ret)
 {
    char *p;
    int len;
-   if (!cmd) {
+   if (!cmd || (*cmd == '\0')) {
       return false;
    }
    /* Handle plugin command here backup */
    Dmsg1(dbglvl, "plugin cmd=%s\n", cmd);
-   if (!(p = strchr(cmd, ':'))) {
-      Jmsg1(jcr, M_ERROR, 0, "Malformed plugin command: %s\n", cmd);
-      return false;
-   }
-   len = p - cmd;
-   if (len <= 0) {
-      return false;
+   if ((p = strchr(cmd, ':')) == NULL) {
+      if (strchr(cmd, ' ') == NULL) { /* we have just the plugin name */
+         len = strlen(cmd);
+      } else {
+         Jmsg1(jcr, M_ERROR, 0, "Malformed plugin command: %s\n", cmd);
+         return false;
+      }
+   } else {                     /* plugin:argument */
+      len = p - cmd;
+      if (len <= 0) {
+         return false;
+      }
    }
    *ret = len;
    return true;