Hi Mart,
You can "serve" a page from LTM using HTTP::respond 200 content $http_content:
when HTTP_REQUEST {
Check if request is for wpad.internal/wpad.dat
if {[string tolower "[HTTP::host][HTTP::uri]"] eq "wpad.internal/wpad.dat"}{
HTTP::respond 200 content {\
function FindProxyForURL(url, host) {\
if(shExpMatch(host, "*[^0123456789.]*") == false) \
if( isInNet\(host, "127.0.0.0", "255.0.0.0") \
|| isInNet(host, "172.17.0.0", "255.255.0.0") \
|| isInNet(host, "172.18.0.0", "255.255.0.0") \
) \
return "DIRECT"; \
else \
return "PROXY proxygateway.internal:8080; DIRECT"; }
}
}
}
Just escape the new lines in the payload with \. After you add the iRule, test it to make sure the content is as you expect and then run 'b load' to verify the LTM parser handles the meta-characters in the iRule correctly. Running 'b load' will reload the configuration so it shouldn't be done on a live box during production.
Aaron