亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? asn1.c

?? eCos操作系統(tǒng)源碼
?? C
?? 第 1 頁 / 共 4 頁
字號:
	 */	mask2 = ((u_long) 0x1FF) << ((8 * (sizeof(long) - 1)) - 1);	/* mask2 is 0xFF800000 on a big-endian machine */	while((((high & mask2) == 0) || ((high & mask2) == mask2)) && intsize > 1){	    intsize--;	    high = (high << 8)		| ((low & mask) >> (8 * (sizeof(long) - 1)));	    low <<= 8;	}    }#ifdef OPAQUE_SPECIAL_TYPES/* encode a Counter64 as an opaque (it also works in SNMPv1) */    /* turn into Opaque holding special tagged value */    if (type == ASN_OPAQUE_COUNTER64) {        /* put the tag and length for the Opaque wrapper */        data = asn_build_header(data, datalength, ASN_OPAQUE, intsize+3);    if (_asn_build_header_check("build counter u64", data, *datalength, intsize+3))	return NULL;	/* put the special tag and length */	*data++ = ASN_OPAQUE_TAG1;	*data++ = ASN_OPAQUE_COUNTER64;	*data++ = (u_char)intsize;	*datalength = *datalength - 3;    }    else/* Encode the Unsigned int64 in an opaque */    /* turn into Opaque holding special tagged value */    if (type == ASN_OPAQUE_U64) {        /* put the tag and length for the Opaque wrapper */        data = asn_build_header(data, datalength, ASN_OPAQUE, intsize+3);    if (_asn_build_header_check("build opaque u64", data, *datalength, intsize+3))	return NULL;	/* put the special tag and length */	*data++ = ASN_OPAQUE_TAG1;	*data++ = ASN_OPAQUE_U64;	*data++ = (u_char)intsize;	*datalength = *datalength - 3;    }    else    {#endif /* OPAQUE_SPECIAL_TYPES */    data = asn_build_header(data, datalength, type, intsize);    if (_asn_build_header_check("build uint64", data, *datalength, intsize))	return NULL;#ifdef OPAQUE_SPECIAL_TYPES    }#endif /* OPAQUE_SPECIAL_TYPES */    *datalength -= intsize;    if (add_null_byte == 1){	*data++ = '\0';	intsize--;    }    while(intsize--){	*data++ = (u_char)((high & mask) >> (8 * (sizeof(long) - 1)));	high = (high << 8)	    | ((low & mask) >> (8 * (sizeof(long) - 1)));	low <<= 8;	    }    return data;}#ifdef OPAQUE_SPECIAL_TYPES/*  u_char * asn_parse_signed_int64(      u_char     *data         IN - pointer to start of object      int        *datalength   IN/OUT - number of valid bytes left in buffer      u_char     *type         OUT - asn type of object      struct counter64 *cp     IN/OUT - pointer to counter struct      int         countersize  IN - size of output buffer */u_char *asn_parse_signed_int64(u_char *data,		       size_t *datalength,		       u_char *type,		       struct counter64 *cp,		       size_t countersize){  static const char *errpre = "parse int64";  const int int64sizelimit = (4 * 2) + 1;  char ebuf[128];  register u_char *bufp = data;  u_long	    asn_length;  register u_int low = 0, high = 0;      if (countersize != sizeof(struct counter64)){    _asn_size_err(errpre, countersize, sizeof(struct counter64));    return NULL;  }  *type = *bufp++;  bufp = asn_parse_length(bufp, &asn_length);  if (_asn_parse_length_check(errpre, bufp, data, asn_length, *datalength))        return NULL;  DEBUGDUMPSETUP("dump_recv", data, bufp - data);  if ((*type == ASN_OPAQUE) &&      (asn_length <= ASN_OPAQUE_COUNTER64_MX_BER_LEN) &&      (*bufp == ASN_OPAQUE_TAG1) &&       (*(bufp+1) == ASN_OPAQUE_I64)) {      DEBUGMSG(("dump_recv", "Opaque %.2x %.2x: ", *bufp, *(bufp+1)));    /* change type to Int64 */    *type = *(bufp+1);    /* value is encoded as special format */    bufp = asn_parse_length(bufp + 2, &asn_length);    if (_asn_parse_length_check("parse opaque int64", bufp, data,                  asn_length, *datalength))        return NULL;  }  /* this should always have been true until snmp gets int64 PDU types */  else {    sprintf(ebuf, "%s: wrong type: %d, len %d, buf bytes (%02X,%02X)",             errpre, *type, (int)asn_length, *bufp, *(bufp+1));    ERROR_MSG(ebuf);    return NULL;  }  if (((int)asn_length > int64sizelimit) ||      (((int)asn_length == int64sizelimit) && *bufp != 0x00)){    _asn_length_err(errpre, (size_t)asn_length, int64sizelimit);    return NULL;  }  *datalength -= (int)asn_length + (bufp - data);  if (*bufp & 0x80){    low = ~low; /* integer is negative */    high = ~high;  }  while(asn_length--){    high = (high << 8) | ((low & 0xFF000000) >> 24);    low = (low << 8) | *bufp++;  }  cp->low = low;  cp->high = high;  DEBUGIF("dump_recv") {    char i64buf[I64CHARSZ+1];    printI64(i64buf, cp);  }  return bufp;}/*  u_char * asn_build_signed_int64(      u_char     *data         IN - pointer to start of object      int        *datalength   IN/OUT - number of valid bytes left in buffer      u_char      type         IN - asn type of object      struct counter64 *cp     IN - pointer to counter struct      int         countersize  IN - size of input buffer */u_char *asn_build_signed_int64(u_char *data,		       size_t *datalength,		       u_char type,		       struct counter64 *cp,		       size_t countersize){/* * ASN.1 integer ::= 0x02 asnlength byte {byte}* */    struct counter64 c64;    register u_int mask, mask2;    u_long low, high;    size_t intsize;  if (countersize != sizeof(struct counter64)){    _asn_size_err("build int64", countersize, sizeof(struct counter64));    return NULL;  }    intsize = 8;    memcpy(&c64, cp, sizeof(struct counter64));  /* we're may modify it */    low = c64.low;    high = c64.high;        /*     * Truncate "unnecessary" bytes off of the most significant end of this     * 2's complement integer.  There should be no sequence of 9     * consecutive 1's or 0's at the most significant end of the     * integer.     */    mask = ((u_int) 0xFF) << (8 * (sizeof(u_int) - 1));    mask2 = ((u_int) 0x1FF) << ((8 * (sizeof(u_int) - 1)) - 1);    /* mask is 0xFF800000 on a big-endian machine */    while((((high & mask2) == 0) || ((high & mask2) == mask2)) && intsize > 1){      intsize--;      high = (high << 8)        | ((low & mask) >> (8 * (sizeof(u_int) - 1)));      low <<= 8;    }    /* until a real int64 gets incorperated into SNMP, we are going to       encode it as an opaque instead.  First, we build the opaque       header and then the int64 tag type we use to mark it as an       int64 in the opaque string. */    data = asn_build_header(data, datalength, ASN_OPAQUE, intsize+3);    if (_asn_build_header_check("build int64", data, *datalength, intsize+3))	return NULL;    *data++ = ASN_OPAQUE_TAG1;    *data++ = ASN_OPAQUE_I64;    *data++ = (u_char)intsize;    *datalength -= (3 + intsize);        while(intsize--){	*data++ = (u_char)((high & mask) >> (8 * (sizeof(u_int) - 1)));	high = (high << 8)	    | ((low & mask) >> (8 * (sizeof(u_int) - 1)));	low <<= 8;    }    return data;}/* * asn_parse_float - pulls a single precision floating-point out of an opaque type. * *  On entry, datalength is input as the number of valid bytes following *   "data".  On exit, it is returned as the number of valid bytes *   following the end of this object. * *  Returns a pointer to the first byte past the end *   of this object (i.e. the start of the next object). *  Returns NULL on any error.  u_char * asn_parse_float(      u_char     *data         IN - pointer to start of object      int        *datalength   IN/OUT - number of valid bytes left in buffer      u_char     *type         OUT - asn type of object      float      *floatp       IN/OUT - pointer to float      int         floatsize    IN - size of output buffer */u_char *asn_parse_float(u_char *data,		size_t *datalength,		u_char *type,		float *floatp,		size_t floatsize){    register u_char *bufp = data;    u_long	    asn_length;    union {        float  floatVal;	long   longVal;	u_char c[sizeof(float)];    } fu;    if (floatsize != sizeof(float)){	_asn_size_err("parse float", floatsize, sizeof(float));	return NULL;    }    *type = *bufp++;    bufp = asn_parse_length(bufp, &asn_length);    if (_asn_parse_length_check("parse float", bufp, data,                  asn_length, *datalength))        return NULL;    DEBUGDUMPSETUP("dump_recv", data, bufp - data + asn_length);/* the float is encoded as an opaque */    if ((*type == ASN_OPAQUE) &&            (asn_length == ASN_OPAQUE_FLOAT_BER_LEN) &&	    (*bufp == ASN_OPAQUE_TAG1) &&	    (*(bufp+1) == ASN_OPAQUE_FLOAT)) {      DEBUGMSG(("dump_recv", "Opaque %.2x %.2x: ", *bufp, *(bufp+1)));        /* value is encoded as special format */	bufp = asn_parse_length(bufp + 2, &asn_length);	if (_asn_parse_length_check("parse opaque float", bufp, data,                  asn_length, *datalength))        return NULL;	/* change type to Float */	*type = ASN_OPAQUE_FLOAT;    }    if (asn_length != sizeof(float)) {	_asn_size_err("parse seq float", asn_length, sizeof(float));	return NULL;    }    *datalength -= (int)asn_length + (bufp - data);    memcpy(&fu.c[0], bufp, asn_length);   /* correct for endian differences */    fu.longVal = ntohl(fu.longVal);	    *floatp =  fu.floatVal;    DEBUGMSG(("dump_recv", "%f",*floatp));    return bufp;}/* * asn_build_float - builds an ASN object containing a single precision floating-point *                    number in an Opaque value. * *  On entry, datalength is input as the number of valid bytes following *   "data".  On exit, it is returned as the number of valid bytes *   following the end of this object. * *  Returns a pointer to the first byte past the end *   of this object (i.e. the start of the next object). *  Returns NULL on any error.  u_char * asn_build_float(      u_char     *data         IN - pointer to start of object      int        *datalength   IN/OUT - number of valid bytes left in buffer      u_char      type         IN - asn type of object      float      *floatp       IN - pointer to float      int         floatsize    IN - size of input buffer */u_char *asn_build_float(u_char *data,		size_t *datalength,		u_char type,		float *floatp,		size_t floatsize){    union {        float  floatVal;        int    intVal;	u_char c[sizeof(float)];    } fu;    if (floatsize != sizeof (float)) {	_asn_size_err("build float", floatsize, sizeof(float));	return NULL;    }/* encode the float as an opaque */    /* turn into Opaque holding special tagged value */    /* put the tag and length for the Opaque wrapper */    data = asn_build_header(data, datalength, ASN_OPAQUE, floatsize+3);    if (_asn_build_header_check("build float", data, *datalength, (floatsize+3)))	return NULL;    /* put the special tag and length */    *data++ = ASN_OPAQUE_TAG1;    *data++ = ASN_OPAQUE_FLOAT;    *data++ = (u_char)floatsize;    *datalength = *datalength - 3;    fu.floatVal = *floatp;    /* correct for endian differences */    fu.intVal = htonl(fu.intVal);	    *datalength -= floatsize;    memcpy(data, &fu.c[0], floatsize);    data += floatsize;    return data;}/*  u_char * asn_parse_double(      u_char     *data         IN - pointer to start of object      int        *datalength   IN/OUT - number of valid bytes left in buffer      u_char     *type         OUT - asn type of object      double     *doublep      IN/OUT - pointer to double      int         doublesize   IN - size of output buffer */u_char *asn_parse_double(u_char *data,		 size_t *datalength,		 u_char *type,		 double *doublep,		 size_t doublesize){    register u_char *bufp = data;    u_long	    asn_length;    long            tmp;    union {        double doubleVal;        int    intVal[2];	u_char c[sizeof(double)];    } fu;      if (doublesize != sizeof(double)){	_asn_size_err("parse double", doublesize, sizeof(double));	return NULL;    }    *type = *bufp++;    bufp = asn_parse_length(bufp, &asn_length);    if (_asn_parse_length_check("parse double", bufp, data,                  asn_length, *datalength))        return NULL;    DEBUGDUMPSETUP("dump_recv", data, bufp - data + asn_length);/* the double is encoded as an opaque */    if ((*type == ASN_OPAQUE) &&            (asn_length == ASN_OPAQUE_DOUBLE_BER_LEN) &&	    (*bufp == ASN_OPAQUE_TAG1) &&	    (*(bufp+1) == ASN_OPAQUE_DOUBLE)) {      DEBUGMSG(("dump_recv", "Opaque %.2x %.2x: ", *bufp, *(bufp+1)));        /* value is encoded as special format */	bufp = asn_parse_length(bufp + 2, &asn_length);	if (_asn_parse_length_check("parse opaque double", bufp, data,                  asn_length, *datalength))        return NULL;	/* change type to Double */	*type = ASN_OPAQUE_DOUBLE;    }    if (asn_length != sizeof(double)) {	_asn_size_err("parse seq double", asn_length, sizeof(double));	return NULL;    }    *datalength -= (int)asn_length + (bufp - data);    memcpy(&fu.c[0], bufp, asn_length);   /* correct for endian differences */    tmp = ntohl(fu.intVal[0]);    fu.intVal[0] = ntohl(fu.intVal[1]);    fu.intVal[1] = tmp;    	    *doublep =  fu.doubleVal;    DEBUGMSG(("dump_recv", "%d",*doublep));    return bufp;}/*  u_char * asn_build_double(      u_char     *data         IN - pointer to start of object      int        *datalength   IN/OUT - number of valid bytes left in buffer      u_char      type         IN - asn type of object      double     *doublep      IN - pointer to double      int         doublesize   IN - size of input buffer */u_char *asn_build_double(u_char *data,		 size_t *datalength,		 u_char type,		 double* doublep,		 size_t doublesize){    long  tmp;    union {        double doubleVal;	int    intVal[2];	u_char c[sizeof(double)];    } fu;    if (doublesize != sizeof(double)){	_asn_size_err("build double", doublesize, sizeof(double));	return NULL;    }/* encode the double as an opaque */    /* turn into Opaque holding special tagged value */    /* put the tag and length for the Opaque wrapper */    data = asn_build_header(data, datalength, ASN_OPAQUE, doublesize+3);    if (_asn_build_header_check("build double", data, *datalength, doublesize+3))	return NULL;    /* put the special tag and length */    *data++ = ASN_OPAQUE_TAG1;    *data++ = ASN_OPAQUE_DOUBLE;    *data++ = (u_char)doublesize;    *datalength = *datalength - 3;    fu.doubleVal = *doublep;    /* correct for endian differences */    tmp = htonl(fu.intVal[0]);    fu.intVal[0] = htonl(fu.intVal[1]);	    fu.intVal[1] = tmp;    *datalength -= doublesize;    memcpy(data, &fu.c[0], doublesize);    data += doublesize;    return data;}#endif /* OPAQUE_SPECIAL_TYPES */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区啪啪| 日韩精品乱码免费| 日本一区二区三区久久久久久久久不| 欧美一区日本一区韩国一区| 在线不卡中文字幕| 在线综合视频播放| 欧美videos中文字幕| 欧美tk—视频vk| 精品裸体舞一区二区三区| 欧美不卡一区二区| 久久精品水蜜桃av综合天堂| 国产午夜亚洲精品不卡| 国产精品丝袜一区| 亚洲免费视频中文字幕| 亚洲高清视频在线| 免费人成在线不卡| 国产精品综合网| 99re在线精品| 欧美挠脚心视频网站| 日韩欧美的一区| 国产精品丝袜黑色高跟| 一区二区三区国产豹纹内裤在线| 亚洲精品视频在线观看网站| 午夜精彩视频在线观看不卡| 美女视频黄免费的久久| 国产69精品久久99不卡| 一本到三区不卡视频| 欧美日韩电影一区| 久久久久国产精品人| 亚洲精品国产无天堂网2021 | 一区二区高清视频在线观看| 亚洲一二三区不卡| 极品美女销魂一区二区三区| 不卡视频在线观看| 欧美美女bb生活片| 欧美极品另类videosde| 亚洲一二三四在线| 久久国产精品99久久人人澡| 99精品视频一区二区三区| 678五月天丁香亚洲综合网| 久久久精品人体av艺术| 亚洲精品五月天| 精品一区二区综合| 色综合久久综合网| 精品欧美黑人一区二区三区| 中文字幕一区二区三区在线观看| 午夜久久久久久久久久一区二区| 国产夫妻精品视频| 欧美日韩免费高清一区色橹橹 | 久久一日本道色综合| 亚洲人成电影网站色mp4| 日韩福利电影在线| 97se亚洲国产综合在线| 91精品国产色综合久久ai换脸 | 亚洲福利视频一区| 成人做爰69片免费看网站| 欧美日韩成人综合| 日韩毛片视频在线看| 国内一区二区视频| 欧美色国产精品| 亚洲欧洲精品一区二区三区| 麻豆精品新av中文字幕| 色综合激情久久| 久久久三级国产网站| 亚洲国产精品影院| 99久久免费国产| 久久久久亚洲蜜桃| 美女一区二区视频| 欧美天堂亚洲电影院在线播放| 欧美激情在线一区二区| 精品一区二区免费在线观看| 欧美视频日韩视频在线观看| 国产精品美女一区二区在线观看| 男人的j进女人的j一区| 色婷婷狠狠综合| 国产精品欧美久久久久一区二区| 久久99精品国产麻豆不卡| 6080亚洲精品一区二区| 亚洲激情网站免费观看| av欧美精品.com| 国产精品沙发午睡系列990531| 精品一区二区三区视频在线观看| 欧美日韩三级一区二区| 亚洲愉拍自拍另类高清精品| proumb性欧美在线观看| 中文一区二区完整视频在线观看| 狠狠色狠狠色综合| 日韩欧美电影在线| 蜜桃在线一区二区三区| 7777精品伊人久久久大香线蕉经典版下载 | 日本免费新一区视频| 欧美性大战久久久| 亚洲欧洲制服丝袜| 99精品久久99久久久久| 综合色中文字幕| 99国产精品视频免费观看| 最近日韩中文字幕| 99在线精品观看| 亚洲天堂免费看| 一本色道久久综合亚洲91| 亚洲精品久久久蜜桃| 色偷偷88欧美精品久久久| 一区二区三区在线不卡| 欧美三级资源在线| 天天色天天操综合| 日韩视频免费观看高清在线视频| 日韩av一级电影| 欧美tickling挠脚心丨vk| 久久电影网站中文字幕| 国产午夜久久久久| 国产网站一区二区| 韩国av一区二区| 91福利资源站| 亚洲图片有声小说| 欧美精品日日鲁夜夜添| 免费观看日韩av| 337p粉嫩大胆噜噜噜噜噜91av| 国产毛片精品国产一区二区三区| 久久在线免费观看| 99久久精品久久久久久清纯| 亚洲精选视频免费看| 91精品啪在线观看国产60岁| 国产综合色精品一区二区三区| 国产欧美日韩不卡免费| 色悠悠久久综合| 水蜜桃久久夜色精品一区的特点| 日韩一区国产二区欧美三区| 韩国三级电影一区二区| 国产精品久久毛片a| 色香蕉久久蜜桃| 免费高清不卡av| 欧美激情艳妇裸体舞| 欧美午夜精品电影| 久久精品av麻豆的观看方式| 国产精品视频免费| 欧美日韩黄视频| 国产成人精品亚洲日本在线桃色| 亚洲免费在线观看视频| 日韩视频一区二区| 99久久er热在这里只有精品15| 亚洲国产中文字幕| 国产欧美日韩综合| 欧美日本韩国一区二区三区视频 | 在线观看91精品国产入口| 爽好多水快深点欧美视频| 国产午夜精品久久久久久久| 欧日韩精品视频| 国产制服丝袜一区| 一区二区久久久久久| 精品国产伦一区二区三区观看体验| 91在线观看免费视频| 蜜臀精品一区二区三区在线观看| 国产精品高清亚洲| 精品少妇一区二区三区免费观看| 99久久精品国产毛片| 毛片不卡一区二区| 一区二区三区在线免费观看| 久久综合国产精品| 欧美日韩国产区一| 成人黄色综合网站| 美女爽到高潮91| 亚洲伊人伊色伊影伊综合网| 久久综合久久综合亚洲| 欧美美女网站色| 色婷婷综合在线| 处破女av一区二区| 精品综合久久久久久8888| 亚洲综合区在线| 国产精品乱人伦一区二区| 精品久久一二三区| 欧美亚洲一区三区| av在线播放一区二区三区| 精品一区二区日韩| 免费看欧美美女黄的网站| 一区二区三区欧美亚洲| 国产精品无遮挡| 日韩精品中午字幕| 精品视频在线看| 色综合av在线| av在线播放成人| 成人精品免费网站| 国产剧情在线观看一区二区| 蜜臀久久久久久久| 日本成人在线一区| 亚洲成人资源在线| 亚洲一区二区三区在线看| 亚洲欧洲成人精品av97| 国产欧美精品一区二区色综合朱莉 | 欧美肥胖老妇做爰| 91福利资源站| 色婷婷综合久久久中文字幕| 成人性色生活片免费看爆迷你毛片| 日本中文一区二区三区| 午夜精品久久久久久久久久| 一级日本不卡的影视| 樱花影视一区二区| 一区二区视频免费在线观看| 亚洲私人影院在线观看| 亚洲女人小视频在线观看| 亚洲色图制服诱惑|