An old customer has asked for an update to my windows syslog server. Specifically, they asked that one of the “rules” be to call a function in a
At first, I thought this would be an easy job. It soon spiraled into depths I couldn’t have imagined (although I should have). The problem is you have to declare what parameters are going to be passed to a function. With the syslog packet, there are several (8+) items of data; which could be in any order…
So, with the realization I couldn’t do this directly in code, I thought “I’ll embed Lua scripting & dynamically write a script to call the dll” — so I added Lua, and this worked. Unfortunately, I hadn’t investigated the important bit: Can lua call dll’s? The answer is, yes, but not easily, unless the dll’s are written specifically to be called from Lua.
OK, so the end result is: I am finalizing the specification for syslog dll writers (in other words, I am not going to allow a free-for-all type function/parameter format). While this is not what the customer wanted, it’s the best I can offer them. AND I added lua scripting as an action to rule processing (something the customer doesn’t care about).
The customer paid for the dll change, but I said I would hold that back for a few months before releasing it publicly; but the Lua changes are almost ready to release, so that means you can write a dll for lua and call it.
Now, the big question: Does anyone care? Does anyone want a low-resource-use, rule-based processing/filtering of packets syslog server for windows? If people want it, I’ll push on with Lua, and work on a simplified DLL rule/action and document it.
If no one does, I’ll just leave the changes as “custom work” and leave it out of the existing server (which, as far as I was concerned, was at end of life; I only resurrected it because I was paid to make the change)…
Please contact me to let me know your thoughts.