static krb5_error_code encode_rx_header (struct rx_header *h, krb5_storage *sp) { krb5_error_code ret; ret = krb5_store_uint32(sp, h->epoch); if (ret) return ret; ret = krb5_store_uint32(sp, h->connid); if (ret) return ret; ret = krb5_store_uint32(sp, h->callid); if (ret) return ret; ret = krb5_store_uint32(sp, h->seqno); if (ret) return ret; ret = krb5_store_uint32(sp, h->serialno); if (ret) return ret; ret = krb5_store_uint8(sp, h->type); if (ret) return ret; ret = krb5_store_uint8(sp, h->flags); if (ret) return ret; ret = krb5_store_uint8(sp, h->status); if (ret) return ret; ret = krb5_store_uint8(sp, h->secindex); if (ret) return ret; ret = krb5_store_uint16(sp, h->reserved); if (ret) return ret; ret = krb5_store_uint16(sp, h->serviceid); if (ret) return ret; return 0; }
static void test_uint8(krb5_context context, krb5_storage *sp) { krb5_error_code ret; int i; uint8_t val[] = { 0, 1, 255 }, v; krb5_storage_truncate(sp, 0); for (i = 0; i < sizeof(val[0])/sizeof(val); i++) { ret = krb5_store_uint8(sp, val[i]); if (ret) krb5_err(context, 1, ret, "krb5_store_uint8"); krb5_storage_seek(sp, 0, SEEK_SET); ret = krb5_ret_uint8(sp, &v); if (ret) krb5_err(context, 1, ret, "krb5_ret_uint8"); if (v != val[i]) krb5_errx(context, 1, "store and ret mismatch"); } }