From owner-p4-projects@FreeBSD.ORG Thu Aug 16 19:32:47 2007 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 1B5D816A420; Thu, 16 Aug 2007 19:32:47 +0000 (UTC) Delivered-To: perforce@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id E6DEE16A41A for ; Thu, 16 Aug 2007 19:32:46 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id D4B9E13C46B for ; Thu, 16 Aug 2007 19:32:46 +0000 (UTC) (envelope-from fli@FreeBSD.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id l7GJWkcA010471 for ; Thu, 16 Aug 2007 19:32:46 GMT (envelope-from fli@FreeBSD.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id l7GJWksU010468 for perforce@freebsd.org; Thu, 16 Aug 2007 19:32:46 GMT (envelope-from fli@FreeBSD.org) Date: Thu, 16 Aug 2007 19:32:46 GMT Message-Id: <200708161932.l7GJWksU010468@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 125231 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: Thu, 16 Aug 2007 19:32:47 -0000 http://perforce.freebsd.org/chv.cgi?CH=125231 Change 125231 by fli@fli_nexus on 2007/08/16 19:31:57 - Add a flags argument to dbr_ident_add() - Add some more debugging printouts. - Add a missing wcsdup Affected files ... .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/dbrec.c#4 edit .. //depot/projects/soc2007/fli-mdns_sd/mdnsd/dbrec.h#3 edit Differences ... ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/dbrec.c#4 (text+ko) ==== @@ -297,9 +297,10 @@ * Create a record set identifier * dbr - Database record handle * ident - Record set identifier to create + * flags - Additional configuration flags */ int -dbr_ident_add(struct dbr *dbr, char *ident) +dbr_ident_add(struct dbr *dbr, char *ident, int flags) { struct dbr_ident *dbi; size_t ilen; @@ -311,6 +312,9 @@ if (dbi != NULL) { dprintf(DEBUG_DBR, "Record set %s does already exists dbi=%x", ident, dbi); + + dbi->dbi_flags &= flags; + dbi->dbi_flags |= flags; goto out; } @@ -321,6 +325,7 @@ MTX_INIT(dbi, dbi_mtx, NULL); dbi->dbi_dbr = dbr; dbi->dbi_ident = strdup(ident); + dbi->dbi_flags = flags; TAILQ_INIT(&dbi->dbi_rech); TAILQ_INIT(&dbi->dbi_res); TAILQ_INIT(&dbi->dbi_res_ptr); @@ -329,6 +334,8 @@ TAILQ_INSERT_TAIL(&dbr->dbr_ilist, dbi, dbi_next); hashtbl_add(&dbr->dbr_ident, dbi->dbi_ident, ilen, dbi, 0); + dprintf(DEBUG_DBR, "Added record set identifier %s, dbi=%x", + ident, dbi); RW_UNLOCK(dbr, dbr_lock); return (0); out: @@ -478,6 +485,9 @@ if (dbi->dbi_records == 0) ident_setname(dbi, i); + dprintf(DEBUG_DBR, "Added name %ls to identifier %s, dbi=%x", + name, ident, dbi); + MTX_UNLOCK(dbi, dbi_mtx); RW_UNLOCK(dbr, dbr_lock); return (0); @@ -544,11 +554,15 @@ dbi->dbi_names = NULL; } + dprintf(DEBUG_DBR, "Removed name %ls from identifier %s, dbi=%x", + name, ident, dbi); MTX_UNLOCK(dbi, dbi_mtx); RW_UNLOCK(dbr, dbr_lock); return (0); out: RW_UNLOCK(dbr, dbr_lock); + dprintf(DEBUG_DBR, "Failed to remove %ls from identifier %s, dbi=%x", + name, ident, dbi); return (-1); } @@ -682,7 +696,7 @@ dir->dir_data.dbi = dbip; } else { - dir->dir_data.wp = res; + dir->dir_data.wp = _wcsdup(res); } MTX_LOCK(dbi, dbi_mtx); ==== //depot/projects/soc2007/fli-mdns_sd/mdnsd/dbrec.h#3 (text+ko) ==== @@ -196,7 +196,7 @@ struct dbr_type * dbr_find_type(struct dbr *, char *, uint16_t); struct dbr_res * dbr_find_res(struct dbr *, char *, uint16_t, char *, size_t); -int dbr_ident_add(struct dbr *, char *); +int dbr_ident_add(struct dbr *, char *, int); int dbr_ident_del(struct dbr *, char *); char ** dbr_ident_list(struct dbr *); void dbr_ident_list_free(char **);