Don't send files twice and remove extra \r\n from header
After the manager http auth changes, we forgot to remove the manual sending of the file. Also, ast_http_send adds two \r\n to the header that is passed to it, so a trailing \r\n is removed from the Content-type header. It might be better to change ast_http_send, but I don't like changing the behavior of an API function. (closes issue #17239) Reported by: cjacobsen Patches: patch2.diff uploaded by cjacobsen (license 1029) Tested by: lathama, cjacobsen git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@270660 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
parent
480f412858
commit
fb71a38a41
|
@ -411,7 +411,6 @@ static int phoneprov_callback(struct ast_tcptls_session_instance *ser, const str
|
|||
char *file = NULL;
|
||||
int len;
|
||||
int fd;
|
||||
char buf[256];
|
||||
struct ast_str *http_header;
|
||||
|
||||
if (method != AST_HTTP_GET && method != AST_HTTP_HEAD) {
|
||||
|
@ -441,21 +440,11 @@ static int phoneprov_callback(struct ast_tcptls_session_instance *ser, const str
|
|||
}
|
||||
|
||||
http_header = ast_str_create(80);
|
||||
ast_str_set(&http_header, 0, "Content-type: %s\r\n",
|
||||
ast_str_set(&http_header, 0, "Content-type: %s",
|
||||
route->file->mime_type);
|
||||
|
||||
while ((len = read(fd, buf, sizeof(buf))) > 0) {
|
||||
if (fwrite(buf, 1, len, ser->f) != len) {
|
||||
if (errno != EPIPE) {
|
||||
ast_log(LOG_WARNING, "fwrite() failed: %s\n", strerror(errno));
|
||||
} else {
|
||||
ast_debug(3, "Requester closed the connection while downloading '%s'\n", path);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
ast_http_send(ser, method, 200, NULL, http_header, NULL, fd, 0);
|
||||
|
||||
close(fd);
|
||||
route = unref_route(route);
|
||||
return 0;
|
||||
|
@ -515,7 +504,7 @@ static int phoneprov_callback(struct ast_tcptls_session_instance *ser, const str
|
|||
}
|
||||
|
||||
http_header = ast_str_create(80);
|
||||
ast_str_set(&http_header, 0, "Content-type: %s\r\n",
|
||||
ast_str_set(&http_header, 0, "Content-type: %s",
|
||||
route->file->mime_type);
|
||||
|
||||
if (!(result = ast_str_create(512))) {
|
||||
|
|
Loading…
Reference in New Issue