本文整理汇总了C++中ch_malloc函数的典型用法代码示例。如果您正苦于以下问题:C++ ch_malloc函数的具体用法?C++ ch_malloc怎么用?C++ ch_malloc使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了ch_malloc函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: sssvlv_db_init
static int sssvlv_db_init(
BackendDB *be,
ConfigReply *cr)
{
slap_overinst *on = (slap_overinst *)be->bd_info;
sssvlv_info *si;
if ( ov_count == 0 ) {
int rc;
rc = register_supported_control2( LDAP_CONTROL_SORTREQUEST,
SLAP_CTRL_SEARCH,
NULL,
sss_parseCtrl,
1 /* replace */,
&sss_cid );
if ( rc != LDAP_SUCCESS ) {
Debug( LDAP_DEBUG_ANY, "Failed to register Sort Request control '%s' (%d)\n",
LDAP_CONTROL_SORTREQUEST, rc );
return rc;
}
rc = register_supported_control2( LDAP_CONTROL_VLVREQUEST,
SLAP_CTRL_SEARCH,
NULL,
vlv_parseCtrl,
1 /* replace */,
&vlv_cid );
if ( rc != LDAP_SUCCESS ) {
Debug( LDAP_DEBUG_ANY, "Failed to register VLV Request control '%s' (%d)\n",
LDAP_CONTROL_VLVREQUEST, rc );
#ifdef SLAP_CONFIG_DELETE
overlay_unregister_control( be, LDAP_CONTROL_SORTREQUEST );
unregister_supported_control( LDAP_CONTROL_SORTREQUEST );
#endif /* SLAP_CONFIG_DELETE */
return rc;
}
}
si = (sssvlv_info *)ch_malloc(sizeof(sssvlv_info));
on->on_bi.bi_private = si;
si->svi_max = 0;
si->svi_num = 0;
si->svi_max_keys = SSSVLV_DEFAULT_MAX_KEYS;
si->svi_max_percon = SSSVLV_DEFAULT_MAX_REQUEST_PER_CONN;
ov_count++;
return LDAP_SUCCESS;
}
开发者ID:osstech-jp,项目名称:ReOpenLDAP,代码行数:51,代码来源:sssvlv.c
示例2: slap_operational_subschemaSubentry
Attribute *
slap_operational_subschemaSubentry( Backend *be )
{
Attribute *a;
/* The backend wants to take care of it */
if ( be && !SLAP_FRONTEND(be) && be->be_schemadn.bv_val ) return NULL;
a = attr_alloc( slap_schema.si_ad_subschemaSubentry );
a->a_numvals = 1;
a->a_vals = ch_malloc( 2 * sizeof( struct berval ) );
ber_dupbv( a->a_vals, &frontendDB->be_schemadn );
a->a_vals[1].bv_len = 0;
a->a_vals[1].bv_val = NULL;
a->a_nvals = ch_malloc( 2 * sizeof( struct berval ) );
ber_dupbv( a->a_nvals, &frontendDB->be_schemandn );
a->a_nvals[1].bv_len = 0;
a->a_nvals[1].bv_val = NULL;
return a;
}
开发者ID:osstech-jp,项目名称:ReOpenLDAP,代码行数:23,代码来源:operational.c
示例3: backsql_api_config
int
backsql_api_config( backsql_info *bi, const char *name, int argc, char *argv[] )
{
backsql_api *ba;
assert( bi != NULL );
assert( name != NULL );
for ( ba = backsqlapi; ba; ba = ba->ba_next ) {
if ( strcasecmp( name, ba->ba_name ) == 0 ) {
backsql_api *ba2;
ba2 = ch_malloc( sizeof( backsql_api ) );
*ba2 = *ba;
if ( ba2->ba_config ) {
if ( ( *ba2->ba_config )( ba2, argc, argv ) ) {
ch_free( ba2 );
return 1;
}
ba2->ba_argc = argc;
if ( argc ) {
int i;
ba2->ba_argv = ch_malloc( argc * sizeof(char *));
for ( i=0; i<argc; i++ )
ba2->ba_argv[i] = ch_strdup( argv[i] );
}
}
ba2->ba_next = bi->sql_api;
bi->sql_api = ba2;
return 0;
}
}
return 1;
}
开发者ID:osstech-jp,项目名称:ReOpenLDAP,代码行数:37,代码来源:api.c
示例4: slap_sasl_rx_exp
/* Perform replacement on regexp matches */
static void slap_sasl_rx_exp(
const char *rep,
const int *off,
regmatch_t *str,
const char *saslname,
struct berval *out )
{
int i, n, len, insert;
/* Get the total length of the final URI */
n=1;
len = 0;
while( off[n] >= 0 ) {
/* Len of next section from replacement string (x,y,z above) */
len += off[n] - off[n-1] - 2;
if( off[n+1] < 0)
break;
/* Len of string from saslname that matched next $i (b,d above) */
i = rep[ off[n] + 1 ] - '0';
len += str[i].rm_eo - str[i].rm_so;
n++;
}
out->bv_val = ch_malloc( len + 1 );
out->bv_len = len;
/* Fill in URI with replace string, replacing $i as we go */
n=1;
insert = 0;
while( off[n] >= 0) {
/* Paste in next section from replacement string (x,y,z above) */
len = off[n] - off[n-1] - 2;
strncpy( out->bv_val+insert, rep + off[n-1] + 2, len);
insert += len;
if( off[n+1] < 0)
break;
/* Paste in string from saslname that matched next $i (b,d above) */
i = rep[ off[n] + 1 ] - '0';
len = str[i].rm_eo - str[i].rm_so;
strncpy( out->bv_val+insert, saslname + str[i].rm_so, len );
insert += len;
n++;
}
out->bv_val[insert] = '\0';
}
开发者ID:BackupTheBerlios,项目名称:wl530g-svn,代码行数:50,代码来源:saslauthz.c
示例5: ndb_oc_create
static int
ndb_oc_create( struct ndb_info *ni, NdbOcInfo *oci, int create )
{
char buf[4096], *ptr;
int i, rc = 0, col;
if ( create ) {
ptr = buf + sprintf( buf,
"CREATE TABLE `%s` (eid bigint unsigned NOT NULL, vid int unsigned NOT NULL",
oci->no_table.bv_val );
}
col = 0;
if ( oci->no_oc->soc_required ) {
for ( i=0; oci->no_oc->soc_required[i]; i++ );
col += i;
}
if ( oci->no_oc->soc_allowed ) {
for ( i=0; oci->no_oc->soc_allowed[i]; i++ );
col += i;
}
/* assume all are present */
oci->no_attrs = (struct ndb_attrinfo **)ch_malloc( col * sizeof(struct ndb_attrinfo *));
col = 2;
ldap_pvt_thread_rdwr_wlock( &ni->ni_ai_rwlock );
if ( oci->no_oc->soc_required ) {
rc = ndb_ai_check( ni, oci, oci->no_oc->soc_required, &ptr, &col, create );
}
if ( !rc && oci->no_oc->soc_allowed ) {
rc = ndb_ai_check( ni, oci, oci->no_oc->soc_allowed, &ptr, &col, create );
}
ldap_pvt_thread_rdwr_wunlock( &ni->ni_ai_rwlock );
/* shrink down to just the needed size */
oci->no_attrs = (struct ndb_attrinfo **)ch_realloc( oci->no_attrs,
oci->no_nattrs * sizeof(struct ndb_attrinfo *));
if ( create ) {
ptr = lutil_strcopy( ptr, ", PRIMARY KEY(eid, vid) ) ENGINE=ndb PARTITION BY KEY(eid)" );
rc = mysql_real_query( &ni->ni_sql, buf, ptr - buf );
if ( rc ) {
Debug( LDAP_DEBUG_ANY,
"ndb_oc_create: CREATE TABLE %s failed, %s (%d)\n",
oci->no_table.bv_val, mysql_error(&ni->ni_sql), mysql_errno(&ni->ni_sql) );
}
}
return rc;
}
开发者ID:cptaffe,项目名称:openldap,代码行数:49,代码来源:ndbio.cpp
示例6: dynacl_aci_unparse
static int
dynacl_aci_unparse( void *priv, struct berval *bv )
{
AttributeDescription *ad = ( AttributeDescription * )priv;
char *ptr;
assert( ad != NULL );
bv->bv_val = ch_malloc( STRLENOF(" aci=") + ad->ad_cname.bv_len + 1 );
ptr = lutil_strcopy( bv->bv_val, " aci=" );
ptr = lutil_strcopy( ptr, ad->ad_cname.bv_val );
bv->bv_len = ptr - bv->bv_val;
return 0;
}
开发者ID:Smilefant,项目名称:ReOpenLDAP,代码行数:15,代码来源:aci.c
示例7: attr_dup2
static void
attr_dup2( Attribute *tmp, Attribute *a )
{
tmp->a_flags = a->a_flags & SLAP_ATTR_PERSISTENT_FLAGS;
if ( a->a_vals != NULL ) {
unsigned i, j;
tmp->a_numvals = a->a_numvals;
tmp->a_vals = ch_malloc( (tmp->a_numvals + 1) * sizeof(struct berval) );
for ( i = 0; i < tmp->a_numvals; i++ ) {
ber_dupbv( &tmp->a_vals[i], &a->a_vals[i] );
if ( BER_BVISNULL( &tmp->a_vals[i] ) ) break;
/* FIXME: error? */
}
BER_BVZERO( &tmp->a_vals[i] );
/* a_nvals must be non null; it may be equal to a_vals */
assert( a->a_nvals != NULL );
if ( a->a_nvals != a->a_vals ) {
tmp->a_nvals = ch_malloc( (tmp->a_numvals + 1) * sizeof(struct berval) );
for ( j = 0; !BER_BVISNULL( &a->a_nvals[j] ); j++ ) {
assert( j < i );
ber_dupbv( &tmp->a_nvals[j], &a->a_nvals[j] );
if ( BER_BVISNULL( &tmp->a_nvals[j] ) ) break;
/* FIXME: error? */
}
assert( j == i );
BER_BVZERO( &tmp->a_nvals[j] );
} else {
tmp->a_nvals = tmp->a_vals;
}
}
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:36,代码来源:attr.c
示例8: ldap_pvt_thread_pool_getkey
static ID2 *scope_chunk_get( Operation *op )
{
ID2 *ret = NULL;
ldap_pvt_thread_pool_getkey( op->o_threadctx, (void *)scope_chunk_get,
(void *)&ret, NULL );
if ( !ret ) {
ret = ch_malloc( MDB_IDL_UM_SIZE * sizeof( ID2 ));
} else {
void *r2 = ret[0].mval.mv_data;
ldap_pvt_thread_pool_setkey( op->o_threadctx, (void *)scope_chunk_get,
r2, scope_chunk_free, NULL, NULL );
}
return ret;
}
开发者ID:osstech-jp,项目名称:ReOpenLDAP,代码行数:15,代码来源:search.c
示例9: retcode_db_init
static int
retcode_db_init( BackendDB *be, ConfigReply *cr )
{
slap_overinst *on = (slap_overinst *)be->bd_info;
retcode_t *rd;
srand( getpid() );
rd = (retcode_t *)ch_malloc( sizeof( retcode_t ) );
memset( rd, 0, sizeof( retcode_t ) );
on->on_bi.bi_private = (void *)rd;
return 0;
}
开发者ID:verter2015,项目名称:ReOpenLDAP,代码行数:15,代码来源:retcode.c
示例10: adremap_cf_case
static int
adremap_cf_case(ConfigArgs *c)
{
BackendDB *be = (BackendDB *)c->be;
slap_overinst *on = (slap_overinst *)c->bi;
adremap_info *ai = on->on_bi.bi_private;
adremap_case *ac, **a2;
int rc = ARG_BAD_CONF;
switch(c->op) {
case SLAP_CONFIG_EMIT:
for (ac = ai->ai_case; ac; ac=ac->ac_next) {
rc = value_add_one(&c->rvalue_vals, &ac->ac_attr->ad_cname);
if (rc) break;
}
break;
case LDAP_MOD_DELETE:
if (c->valx < 0) {
for (ac = ai->ai_case; ac; ac=ai->ai_case) {
ai->ai_case = ac->ac_next;
ch_free(ac);
}
} else {
int i;
for (i=0, a2 = &ai->ai_case; i<c->valx; i++, a2 = &(*a2)->ac_next);
ac = *a2;
*a2 = ac->ac_next;
ch_free(ac);
}
rc = 0;
break;
default: {
const char *text;
adremap_case ad;
ad.ac_attr = NULL;
rc = slap_str2ad(c->argv[1], &ad.ac_attr, &text);
if (rc) break;
for (a2 = &ai->ai_case; *a2; a2 = &(*a2)->ac_next);
ac = ch_malloc(sizeof(adremap_case));
ac->ac_next = NULL;
ac->ac_attr = ad.ac_attr;
*a2 = ac;
break;
}
}
return rc;
}
开发者ID:Distrotech,项目名称:openldap,代码行数:47,代码来源:adremap.c
示例11: perl_back_db_init
int
perl_back_db_init(
BackendDB *be,
ConfigReply *cr
)
{
be->be_private = (PerlBackend *) ch_malloc( sizeof(PerlBackend) );
memset( be->be_private, '\0', sizeof(PerlBackend));
((PerlBackend *)be->be_private)->pb_filter_search_results = 0;
Debug( LDAP_DEBUG_TRACE, "perl backend db init\n", 0, 0, 0 );
be->be_cf_ocs = be->bd_info->bi_cf_ocs;
return 0;
}
开发者ID:DanahBlanahaseth,项目名称:cniiag_ldap,代码行数:17,代码来源:init.c
示例12: txn_start_extop
int txn_start_extop(
Operation *op, SlapReply *rs )
{
int rc;
struct berval *bv;
Statslog( LDAP_DEBUG_STATS, "%s TXN START\n",
op->o_log_prefix, 0, 0, 0, 0 );
if( op->ore_reqdata != NULL ) {
rs->sr_text = "no request data expected";
return LDAP_PROTOCOL_ERROR;
}
op->o_bd = op->o_conn->c_authz_backend;
if( backend_check_restrictions( op, rs,
(struct berval *)&slap_EXOP_TXN_START ) != LDAP_SUCCESS )
{
return rs->sr_err;
}
/* acquire connection lock */
ldap_pvt_thread_mutex_lock( &op->o_conn->c_mutex );
if( op->o_conn->c_txn != CONN_TXN_INACTIVE ) {
rs->sr_text = "Too many transactions";
rc = LDAP_BUSY;
goto done;
}
assert( op->o_conn->c_txn_backend == NULL );
op->o_conn->c_txn = CONN_TXN_SPECIFY;
bv = (struct berval *) ch_malloc( sizeof (struct berval) );
bv->bv_len = 0;
bv->bv_val = NULL;
rs->sr_rspdata = bv;
rc = LDAP_SUCCESS;
done:
/* release connection lock */
ldap_pvt_thread_mutex_unlock( &op->o_conn->c_mutex );
return rc;
}
开发者ID:FarazShaikh,项目名称:LikewiseSMB2,代码行数:45,代码来源:txn.c
示例13: ch_strdup
static char *v2ref( BerVarray ref, const char *text )
{
size_t len = 0, i = 0;
char *v2;
if(ref == NULL) {
if (text) {
return ch_strdup(text);
} else {
return NULL;
}
}
if ( text != NULL ) {
len = strlen( text );
if (text[len-1] != '\n') {
i = 1;
}
}
v2 = ch_malloc( len+i+sizeof("Referral:") );
if( text != NULL ) {
strcpy(v2, text);
if( i ) {
v2[len++] = '\n';
}
}
strcpy( v2+len, "Referral:" );
len += sizeof("Referral:");
for( i=0; ref[i].bv_val != NULL; i++ ) {
v2 = ch_realloc( v2, len + ref[i].bv_len + 1 );
v2[len-1] = '\n';
memcpy(&v2[len], ref[i].bv_val, ref[i].bv_len );
len += ref[i].bv_len;
if (ref[i].bv_val[ref[i].bv_len-1] != '/') {
++len;
}
}
v2[len-1] = '\0';
return v2;
}
开发者ID:Smilefant,项目名称:ReOpenLDAP,代码行数:44,代码来源:result.c
示例14: dnPretty
/*
* dn "pretty"ing routine
*/
int
dnPretty(
Syntax *syntax,
struct berval *val,
struct berval **pretty)
{
struct berval *out;
int rc;
assert( pretty && *pretty == NULL );
out = ch_malloc( sizeof( struct berval ) );
rc = dnPretty2( syntax, val, out );
if ( rc != LDAP_SUCCESS )
free( out );
else
*pretty = out;
return rc;
}
开发者ID:BackupTheBerlios,项目名称:wl530g-svn,代码行数:22,代码来源:dn.c
示例15: build_new_dn
void
build_new_dn( struct berval * new_dn,
struct berval * parent_dn,
struct berval * newrdn )
{
char *ptr;
if ( parent_dn == NULL ) {
ber_dupbv( new_dn, newrdn );
return;
}
new_dn->bv_len = parent_dn->bv_len + newrdn->bv_len + 1;
new_dn->bv_val = (char *) ch_malloc( new_dn->bv_len + 1 );
ptr = lutil_strcopy( new_dn->bv_val, newrdn->bv_val );
*ptr++ = ',';
strcpy( ptr, parent_dn->bv_val );
}
开发者ID:BackupTheBerlios,项目名称:wl530g-svn,代码行数:19,代码来源:dn.c
示例16: dnNormalize
/*
* dn normalize routine
*/
int
dnNormalize(
Syntax *syntax,
struct berval *val,
struct berval **normalized )
{
struct berval *out;
int rc;
assert( normalized && *normalized == NULL );
out = ch_malloc( sizeof( struct berval ) );
rc = dnNormalize2( syntax, val, out );
if ( rc != LDAP_SUCCESS )
free( out );
else
*normalized = out;
return rc;
}
开发者ID:BackupTheBerlios,项目名称:wl530g-svn,代码行数:22,代码来源:dn.c
示例17: slap_operational_hasSubordinate
Attribute *
slap_operational_hasSubordinate( int hs )
{
Attribute *a;
struct berval val;
val = hs ? slap_true_bv : slap_false_bv;
a = attr_alloc( slap_schema.si_ad_hasSubordinates );
a->a_numvals = 1;
a->a_vals = ch_malloc( 2 * sizeof( struct berval ) );
ber_dupbv( &a->a_vals[0], &val );
a->a_vals[1].bv_val = NULL;
a->a_nvals = a->a_vals;
return a;
}
开发者ID:osstech-jp,项目名称:ReOpenLDAP,代码行数:19,代码来源:operational.c
示例18: slapi_int_plugin_unparse
void
slapi_int_plugin_unparse(
Backend *be,
BerVarray *out
)
{
Slapi_PBlock *pp;
int i, j;
char **argv, ibuf[32], *ptr;
struct berval idx, bv;
*out = NULL;
idx.bv_val = ibuf;
i = 0;
for ( pp = SLAPI_BACKEND_PBLOCK( be );
pp != NULL;
slapi_pblock_get( pp, SLAPI_IBM_PBLOCK, &pp ) )
{
slapi_pblock_get( pp, SLAPI_X_CONFIG_ARGV, &argv );
if ( argv == NULL ) /* could be dynamic plugin */
continue;
idx.bv_len = snprintf( idx.bv_val, sizeof( ibuf ), "{%d}", i );
if ( idx.bv_len >= sizeof( ibuf ) ) {
/* FIXME: just truncating by now */
idx.bv_len = sizeof( ibuf ) - 1;
}
bv.bv_len = idx.bv_len;
for (j=1; argv[j]; j++) {
bv.bv_len += strlen(argv[j]);
if ( j ) bv.bv_len++;
}
bv.bv_val = ch_malloc( bv.bv_len + 1 );
ptr = lutil_strcopy( bv.bv_val, ibuf );
for (j=1; argv[j]; j++) {
if ( j ) *ptr++ = ' ';
ptr = lutil_strcopy( ptr, argv[j] );
}
ber_bvarray_add( out, &bv );
}
}
开发者ID:rashoodkhan,项目名称:ldap-server-mirror,代码行数:41,代码来源:plugin.c
示例19:
/* This function adds a node into the main AVL tree */
idNode *bdb_add_node(
ID id,
char *d,
struct bdb_info *bdb
)
{
idNode *node;
node = (idNode *)ch_malloc(sizeof(idNode));
node->i_id = id;
node->i_parent = NULL;
node->i_kids = NULL;
node->i_rdn = (diskNode *)d;
node->i_rdn->rdn.bv_val += (long)d;
node->i_rdn->nrdn.bv_val += (long)d;
ldap_pvt_thread_rdwr_init(&node->i_kids_rdwr);
avl_insert( &bdb->bi_tree, (caddr_t) node, node_add_cmp, avl_dup_error );
if (id == 1)
bdb->bi_troot = node;
return node;
}
开发者ID:BackupTheBerlios,项目名称:wl530g-svn,代码行数:22,代码来源:dn2id.c
示例20: gssattr_dynacl_unparse
static int
gssattr_dynacl_unparse(
void *priv,
struct berval *bv )
{
gssattr_t *gssattr = (gssattr_t *)priv;
char *ptr;
bv->bv_len = STRLENOF( " dynacl/gss/.expand=" ) +
gssattr->gssattr_name.bv_len +
gssattr->gssattr_value.bv_len;
bv->bv_val = ch_malloc( bv->bv_len + 1 );
ptr = lutil_strcopy( bv->bv_val, " dynacl/gss/" );
ptr = lutil_strncopy( ptr, gssattr->gssattr_name.bv_val,
gssattr->gssattr_name.bv_len );
switch ( gssattr->gssattr_style ) {
case ACL_STYLE_BASE:
ptr = lutil_strcopy( ptr, ".exact=" );
break;
case ACL_STYLE_REGEX:
ptr = lutil_strcopy( ptr, ".regex=" );
break;
case ACL_STYLE_EXPAND:
ptr = lutil_strcopy( ptr, ".expand=" );
break;
default:
assert( 0 );
break;
}
ptr = lutil_strncopy( ptr, gssattr->gssattr_value.bv_val,
gssattr->gssattr_value.bv_len );
ptr[ 0 ] = '\0';
bv->bv_len = ptr - bv->bv_val;
return 0;
}
开发者ID:jaredmcneill,项目名称:netbsd-src,代码行数:40,代码来源:gssacl.c
注:本文中的ch_malloc函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论