From owner-p4-projects@FreeBSD.ORG Sat Jun 2 12:05:54 2007 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B0EDD16A421; Sat, 2 Jun 2007 12:05:54 +0000 (UTC) X-Original-To: perforce@FreeBSD.org Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 68BA816A400 for ; Sat, 2 Jun 2007 12:05:54 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [69.147.83.41]) by mx1.freebsd.org (Postfix) with ESMTP id 4D8A113C44C for ; Sat, 2 Jun 2007 12:05:54 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.8/8.13.8) with ESMTP id l52C5sdk089097 for ; Sat, 2 Jun 2007 12:05:54 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.8/8.13.8/Submit) id l52C5srK089088 for perforce@freebsd.org; Sat, 2 Jun 2007 12:05:54 GMT (envelope-from fli@FreeBSD.org) Date: Sat, 2 Jun 2007 12:05:54 GMT Message-Id: <200706021205.l52C5srK089088@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to fli@FreeBSD.org using -f From: Fredrik Lindberg To: Perforce Change Reviews Cc: Subject: PERFORCE change 120769 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 02 Jun 2007 12:05:55 -0000 http://perforce.freebsd.org/chv.cgi?CH=120769 Change 120769 by fli@fli_genesis on 2007/06/02 12:04:53 - Add and use MDNS_PKG_MAX_LEN instead of 9000 - Cap max number of bytes received via TCP to MDNS_PKG_MAX_LEN - Use IPv6 header size instead of IPv4 when calculating packet size. - Remove debugging macros that live in debug.h now. Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_mdns.c#4 edit .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_mdns.h#3 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_mdns.c#4 (text+ko) ==== @@ -24,27 +24,30 @@ * */ -#include -#include -#include -#include -#include #include #include +#include +#include +#include + #include +#include + #include #include + +#include +#include #include +#include +#include +#include +#include #include -#include -#include -#include -#include -#include -#include #include "mdns.h" #include "stack_mdns.h" +#include "debug.h" static int mdns_udp_open(struct mdns *, int); static int mdns_udp_close(struct mdns *, int); @@ -105,16 +108,15 @@ error = ioctl(sock, SIOCGIFMTU, &req); close(sock); /* - * IP-header (no options) and UDP-header - * XXX: Will there ever be ip-options present in multicast packets? + * IPv6-header and UDP-header */ -#define _HDR_OVERHEAD (20 + 8) +#define _HDR_OVERHEAD (40 + 8) if (error != 0) - md->md_maxpkgsz = 512; + md->md_maxpkgsz = MDNS_PKG_UDP_LEN; else { md->md_maxpkgsz = req.ifr_mtu - _HDR_OVERHEAD; - if (md->md_maxpkgsz > 9000) - md->md_maxpkgsz = 9000; + if (md->md_maxpkgsz > MDNS_PKG_MAX_LEN) + md->md_maxpkgsz = MDNS_PKG_MAX_LEN; } #undef _HDR_OVERHEAD @@ -872,8 +874,9 @@ pkg->p_len += n; MDNS_BUFLEN(buf) = n; } - if ((unsigned int)n < MDNS_BUFSZ(buf)) + if ((unsigned int)n < MDNS_BUFSZ(buf) || pkg->p_len >= MDNS_PKG_MAX_LEN) break; + buf = mdns_buf_alloc(md->md_bp, &pkg->p_buflist, 0, 0); if (buf == NULL) return (-1); ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/stack_mdns.h#3 (text+ko) ==== @@ -28,22 +28,8 @@ #define _STACK_MDNS_H_ #include -#include - #include "stack_buf.h" -/* Structure initialization protection */ -#define MDNS_MAGIC_COOKIE 0xcafebabe -#ifdef DEBUG -#define MDNS_INIT_SET(_md, f) (_md)->f = MDNS_MAGIC_COOKIE; -#define MDNS_INIT_UNSET(_md, f) (_md)->f = ~MDNS_MAGIC_COOKIE; -#define MDNS_INIT_ASSERT(_md, f) assert((_md)->f == MDNS_MAGIC_COOKIE); -#else -#define MDNS_INIT_SET(_md, f) -#define MDNS_INIT_UNSET(_md, f) -#define MDNS_INIT_ASSERT(_md, f) -#endif - /* Multicast DNS constants */ #define MDNS_MCAST_INET "224.0.0.251" /* IPv4 multicast address */ #define MDNS_MCAST_INET6 "ff02::fb" /* IPv6 multicast address */ @@ -52,6 +38,7 @@ /* Header constants */ #define MDNS_PKG_LABEL_LEN 63 #define MDNS_PKG_UDP_LEN 512 /* legacy udp length */ +#define MDNS_PKG_MAX_LEN 9000 /* Maximum packet length */ #define MDNS_HEADER_LEN 12 #define MDNS_QSET_HLEN 4 /* qset header length */ #define MDNS_RRSET_HLEN 10 /* rrset header length */