- tm: t_relay will not stop script execution anymore in case of send error
authorAndrei Pelinescu-Onciul <andrei@iptel.org>
Sun, 11 Dec 2005 22:46:38 +0000 (22:46 +0000)
committerAndrei Pelinescu-Onciul <andrei@iptel.org>
Sun, 11 Dec 2005 22:46:38 +0000 (22:46 +0000)
commit0d88ce78c9189e0667d1f7c17c232e56b91aa0a4
tree4436b4ea71f0081b9ff07121b776c79d4c40eb08
parent3ba4048bcc94c2fa3d102f1b568b60ed760c8a40
- tm: t_relay will not stop script execution anymore in case of send error
- added onsend_route: special route executed before forwarding a message, when
 the final destination is known. Only a limited number of commands are allowed
 ( if (expr) {}else{}, drop, flags manipulations, send(), log()).
 Usefull to catch more easily unauthorized attempts to relay/bounce message to
 protected destinations (e.g PSTN gateways)
- new onsend checks: to_{ip,port}, snd_{ip,port,proto,af}. to= to whom the
  message will be sent to. snd=how ser will send it (socket ip/port,proto,af).
- msg:len in onsend_route will containg the "new" message len
- textops: search() onsend_route support (it will use the new, freshly
  constructed message and not the original one)

Example:
onsend_route{
    # allow messages from 10.0.0.0/8 to 1.2.3.4 only if flag 10 was set
    # from the script
    if (to_ip==1.2.3.4 && src_ip==10.0.0.0/8 && !isflagset(10)){
       log("msg dropped\n");
       drop;
    }
   # drop all messages that contain banned_user in from
    if (search("From|f[  ]*:.*banned_user")) drop;
}
13 files changed:
Makefile.defs
NEWS
action.c
cfg.lex
cfg.y
config.h
forward.c
modules/tm/t_funcs.c
modules/tm/t_fwd.c
route.c
route.h
route_struct.h
sr_module.h