PDA

View Full Version : IXEmul and SysLog - Any Experience?


tygre
23 May 2012, 17:48
Hi all!

While tinkering with thttpd (http://eab.abime.net/eab.abime.net/showthread.php?p=794120#post794120), I realised that it should log a lot of interesting information using syslog. So, I installed SysLog v1.20 (http://aminet.net/package/util/moni/SysLog) but no message from thttpd is captured by the syslogdeamon (which works with the examples provided in the LHA archive).

I am wondering if this lack of communication between thttpd and syslogdeamon could be because thttpd uses the IXEmul library. Has anyone any experience using syslog functions and IXEmul?

For sure, in thttpd, there is no call to open syslog.library but I cannot find such a call either in IXEmul: I can find calls to open various libraries:

ix_libs[] =
{
{ (void **)&DOSBase, "dos.library", 37 },
#ifndef __HAVE_68881__
{ (void **)&MathIeeeSingBasBase, "mathieeesingbas.library" },
{ (void **)&MathIeeeDoubBasBase, "mathieeedoubbas.library" },
{ (void **)&MathIeeeDoubTransBase, "mathieeedoubtrans.library" },
#endif
{ NULL, NULL }
};
but not syslog.library. I am using IXEmul v48.0 because I could not find the source for later versions.

Cheers!
Tygre

tygre
23 May 2012, 17:59
While going through IXEmul code, I found two implementations of the openlog() function:
void
openlog(const char *ident, int logstat, int logfac)
{
usetup;
register struct ixnet *p = (struct ixnet *)u.u_ixnet;
register int network_protocol = p->u_networkprotocol;

if (network_protocol == IX_NETWORK_AMITCP) {
struct TagItem list[] = {
{SBTM_SETVAL(SBTC_LOGTAGPTR), (ULONG)ident},
{SBTM_SETVAL(SBTC_LOGSTAT), logstat},
{SBTM_SETVAL(SBTC_LOGFACILITY), logfac},
{TAG_END}
};
TCP_SocketBaseTagList(list);
}
}
in ixnet/syslog.c and:
void
openlog(const char *ident, int logstat, int logfac)
{
usetup;

if (u.u_ixnetbase) {
netcall(NET_openlog, ident, logstat, logfac);
}
else {
if (ident != NULL)
LogTag = (char *)ident;
LogStat = logstat;
if (logfac != 0 && (logfac &~ LOG_FACMASK) == 0)
LogFacility = logfac;
}
}
in library/syslog.c.

So, it seems that when using IXNet, AmiTCP must be up and running, does it make sense? But what about the other definition?

Cheers!
Tygre

phx
24 May 2012, 10:51
There are two ways to use Syslog V1.20:
Either you open syslog.library and call the appropriate logging functions, or write your output to LOG: (assuming the LOG-Handler is running). In both cases you would have to adapt the thttpd source.

Ixemul probably emulates the syslog() function from Unix. So theoretically you wouldn't need to install another Syslog program. But I never used the log, so I don't know if it works.

tygre
24 May 2012, 14:35
Hi PHX!

Thanks a lot for your answer... In the meantime, I also found other sources of problems, I will keep you posted!

Cheers!
Tygre