in reply to Re^3: how to resolve IP's in an HTTPd that doesn't resolve them?
in thread how to resolve IP's in an HTTPd that doesn't resolve them?

Thanks for your elaborate reply, afoken !

Timely (HOST) resolution is not a problem on my servers. In fact I wrote (finally finished) a little resolver in about 160 lines ( C source ). That'll turn a file of 255 IP addresses into HOTS name(s), in under ~1 second, on standard CPE. Even faster if given a fatter "pipe". It does so accurately. It is slower, of course, on slower connections, or on bad / unmanaged addresses. Tho I could add a time threshold to the resolver. I haven't bothered, as I only use it for post-processing.

So, it would seem from your response; that you'd recommend using a pipe. If my intent is to process the (connecting) IP addresses in real-time. While I had hoped to avoid that. I guess I'm not terribly surprised.

Speaking of the Apache HTTPd; it's interesting that Apache doesn't have, or choose the use of a pipe. As it happily logs resolved IP addresses to it's log(s), from all my experiences with it.

Maybe I'd do well to give it's source a look over. For possible clues.

Thanks again, afoken, for taking the time to reply!

Evil is good, for without it, Good would have no value
λɐp ʇɑəɹ⅁ ɐ əʌɐɥ puɐ ʻꜱdləɥ ꜱᴉɥʇ ədoH

  • Comment on Re^4: how to resolve IP's in an HTTPd that doesn't resolve them?

Replies are listed 'Best First'.
Re^5: how to resolve IP's in an HTTPd that doesn't resolve them?
by afoken (Abbot) on Jun 14, 2018 at 07:31 UTC
    it's interesting that Apache doesn't have, or choose the use of a pipe

    I expect Apache to simply open the log file in append mode. That should also work with a named pipe (a.k.a. FIFO). mknod /var/log/httpd/access.log p should be sufficient. Apache writes to that pipe, and a resolver program reads from the pipe.

    But Apache can do even better, see piped logs:

    CustomLog "|/usr/local/bin/name-resolver foo bar baz" common

    The shell can also be invoked, that should allow creating a second pipe for a rotating logger:

    CustomLog "|$/usr/local/bin/name-resolver foo bar | /usr/local/bin/mul +tilog t s1000000 /var/multilog/apache" common

    Alexander

    --
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)
      Thanks afoken !

      That's all pretty much as I had imagined the direction I'd need to go. But had hoped for something a little more fun, or elegant.
      Tho your suggestion is elegant in it's simplicity. Which is worth quite a bit, in my book. :-)

      Thanks again, Alexander!

      edit:
      Forgot to mention; yes. You are correct. As near as I can figure, Apache does write in append mode.

      edit II:
      Oh, and this ain't Apache I'm working with. But logging to a UNIX pipe is still valid. :-)
      and sorry for the additional edits. But I had a lot on my plate this AM, and I was a bit pressed for time. But by the same token, didn't want to let all the work go unacknowledged. :-)

      --Chris

      Evil is good, for without it, Good would have no value
      λɐp ʇɑəɹ⅁ ɐ əʌɐɥ puɐ ʻꜱdləɥ ꜱᴉɥʇ ədoH