Sir . you may have a look at https://issues.apache.org/jira/browse/TS-2643 and get an idea
Regards On Fri, Feb 27, 2015 at 11:16 AM, Faysal Banna <[email protected]> wrote: > Sir. > the best way to use or migrate that feature is to do ts_lua .. i been > doing it for a while now and it works perfectly > > it has everything one needs and you can at any time use os.execute from > inside Lua script > or you can use > > local handle = io.popen(command)local result = handle:read("*a") > handle:close() > > if you need a result. and its asynchronous with the system so it won't block > other operations in ATS. > > its fast and pretty good to use. > > > i use it lately to rate-limit incoming connections from origin servers and > save bandwidth for certain object downloads. > > if you need any assistance i may be able to help > > much regards > > > On Fri, Feb 27, 2015 at 7:51 AM, J David <[email protected]> wrote: > >> (Not sure if this is best for the user list or the dev list, as it's >> development, but not of ATS per se.) >> >> Squid offers a feature called url_rewrite_program that can be used to >> change its behavior based on client IP, requested URL, and various >> other criteria. It runs a bunch of copies of an external program and >> passes information to and from them over pipes. >> >> Overall, ATS is a much better fit for our environment, but we are >> heavily dependent on this feature of Squid. >> >> The short version of what we need to do is this: >> >> Based on a (ClientIP,RequestURL) pair, either choose a backend (by >> name or IP) to handle the request *or* issue an arbitrary redirect >> *or* return an HTTP error. >> >> According to the "squid config translation" docs, the equivalent for >> url_rewrite_program is remap.config. Since that does not actually >> support external programs, it appears the intent is to use the >> built-in remapping abilities to replicate the functionality of the >> external program. However, that is not always possible. >> >> The messy part that prevents us from doing that or hacking up a module >> is that the external program we use with squid is ridiculously >> complicated, pulling together information from multiple sources, all >> of them dynamic, and gets linked to all kinds of libraries like MySQL, >> memcached, and distributed message passing stuff. >> >> What is the best way to migrate this functionality to ATS? The whole >> big ball of wax seems like a really poor candidate for a built-in ATS >> module due to all the external dependencies, many of which run >> asynchronously and can block. It seems really advantageous to seal >> that off So what we probably really need is a pretty efficient way to >> emulate squid's ability to call out to an external program. >> >> If that's true, has anyone done something similar? Which ATS module >> hook(s) would be the best to use, and how would we handle the need to >> yield while we wait for the external program to work? >> >> Thanks for any advice! >> > > > > -- > ============================ > Faysal Banna > Meteorological Services > Rafic Harriri International Airport > Beirut - Lebanon > Mob: +961-3-258043 > ============================= > -- ============================ Faysal Banna Meteorological Services Rafic Harriri International Airport Beirut - Lebanon Mob: +961-3-258043 =============================
