mirror of
https://github.com/samba-team/samba.git
synced 2025-03-27 22:50:26 +03:00
r9998: starting content for maintainers file
(This used to be commit 554c22faeefe6932a01aa7bd6e2861c5abd37510)
This commit is contained in:
parent
93954d6390
commit
99c909c2fa
26
MAINTAINERS
26
MAINTAINERS
@ -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>
|
||||
|
@ -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 */
|
||||
|
||||
|
@ -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;
|
||||
|
Loading…
x
Reference in New Issue
Block a user