void VRT_hashdata(const struct sess *sp, const char *str, ...) { va_list ap; const char *p; HSH_AddString(sp, str); va_start(ap, str); while (1) { p = va_arg(ap, const char *); if (p == vrt_magic_string_end) break; HSH_AddString(sp, p); } }
void VRT_hashdata(VRT_CTX, const char *str, ...) { va_list ap; const char *p; CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC); CHECK_OBJ_NOTNULL(ctx->req, REQ_MAGIC); HSH_AddString(ctx->req, str); va_start(ap, str); while (1) { p = va_arg(ap, const char *); if (p == vrt_magic_string_end) break; HSH_AddString(ctx->req, p); } va_end(ap); /* * Add a 'field-separator' to make it more difficult to * manipulate the hash. */ HSH_AddString(ctx->req, NULL); }