48 #include <sys/types.h>
60 #define RS_MAX_INT_BYTES 8
78 unsigned char buf[RS_MAX_INT_BYTES];
81 if (len <= 0 || len > RS_MAX_INT_BYTES) {
82 rs_error(
"Illegal integer length %d", len);
87 for (i = len - 1; i >= 0; i--) {
108 if (len <= 0 || len > RS_MAX_INT_BYTES) {
109 rs_error(
"Illegal integer length %d", len);
118 for (i = 0; i < len; i++) {
119 *v = *v << 8 | buf[i];
131 *v = *((
unsigned char *)inb);
141 result = rs_suck_netint(job, &d, 4);
146 int rs_int_len(rs_long_t val)
148 if (!(val & ~(rs_long_t)0xff))
150 else if (!(val & ~(rs_long_t)0xffff))
152 else if (!(val & ~(rs_long_t)0xffffffff))
154 else if (!(val & ~(rs_long_t)0xffffffffffffffff))
157 rs_fatal(
"can't encode integer " FMT_LONG
" yet", val);