* lib/PandoraFMS/SNMPServer.pm: Made sure SNMP filter is valid
before performing string matching. It could make Pandora Server
down at worst. Merged from 4.0 branch.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7389 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm,
lib/PandoraFMS/DataServer.pm,
util/pandora_db.pl: Implemented a real not-init status. Small fixes.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7324 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Return async modules to normal after
twice the module interval has elapsed.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7313 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Added new function to update
replicated events (enterprise feature) and fix some little
bugs
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7311 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DataServer.pm: Unset a missed data of the
parameters hash when create module on dataserver
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7286 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* conf/pandora_server.conf
lib/PandoraFMS/Config.pm
lib/PandoraFMS/DB.pm
lib/PandoraFMS/Core.pm
bin/pandora_server: Added new thread to the
event replication process (enterprise feature)
and control this one and the policy queue patrol
process with new two configuration parameters
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7278 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/SNMPServer.pm: Added missing safe_output()
for trap filters. This fixed a bug that a backslash could not
escape its following character.
Merged from 4.0 branch.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7212 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Added fired alert count.
* lib/PandoraFMS/DataServer.pm: Do not process more than one XML from
the same agent at the same time.
* util/pandora_db.pl: Recalculate total module count.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7196 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm
lib/PandoraFMS/DataServer.pm: Added support for new agent data in
the XML as custom_id, url_address and custom fields
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7150 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Changed the unknown status treatment
as independent status to fit new needs. Change the internal command
to create event to have more parameters
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7114 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/NetworkServer.pm,
lib/PandoraFMS/Tools.pm: Added support for custom timeouts and retries
to remote modules.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7109 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* conf/pandora_server.conf,
lib/PandoraFMS/Config.pm,
lib/PandoraFMS/DataServer.pm: Added a new configuration option to
make the data server process XML files in a stack instead of a queue.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7086 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm,
lib/PandoraFMS/Tools.pm: Added support for remote cron modules. Small
fixes.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7082 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Fixed bug: periodic (monthly and weekly)
planned downtime is not stopped at expected time.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7062 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/NetworkServer.pm,
lib/PandoraFMS/Tools.pm: Disable a module if a text obj tag cannot
be converted to an OID.
* lib/PandoraFMS/ReconServer.pm: Small improvements.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@7008 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Added support for inverse intervals when calculating
the status of a module.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6978 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: changed to use own code instead the
external module Time::Piece.
* lib/PandoraFMS/Tools.pm: added function "month_have_days" for
to get the count of days for any month in any year.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6955 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: refactoriced the code for the new Planned
Downtime, now check the downtimes once and periodical and the
subtypes of downtimes.
* bin/pandora_server: cleaned source code style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6925 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Server.pm:: added the feature to set a agent in
"Quiet" mode.
* lib/PandoraFMS/Core.pm, bin/pandora_server: cleaned source code
style.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6897 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/PluginServer.pm: Adapted the plugin server to
new macros system and add check to timeout == 0
* util/pandora_migrate_plugins.pl: Add a new migration script
MANDATORY when upgrade Pandora FMS 4.0.x to 5.0 to adapt the
existing plugins to new macros system
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6866 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/PredictionServer.pm: changed for the SLA service
calculate alone instead before it was calculate for the module
service.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6857 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DB.pm: added function "get_agentmodule_data" to
get some data in a time period from a module.
* lib/PandoraFMS/PredictionServer.pm: into the function
"exec_prediction_module" avoid to fill the service modules with
"subtype" SLA because this modules fill automallity after process
the main modules for the service.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6823 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Added deletion of tags when a module is
being deleted.
Merged from branches.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6700 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/NetworkServer.pm: SNMP values starting with quotes
are now stripped of starting/ending double quotes. This will help to
get numeric (float data) as strings.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6646 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/ReconServer.pm: fixed the recode into html entities
the name of network component into the function
"create_network_profile_modules".
MERGED FROM 4.0.2
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6507 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Updated batch statistic queries to get
information about groups. SQL code taken from new functions in
functions_group.php. Unified criteria to calculate information.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6377 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Added new Internal Command for
actions to validate the events of one module given
the agent name (field1) and the module name (field2)
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6325 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DB.pm
lib/PandoraFMS/Core.pm: Added the macro _alert_text_severity_ to
the alerts
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6284 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Added call to delete the agent
related nodes of the network map enterprise
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6193 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Merged from 4.0 branch. Do not insert zeroes
when something goes wrong while processing an inc module. Fixes bug
#3519591.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6102 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/NetworkServer.pm,
lib/PandoraFMS/WMIServer.pm,
lib/PandoraFMS/PluginServer.pm: Simplified the calculation of
time_left to make sure it is always positive. Fixes bug #3519099.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6094 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Merged from 4.0 branch. Do not try to reset
the internal counter unless it is > 0. Fixed a warning.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6083 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Setted last_reference to current utimestamp
in the alert table when create it
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6068 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
(Merged from 4.0.x Branch)
* util/pandora_xml_stress.conf: default path for default agentname list.
* lib/PandoraFMS/DataServer.pm: Units are not overwrite by an empty XML
parameter.
* lib/PandoraFMS/ReconServer.pm: Fixed creation of network components
with double encoding.
* lib/PandoraFMS/Core.pm: Applied Junichi patch (from trunk) for detecting
keepalive in some newer SQL systems. Added a lot of safe_output in logfile.
Added aditional check for INC types on date collision (same date for different
data). Fixed generation of some events with double encoding.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@6052 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DB.pm,
lib/PandoraFMS/Core.pm,
lib/PandoraFMS/ReconServer.pm: Improved Recon Server to detect
hostnames that resolve to multiple IP addresses. Fixes bug #3052350.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5952 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/NetworkServer.pm: Fixed the return value of
pandora_query_snmp when an OID cannot be translated.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5880 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Fixed pandora_server process down with
version 8.3 or later of PostgreSQL.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5826 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Updated version.
* lib/PandoraFMS/DataServer.pm: Support for "UNIT" tag in the
XML to update module data units from the XML.
* util/pandora_csvbridge.pl: New tool to create XML data files
from CSV files containing data.
* util/pandora_watchdog.sh: Watchdog for Pandora FMS server,
taken from the documentation and updated.
* util/pandora_dbstress.pl,
util/pandora_db.pl: Updated version strings.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5713 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/SNMPServer.pm: Parse source field to obtain source
IP address not only when trap version is SNMPv2, but also when
snmp_pdu_address set to 1.
* conf/pandora_server.conf: Fixed comment.
* FreeBSD/pandora_server.conf: Added missing configuration tokens.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5626 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* conf/pandora_server.conf,
lib/PandoraFMS/SNMPServer.pm,
lib/PandoraFMS/Config.pm: Added two new configuration tokens
suggested by Koichiro: snmp_ignore_authfailure and snmp_pdu_address.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5623 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/PluginServer.pm: Now PluginServer treats exit
status code 124 as "Unknown" when plugin type of the module
is nagios and module type is boolean. timeout exits with 124
if command times out.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5603 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* util/pandora_manage.pl
lib/PandoraFMS/Core.pm: Added 'tags'parameter
to create_event and check if user name exists.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5596 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* bin/pandora_exec: Quote command line arguments. Thanks to Junichi
Satoh.
* lib/PandoraFMS/Core.pm: Small fixes to pandora_event.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5578 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Added support for regular expressions to
the SNMP value filter. Small fixes.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5553 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Added support for ff interval. Small
improvements.
* lib/PandoraFMS/DataServer.pm: Added "timestamp" to the list of
valid XML tags.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5484 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* conf/pandora_server.conf,
lib/PandoraFMS/Config.pm,
lib/PandoraFMS/PluginServer.pm: Use timeout by default instead of
pandora_exec.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5459 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Config.pm,
lib/PandoraFMS/PredictionServer.pm,
lib/PandoraFMS/Core.pm,
bin/pandora_server: Added support for enterprise netflow modules.
* lib/PandoraFMS/PluginServer.pm: Run plugins inside eval to avoid
server crashes.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5417 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DB.pm: Added a missed safe input in
the get_agent_module_id function
* util/pandora_manage.pl: Added options to update a
field of a data, network, plugin or snmp module
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5374 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DB.pm
util/pandora_manage.pl: Added two new options to
CLI --update_user and --add_profile_to_user
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5325 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm
util/pandora_manage.pl: Added two new options to CLI:
Create group and add agent to policy
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5308 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Discard inc data when a second value
with the same timestamp arrives. Thanks to eXXon.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5305 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Tools.pm
util/pandora_db.pl: Moved is_policy_module function from
db script to Enteprise and call it through enterprise hook
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5245 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DB.pm
lib/PandoraFMS/Core.pm: Added new function db_concat and added
compatibility with postgreSQL and Oracle in function
pandora_get_module_tags.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5225 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Changed tag field in events insertion from
tag name to tag name and URL. Pending to change it for Oracle and
PostgreSQL.
Fixes: #3439792
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5148 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Tools.pm: Fixed mistake in the last commit
adding parameter in wrong function (decode embed decode).
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5070 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Tools.pm: Fixed safe_input and output to
convert manually several more extended ascii characters.
Revert the last fix in safe_input because Junichi warn us the
danger of broke multibyte chars. Thanks Junichi.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5069 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* pandora_server/lib/PandoraFMS/DB.pm: Added function to get module group name.
* pandora_server/lib/PandoraFMS/Core.pm: Added new alert macros.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5044 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* pandora_server/lib/PandoraFMS/SNMPServer.pm
pandora_server/lib/PandoraFMS/Core.pm: SNMP Alerts now receibe
trap type on the _data_ macro.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@5028 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Config.pm: Updated version.
* lib/PandoraFMS/NetworkServer.pm: Fixed problem with SNMP v2
due incorrect call to snmpget.
* pandora_server/DEBIAN/make_deb_package.sh: Version update.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4991 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* DEBIAN/control: Updated version to 4.0 (final).
* pandora_server.spec: Updated version. Added mibs package
for dependency (Snmp mibs needed to be installed!), without
that, network server and some scripts won't run properly.
* pandora_server.redhat.spec,
lib/PandoraFMS/Config.pm: Updated version to 4.0 final.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4936 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Network.pm: Missing include for function
SNMP::translateObj. Added SNMP include: I don't understand why
that was missing ¿?.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4928 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/SNMPServer.pm: Kill snmptrapd if it's already running
when the SNMP Console starts and launch it again. Fixes bug #3402392.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4876 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Improve the delete modules
function to do the same actions of the console
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4866 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/NmapParser.pm: Updated package name to integrate
Nmap::Parser into Pandora FMS.
* lib/PandoraFMS/ReconServer.pm: Removed recursive calls. Now parent
hosts are detected with a single call to nmap via Nmap::Parser.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4829 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* SNMPServer.pm: Custom value and custom type are not used anymore.
All extended info comes into custom_oid which stores now all the
raw info.
* Core.pm: pandora_evaluate_snmp_alerts() function now uses complex
regular expression and new macros to allow complex SNMP trap alerts
which takes information from the trap info and puts on the alert.
* DataServer.pm: Fixed notice about undefined GIS position desc.
* pandora_db.pl: Version update.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4761 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm
bin/pandora_server: Improved Enterprise check to the policy queue
thread and fix a memory problem in the queue patrol loop
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4739 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DataServer.pm: When reading module tags use
get_tag_value to avoid trouble with empty tags.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4737 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/Core.pm: get_agent_from_addr() function is now in Core because
is used in trap alert functions. Implemented in pandora_execute_action()
the internal command "Generate event" was missing. Also altered the
way a complex trap is matched, now search for Value, Custom Value and
Custom OID. If an action containing a "event" command is the target, skip the
creation of a event to inform of SNMP alert firing.
* lib/ReconServer.pm: get_agent_from_addr() moved to Core.pm
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4731 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* conf/pandora_server.conf: Added enterprise configuration tokens to
the default conf.
* lib/PandoraFMS/Config.pm: Changed the default location of the braa
binary.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4726 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/DataServer.pm: Added support for custom module tags
(stored in column extended_info).
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4712 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/PredictionServer.pm: Fixed some network server
modules are processed as prediction server modules.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4674 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Config.pm: Read configuration for the new enterprise
SNMP server.
* lib/PandoraFMS/Core.pm: Added server type for the new enterprise SNMP
server.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4637 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f
* lib/PandoraFMS/Core.pm: Fixed alert macro substitution. Now
alert_macro_substitute() does not substitute already substituted
part of string. Also fixed alert macro substitution for user
defined alerts to avoid alert macros other than _field[1-3]_
substituted twice.
git-svn-id: https://svn.code.sf.net/p/pandora/code/trunk@4535 c3f86ba8-e40f-0410-aaad-9ba5e7f4b01f