}
return false;
}
+
+/**
+ * @brief
+ *
+ * @param cmd
+ * @param param
+ * @return true - when prefix match in the command
+ * @return false - when not
+ */
+bool scan_parameter_str(const POOL_MEM &cmd, const char *prefix, POOL_MEM ¶m)
+{
+ if (prefix != NULL){
+ int len = strlen(prefix);
+ if (strncmp(cmd.c_str(), prefix, len) == 0)
+ {
+ // prefix match, extract param
+ pm_strcpy(param, cmd.c_str() + len);
+ strip_trailing_newline(param.c_str());
+ return true;
+ }
+ }
+
+ return false;
+}
bool parse_param(POOL_MEM ¶m, const char *pname, const char *name, char *value);
bool add_param_str(alist **list, const char *pname, const char *name, char *value);
+bool scan_parameter_str(const POOL_MEM &cmd, const char *prefix, POOL_MEM ¶m);
+
#endif /* _PLUGINLIB_H_ */
\ No newline at end of file
ok(strcmp((char*)list->next(), "Kern") == 0, "check element Kern");
delete list;
+ POOL_MEM cmd(PM_NAME);
+ POOL_MEM param(PM_NAME);
+ const char *prefix = "FNAME:";
+ const char *fname1 = "/etc/passwd";
+ pm_strcpy(cmd, prefix);
+ pm_strcat(cmd, fname1);
+ pm_strcat(cmd, "\n");
+ ok(scan_parameter_str(cmd, prefix, param), "check scan parameter str match");
+ ok(bstrcmp(param.c_str(), fname1) , "check scan parameter str param");
+ nok(scan_parameter_str(cmd, "prefix", param), "check scan parameter str not match");
+
+ const char *fname2 = "/home/this is a filename with spaces which /are hard to/ manage.com";
+ pm_strcpy(cmd, prefix);
+ pm_strcat(cmd, fname2);
+ pm_strcat(cmd, "\n");
+ ok(scan_parameter_str(cmd, prefix, param), "check scan parameter str with spaces match");
+ ok(bstrcmp(param.c_str(), fname2) , "check scan parameter str with spaces param");
+
return report();
}