mirror of
https://github.com/rkd77/elinks.git
synced 2025-02-02 15:09:23 -05:00
Revert "bug 991: Added the bit field cgi to the structs connection and type_query."
This reverts commit 7ceba1e46131a96ee78ce999dfbe14e359d8cbcb, which is causing an assertion to fail if I open the same PDF twice in a row, even if I cancel the dialog box when ELinks first asks which program to run: INTERNAL ERROR at /home/Kalle/src/elinks-0.12/src/session/download.c:980: assertion download && download->conn failed! Forcing core dump! Man the Lifeboats! Women and children first! But please DO NOT report this as a segfault!!! It is an internal error, not a normal segfault, there is a huge difference in these for us the developers. Also, noting the EXACT error you got above is crucial for hunting the problem down. Thanks, and please get in touch with us. Program received signal SIGSEGV, Segmentation fault. [Switching to Thread -1216698688 (LWP 17877)] 0xb7a02d76 in raise () from /lib/libc.so.6 (gdb) backtrace 6 at /home/Kalle/src/elinks-0.12/src/util/error.c:179 fmt=0x816984c "assertion download && download->conn failed!") at /home/Kalle/src/elinks-0.12/src/util/error.c:122 cached=0x8253ca8) at /home/Kalle/src/elinks-0.12/src/session/download.c:980 cached=0x8253ca8, frame=0) at /home/Kalle/src/elinks-0.12/src/session/download.c:1339 at /home/Kalle/src/elinks-0.12/src/session/task.c:493 (More stack frames follow...) There is a fix available but I don't trust it yet.
This commit is contained in:
parent
7ceba1e461
commit
cd4a9d77b9
@ -58,7 +58,6 @@ struct connection {
|
||||
unsigned int unrestartable:1;
|
||||
unsigned int detached:1;
|
||||
unsigned int popen:1;
|
||||
unsigned int cgi:1;
|
||||
|
||||
/* Each document is downloaded with some priority. When downloading a
|
||||
* document, the existing connections are checked to see if a
|
||||
|
@ -393,7 +393,6 @@ execute_cgi(struct connection *conn)
|
||||
/* Use data socket for passing the pipe. It will be cleaned up in
|
||||
* close_pipe_and_read(). */
|
||||
conn->data_socket->fd = pipe_write[1];
|
||||
conn->cgi = 1;
|
||||
set_nonblocking_fd(conn->socket->fd);
|
||||
set_nonblocking_fd(conn->data_socket->fd);
|
||||
|
||||
|
@ -977,9 +977,6 @@ init_type_query(struct session *ses, struct download *download,
|
||||
{
|
||||
struct type_query *type_query;
|
||||
|
||||
assert(download && download->conn);
|
||||
if_assert_failed return NULL;
|
||||
|
||||
/* There can be only one ... */
|
||||
foreach (type_query, ses->type_queries)
|
||||
if (compare_uri(type_query->uri, ses->loading_uri, 0))
|
||||
@ -993,7 +990,6 @@ init_type_query(struct session *ses, struct download *download,
|
||||
type_query->target_frame = null_or_stracpy(ses->task.target.frame);
|
||||
|
||||
type_query->cached = cached;
|
||||
type_query->cgi = download->conn->cgi;
|
||||
object_lock(type_query->cached);
|
||||
|
||||
move_download(download, &type_query->download, PRI_MAIN);
|
||||
@ -1092,30 +1088,6 @@ tp_open(struct type_query *type_query)
|
||||
return;
|
||||
}
|
||||
|
||||
if (type_query->uri->protocol == PROTOCOL_FILE && !type_query->cgi) {
|
||||
unsigned char *file = get_uri_string(type_query->uri, URI_PATH);
|
||||
unsigned char *handler = NULL;
|
||||
|
||||
if (file) {
|
||||
decode_uri(file);
|
||||
handler = subst_file(type_query->external_handler, file);
|
||||
mem_free(file);
|
||||
}
|
||||
|
||||
if (handler) {
|
||||
if (type_query->copiousoutput)
|
||||
read_from_popen(type_query->ses, handler, NULL);
|
||||
else
|
||||
exec_on_terminal(type_query->ses->tab->term,
|
||||
handler, "",
|
||||
type_query->block ? TERM_EXEC_FG : TERM_EXEC_BG);
|
||||
mem_free(handler);
|
||||
}
|
||||
|
||||
done_type_query(type_query);
|
||||
return;
|
||||
}
|
||||
|
||||
continue_download(type_query, "");
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,6 @@ struct type_query {
|
||||
unsigned char *external_handler;
|
||||
int block;
|
||||
unsigned int copiousoutput:1;
|
||||
unsigned int cgi:1;
|
||||
/* int frame; */
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user