Committer : entrope
CVSROOT : /cvsroot/undernet-ircu
Module : ircu2.10
Commit time: 2007-02-28 22:39:00 UTC
Modified files:
ChangeLog ircd/os_generic.c
Log message:
Make IPv4-only sockaddr_from_irc() work properly.
---------------------- diff included ----------------------
Index: ircu2.10/ChangeLog
diff -u ircu2.10/ChangeLog:1.836 ircu2.10/ChangeLog:1.837
--- ircu2.10/ChangeLog:1.836 Sun Feb 25 08:12:45 2007
+++ ircu2.10/ChangeLog Wed Feb 28 14:38:50 2007
@@ -1,3 +1,9 @@
+2007-02-28 Michael Poole <[EMAIL PROTECTED]>
+
+ * ircd/os_generic.c (sockaddr_from_irc): Zero out socket address
+ before setting family, and regardless of whether we have an
+ irc_sockaddr template.
+
2007-02-25 Michael Poole <[EMAIL PROTECTED]>
* doc/example.conf: Document new options for General block.
Index: ircu2.10/ircd/os_generic.c
diff -u ircu2.10/ircd/os_generic.c:1.29 ircu2.10/ircd/os_generic.c:1.30
--- ircu2.10/ircd/os_generic.c:1.29 Mon Jan 15 18:31:58 2007
+++ ircu2.10/ircd/os_generic.c Wed Feb 28 14:38:50 2007
@@ -18,7 +18,7 @@
*/
/** @file
* @brief Implementation of OS-dependent operations.
- * @version $Id: os_generic.c,v 1.29 2007/01/16 02:31:58 entrope Exp $
+ * @version $Id: os_generic.c,v 1.30 2007/02/28 22:38:50 entrope Exp $
*/
#include "config.h"
@@ -179,13 +179,12 @@
int sockaddr_from_irc(struct sockaddr_in *v4, const struct irc_sockaddr *irc,
int compat_fd, int family)
{
assert(irc != 0);
+ memset(v4, 0, sizeof(*v4));
v4->sin_family = AF_INET;
if (irc) {
assert(!irc->addr.in6_16[0] && !irc->addr.in6_16[1] &&
!irc->addr.in6_16[2] && !irc->addr.in6_16[3] && !irc->addr.in6_16[4] &&
(!irc->addr.in6_16[5] || irc->addr.in6_16[5] == 0xffff));
memcpy(&v4->sin_addr, &irc->addr.in6_16[6], sizeof(v4->sin_addr));
v4->sin_port = htons(irc->port);
- } else{
- memset(&v4, 0, sizeof(v4));
}
(void)compat_fd; (void)family;
return sizeof(*v4);
----------------------- End of diff -----------------------
_______________________________________________
Patches mailing list
[email protected]
http://undernet.sbg.org/mailman/listinfo/patches