r9998: starting content for maintainers file
authorGerald Carter <jerry@samba.org>
Sat, 3 Sep 2005 16:38:51 +0000 (16:38 +0000)
committerGerald (Jerry) Carter <jerry@samba.org>
Wed, 10 Oct 2007 16:03:30 +0000 (11:03 -0500)
(This used to be commit 554c22faeefe6932a01aa7bd6e2861c5abd37510)

MAINTAINERS
source3/include/adt_tree.h
source3/lib/adt_tree.c

index 5988325408722c66715b87f05c14931ad51bcdbe..99993346a61db7b4528fc8006852db40588c278e 100644 (file)
@@ -1,5 +1,29 @@
 ##
 ## List of current Samba Maintainers 
 ##
-docs   jht@samba.org
 
+This file contains a list of developers responsible for 
+portions of the Samba 3.0 code.  It also lists developers
+responsible for 3rd party projects that work with Samba
+(e.g. vfs modules).
+
+Note that this list is for you benefit, but please do not
+abuse it by constantly emailing a stream of help questions
+to the maintainers.  Some are more open to direct 
+communication than others and some struggle with enormous
+amounts of email every day.
+
+All bug reports for code that is maintained *within* the 
+Samba subversion tree should be filed at https://bugzilla.samba.org/.
+
+
+Feature/Function       Developer
+----------------       ---------
+
+samba-vscan            Rainer Link <rainer@openantivirus.org>
+pdb_mysql              Jelmer Vernooij <jelmer@samba.org>
+General Documentation  John Terpstra <jht@samba.org>
+
+
+--
+Please report any errors in this file to <samba-technical@samba.org>
index 2fbfb55e88918606c92cd84179816257eaef3e94..51b6fb1c88b7928f76b5fb2987e978e5b8e632a2 100644 (file)
@@ -1,7 +1,7 @@
 /* 
  *  Unix SMB/CIFS implementation.
  *  Generic Abstract Data Types
- *  Copyright (C) Gerald Carter                     2002.
+ *  Copyright (C) Gerald Carter                     2002-2005.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -39,17 +39,18 @@ typedef struct _tree_node {
 
 typedef struct _tree_root {
        TREE_NODE       *root;
+
+       /* not used currently (is it needed?) */
        int             (*compare)(void* x, void *y);
-       void            (*free_func)(void *p);
 } SORTED_TREE;
 
 /* 
  * API
  */
 
-/* initializer and desctrutor */
-SORTED_TREE*  pathtree_init( void *data_p, int (cmp_fn)(void*, void*), void (free_fn)(void*) );
-void          pathtree_destroy( SORTED_TREE *tree );
+/* create a new tree, talloc_free() to throw it away */
+
+SORTED_TREE*  pathtree_init( void *data_p, int (cmp_fn)(void*, void*) );
 
 /* add a new path component */
 
index ad763c2be194516d34e58341eb464bbb9cc51210..05a470bc49ee9349a15f3ff6ddcc7054f48bf37a 100644 (file)
@@ -23,8 +23,6 @@
 
 
 /**************************************************************************
- Initialize the tree's root.  The cmp_fn is a callback function used
- for comparision of two children
  *************************************************************************/
 
 static BOOL trim_tree_keypath( char *path, char **base, char **new_path )
@@ -54,69 +52,26 @@ static BOOL trim_tree_keypath( char *path, char **base, char **new_path )
  for comparision of two children
  *************************************************************************/
 
- SORTED_TREE* pathtree_init( void *data_p,
-                               int (cmp_fn)(void*, void*),
-                               void (free_fn)(void*) )
+ SORTED_TREE* pathtree_init( void *data_p, int (cmp_fn)(void*, void*) )
 {
        SORTED_TREE *tree = NULL;
        
-       if ( !(tree = SMB_MALLOC_P(SORTED_TREE)) )
+       if ( !(tree = TALLOC_ZERO_P(NULL, SORTED_TREE)) )
                return NULL;
                
-       ZERO_STRUCTP( tree );
-       
        tree->compare = cmp_fn;
-       tree->free_func    = free_fn;
        
-       if ( !(tree->root = SMB_MALLOC_P(TREE_NODE)) ) {
-               SAFE_FREE( tree );
+       if ( !(tree->root = TALLOC_ZERO_P(tree, TREE_NODE)) ) {
+               TALLOC_FREE( tree );
                return NULL;
        }
        
-       ZERO_STRUCTP( tree->root );
        tree->root->data_p = data_p;
        
        return tree;
 }
 
 
-/**************************************************************************
- Delete a tree and free all allocated memory
- *************************************************************************/
-
-static void pathtree_destroy_children( TREE_NODE *root )
-{
-       int i;
-       
-       if ( !root )
-               return;
-       
-       for ( i=0; i<root->num_children; i++ )
-       {
-               pathtree_destroy_children( root->children[i] ); 
-       }
-       
-       SAFE_FREE( root->children );
-       SAFE_FREE( root->key );
-       
-       return;
-}
-
-/**************************************************************************
- Delete a tree and free all allocated memory
- *************************************************************************/
-
- void pathtree_destroy( SORTED_TREE *tree )
-{
-       if ( tree->root )
-               pathtree_destroy_children( tree->root );        
-       
-       if ( tree->free_func )
-               tree->free_func( tree->root );
-       
-       SAFE_FREE( tree );
-}
-
 /**************************************************************************
  Find the next child given a key string
  *************************************************************************/
@@ -127,15 +82,13 @@ static TREE_NODE* pathtree_birth_child( TREE_NODE *node, char* key )
        TREE_NODE **siblings;
        int i;
        
-       if ( !(infant = SMB_MALLOC_P(TREE_NODE)) )
+       if ( !(infant = TALLOC_ZERO_P( node, TREE_NODE)) )
                return NULL;
        
-       ZERO_STRUCTP( infant );
-               
-       infant->key = SMB_STRDUP( key );
+       infant->key = talloc_strdup( infant, key );
        infant->parent = node;
        
-       siblings = SMB_REALLOC_ARRAY( node->children, TREE_NODE *, node->num_children+1 );
+       siblings = TALLOC_REALLOC_ARRAY( node, node->children, TREE_NODE *, node->num_children+1 );
        
        if ( siblings )
                node->children = siblings;