本文整理汇总了C++中sk_num函数的典型用法代码示例。如果您正苦于以下问题:C++ sk_num函数的具体用法?C++ sk_num怎么用?C++ sk_num使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了sk_num函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: DSOerr
static void *dlfcn_bind_var(DSO *dso, const char *symname)
{
void *ptr, *sym;
if((dso == NULL) || (symname == NULL))
{
DSOerr(DSO_F_DLFCN_BIND_VAR,ERR_R_PASSED_NULL_PARAMETER);
return(NULL);
}
if(sk_num(dso->meth_data) < 1)
{
DSOerr(DSO_F_DLFCN_BIND_VAR,DSO_R_STACK_ERROR);
return(NULL);
}
ptr = (void *)sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
if(ptr == NULL)
{
DSOerr(DSO_F_DLFCN_BIND_VAR,DSO_R_NULL_HANDLE);
return(NULL);
}
sym = dlsym(ptr, symname);
if(sym == NULL)
{
DSOerr(DSO_F_DLFCN_BIND_VAR,DSO_R_SYM_FAILURE);
return(NULL);
}
return(sym);
}
开发者ID:ahenroid,项目名称:ptptl-0.2,代码行数:28,代码来源:dso_dlfcn.c
示例2: DSOerr
static void *dl_bind_var(DSO *dso, const char *symname)
{
shl_t ptr;
void *sym;
if((dso == NULL) || (symname == NULL))
{
DSOerr(DSO_F_DL_BIND_VAR,ERR_R_PASSED_NULL_PARAMETER);
return(NULL);
}
if(sk_num(dso->meth_data) < 1)
{
DSOerr(DSO_F_DL_BIND_VAR,DSO_R_STACK_ERROR);
return(NULL);
}
ptr = (shl_t)sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
if(ptr == NULL)
{
DSOerr(DSO_F_DL_BIND_VAR,DSO_R_NULL_HANDLE);
return(NULL);
}
if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0)
{
DSOerr(DSO_F_DL_BIND_VAR,DSO_R_SYM_FAILURE);
return(NULL);
}
return(sym);
}
开发者ID:aosm,项目名称:OpenSSL096,代码行数:28,代码来源:dso_dl.c
示例3: win32_bind_func
static DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname)
{
HINSTANCE *ptr;
void *sym;
if((dso == NULL) || (symname == NULL))
{
DSOerr(DSO_F_WIN32_BIND_FUNC,ERR_R_PASSED_NULL_PARAMETER);
return(NULL);
}
if(sk_num(dso->meth_data) < 1)
{
DSOerr(DSO_F_WIN32_BIND_FUNC,DSO_R_STACK_ERROR);
return(NULL);
}
ptr = (HINSTANCE *)sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
if(ptr == NULL)
{
DSOerr(DSO_F_WIN32_BIND_FUNC,DSO_R_NULL_HANDLE);
return(NULL);
}
sym = GetProcAddress(*ptr, symname);
if(sym == NULL)
{
DSOerr(DSO_F_WIN32_BIND_FUNC,DSO_R_SYM_FAILURE);
ERR_add_error_data(3, "symname(", symname, ")");
return(NULL);
}
return((DSO_FUNC_TYPE)sym);
}
开发者ID:froggatt,项目名称:edimax-br-6528n,代码行数:30,代码来源:dso_win32.c
示例4: beos_bind_func
static DSO_FUNC_TYPE beos_bind_func (DSO * dso, const char *symname)
{
image_id id;
void *sym;
if ((dso == NULL) || (symname == NULL))
{
DSOerr (DSO_F_BEOS_BIND_FUNC, ERR_R_PASSED_NULL_PARAMETER);
return (NULL);
}
if (sk_num (dso->meth_data) < 1)
{
DSOerr (DSO_F_BEOS_BIND_FUNC, DSO_R_STACK_ERROR);
return (NULL);
}
id = (image_id) sk_value (dso->meth_data, sk_num (dso->meth_data) - 1);
if (id < 1)
{
DSOerr (DSO_F_BEOS_BIND_FUNC, DSO_R_NULL_HANDLE);
return (NULL);
}
if (get_image_symbol (id, symname, B_SYMBOL_TYPE_TEXT, &sym) != B_OK)
{
DSOerr (DSO_F_BEOS_BIND_FUNC, DSO_R_SYM_FAILURE);
ERR_add_error_data (3, "symname(", symname, ")");
return (NULL);
}
return ((DSO_FUNC_TYPE) sym);
}
开发者ID:274914765,项目名称:C,代码行数:30,代码来源:dso_beos.c
示例5: dlfcn_bind_func
static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname)
{
void *ptr;
DSO_FUNC_TYPE sym, *tsym = &sym;
if((dso == NULL) || (symname == NULL))
{
DSOerr(DSO_F_DLFCN_BIND_FUNC,ERR_R_PASSED_NULL_PARAMETER);
return(NULL);
}
if(sk_num(dso->meth_data) < 1)
{
DSOerr(DSO_F_DLFCN_BIND_FUNC,DSO_R_STACK_ERROR);
return(NULL);
}
ptr = (void *)sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
if(ptr == NULL)
{
DSOerr(DSO_F_DLFCN_BIND_FUNC,DSO_R_NULL_HANDLE);
return(NULL);
}
*(void **)(tsym) = dlsym(ptr, symname);
if(sym == NULL)
{
DSOerr(DSO_F_DLFCN_BIND_FUNC,DSO_R_SYM_FAILURE);
ERR_add_error_data(4, "symname(", symname, "): ", dlerror());
return(NULL);
}
return(sym);
}
开发者ID:174high,项目名称:openssl-0.9.8e_linux_porting,代码行数:30,代码来源:dso_dlfcn.c
示例6: dl_bind_func
static DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname)
{
shl_t ptr;
void *sym;
if ((dso == NULL) || (symname == NULL)) {
DSOerr(DSO_F_DL_BIND_FUNC, ERR_R_PASSED_NULL_PARAMETER);
return (NULL);
}
if (sk_num(dso->meth_data) < 1) {
DSOerr(DSO_F_DL_BIND_FUNC, DSO_R_STACK_ERROR);
return (NULL);
}
ptr = (shl_t) sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
if (ptr == NULL) {
DSOerr(DSO_F_DL_BIND_FUNC, DSO_R_NULL_HANDLE);
return (NULL);
}
if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0) {
DSOerr(DSO_F_DL_BIND_FUNC, DSO_R_SYM_FAILURE);
ERR_add_error_data(4, "symname(", symname, "): ", strerror(errno));
return (NULL);
}
return ((DSO_FUNC_TYPE)sym);
}
开发者ID:1564143452,项目名称:kbengine,代码行数:25,代码来源:dso_dl.c
示例7: STOREerr
static STORE_OBJECT *mem_list_next(STORE *s, void *handle)
{
int i;
struct mem_ctx_st *context = (struct mem_ctx_st *)handle;
struct mem_object_data_st key = { 0, 0, 1 };
struct mem_data_st *store =
(struct mem_data_st *)STORE_get_ex_data(s, 1);
int srch;
int cres = 0;
if (!context)
{
STOREerr(STORE_F_MEM_LIST_NEXT, ERR_R_PASSED_NULL_PARAMETER);
return NULL;
}
if (!store)
{
STOREerr(STORE_F_MEM_LIST_NEXT, STORE_R_NO_STORE);
return NULL;
}
if (context->search_index == -1)
{
for (i = 0; i < sk_num(context->search_attributes); i++)
{
key.attr_info =
(STORE_ATTR_INFO *)sk_value(context->search_attributes, i);
srch = sk_find_ex(store->data, (char *)&key);
if (srch >= 0)
{
context->search_index = srch;
break;
}
}
}
if (context->search_index < 0)
return NULL;
key.attr_info =
(STORE_ATTR_INFO *)sk_value(context->search_attributes,
context->search_index);
for(srch = context->search_index;
srch < sk_num(store->data)
&& STORE_ATTR_INFO_in_range(key.attr_info,
(STORE_ATTR_INFO *)sk_value(store->data, srch))
&& !(cres = STORE_ATTR_INFO_in_ex(key.attr_info,
(STORE_ATTR_INFO *)sk_value(store->data, srch)));
srch++)
;
context->search_index = srch;
if (cres)
return ((struct mem_object_data_st *)sk_value(store->data,
srch))->object;
return NULL;
}
开发者ID:LucidOne,项目名称:Rovio,代码行数:57,代码来源:str_mem.c
示例8: SSL_X509_isSGC
/* check whether cert contains extended key usage with a SGC tag */
BOOL SSL_X509_isSGC(X509 *cert)
{
X509_EXTENSION *ext;
int ext_nid;
STACK *sk;
BOOL is_sgc;
int idx;
int i;
is_sgc = FALSE;
idx = X509_get_ext_by_NID(cert, NID_ext_key_usage, -1);
if (idx >= 0) {
ext = X509_get_ext(cert, idx);
if ((sk = (STACK *)X509V3_EXT_d2i(ext)) != NULL) {
for (i = 0; i < sk_num(sk); i++) {
ext_nid = OBJ_obj2nid((ASN1_OBJECT *)sk_value(sk, i));
if (ext_nid == NID_ms_sgc || ext_nid == NID_ns_sgc) {
is_sgc = TRUE;
break;
}
}
}
}
return is_sgc;
}
开发者ID:AzerTyQsdF,项目名称:osx,代码行数:26,代码来源:ssl_util_ssl.c
示例9: print_conf
static void print_conf(CONF_VALUE *cv)
{
int i;
CONF_VALUE *v;
char *section;
char *name;
char *value;
STACK *s;
/* If it is a single entry, return */
if (cv->name != NULL) return;
TINYCLR_SSL_PRINTF("[ %s ]\n",cv->section);
s=(STACK *)cv->value;
for (i=0; i<sk_num(s); i++)
{
v=(CONF_VALUE *)sk_value(s,i);
section=(v->section == NULL)?"None":v->section;
name=(v->name == NULL)?"None":v->name;
value=(v->value == NULL)?"None":v->value;
TINYCLR_SSL_PRINTF("%s=%s\n",name,value);
}
TINYCLR_SSL_PRINTF("\n");
}
开发者ID:EddieGarmon,项目名称:netduino-netmf,代码行数:26,代码来源:cnf_save.cpp
示例10: ASN1_template_print
int ASN1_template_print(BIO *out, void *fld, int indent, const ASN1_TEMPLATE *tt)
{
int i, flags;
#if 0
if(!fld) return 0;
#endif
flags = tt->flags;
if(flags & ASN1_TFLG_SK_MASK) {
char *tname;
void *skitem;
/* SET OF, SEQUENCE OF */
if(flags & ASN1_TFLG_SET_OF) tname = "SET";
else tname = "SEQUENCE";
if(fld) {
BIO_printf(out, "%*s%s OF %s {\n", indent, "", tname, tt->field_name);
for(i = 0; i < sk_num(fld); i++) {
skitem = sk_value(fld, i);
asn1_item_print_nm(out, skitem, indent + 2, tt->item, "");
}
BIO_printf(out, "%*s}\n", indent, "");
} else
BIO_printf(out, "%*s%s OF %s ABSENT\n", indent, "", tname, tt->field_name);
return 1;
}
return asn1_item_print_nm(out, fld, indent, tt->item, tt->field_name);
}
开发者ID:hackshields,项目名称:antivirus,代码行数:26,代码来源:tasn_prn.c
示例11: win32_unload
static int win32_unload(DSO *dso)
{
HINSTANCE *p;
if(dso == NULL)
{
DSOerr(DSO_F_WIN32_UNLOAD,ERR_R_PASSED_NULL_PARAMETER);
return(0);
}
if(sk_num(dso->meth_data) < 1)
return(1);
p = (HINSTANCE *)sk_pop(dso->meth_data);
if(p == NULL)
{
DSOerr(DSO_F_WIN32_UNLOAD,DSO_R_NULL_HANDLE);
return(0);
}
if(!FreeLibrary(*p))
{
DSOerr(DSO_F_WIN32_UNLOAD,DSO_R_UNLOAD_FAILED);
/* We should push the value back onto the stack in
* case of a retry. */
sk_push(dso->meth_data, (char *)p);
return(0);
}
/* Cleanup */
OPENSSL_free(p);
return(1);
}
开发者ID:froggatt,项目名称:edimax-br-6528n,代码行数:28,代码来源:dso_win32.c
示例12: beos_unload
static int beos_unload (DSO * dso)
{
image_id id;
if (dso == NULL)
{
DSOerr (DSO_F_BEOS_UNLOAD, ERR_R_PASSED_NULL_PARAMETER);
return (0);
}
if (sk_num (dso->meth_data) < 1)
return (1);
id = (image_id) sk_pop (dso->meth_data);
if (id < 1)
{
DSOerr (DSO_F_BEOS_UNLOAD, DSO_R_NULL_HANDLE);
return (0);
}
if (unload_add_on (id) != B_OK)
{
DSOerr (DSO_F_BEOS_UNLOAD, DSO_R_UNLOAD_FAILED);
/* We should push the value back onto the stack in
* case of a retry. */
sk_push (dso->meth_data, (char *) id);
return (0);
}
return (1);
}
开发者ID:274914765,项目名称:C,代码行数:27,代码来源:dso_beos.c
示例13: ossl_ssl_get_peer_cert_chain
/*
* call-seq:
* ssl.peer_cert_chain => [cert, ...] or nil
*/
static VALUE
ossl_ssl_get_peer_cert_chain(VALUE self)
{
SSL *ssl;
STACK_OF(X509) *chain;
X509 *cert;
VALUE ary;
int i, num;
Data_Get_Struct(self, SSL, ssl);
if(!ssl){
rb_warning("SSL session is not started yet.");
return Qnil;
}
chain = SSL_get_peer_cert_chain(ssl);
if(!chain) return Qnil;
num = sk_num(chain);
ary = rb_ary_new2(num);
for (i = 0; i < num; i++){
cert = (X509*)sk_value(chain, i);
rb_ary_push(ary, ossl_x509_new(cert));
}
return ary;
}
开发者ID:srirammca53,项目名称:update_status,代码行数:29,代码来源:ossl_ssl.c
示例14: ossl_sslctx_get_ciphers
/*
* call-seq:
* ctx.ciphers => [[name, version, bits, alg_bits], ...]
*/
static VALUE
ossl_sslctx_get_ciphers(VALUE self)
{
SSL_CTX *ctx;
STACK_OF(SSL_CIPHER) *ciphers;
SSL_CIPHER *cipher;
VALUE ary;
int i, num;
Data_Get_Struct(self, SSL_CTX, ctx);
if(!ctx){
rb_warning("SSL_CTX is not initialized.");
return Qnil;
}
ciphers = ctx->cipher_list;
if (!ciphers)
return rb_ary_new();
num = sk_num((STACK*)ciphers);
ary = rb_ary_new2(num);
for(i = 0; i < num; i++){
cipher = (SSL_CIPHER*)sk_value((STACK*)ciphers, i);
rb_ary_push(ary, ossl_ssl_cipher_to_ary(cipher));
}
return ary;
}
开发者ID:srirammca53,项目名称:update_status,代码行数:31,代码来源:ossl_ssl.c
示例15: mem_list_endp
static int mem_list_endp(STORE *s, void *handle)
{
struct mem_ctx_st *context = (struct mem_ctx_st *)handle;
if (!context
|| context->search_index == sk_num(context->search_attributes))
return 1;
return 0;
}
开发者ID:LucidOne,项目名称:Rovio,代码行数:9,代码来源:str_mem.c
示例16: return
const char *CRYPTO_get_lock_name(int type)
{
if (type < 0)
return("dynamic");
else if (type < CRYPTO_NUM_LOCKS)
return(lock_names[type]);
else if (type-CRYPTO_NUM_LOCKS > sk_num(app_locks))
return("ERROR");
else
return(sk_value(app_locks,type-CRYPTO_NUM_LOCKS));
}
开发者ID:aosm,项目名称:OpenSSL097,代码行数:11,代码来源:cryptlib.c
示例17: TXT_DB_write
long TXT_DB_write(BIO *out, TXT_DB *db)
{
long i,j,n,nn,l,tot=0;
char *p,**pp,*f;
BUF_MEM *buf=NULL;
long ret= -1;
if ((buf=BUF_MEM_new()) == NULL)
goto err;
n=sk_num(db->data);
nn=db->num_fields;
for (i=0; i<n; i++)
{
pp=(char **)sk_value(db->data,i);
l=0;
for (j=0; j<nn; j++)
{
if (pp[j] != NULL)
l+=strlen(pp[j]);
}
if (!BUF_MEM_grow_clean(buf,(int)(l*2+nn))) goto err;
p=buf->data;
for (j=0; j<nn; j++)
{
f=pp[j];
if (f != NULL)
for (;;)
{
if (*f == '\0') break;
if (*f == '\t') *(p++)='\\';
*(p++)= *(f++);
}
*(p++)='\t';
}
p[-1]='\n';
j=p-buf->data;
if (BIO_write(out,buf->data,(int)j) != j)
goto err;
tot+=j;
}
ret=tot;
err:
if (buf != NULL) BUF_MEM_free(buf);
return(ret);
}
开发者ID:RafaelRMachado,项目名称:MinnowBoard,代码行数:47,代码来源:txt_db.c
示例18: TXT_DB_free
void TXT_DB_free(TXT_DB *db)
{
int i,n;
char **p,*max;
if(db == NULL)
return;
if (db->index != NULL)
{
for (i=db->num_fields-1; i>=0; i--)
if (db->index[i] != NULL) lh_free(db->index[i]);
OPENSSL_free(db->index);
}
if (db->qual != NULL)
OPENSSL_free(db->qual);
if (db->data != NULL)
{
for (i=sk_num(db->data)-1; i>=0; i--)
{
/* check if any 'fields' have been allocated
* from outside of the initial block */
p=(char **)sk_value(db->data,i);
max=p[db->num_fields]; /* last address */
if (max == NULL) /* new row */
{
for (n=0; n<db->num_fields; n++)
if (p[n] != NULL) OPENSSL_free(p[n]);
}
else
{
for (n=0; n<db->num_fields; n++)
{
if (((p[n] < (char *)p) || (p[n] > max))
&& (p[n] != NULL))
OPENSSL_free(p[n]);
}
}
OPENSSL_free(sk_value(db->data,i));
}
sk_free(db->data);
}
OPENSSL_free(db);
}
开发者ID:RafaelRMachado,项目名称:MinnowBoard,代码行数:44,代码来源:txt_db.c
示例19: util_do_cmds
static void util_do_cmds(ENGINE *e, STACK *cmds, BIO *bio_out, const char *indent)
{
int loop, res, num = sk_num(cmds);
if(num < 0)
{
BIO_printf(bio_out, "[Error]: internal stack error\n");
return;
}
for(loop = 0; loop < num; loop++)
{
char buf[256];
const char *cmd, *arg;
cmd = sk_value(cmds, loop);
res = 1; /* assume success */
/* Check if this command has no ":arg" */
if((arg = strstr(cmd, ":")) == NULL)
{
if(!ENGINE_ctrl_cmd_string(e, cmd, NULL, 0))
res = 0;
}
else
{
if((int)(arg - cmd) > 254)
{
BIO_printf(bio_out,"[Error]: command name too long\n");
return;
}
memcpy(buf, cmd, (int)(arg - cmd));
buf[arg-cmd] = '\0';
arg++; /* Move past the ":" */
/* Call the command with the argument */
if(!ENGINE_ctrl_cmd_string(e, buf, arg, 0))
res = 0;
}
if(res)
BIO_printf(bio_out, "[Success]: %s\n", cmd);
else
{
BIO_printf(bio_out, "[Failure]: %s\n", cmd);
ERR_print_errors(bio_out);
}
}
}
开发者ID:174high,项目名称:openssl-0.9.8e_linux_porting,代码行数:43,代码来源:engine.c
示例20: vms_unload
/* Note that this doesn't actually unload the shared image, as there is no
* such thing in VMS. Next time it get loaded again, a new copy will
* actually be loaded.
*/
static int vms_unload(DSO *dso)
{
DSO_VMS_INTERNAL *p;
if(dso == NULL)
{
DSOerr(DSO_F_VMS_UNLOAD,ERR_R_PASSED_NULL_PARAMETER);
return(0);
}
if(sk_num(dso->meth_data) < 1)
return(1);
p = (DSO_VMS_INTERNAL *)sk_pop(dso->meth_data);
if(p == NULL)
{
DSOerr(DSO_F_VMS_UNLOAD,DSO_R_NULL_HANDLE);
return(0);
}
/* Cleanup */
OPENSSL_free(p);
return(1);
}
开发者ID:LucidOne,项目名称:Rovio,代码行数:24,代码来源:dso_vms.c
注:本文中的sk_num函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论