/*=========================================================================*/ void SLPDLogTraceMsg(const char* prefix, struct sockaddr_in* peeraddr, SLPBuffer buf) /*=========================================================================*/ { SLPMessage msg; if(G_SlpdProperty.traceMsg) { msg = SLPMessageAlloc(); if(msg) { if(SLPMessageParseBuffer(buf,msg) == 0) { SLPLog("----------------------------------------\n"); SLPLog("traceMsg %s:\n",prefix); SLPLog("----------------------------------------\n"); SLPDLogPeerAddr(peeraddr); SLPDLogMessage(msg); SLPLog("\n"); } } SLPMessageFree(msg); } }
/*=========================================================================*/ void SLPDLogDATrafficMsg(const char* prefix, struct sockaddr_in* peeraddr, SLPMessage daadvert) /*=========================================================================*/ { if(G_SlpdProperty.traceDATraffic) { SLPLog("----------------------------------------\n"); SLPLog("traceDATraffic %s:\n",prefix); SLPLog("----------------------------------------\n"); SLPDLogPeerAddr(peeraddr); SLPDLogMessage(daadvert); SLPLog("\n\n"); } }
/*=========================================================================*/ void SLPDLogParseWarning(struct sockaddr_storage* peeraddr, SLPBuffer buf) /* Log a parsing error warning and dumps the invalid message. */ /*=========================================================================*/ { unsigned char* curpos; int i = 0; if (peeraddr == NULL || buf == NULL) { return; } SLPDLog("\n"); SLPDLogTime(); SLPDLog("*** WARNING Parse Error ***\n"); SLPDLogPeerAddr(peeraddr); SLPDLog("message size = %i\n",buf->end - buf->start); SLPDLog("message dump follows:\n"); for (curpos = buf->start; curpos < buf->end; curpos++) { SLPDLog("0x%02x",*curpos); if (*curpos < 0x20 || *curpos > 0x7f) { SLPDLog("(' ') "); } else { SLPDLog("('%c') ",*curpos); } /* newline every 70 columns */ i++; if (i==10) { i=0; SLPDLog("\n"); } } SLPDLog("\n"); }