… | |
… | |
525 | int len = strlen (name); |
525 | int len = strlen (name); |
526 | memcpy (cur, name, len); cur += len; |
526 | memcpy (cur, name, len); cur += len; |
527 | *cur++ = ' '; |
527 | *cur++ = ' '; |
528 | } |
528 | } |
529 | |
529 | |
|
|
530 | packet &packet::operator <<(const ber32 v) |
|
|
531 | { |
|
|
532 | enum { maxlen = 32 / 7 + 1}; |
|
|
533 | uint8 buf[maxlen]; |
|
|
534 | uint8 *p = buf + maxlen; |
|
|
535 | uint32 val = v.val; |
|
|
536 | |
|
|
537 | *--p = val & 0x7F; |
|
|
538 | |
|
|
539 | while (val > 0x7F) |
|
|
540 | { |
|
|
541 | val >>= 7; |
|
|
542 | *--p = (val & 0x7F) | 0x80; |
|
|
543 | } |
|
|
544 | |
|
|
545 | return *this << data (p, buf + maxlen - p); |
|
|
546 | } |
|
|
547 | |
530 | packet &packet::operator <<(const data &v) |
548 | packet &packet::operator <<(const data &v) |
531 | { |
549 | { |
532 | if (room () < v.len) |
550 | if (room () < v.len) |
533 | reset (); |
551 | reset (); |
534 | else |
552 | else |