MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / __bencode_decode_integer

Function __bencode_decode_integer

modules/rtpengine/bencode.c:546–590  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

544}
545
546static bencode_item_t *__bencode_decode_integer(bencode_buffer_t *buf, const char *s, const char *end) {
547 long long int i;
548 const char *orig = s;
549 char *convend;
550 bencode_item_t *ret;
551
552 if (*s != 'i')
553 return NULL;
554 s++;
555
556 if (s >= end)
557 return NULL;
558
559 if (*s == '0') {
560 i = 0;
561 s++;
562 goto done;
563 }
564
565 i = strtoll(s, &convend, 10);
566 if (convend == s)
567 return NULL;
568 s += (convend - s);
569
570done:
571 if (s >= end)
572 return NULL;
573 if (*s != 'e')
574 return NULL;
575 s++;
576
577 ret = __bencode_item_alloc(buf, 0);
578 if (!ret)
579 return NULL;
580 ret->type = BENCODE_INTEGER;
581 ret->iov[0].iov_base = (void *) orig;
582 ret->iov[0].iov_len = s - orig;
583 ret->iov[1].iov_base = NULL;
584 ret->iov[1].iov_len = 0;
585 ret->iov_cnt = 1;
586 ret->str_len = s - orig;
587 ret->value = i;
588
589 return ret;
590}
591
592static bencode_item_t *__bencode_decode_string(bencode_buffer_t *buf, const char *s, const char *end) {
593 unsigned long int sl;

Callers 1

__bencode_decodeFunction · 0.85

Calls 1

__bencode_item_allocFunction · 0.85

Tested by

no test coverage detected