Hi,
The small patch below fixes two DA log issues:
- a 'removed' DA was logged with a bogus IP address
- an empty attribute list was shown as '<invalid data!>'
A similar patch was already sent about a year ago for openSLP 1.2. This patch
is against trunk/r1589.
Kind regards,
Roel van de Kraats
--- begin patch ---
Fix a small problem where SLPDLogDAAdvertisement() was called for a 'removed'
DA after
the entry was removed (causing a bogus IP address to be logged).
Also keep the difference between null strings and strings with length zero in
parsing messages.
Roel van de Kraats
diff -ur openslp-2.0.beta1.r1589/common/slp_message.c
openslp-2.0.beta1.dalog/common/slp_message.c
--- openslp-2.0.beta1.r1589/common/slp_message.c 2008-03-27 03:26:34.000000000
+0100
+++ openslp-2.0.beta1.dalog/common/slp_message.c 2008-06-26
17:45:43.000000000 +0200
@@ -104,11 +104,11 @@
*
* @return A pointer to the first character at the address pointed to by
* @p cppstring pointer; the buffer pointer is moved ahead by @p len bytes
- * on return. If @p len is zero, returns NULL.
+ * on return.
*/
char * GetStrPtr(uint8_t ** cpp, size_t len)
{
- char * sp = len? (char *)*cpp: 0;
+ char * sp = (char *)*cpp;
*cpp += len;
return sp;
}
diff -aur openslp-2.0.beta1.r1589/slpd/slpd_knownda.c
openslp-2.0.beta1.dalog/slpd/slpd_knownda.c
--- openslp-2.0.beta1.r1589/slpd/slpd_knownda.c 2008-06-26 13:47:24.000000000
+0200
+++ openslp-2.0.beta1.dalog/slpd/slpd_knownda.c 2008-06-26 16:02:51.000000000
+0200
@@ -850,9 +850,18 @@
&& daadvert->bootstamp != entrydaadvert->bootstamp)
{
/* Advertising DA must have went down then came back up */
+ SLPDLogDAAdvertisement("Replaced", entry);
SLPDKnownDARegisterAll(msg, 0);
}
+ if ( daadvert->bootstamp == 0 )
+ {
+ /* Dying DA was found in our KnownDA database. Log that it
+ * was removed.
+ */
+ SLPDLogDAAdvertisement("Removed", entry);
+ }
+
/* Remove the entry that is the same as the advertised entry */
/* so that we can put the new advertised entry back in */
SLPDatabaseRemove(dh, entry);
@@ -905,17 +914,6 @@
return result;
}
- else
- {
- /* DA is dying */
- if (entry)
- {
- /* Dying DA was found in our KnownDA database. Log that it
- * was removed.
- */
- SLPDLogDAAdvertisement("Removed", entry);
- }
- }
CLEANUP:
/* If we are here, we need to cleanup the message descriptor and the */
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Openslp-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openslp-devel