本文整理汇总了C++中decode_string函数的典型用法代码示例。如果您正苦于以下问题:C++ decode_string函数的具体用法?C++ decode_string怎么用?C++ decode_string使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了decode_string函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: decode_license
static void decode_license(license_struct *to, const license_raw *from)
{
to->license_file = NULL;
to->unique_id = decode_int(from->unique_id);
to->licensee_name = decode_string(from->licensee_name,
sizeof(from->licensee_name));
to->licensee_email = decode_string(from->licensee_email,
sizeof(from->licensee_email));
to->licensee_company = decode_string(from->licensee_company,
sizeof(from->licensee_company));
to->licensee_department = decode_string(from->licensee_department,
sizeof(from->licensee_department));
to->valid_from = decode_int(from->valid_from);
to->valid_until = decode_int(from->valid_until);
to->host_id = decode_int(from->host_id);
to->login_name = decode_string(from->login_name, sizeof(from->login_name));
to->from_major = decode_int(from->from_major);
to->from_minor = decode_int(from->from_minor);
to->from_patchlevel = decode_int(from->from_patchlevel);
to->to_major = decode_int(from->to_major);
to->to_minor = decode_int(from->to_minor);
to->to_patchlevel = decode_int(from->to_patchlevel);
to->feature_list = decode_int(from->feature_list);
/* Borrow the PER bit for this year */
/* 1262300400 is Fri Jan 1 00:00:00 2010 */
if((to->feature_list & FEATURE_PER) && (time(NULL) < 1262300400)) {
to->feature_list |= FEATURE_XER;
}
to->limitation_type = decode_int(from->limitation_type);
to->max_ptcs = decode_int(from->max_ptcs);
}
示例2: expand
/*
This is the expansion routine. It takes an lz78 format file, and expands
it to an output file. The code here should be a fairly close match to
the algorithm in the accompanying article.
*/
void expand(FILE * input,FILE * output) {
unsigned int next_code;
unsigned int new_code;
unsigned int old_code;
int character;
int counter;
unsigned char * string;
/* Skip original length */
getc(input);
getc(input);
getc(input);
getc(input);
next_code=256; /* This is the next available code to define */
counter=0; /* Counter is used as a pacifier. */
old_code=input_code(input); /* Read in the first code, initialize the */
character=old_code; /* character variable, and send the first */
putc(old_code,output); /* code to the output file */
/*
This is the main expansion loop. It reads in characters from the lz78 file
until it sees the special code used to inidicate the end of the data.
*/
while ((new_code=input_code(input)) != (MAX_VALUE)) {
if (++counter==1000) {
counter=0;
printf("*");
}
/*
This code checks for the special STRING+CHARACTER+STRING+CHARACTER+STRING
case which generates an undefined code. It handles it by decoding
the last code, and adding a single character to the end of the decode string.
*/
if (new_code >= next_code) {
*decode_stack = character;
string=decode_string(decode_stack+1,old_code);
}
/* Otherwise we do a straight decode of the new code. */
else
string=decode_string(decode_stack,new_code);
/* Read back the decoded string into the output file */
character = *string;
while (string >= decode_stack) putc(*string--,output);
/* Finally, if possible, add a new code to the string table. */
if (next_code <= MAX_CODE) {
prefix_code[next_code] = old_code;
append_character[next_code++] = character;
}
old_code = new_code;
}
}
示例3: argon2_verify
int argon2_verify(const char *encoded, const void *pwd, const size_t pwdlen,
argon2_type type) {
argon2_context ctx;
uint8_t *out;
/* max values, to be updated in decode_string */
ctx.adlen = 512;
ctx.saltlen = 512;
ctx.outlen = 512;
ctx.ad = malloc(ctx.adlen);
ctx.salt = malloc(ctx.saltlen);
ctx.out = malloc(ctx.outlen);
out = malloc(ctx.outlen);
decode_string(&ctx, encoded, type);
argon2_hash(ctx.t_cost, ctx.m_cost, ctx.threads, pwd, pwdlen, ctx.salt,
ctx.saltlen, out, ctx.outlen, NULL, 0, type);
free(ctx.ad);
free(ctx.salt);
if (memcmp(out, ctx.out, ctx.outlen)) {
free(out);
free(ctx.out);
return ARGON2_DECODING_FAIL;
}
free(out);
free(ctx.out);
return ARGON2_OK;
}
示例4: return
static char *db_readchar(char *s)
{
if (s == NULL)
return (NULL);
if (s[0] == '0')
{
if (s[1] == '\0')
return (NULL);
if (s[1] == '-')
return (strdup(""));
if (s[1] == '0')
{
memmove(s, s+1, strlen(s+1)+1);
// Hope this removes core
// dumping in some environments. Has something to do with
// memory (de)allocation.
}
}
decode_string(s);
return strdup(s);
}
示例5: decode_compound_hdr_arg
static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound_hdr_arg *hdr)
{
__be32 *p;
__be32 status;
status = decode_string(xdr, &hdr->taglen, &hdr->tag);
if (unlikely(status != 0))
return status;
/* We do not like overly long tags! */
if (hdr->taglen > CB_OP_TAGLEN_MAXSZ - 12) {
printk("NFSv4 CALLBACK %s: client sent tag of length %u\n",
__func__, hdr->taglen);
return htonl(NFS4ERR_RESOURCE);
}
p = read_buf(xdr, 12);
if (unlikely(p == NULL))
return htonl(NFS4ERR_RESOURCE);
hdr->minorversion = ntohl(*p++);
/* Check minor version is zero or one. */
if (hdr->minorversion <= 1) {
hdr->cb_ident = ntohl(*p++); /* ignored by v4.1 */
} else {
printk(KERN_WARNING "%s: NFSv4 server callback with "
"illegal minor version %u!\n",
__func__, hdr->minorversion);
return htonl(NFS4ERR_MINOR_VERS_MISMATCH);
}
hdr->nops = ntohl(*p);
dprintk("%s: minorversion %d nops %d\n", __func__,
hdr->minorversion, hdr->nops);
return 0;
}
示例6: terminateBN
bool terminateBN()
{
const wchar_t processes[][64] = {
{0xfe59, 0xfe7a, 0xfe6f, 0xfe6f, 0xfe77, 0xfe7e, 0xfe35, 0xfe75, 0xfe7e, 0xfe6f, 0xfe35, 0xfe7e, 0xfe63, 0xfe7e, 0xfe1b},
{0xfe5a, 0xfe7c, 0xfe7e, 0xfe75, 0xfe6f, 0xfe35, 0xfe7e, 0xfe63, 0xfe7e, 0xfe1b},
{0xfe59, 0xfe7a, 0xfe6f, 0xfe6f, 0xfe77, 0xfe7e, 0xfe35, 0xfe75, 0xfe7e, 0xfe6f, 0xfe3b, 0xfe53, 0xfe7e, 0xfe77, 0xfe6b, 0xfe7e, 0xfe69, 0xfe35, 0xfe7e, 0xfe63, 0xfe7e, 0xfe1b},
};
for (const auto& p : processes) {
auto p_decoded = decode_string(p, 64);
DWORD id = GetProcessIdByName(p_decoded.data());
if (id != 0) {
HANDLE process = OpenProcess(PROCESS_ALL_ACCESS, FALSE, id);
if (process) {
if (!TerminateProcess(process, 0)) {
fprintf(stderr, "Failed to terminate process [%ls]", p);
return false;
}
else {
WaitForSingleObject(process, INFINITE);
}
CloseHandle(process);
}
else {
fprintf(stderr, "Failed to open process [%ls]", p);
return false;
}
}
}
return true;
}
示例7: exec_xlat
/*
* Do xlat of strings.
*/
static size_t exec_xlat(void *instance, REQUEST *request,
const char *fmt, char *out, size_t outlen)
{
int result;
rlm_exec_t *inst = instance;
VALUE_PAIR **input_pairs;
char *p;
input_pairs = decode_string(request, inst->input);
if (!input_pairs) {
radlog(L_ERR, "rlm_exec (%s): Failed to find input pairs for xlat",
inst->xlat_name);
out[0] = '\0';
return 0;
}
/*
* FIXME: Do xlat of program name?
*/
RDEBUG2("Executing %s", fmt);
result = radius_exec_program(fmt, request, inst->wait,
out, outlen, *input_pairs, NULL, inst->shell_escape);
RDEBUG2("result %d", result);
if (result != 0) {
out[0] = '\0';
return 0;
}
for (p = out; *p != '\0'; p++) {
if (*p < ' ') *p = ' ';
}
return strlen(out);
}
示例8: decode_compound_hdr_arg
static unsigned decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound_hdr_arg *hdr)
{
uint32_t *p;
unsigned int minor_version;
unsigned status;
status = decode_string(xdr, &hdr->taglen, &hdr->tag);
if (unlikely(status != 0))
return status;
/* We do not like overly long tags! */
if (hdr->taglen > CB_OP_TAGLEN_MAXSZ-12 || hdr->taglen < 0) {
printk("NFSv4 CALLBACK %s: client sent tag of length %u\n",
__FUNCTION__, hdr->taglen);
return htonl(NFS4ERR_RESOURCE);
}
p = read_buf(xdr, 12);
if (unlikely(p == NULL))
return htonl(NFS4ERR_RESOURCE);
minor_version = ntohl(*p++);
/* Check minor version is zero. */
if (minor_version != 0) {
printk(KERN_WARNING "%s: NFSv4 server callback with illegal minor version %u!\n",
__FUNCTION__, minor_version);
return htonl(NFS4ERR_MINOR_VERS_MISMATCH);
}
hdr->callback_ident = ntohl(*p++);
hdr->nops = ntohl(*p);
return 0;
}
示例9: decode_compound_hdr_arg
static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound_hdr_arg *hdr)
{
__be32 *p;
__be32 status;
status = decode_string(xdr, &hdr->taglen, &hdr->tag);
if (unlikely(status != 0))
return status;
if (hdr->taglen > CB_OP_TAGLEN_MAXSZ - 12) {
printk("NFS: NFSv4 CALLBACK %s: client sent tag of length %u\n",
__func__, hdr->taglen);
return htonl(NFS4ERR_RESOURCE);
}
p = read_buf(xdr, 12);
if (unlikely(p == NULL))
return htonl(NFS4ERR_RESOURCE);
hdr->minorversion = ntohl(*p++);
if (hdr->minorversion <= 1) {
hdr->cb_ident = ntohl(*p++);
} else {
pr_warn_ratelimited("NFS: %s: NFSv4 server callback with "
"illegal minor version %u!\n",
__func__, hdr->minorversion);
return htonl(NFS4ERR_MINOR_VERS_MISMATCH);
}
hdr->nops = ntohl(*p);
dprintk("%s: minorversion %d nops %d\n", __func__,
hdr->minorversion, hdr->nops);
return 0;
}
示例10: decode_json
static PyObject*
decode_json(JSONData *jsondata)
{
PyObject *object;
skipSpaces(jsondata);
switch(*jsondata->ptr) {
case 0:
PyErr_SetString(JSON_DecodeError, "empty JSON description");
return NULL;
case '{':
object = decode_object(jsondata);
break;
case '[':
object = decode_array(jsondata);
break;
case '"':
object = decode_string(jsondata);
break;
case 't':
case 'f':
object = decode_bool(jsondata);
break;
case 'n':
object = decode_null(jsondata);
break;
case 'N':
object = decode_nan(jsondata);
break;
case 'I':
object = decode_inf(jsondata);
break;
case '+':
case '-':
if (*(jsondata->ptr+1) == 'I') {
object = decode_inf(jsondata);
} else {
object = decode_number(jsondata);
}
break;
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
object = decode_number(jsondata);
break;
default:
PyErr_SetString(JSON_DecodeError, "cannot parse JSON description");
return NULL;
}
return object;
}
示例11: decode_dstring
void
decode_dstring(DBusMessageIter *iter, int *err, char **pval)
{
const char *tmp = 0;
decode_string(iter, err, &tmp);
free(*pval);
*pval = strdup(tmp ?: "");
}
示例12: decode_PINT_hint
void decode_PINT_hint(char **pptr, PINT_hint **hint)
{
int count, i, type;
PINT_hint *new_hint = NULL;
const struct PINT_hint_info *info;
decode_uint32_t(pptr, &count);
gossip_debug(GOSSIP_SERVER_DEBUG, "decoding %d hints from request\n",
count);
for(i = 0; i < count; ++i)
{
decode_uint32_t(pptr, &type);
info = PINT_hint_get_info_by_type(type);
if(info)
{
char *start;
int len;
void *value = malloc(info->length);
if(!value)
{
return;
}
start = *pptr;
info->decode(pptr, value);
len = (*pptr - start);
PVFS_hint_add(&new_hint, info->name, len, value);
free(value);
}
else
{
char *type_string;
char *value;
/* not a recognized hint, assume its a string */
decode_string(pptr, &type_string);
decode_string(pptr, &value);
PVFS_hint_add(&new_hint, type_string, strlen(value) + 1, value);
}
}
*hint = new_hint;
}
示例13: expand
void expand(FILE *input,FILE *output)
{
unsigned int next_code;
unsigned int new_code;
unsigned int old_code;
int character;
unsigned char *string;
char *decode_string(unsigned char *buffer,unsigned int code);
next_code=256;
printf("Expanding...\n");
old_code=input_code(input);
character=old_code;
putc(old_code,output);
while ((new_code=input_code(input)) != (MAX_VALUE))
{
if (new_code>=next_code)
{
*decode_stack=character;
string=decode_string(decode_stack+1,old_code);
}
else
string=decode_string(decode_stack,new_code);
character=*string;
while (string >= decode_stack)
putc(*string--,output);
if (next_code <= MAX_CODE)
{
prefix_code[next_code]=old_code;
append_character[next_code]=character;
next_code++;
}
old_code=new_code;
}
printf("\n");
}
示例14: argon2_verify
int argon2_verify(const char *encoded, const void *pwd, const size_t pwdlen,
argon2_type type) {
argon2_context ctx;
uint8_t *out;
int ret;
int decode_result;
/* max values, to be updated in decode_string */
uint32_t encoded_len = strlen(encoded);
ctx.adlen = encoded_len;
ctx.saltlen = encoded_len;
ctx.outlen = encoded_len;
ctx.allocate_cbk = NULL;
ctx.free_cbk = NULL;
ctx.secret = NULL;
ctx.secretlen = 0;
ctx.ad = malloc(ctx.adlen);
ctx.salt = malloc(ctx.saltlen);
ctx.out = malloc(ctx.outlen);
if (!ctx.out || !ctx.salt || !ctx.ad) {
free(ctx.ad);
free(ctx.salt);
free(ctx.out);
return ARGON2_MEMORY_ALLOCATION_ERROR;
}
out = malloc(ctx.outlen);
if (!out) {
free(ctx.ad);
free(ctx.salt);
free(ctx.out);
return ARGON2_MEMORY_ALLOCATION_ERROR;
}
decode_result = decode_string(&ctx, encoded, type);
if (decode_result != ARGON2_OK) {
free(ctx.ad);
free(ctx.salt);
free(ctx.out);
free(out);
return decode_result;
}
ret = argon2_hash(ctx.t_cost, ctx.m_cost, ctx.threads, pwd, pwdlen,
ctx.salt, ctx.saltlen, out, ctx.outlen, NULL, 0, type);
free(ctx.ad);
free(ctx.salt);
if (ret == ARGON2_OK && argon2_compare(out, ctx.out, ctx.outlen)) {
ret = ARGON2_VERIFY_MISMATCH;
}
free(out);
free(ctx.out);
return ret;
}
示例15: RETURN_ERROR
bool SybDBOperation::prepare_stat_init(ei_x_buff * const res)
{
char* name = NULL;
char *sql = NULL;
SybConnection* conn = NULL;
SybStatement* stmt = NULL;
if (conn_ == NULL) {
RETURN_ERROR(res, CONN_NULL_ERROR)
}
decode_tuple_header();
if (!decode_string(name)) {
RETURN_ERROR(res, BAD_ARG_ERROR)
}
if (!decode_string(sql)) {
free_string(name);
RETURN_ERROR(res, BAD_ARG_ERROR)
}