Custom Software & More!

Category Archives: Programming

Windows SysLog Server

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 dll

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.