Estou usando a biblioteca libwebsockets para implementação de servidor https. Aqui está o código para servir um arquivo via HTTPS, mas recebo resposta HTTPS sem variável de cabeçalho
Content-Disposition:attachment; filename=logs.zip
e recebeu o conteúdo do arquivo no corpo da resposta!
Estou faltando alguma coisa aqui? Espero que a adição Content-Disposition
permita que o cliente do navegador baixe o arquivo.
Aqui está minha montaria:
struct lws_http_mount mount = {
/* .mount_next */ NULL, /* linked-list "next" */
/* .mountpoint */ "/", /* mountpoint URL */
/* .origin */ "var/www/", /* serve from dir */
/* .def */ NULL, /* default filename */
/* .protocol */ NULL,
/* .cgienv */ NULL,
/* .extra_mimetypes */ "application/zip", //NULL,
/* .interpret */ NULL,
/* .cgi_timeout */ 0,
/* .cache_max_age */ 0,
/* .auth_mask */ 0,
/* .cache_reusable */ 0,
/* .cache_revalidate */ 0,
/* .cache_intermediaries */ 0,
/* .origin_protocol */ LWSMPRO_FILE, /* files in a dir */
/* .mountpoint_len */ 1, /* char count */
/* .basic_auth_login_file */ NULL,
};
if (lws_serve_http_file(wsi, "/tmp/log.zip", "application/zip", NULL, 0) < 0) {
lwsl_err("Failed to serve file: %s\n", "/tmp/log.zp");
lws_return_http_status(wsi, HTTP_STATUS_INTERNAL_SERVER_ERROR, NULL);
return ;
}
E aqui estão os cabeçalhos de resposta
Obrigado pelo apoio
Sim.
A biblioteca não sabe 1) que você deseja esse cabeçalho nem 2) qual conteúdo deseja no cabeçalho. Ele fornece um mecanismo para especificar isso ( other_headers ), mas você não está enviando nenhum.
Meu C está um pouco enferrujado (sem trocadilhos)....