Forum Discussion

ekaleido's avatar
ekaleido
Icon for Cirrus rankCirrus
Jul 23, 2015

How to do the following in a permissible way?

when CLIENTSSL_HANDSHAKE {

 

SSL::collect

 

}

 

when CLIENTSSL_DATA {

 

set chan [open my.log a]

 

puts $chan [SSL::payload]

 

close $chan

 

SSL::release

 

}

 

This irule gives me the following error:

 

error: [command is disabled: "open"][open my.log a]

 

I was led to believe this could/should be done via iControl. Any help would be appreciated.

 

1 Reply

  • Generally speaking, you can't perform file-level access routines directly from an iRule. All of the TCL I/O functions have been disabled for the sake of performance and security. You can however dump to syslog:

    log local0. [SSL::payload]
    

    Or you can do the same with High Speed Logging (HSL). You could also perform a sideband call to a remote server. HSL will be the fastest option and sideband will create the greatest latency. There are of course other, less "supported", ways of bridging between the data plane (iRules) and the management plane (file system), but these are probably your best options.