1
0
mirror of https://github.com/rkd77/elinks.git synced 2024-11-04 08:17:17 -05:00
Commit Graph

787 Commits

Author SHA1 Message Date
Kalle Olavi Niemitalo
5c2fada371 Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:
	src/session/download.c
2008-11-01 22:39:17 +02:00
M. Vefa Bicakci
20a7a6c460 Patch 3: Further fixes including strcasestr and convert_to_lowercase 2008-11-01 22:32:43 +02:00
M. Vefa Bicakci
96b3093519 Patch 2: Modifications to the remaining parts of ELinks
[Forward ported to 0.12 from bug 1004 attachment 499.  --KON]
2008-11-01 22:20:25 +02:00
Kalle Olavi Niemitalo
84e19d0e4e bug 1054: Don't abort downloads when closing a terminal.
Except if they have external handlers.

When ELinks receives an event from a terminal, move that terminal to
the beginning of the global "terminals" list, so that the terminals
are always sorted according to the time of the most recent use.  Note,
this affects the numbering of bookmark folders in session snapshots.

Add get_default_terminal(), which returns the most recently used
terminal that is still open.  Use that in various places that
previously used terminals.prev or terminals.next.  Four functions
fetch the size of the terminal for User-Agent headers, and
get_default_terminal() is not really right, but neither was the
original code; add TODO comments in those functions.

When the user chooses "Background and Notify", associate the download
with the terminal where the dialog box is.  So any later messages will
then appear in that terminal, if it is still open.  However, don't
change the terminal if the download has an external handler.

When a download gets some data, don't immediately check the associated
terminal.  Instead, wait for the download to end.  Then, if the
terminal of the download has been closed, use get_default_terminal()
instead.  If there is no default terminal either, just skip any
message boxes.
2008-10-15 23:29:25 +03:00
Kalle Olavi Niemitalo
b40736cafe Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	NEWS (merged)
	configure.in (merged)
	doc/man/man1/elinks.1.in (regenerated)
	doc/man/man5/elinks.conf.5 (regenerated)
	doc/man/man5/elinkskeys.5 (regenerated)
	po/fr.po (kept 0.13.GIT version)
	po/pl.po (kept 0.13.GIT version)
2008-09-27 16:28:28 +03:00
Kalle Olavi Niemitalo
d93bceb9bd Fix blacklist crash in BitTorrent
make_bittorrent_peer_connection() used to construct a struct uri on
the stack. This was hacky but worked nicely because the struct uri
was not really accessed after make_connection() returned.  However,
since commit a83ff1f565, the struct uri
is also needed when the connection is being closed.  Valgrind shows:

Invalid read of size 2
   at 0x8100764: get_blacklist_entry (blacklist.c:33)
   by 0x8100985: del_blacklist_entry (blacklist.c:64)
   by 0x80DA579: complete_connect_socket (socket.c:448)
   by 0x80DA84A: connected (socket.c:513)
   by 0x80D0DDF: select_loop (select.c:297)
   by 0x80D00C6: main (main.c:353)
 Address 0xBEC3BFAE is just below the stack ptr.  To suppress, use: --workaround-gcc296-bugs=yes

To fix this, allocate the struct uri on the heap instead, by
constructing a string and giving that to get_uri().  This string
cannot use the "bittorrent" URI scheme because parse_uri() does not
recognize the host and port fields in that.  (The "bittorrent" scheme
has protocol_backend.free_syntax = 1 in order to support strings like
"bittorrent:http://beta.legaltorrents.com/get/159-noisome-beasts".)
Instead, define a new "bittorrent-peer" URI scheme for this purpose.
If the user attempts to use this URI scheme, its handler aborts the
connection with an error; but when make_bittorrent_peer_connection()
uses a bittorrent-peer URI, the handler is not called.

This change also lets get_uri() set the ipv6 flag if peer_info->ip is
an IPv6 address literal.

Reported by Witold Filipczyk.
2008-09-07 06:31:36 +03:00
Kalle Olavi Niemitalo
80a5c6d466 Merge branch 'elinks-0.12' into elinks-0.13 2008-09-04 12:08:38 +03:00
Kalle Olavi Niemitalo
7de8b9940c Bug 1013: Fix type mismatches in gopher.c
When I replaced enum connection_state with struct connection_state,
I missed parts of src/protocol/gopher/gopher.c.  Finish the change there.
2008-09-04 11:57:03 +03:00
Kalle Olavi Niemitalo
b7d3b4f687 1041: Add ftp_add_unparsed_line: HTML entities and more error checks.
Separate the formatting of unparsed lines from ftp_process_dirlist()
to a new function ftp_add_unparsed_line().  Check for all possible
out-of-memory errors.  Encode HTML metacharacters as entity references
and document how charsets are handled FTP directory listings.
Add a NEWS entry.
2008-09-04 11:21:06 +03:00
Witold Filipczyk
298f3af6c6 1041: Do not show the "Error parsing" on ftp://sunsite.icm.edu.pl/. 2008-09-04 10:24:42 +03:00
Kalle Olavi Niemitalo
a73fe73cd2 Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	src/document/document.h
	src/encoding/encoding.c
	src/network/connection.c
	src/protocol/bittorrent/bittorrent.c
	src/protocol/bittorrent/bittorrent.h
	src/protocol/bittorrent/common.h
	src/protocol/bittorrent/connection.c
	src/protocol/bittorrent/dialogs.c
	src/protocol/bittorrent/tracker.c
	src/protocol/file/cgi.c
	src/protocol/http/http.c
2008-08-03 22:18:53 +03:00
Kalle Olavi Niemitalo
c1ffba2f95 Work around fsp_open_session() not setting errno.
fsp_open_session() has a bug where it does not set errno if getaddrinfo fails.
Before the bug 1013 fix, this caused an assertion failure.
After the bug 1013 fix, this caused a "Success" error message.
Now it instead causes "FSP server not found".
2008-08-03 20:26:50 +03:00
Kalle Olavi Niemitalo
6c2e8cd7b2 Bug 1013: Don't assume errno is between 0 and 100000
Replace almost all uses of enum connection_state with struct
connection_status.  This removes the assumption that errno values used
by the system are between 0 and 100000.  The GNU Hurd uses values like
ENOENT = 0x40000002 and EMIG_SERVER_DIED = -308.

This commit is derived from my attachments 450 and 467 to bug 1013.
2008-08-03 17:56:41 +03:00
Kalle Olavi Niemitalo
a83ff1f565 1040: Blacklist servers that support SSL3 but not TLS1.
It seems GnuTLS is not as good at negotiating a supported protocol as
OpenSSL is.  ELinks tries to work around that by retrying with a
different protocol if the SSL library reports an error.  However,
ELinks must not automatically retry POST requests where some data may
have already reached the server; POST is not a safe method in HTTP.
So instead, collect the name of the TLS-incapable server in a blacklist
when ELinks e.g. loads an HTML form from it; the actual POST can then
immediately use the protocol that worked.

It's a bit ugly that src/network/socket.c now uses
protocol/http/blacklist.h.  It might be better to move the blacklist
files out of the http directory, and perhaps merge them with the
BitTorrent blacklisting code.
2008-07-27 01:39:01 +03:00
Kalle Olavi Niemitalo
988cec481b Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	NEWS
	configure.in

The following files also conflicted, but they had not been manually
edited in the elinks-0.12 branch after the previous merge, so I just
kept the 0.13.GIT versions:

	doc/man/man1/elinks.1.in
	doc/man/man5/elinks.conf.5
	doc/man/man5/elinkskeys.5
	po/fr.po
	po/pl.po
2008-07-11 22:28:45 +03:00
Kalle Olavi Niemitalo
1ab55c27a4 1008: make http_post.post_data point to const
Because init_http_post() now copies the file names,
http_read_post_inline() no longer writes '\0' into post_data.
2008-07-11 15:18:01 +03:00
Kalle Olavi Niemitalo
42123dab87 1008: percent-encode file names in uri.post
In uri.post, each file name begins and ends with FILE_CHAR.
Previously, file names were not encoded, and names containing
FILE_CHAR could not be used.  Because FILE_CHAR is a control
character, the user cannot directly type it in a file input field,
so ELinks asserted that the field did not contain FILE_CHAR.
However, it is possible to get FILE_CHAR in a file input field
with file name completion (ACT_EDIT_AUTO_COMPLETE), causing the
assertion to fail.  Now, ELinks encodes FILE_CHAR as "%02", so it
is no longer ambiguous and the assertion is not needed.
2008-07-11 14:44:35 +03:00
Kalle Olavi Niemitalo
50a3244dfb 1008: document the format of uri.string and uri.post 2008-07-11 14:20:47 +03:00
Kalle Olavi Niemitalo
5c0128d82d Bug 1021: initialize version in http_got_header
gcc-4.3 -O2 was complaining that http_got_header may use uninitialized
version.major and version.minor.  That indeed happened with HTTP/0.9
servers, and the PRE_HTTP_1_1(version) check then had an undefined
result, so http->close could remain 0 even though it should have
become 1; fortunately, it was then set to 1 anyway, because there was
no Content-Length header.  The undefined version was also saved in
http->recv_version, but it appears nothing ever reads that.  So in the
end, the bug did not cause any symptoms at runtime, but the warning
broke the build on gcc-4.3 if ELinks was configured with --enable-debug.
2008-07-04 16:42:35 +03:00
Kalle Olavi Niemitalo
5b6c913c6a Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	src/network/connection.h
	src/session/download.c
	src/session/download.h
2008-06-15 21:43:08 +03:00
Kalle Olavi Niemitalo
69cae5d791 Revert "Gradual rendering in pager mode. ELinks is almost as good as less."
I am reverting all /dev/fd recognition because of bug 917.
This reverts commit c283f8cfd9,
except src/protocol/file/file.c still needs #include "osdep/osdep.h"
for STRING_DIR_SEP.
2008-06-15 19:31:29 +03:00
Kalle Olavi Niemitalo
006b68716b Revert "set_nonblocking_fd seems to be superfluous"
I am reverting all /dev/fd recognition because of bug 917.
This reverts commit 9c3817675f.
2008-06-15 19:24:53 +03:00
Kalle Olavi Niemitalo
bfb034c953 Revert "copiousoutput: cleanup after copiousoutput handling. Temporary files should"
I am reverting all copiousoutput support because of bug 917.
This reverts commit 4dc4ea47f2.

Conflicts:

	src/network/connection.h: After the original commit, the declaration
	  of copiousoutput_data had been changed to use the LIST_OF macro.
	  Also, connection.cgi had been added next to the connection.popen
	  member added by the original commit.
	src/session/download.c: After the original commit, the definition of
	  copiousoutput_data had been changed to use the INIT_LIST_OF macro.
2008-06-15 14:17:44 +03:00
Kalle Olavi Niemitalo
5ef6c9e395 Revert "copiousoutput: only mark /dev/fd/%d as popen data . I reflect if ELinks may"
I am reverting all copiousoutput support because of bug 917.
This reverts commit f377e6f4af.
2008-06-15 14:09:12 +03:00
Witold Filipczyk
1544b5f4b9 bug 991: fix crash when the file is already cached
If the user opens the same file again after it is in the cache, then
ELinks does not always open a new connection, so download->conn can be
NULL in init_type_query(), and download->conn->cgi would crash.
Don't read that, then; instead add a new flag cache_entry.cgi, which
http_got_header() sets or clears as soon as possible after the cache
entry has been created.
(cherry picked from commit 81f8ee1fa2)
2008-06-15 13:53:34 +03:00
Witold Filipczyk
d15439edff bug 991: Added the bit field cgi to the structs connection and type_query.
CGI scripts are distinguishable from normal files. I hope that this
fixes the bug 991. This commit also reverts the previous revert.
(cherry picked from commit 7ceba1e461)
2008-06-15 13:07:02 +03:00
Kalle Olavi Niemitalo
a3fba83f80 Remove a comment about kill_timer()
The comment said "it is not possible to call kill_timer from a timer
handler."  Sure, such calls used to crash occasionally, but that was
bug 868 and has already been fixed.
2008-06-15 11:41:52 +03:00
Kalle Olavi Niemitalo
d6fd2ac31f Erase progress.timer before calling progress.timer_func
Previously, each progress timer function registered with
start_update_progress() was directly used as the timer function of
progress.timer, so it was responsible of erasing the expired timer ID
from that member.  Failing to do this could result in heap corruption.
The progress timer functions normally fulfilled the requirement by
calling update_progress(), but one such function upload_stat_timer()
had to erase the timer ID on its own too.

Now instead, there is a wrapper function progress_timeout(), which
progress.c sets as the timer function of progress.timer.  This wrapper
erases the expired timer ID from progress.timer and then calls the
progress timer function registered with start_update_progress().  So
the progress timer function is no longer responsible of erasing the
timer ID and there's no risk that it could fail to do that in some
error situation.

This commit introduces a new risk though.  Previously, if the struct
progress was freed while the timer was running, the (progress) timer
function would still be called, and it would be able to detect that
the progress pointer is NULL and recover from this situation.  Now,
the timer function progress_timeout() has a pointer to the struct
progress and will dereference that pointer without being able to check
whether the structure has been freed.  Fortunately, done_progress()
asserts that the timer is not running, so this should not occur.
2008-06-15 11:27:19 +03:00
Kalle Olavi Niemitalo
696496e831 1008: remove unused uri.big_files
The files are instead counted by open_http_post().
2008-06-10 01:05:39 +03:00
Kalle Olavi Niemitalo
b8b54a5325 Merge branch 'top/0.13/bug1008' into elinks-0.13 2008-06-08 19:51:00 +03:00
Kalle Olavi Niemitalo
d2da3f4967 1008: larger POST_BUFFER_SIZE for CPU efficiency
Posting a 91762123-byte file to test/cgi/big_file.cgi.  The CPU
percentages are from "top" set up to update every 10 seconds and
checked near the end of the transfer, so they are less accurate
than the upload rate, which averages over the whole transfer.

buffer=4096: average 1.7 MiB/s, elinks 62% CPU, python 35% CPU.
buffer=8192: average 2.5 MiB/s, elinks 49% CPU, python 42% CPU.
buffer=16384: average 3.1 MiB/s, elinks 40% CPU, python 55% CPU.
buffer=32768: average 3.8 MiB/s, elinks 33% CPU, python 61% CPU.
buffer=65536: average 4.1 MiB/s, elinks 26% CPU, python 70% CPU.
buffer=131072: average 4.2 MiB/s, elinks 28% CPU, python 67% CPU.
buffer=262144: average 4.4 MiB/s, elinks 26% CPU, python 69% CPU.

I'm choosing 32768 as POST_BUFFER_SIZE because the advantages of
larger buffers don't seem very high and keeping this under 65536
may help anyone trying to port ELinks to DOS.

I'm using the same value for HTTP too, just to keep things consistent
until there is a reason to diverge.
2008-06-08 18:38:48 +03:00
Kalle Olavi Niemitalo
5839aa070a 1008: show upload progress in local CGI too 2008-06-08 17:30:17 +03:00
Kalle Olavi Niemitalo
bed84c483e Bug 517: read_encoded() == 0 might not mean EOF if non-blocking.
Without this patch, ELinks showed garbage at
<http://www.dwheeler.com/oss_fs_why.html> when bzip2 decompression was
enabled.  safe_read() in bzip2_read() did not see all of the body
bytes that ELinks had received from the server.  After bzip2_read()
received EAGAIN from safe_read() and returned 0, something skipped
1460 bytes.

decompress_data() apparently assumed that read_encoded() returning 0
meant the end of the file, and returned even though len still was
nonzero, i.e. it had not yet written to the pipe all the data that
the caller (read_chunked_http_data() or read_normal_http_data()) had
provided.  The caller did not know this, and discarded the data.
(cherry picked from commit 7e5e05ca60)
2008-06-07 23:33:23 +03:00
Kalle Olavi Niemitalo
7e5e05ca60 Bug 517: read_encoded() == 0 might not mean EOF if non-blocking.
Without this patch, ELinks showed garbage at
<http://www.dwheeler.com/oss_fs_why.html> when bzip2 decompression was
enabled.  safe_read() in bzip2_read() did not see all of the body
bytes that ELinks had received from the server.  After bzip2_read()
received EAGAIN from safe_read() and returned 0, something skipped
1460 bytes.

decompress_data() apparently assumed that read_encoded() returning 0
meant the end of the file, and returned even though len still was
nonzero, i.e. it had not yet written to the pipe all the data that
the caller (read_chunked_http_data() or read_normal_http_data()) had
provided.  The caller did not know this, and discarded the data.
2008-06-07 21:27:37 +03:00
Kalle Olavi Niemitalo
08941fd47d 1008: rename connection.upload_progress to .http_upload_progress 2008-06-03 09:57:58 +03:00
Kalle Olavi Niemitalo
fa51846f68 1008: increment http_post->uploaded in read_http_post() 2008-06-03 09:45:40 +03:00
Kalle Olavi Niemitalo
2d2cc6c5f5 1008: Abort connection if a file is resized. 2008-06-03 01:49:10 +03:00
Kalle Olavi Niemitalo
d3ee4e2e47 1008: error parameter in read_http_post
This function will need to set ELinks-specific errors
and it would not be right to write those in errno.
2008-06-03 01:26:19 +03:00
Kalle Olavi Niemitalo
44bf538cab 1008: Remember the sizes of files during the upload.
This will soon allow read_http_post_fd() to detect if a size has
changed.
2008-06-03 00:46:12 +03:00
Kalle Olavi Niemitalo
c2d854b240 1008: open_http_post() can return an error.
It does not yet take advantage of that though.
2008-06-03 00:18:47 +03:00
Kalle Olavi Niemitalo
533e7fc62b 1008: replace post_length() with open_http_post() 2008-06-02 10:41:55 +03:00
Kalle Olavi Niemitalo
88a59a06c0 1008: move stuff to new src/protocol/http/post.{c,h} 2008-06-02 10:40:34 +03:00
Kalle Olavi Niemitalo
0a95ae85ab 1008: finish renaming http_read_post_data to read_http_post
Fix the compilation error caused in the previous commit.
2008-06-02 01:06:23 +03:00
Kalle Olavi Niemitalo
4768243d0c 1008: rename http_read_post_data to read_http_post 2008-05-26 10:40:43 +03:00
Kalle Olavi Niemitalo
1b707208d3 1008: New struct http_post.
Move connection.post_fd to http_post.post_fd.
Make connection.done point to the new done_http_connection(),
which calls the new done_http_post(), which closes post_fd.
So done_connection() no longer needs to do that.

Now that done_http_post() exists, a later commit can add dynamically
allocated data in struct http_post and ensure that it will be freed.
2008-05-26 01:56:58 +03:00
Kalle Olavi Niemitalo
6e616e4f93 1008: Remove assertion from init_http_connection_info().
As the comment near the end of this function says, conn->info is
already non-NULL if a HTTPS proxy is being used, and the code in fact
correctly frees the previous info.  So there is no need to assert its
nonexistence.  I added that bug on 2008-05-22, in commit 291a913d1e.
2008-05-25 22:40:27 +03:00
Kalle Olavi Niemitalo
7a72a685e5 1008: Centralize random numbers.
If ELinks is being linked with SSL library, use its random number
generator.

Otherwise, try /dev/urandom and /dev/prandom.  If they do not work,
fall back to rand(), calling srand() only once.  This fallback is
mostly interesting for the Hurd and Microsoft Windows.

BitTorrent piece selection and dom/test/html-mangle.c still use rand()
(but not srand()) directly.  Those would not benefit from being
unpredictable, I think.
2008-05-25 18:44:21 +03:00
Kalle Olavi Niemitalo
291a913d1e 1008: Call and reset conn->done when freeing conn->info.
In the places that set conn->info without freeing the original value,
assert that both conn->info and conn->done are NULL.
2008-05-22 03:59:33 +03:00
Kalle Olavi Niemitalo
2256a8c94a 1008: HTTP upload counters are off_t, not size_t.
So that ELinks can upload files larger than 4 GiB even if size_t is
32-bit.
2008-05-21 08:20:03 +03:00
Kalle Olavi Niemitalo
3b5e10d3da 1008: Merge POST data sending of HTTP and local CGI.
To reduce code duplication, src/protocol/file/cgi.c no longer parses
connection->uri->post on its own but rather calls the new function
http_read_post_data(), provided by src/protocol/http/http.c.  The same
code is now also used for POST requests that do not include files.
2008-05-19 08:09:39 +03:00
Kalle Olavi Niemitalo
181486696b 1008: comments about struct http_connection_info 2008-05-18 22:30:30 +03:00
Kalle Olavi Niemitalo
0298d88167 1008: Save errno if open() fails in file upload. 2008-05-17 10:39:10 +03:00
Miciah Dashiel Butler Masters
e174b9b023 Drop unused local variable scriptlen and strlen call in execute_cgi 2008-05-16 04:00:18 +00:00
Witold Filipczyk
f09a5f235e 1008: s/big_file/file/g . 2008-05-12 12:51:53 +02:00
Witold Filipczyk
9f768354b9 1008: Moved the definition of the big_files_offset to the form.c. 2008-05-12 12:42:43 +02:00
Witold Filipczyk
20f0ed6e1b 1008: Added a comment realted to http_version's macros. 2008-05-12 11:50:40 +02:00
Witold Filipczyk
639799740c 1008: Changed misleading comment. 2008-05-12 11:48:41 +02:00
Witold Filipczyk
df2e601d9b 1008: Added a comment about use of the struct http_version. 2008-05-12 11:46:09 +02:00
Witold Filipczyk
a85a87a574 1008: abort connection when opening a big file fails. 2008-05-12 11:37:48 +02:00
Witold Filipczyk
a6184b3081 1008: Moved post_fd to the struct connection. 2008-05-12 11:24:00 +02:00
Witold Filipczyk
a14cad36ba 1008: big_files is unsigned int. 2008-05-11 13:14:12 +02:00
Witold Filipczyk
8508c18341 1008: big uploads. Added info in the status bar about uploded data. 2008-05-11 13:14:06 +02:00
Witold Filipczyk
6c0979aae9 1008: Added upload_progress to the connection. 2008-05-11 13:14:00 +02:00
Witold Filipczyk
a685470da9 1008: Added the total_upload_length and uploaded to the http_info. 2008-05-11 13:13:55 +02:00
Witold Filipczyk
ec382345c8 1008: upload of big files.
Files bigger than 65536 bytes are loaded on "demand".
TODO: Add a progress bar of uploads.
2008-05-11 13:13:49 +02:00
Kalle Olavi Niemitalo
d26c8cf836 Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	NEWS (bug 939 was listed twice)
	doc/man/man5/elinks.conf.5 (regenerated)
	po/fr.po (only in comments and such)
	po/pl.po (only in comments and such)
	src/protocol/fsp/fsp.c (the relevant changes were already here)
2008-04-28 22:08:19 +03:00
Kalle Olavi Niemitalo
2463c1b2f8 Bug 939: Documented the fix.
The fix itself is in the parent commit.
(cherry picked from commit 4c390589ea,
 rewriting the NEWS entry because the bug also occurred on Debian)
2008-04-28 11:04:27 +03:00
Witold Filipczyk
8a02678bed fsp: Fixed a serious bug.
*fresult pointed to nowhere. On FreeBSD *fresult == NULL
and directories weren't displayed.
Check also if safe_write writes all data.
(cherry picked from commit 06bcc48487)
2008-04-28 11:04:06 +03:00
Witold Filipczyk
08894be379 bittorrent: Overflow occuring when a piece was rejected. 2008-03-25 22:35:06 +01:00
Witold Filipczyk
81f8ee1fa2 bug 991: fix crash when the file is already cached
If the user opens the same file again after it is in the cache, then
ELinks does not always open a new connection, so download->conn can be
NULL in init_type_query(), and download->conn->cgi would crash.
Don't read that, then; instead add a new flag cache_entry.cgi, which
http_got_header() sets or clears as soon as possible after the cache
entry has been created.
2008-03-15 20:49:15 +02:00
Witold Filipczyk
2aa70f77bc bug 991: Added the bit field cgi to the structs connection and type_query.
CGI scripts are distinguishable from normal files. I hope that this
fixes the bug 991. This commit also reverts the previous revert.
(cherry picked from commit 7ceba1e461)
2008-03-15 19:25:01 +02:00
Kalle Olavi Niemitalo
fb966b87a3 Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	doc/Doxyfile.in
2008-03-15 19:24:51 +02:00
Witold Filipczyk
dafb726a49 bug 976: do not use stdout and stderr in a child processing smb://
libsmbclient's stdout and stderr interferred with ELinks's stdout
and stdin. That caused an assertion failure. Now the ELinks uses
different streams for processing of the smb protocol.
2008-03-15 18:09:23 +02:00
Kalle Olavi Niemitalo
cd4a9d77b9 Revert "bug 991: Added the bit field cgi to the structs connection and type_query."
This reverts commit 7ceba1e461,
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.
2008-03-11 10:51:20 +02:00
Witold Filipczyk
7ceba1e461 bug 991: Added the bit field cgi to the structs connection and type_query.
CGI scripts are distinguishable from normal files. I hope that this
fixes the bug 991. This commit also reverts the previous revert.
2008-03-09 15:47:35 +02:00
Kalle Olavi Niemitalo
bff789d421 Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	doc/elinks.conf.5.txt
	src/mime/dialogs.c (resolved by Witold Filipczyk)
2008-03-08 15:35:12 +02:00
Jonas Fonseca
e04b420897 Minor fixes and improvements to option strings
This syncs some changes (ie. -> e.g. etc.) from elinks-0.12 or beyond.
I noticed them while updating the web pages, and apologize that I will
not spent the time to attribute it to the individual commits.

(cherry picked from commit 2bfc7b3724,
 omitting generated files)
2008-03-06 10:31:20 +02:00
Witold Filipczyk
8f46de65d6 bug 1000: Do not discard the query part of URI.
(cherry picked from commit 3a4c053bd5)
2008-03-02 17:45:29 +02:00
Kalle Olavi Niemitalo
3a9b5d091d Enable protocol.http.compression by default.
AFAIK, all bugs in it have been fixed.  Some bugs may still be lurking
but they are more likely to get caught if compression is enabled.

I also replaced COMP_NOTE with static text because xgettext does not
support macros in the argument of N_.
2008-03-01 19:30:04 +02:00
Kalle Olavi Niemitalo
af9ed54c0f Merge branch 'elinks-0.12' into elinks-0.13 2008-03-01 17:28:37 +02:00
Kalle Olavi Niemitalo
8b5de30f72 Bug 1001: fix uninitialized-pointer crash in URI rewriting
(cherry picked from commit 6d2e034007)
2008-03-01 16:09:41 +02:00
Witold Filipczyk
d8a062cffc http encoding: Moved the accept_encoding_header to the http.c. 2008-02-29 15:32:10 +01:00
Jonas Fonseca
8bb0f20471 FTP: Test and fix handling of symbolic link name containing spaces
The bug was reported by Paul B. Mahol on elinks-users. The example is
from the FTP site he provided:

	ftp.freebsd.org/pub/FreeBSD/ISO-IMAGES-ia64/

Message-ID: <3a142e750802262008l6fd55be5v44207bc4479dd3fc@mail.gmail.com>
(cherry picked from commit c069403b75)
2008-02-28 23:39:04 +02:00
Jonas Fonseca
1ad9d5b2b8 Fix the FTP parser test program to handle multiline responses
... so all the tests with responses stretching multiple lines are
actually tested in their entirety.

(cherry picked from commit aa9a847c00,
 resolving a conflict due to the use of get_test_opt)
2008-02-28 23:38:55 +02:00
Jonas Fonseca
577c241438 parse_time: set tm_sec to zero before conditional second parsing
This fixes test 9 (Basic VMS responses) that uses time specs with
seconds left out (e.g. 17:44) for me.
(cherry picked from commit 397bef882b)
2008-02-28 23:38:42 +02:00
Kalle Olavi Niemitalo
3c861fd530 Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	configure.in
	src/protocol/http/http.c
2008-02-24 22:49:47 +02:00
Witold Filipczyk
26607d2263 decompress_data: Do not leak memory in mem_realloc. 2008-02-24 20:45:33 +02:00
Witold Filipczyk
902522fbdf content encoding: New function accept_encoding_header. 2008-02-24 20:45:32 +02:00
Witold Filipczyk
8492e6b1af lzma: used the lzma library from tukaani.org. 2008-02-24 20:45:32 +02:00
Witold Filipczyk
0b363eb245 content encoding: handle the case when the len is 0 in the chunked encoding.
We do not want to start decompression when the len is 0
with the chunked encoding.
2008-02-17 21:54:18 +02:00
Witold Filipczyk
cfb2ef63d6 encoding: Fixed a chunked decompression and added the deflate. 2008-02-17 21:54:18 +02:00
Y Giridhar Appaji Nag
4a1e296c3b Bug 1002: Fix build failure on Debian GNU/Linux arch powerpc
Change char id to enum bittorrent_message_id id to prevent FTBFS on
powerpc and s390
(cherry picked from commit 01b0c81227,
 with a conflict)
2008-02-10 14:34:21 +02:00
Kalle Olavi Niemitalo
61019c3130 Debian bug 464384: fix OFF_T_FORMAT mismatches on amd64
On AMD64 apparently, off_t is long but ELinks detected SIZEOF_OFF_T == 8
and defined OFF_T_FORMAT as "lld", which expects long long and so causes
GCC to warn about a mismatching format specifier.  Because --enable-debug
adds -Werror to $CFLAGS, this warning breaks the build.  When both
SIZEOF_LONG and SIZEOF_LONG_LONG are 8, ELinks cannot know which type
it should use.

To fix this, do not attempt to find a format specifier for off_t itself.
Instead cast all printed off_t values to a new typedef off_print_T that
is large enough, and replace OFF_T_FORMAT with OFF_PRINT_FORMAT which
is suitable for off_print_T altough not necessarily for off_t.  ELinks
already had a similar scheme with time_print_T and TIME_PRINT_FORMAT.
2008-02-10 11:30:27 +02:00
Miciah Dashiel Butler Masters
3a0286e447 Strings corrections from Malcolm Parsons
Fix the spelling and grammar in various comments, variable names, comment
descriptions, and documentation.
2008-01-27 04:19:23 +00:00
Miciah Dashiel Butler Masters
643a34e6af Strings corrections from Malcolm Parsons
Fix the spelling and grammar in various comments, variable names, comment
descriptions, and documentation.
2008-01-27 04:09:18 +00:00
Kalle Olavi Niemitalo
dae9b988f6 const in scanner
So that render_dom_document_start() is better assured that
default_colors[] won't be modified by the CSS code.
2008-01-26 18:20:17 +02:00
Kalle Olavi Niemitalo
f0d10c9f29 Add struct bittorrent_const_string.
Previously, struct string was used here.  However,
bittorrent_fetch_callback does not initialize response.magic,
and parse_bittorrent_tracker_response changes response->source
to point to data that must not be freed.  So the util/string.h
functions are not actually safe to use on these objects.
For this reason, it is safer to use a separate type.
2008-01-26 18:16:45 +02:00
Kalle Olavi Niemitalo
4138b401ca Merge branch 'elinks-0.12' into elinks-0.13
Conflicts:

	src/document/css/stylesheet.c
	src/document/css/stylesheet.h
2008-01-26 18:15:33 +02:00
Kalle Olavi Niemitalo
a831beb6c8 const in BitTorrent 2008-01-26 18:10:35 +02:00
Kalle Olavi Niemitalo
721af4e749 Detect all overflows in BitTorrent parse_bencoding_integer.
The previous check (integer > (off_t) integer * 10) did not detect all
overflows.  Examples with 32-bit off_t:

integer = 0x1C71C71D (0x100000000/9 rounded up);
integer * 10 = 0x11C71C722, wraps to 0x1C71C722 which is > integer.

integer = 0x73333333;
integer * 10 = 0x47FFFFFFE, wraps to 0x7FFFFFFE which is > integer.

Examples with 64-bit off_t:

integer = 0x1C71C71C71C71C72 (0x10000000000000000/9 rounded up);
integer * 10 = 0x11C71C71C71C71C74, wraps to 0x1C71C71C71C71C74
which is > integer.

integer = 0x7333333333333333;
integer * 10 = 0x47FFFFFFFFFFFFFFE, wraps to 0x7FFFFFFFFFFFFFFE
which is > integer.

It is unclear to me what effect an undetected overflow would actually
have from the user's viewpoint, so I'm not adding a NEWS entry.
(cherry picked from commit a25fd18e56)
2008-01-26 16:47:51 +02:00
Kalle Olavi Niemitalo
9699a03e74 Don't assume sizeof(int)==4 in bittorrent
(cherry picked from commit f3bad399e2)
2008-01-26 16:47:47 +02:00
Witold Filipczyk
213b1933b3 fsp: Drop the protocol.fsp.sort, always sort entries.
The fsp_opendir always read the whole directory.
Sorting entries do not slow down noticeably.
2008-01-19 17:09:09 +02:00
Kalle Olavi Niemitalo
4c390589ea Bug 939: Documented the fix.
The fix itself is in the parent commit.
2008-01-19 10:55:11 +02:00
Witold Filipczyk
06bcc48487 fsp: Fixed a serious bug.
*fresult pointed to nowhere. On FreeBSD *fresult == NULL
and directories weren't displayed.
Check also if safe_write writes all data.
2008-01-18 21:15:28 +01:00
Petr Baudis
6c4e01f483 Disable protocol.http.compression by default
The compression support in ELinks has always been buggy, with some large pages
failing to decompress and containing garbage at the end instead. However,
with the recent attempts to fix the compression support, it has been actually
made *so* buggy that not only these cases seem to occur more often, but in
some cases, the page is just silently chopped and no content visible; in other
cases, "Resource temporarily unavailable" is displayed. Etc.

The compression support got now to the point where it is so awfully unstable
that it is actively harmful to have it enabled by default. I've been burnt by
it several times already and once made a very serious error because of page
being chopped silently.
2007-11-01 02:28:00 +01:00
Petr Baudis
d4cec950ec Introduce protocol.http.compression knob
When disabled, no Accept-Encoding header is sent.
2007-11-01 02:24:55 +01:00
Miciah Dashiel Butler Masters
13523248ed Merge commit 'origin/elinks-0.12'
Conflicts:

	po/fr.po
	src/document/dom/renderer.c
	src/document/html/parser.c
	src/document/options.c
	src/document/refresh.c
2007-10-09 14:05:03 +00:00
Laurent MONIN
11e477a63e ELINKS_HOMEPAGE -> ELINKS_WEBSITE_URL 2007-10-03 11:23:29 +02:00
Kalle Olavi Niemitalo
07535cf886 Define BITTORRENT_NULL_ID in common.c; declare extern in common.h.
This change avoids linker warnings when building with Debian tcc
0.9.23-4 + patch from Debian bug 418360:

      [LD]   src/protocol/bittorrent/lib.o
bittorrent.o: 'BITTORRENT_NULL_ID' defined twice
common.o: 'BITTORRENT_NULL_ID' defined twice
connection.o: 'BITTORRENT_NULL_ID' defined twice
dialogs.o: 'BITTORRENT_NULL_ID' defined twice
peerconnect.o: 'BITTORRENT_NULL_ID' defined twice
peerwire.o: 'BITTORRENT_NULL_ID' defined twice
piececache.o: 'BITTORRENT_NULL_ID' defined twice
tracker.o: 'BITTORRENT_NULL_ID' defined twice
2007-09-14 16:58:16 +02:00
Miciah Dashiel Butler Masters
a46379a931 Move is_in_domain from cookies/cookies.c to protocol/uri.c and export 2007-09-14 16:51:04 +02:00
Laurent MONIN
f0e66866f5 Trim trailing whitespaces. 2007-09-14 15:12:32 +02:00
Jonas Fonseca
8dbd38eded NNTP: Improve listing of articles for groups
It now uses ordered list with the message number as the list item
number. Only the message subject and from field are shown.
2007-09-11 17:01:06 +02:00
Jonas Fonseca
0b0222d64f NNTP: Add support for handling RFC2047 encoded words
Code adapted from git's builtin-mailinfo.c file.
2007-09-11 16:59:56 +02:00
Jonas Fonseca
8393dc901e Bug 744: Make removal of double slashes more protocol specific
Add a boolean protocol flag which says whether "//" in the path
part of an URI can be safely substituted with "/". Be conservative
and enable it only for file://, ftp:// and nntp[s]://. Other
can be turned on later, if needed.

Generalizes the fix from 58b3b1e752.
2007-09-11 14:14:17 +02:00
Jonas Fonseca
5d5f7fc078 NNTP: Fix group listing links having bad URL syntax due to double slashes 2007-09-11 13:50:17 +02:00
Jonas Fonseca
1961a0ca50 NNTP: HTML escape header field values 2007-09-11 13:21:00 +02:00
Kalle Olavi Niemitalo
db115bfece Add tests for cwd-relative file URIs.
Test 6 currently fails.
2007-09-09 20:06:25 +03:00
Jonas Fonseca
0240c469b7 Merge branch 'elinks-0.12'
Conflicts:

	src/document/dom/renderer.c
2007-09-09 18:25:49 +02:00
Jonas Fonseca
58b3b1e752 Reinstate "canonicalization" of path names for file URIs
This reverts commit 4f0aaa166e
and insert check for the "//" -> "/" change only to occur for
file:// URIs. This fixes the recent reports on broken handling
of relative file URIs starting with "..".
2007-09-09 18:17:25 +02:00
Miciah Dashiel Butler Masters
9a5f76dbd5 Move is_in_domain from cookies/cookies.c to protocol/uri.c and export 2007-08-29 13:33:19 +00:00
Jonas Fonseca
8376feb6b1 Fix protocol/test ignore rule for the uri-test program 2007-08-28 20:35:14 +02:00
Jonas Fonseca
bbd7c8354a Move get_test_opt to util/test.h and use throughout test programs 2007-08-28 20:34:17 +02:00
Jonas Fonseca
0f53941fef Introduce test library in util/test.h containing the die() function
Fix the die() function to exit with EXIT_FAILURE value as pointed
out by Kalle on elinks-dev in <87tzqkxhlp.fsf@Astalo.kon.iki.fi>.
2007-08-28 20:14:08 +02:00
Miciah Dashiel Butler Masters
ea372bd0cd get_opt_*: Add ses parameter
Add a session parameter to get_opt_ and its wrappers in preparation for session-specific and domain-specific options.
2007-08-28 17:24:59 +00:00
Miciah Dashiel Butler Masters
3975d28bce Merge commit 'origin/elinks-0.12'
Conflicts:

	doc/Doxyfile.in
	src/protocol/bittorrent/common.h
2007-08-28 14:47:39 +00:00
Jonas Fonseca
5f18156708 Change protocol/test to use the shell-based test infrastructure 2007-08-10 13:30:28 +02:00
Jonas Fonseca
d083619988 Fix doxygen warning about list end marker 2007-08-08 14:24:55 +02:00
Jonas Fonseca
4e710a3aa6 Doxygenate main header files of src/protocol/bittorrent 2007-08-08 13:20:26 +02:00
Kalle Olavi Niemitalo
fd902e81da Rewrite wiki to en.wikipedia.org, avoid server bug.
<http://www.wikipedia.org/w/wiki.phtml?search=sue%20lawley>
incorrectly redirects to
<http://en.wikipedia.org/w/wiki.phtml?search=sue%2520lawley>
which searches for "sue%20lawley" rather than "sue lawley".
By using en.wikipedia.org directly, we avoid the server bug.
Prompted by an elinks-users post on 2007-07-27.

I asked on #wikimedia-tech, and www.wikipedia.org does always
redirect to en.wikipedia.org; it does not guess any other
language based on headers or IP addresses or such.  Also, the
redirection exists only for compatibility, and skipping it
avoids a few roundtrips to the server.  So this change is good
even if the server is eventually fixed.
2007-07-30 15:07:20 +03:00
Kalle Olavi Niemitalo
2437d35904 Merge commit 'pasky.or.cz/elinks-0.12' into elinks-0.13
There were conflicts in src/document/css/ because 0.12.GIT switched
to LIST_OF(struct css_selector) and 0.13.GIT switched to struct
css_selector_set.  Resolved by using LIST_OF(struct css_selector)
inside struct css_selector_set.
2007-07-28 03:22:29 +03:00
Kalle Olavi Niemitalo
96176a8c77 Declare element types of lists. 2007-07-26 22:47:23 +03:00
Kalle Olavi Niemitalo
d3d2bb26c5 New macro LIST_OF for better Doxygen support. 2007-07-26 22:45:51 +03:00
Jonas Fonseca
39a50f07c0 Add .gitignore file listing the test_uri program 2007-07-24 12:35:11 +02:00
Kalle Olavi Niemitalo
ab9e0821d6 Merge commit 'pasky.or.cz/elinks-0.12' into elinks-0.13 2007-07-22 18:48:45 +03:00
Kalle Olavi Niemitalo
56d3f4ff6c Bug 744: Consume semicolons and fix parameters of stubs.
Most stub protocol handlers were protocol_external_handler_T when they
should have been protocol_handler_T.
2007-07-19 17:07:28 +03:00
Jonas Fonseca
d26b7b0b23 Add stub.o to cleaned files and more protocol module and handler stubs 2007-07-19 15:46:31 +02:00
Kalle Olavi Niemitalo
a2f3ec1ef7 Bug 744: More tests and fix failures. 2007-07-19 14:28:20 +03:00
Kalle Olavi Niemitalo
273ae1ff6d Bug 744: Add tests. There are four failures. 2007-07-19 13:46:47 +03:00
Jonas Fonseca
4f0aaa166e Remove normalization of "//" to "/"
This patch changes normalize_uri() to no replace "//" with "/" in URIs. This
fixed this bug but will also lead to possibility that duplicate entries can
exist in ELinks' cache. ELinks might be able to detect in another way by
hashing the content or something.

[ From attachment 310 of bug 744.  --KON ]
2007-07-19 11:22:01 +03:00
Kalle Olavi Niemitalo
375d8cc905 Win32: Don't check file_is_dir if name ends with backslash. 2007-07-18 00:25:07 +03:00
Kalle Olavi Niemitalo
131cf0dd73 Win32: End local subdir HREFs with "/" not "\".
The href attribute is supposed to be URL and so the directory
separator should not depend on the conventions of the local operating
system.
2007-07-18 00:24:09 +03:00
Kalle Olavi Niemitalo
8097929290 Merge with #elinks-0.12 2007-07-16 00:18:17 +03:00
Kalle Olavi Niemitalo
6117f8a164 Name the exec_on_terminal() fg values. 2007-07-15 23:46:18 +03:00
Kalle Olavi Niemitalo
4e2e8b219f http doc: "e.g." rather than "ie." when it's an example 2007-07-12 00:22:26 +03:00
Kalle Olavi Niemitalo
eccc8c23f0 Merge with http://elinks.cz/elinks.git#elinks-0.12 2007-07-09 16:03:06 +03:00
Kalle Olavi Niemitalo
028145ac10 Define BITTORRENT_NULL_ID in common.c; declare extern in common.h.
This change avoids linker warnings when building with Debian tcc
0.9.23-4 + patch from Debian bug 418360:

      [LD]   src/protocol/bittorrent/lib.o
bittorrent.o: 'BITTORRENT_NULL_ID' defined twice
common.o: 'BITTORRENT_NULL_ID' defined twice
connection.o: 'BITTORRENT_NULL_ID' defined twice
dialogs.o: 'BITTORRENT_NULL_ID' defined twice
peerconnect.o: 'BITTORRENT_NULL_ID' defined twice
peerwire.o: 'BITTORRENT_NULL_ID' defined twice
piececache.o: 'BITTORRENT_NULL_ID' defined twice
tracker.o: 'BITTORRENT_NULL_ID' defined twice
2007-07-09 15:55:42 +03:00
Kalle Olavi Niemitalo
0cf15ca9d9 URI: Inline check_uri_file.
And reorder the characters in the string given to strcspn(), to match
their expected order in the URI.  This is also how strcspn() is called
elsewhere in uri.c.
2007-06-17 19:50:05 +03:00
Witold Filipczyk
581ef57bb4 URI file: Fixed. CGI scripts work, URI fragments work too. 2007-06-17 19:46:07 +03:00
Witold Filipczyk
4fe68ce6fd uri, file: Commented out broken code.
CGI scripts using GET method didn't work.
2007-06-17 19:45:55 +03:00
Jonas Fonseca
ba66ff37db Simplify TESTDEPS maintainance by adding common objects in Makefile.lib 2007-05-26 14:04:29 +02:00
Jonas Fonseca
8bfab2242e Fix 'make test' dependency when building test utility programs
Problems was caused by undefined symbols:

	src/util/conv.c:308: undefined reference to `is_cp_utf8'
	src/util/conv.c:320: undefined reference to `cp2u'
2007-05-26 13:46:12 +02:00
Kalle Olavi Niemitalo
45d1750d03 Bug 914: Don't let UTF-8 I/O affect internal representations.
Use it for the actual I/O only.  Previously, defining CONFIG_UTF8 and
enabling UTF-8 used to force many strings to the UTF-8 charset
regardless of the terminal charset option.  Now, those strings always
follow the terminal charset.  This fixes bug 914 which was caused
because _() returned strings in the terminal charset and functions
then assumed they were in UTF-8.  This reduction in the effects of
UTF-8 I/O may also simplify future testing.
2007-05-20 15:31:02 +03:00
Laurent MONIN
0b98c5051b Fix trailing whitespaces 2007-04-26 15:02:04 +02:00
Kalle Olavi Niemitalo
049cc9c6b3 Bug 941: Survive an unexpected number of 227 or 229 FTP responses.
And document the functions a little.

[ From commit 71ff470f2e in ELinks
  0.11.2.GIT.  --KON ]
2007-04-12 01:02:00 +03:00
Kalle Olavi Niemitalo
9955ca8e5a do_smb: URI-encode the username and password.
I tested that this does the right thing for the username "Kalle %50"
(encodes it to "Kalle%20%2550", and libsmbclient then decodes back).
2007-03-25 12:13:46 +03:00
Kalle Olavi Niemitalo
d30eb255ce do_smb: Don't decode_uri.
libsmbclient will decode the URI on its own, so if ELinks does that too,
file names like "2%200" will be incorrectly handled.
2007-03-24 21:19:41 +02:00
Kalle Olavi Niemitalo
2558688456 Merge with http://elinks.cz/elinks.git 2007-03-22 07:48:49 +02:00
Laurent MONIN
90980a944e Mark all module names for translation and include needed header files. 2007-03-21 11:01:06 +01:00
Kalle Olavi Niemitalo
62bdfcf732 ftp: Decode strftime results from the system codepage. 2007-03-20 21:34:39 +02:00
Kalle Olavi Niemitalo
ef1d6c563d ftp: Collect HTML formatting parameters into a structure. 2007-03-20 21:30:20 +02:00
Kalle Olavi Niemitalo
c8eccc486b ftp: Allocate a larger buffer for the timestamp string. 2007-03-20 21:28:30 +02:00
Kalle Olavi Niemitalo
9d45ff5be1 ftp: Don't pad the timestamp column with spaces. 2007-03-20 21:26:46 +02:00
Kalle Olavi Niemitalo
3c6c79a637 show_http_error_document: Generate a charset parameter. 2007-03-20 20:53:03 +02:00
Kalle Olavi Niemitalo
9a8fa9d7db file: Directory listings are in the system charset.
Give them a corresponding Content-Type header.  This must go in
cached->head because cached->content_type is supposed to be just
type/subtype.  It will also be deduced from cached->head, so don't set
it separately.
2007-03-20 20:50:41 +02:00
Kalle Olavi Niemitalo
44adb76799 Use add_string_to_string where applicable. 2007-03-18 20:29:08 +02:00
Kalle Olavi Niemitalo
3ee04479d4 init_directory_listing: Link to original URLs. Decode for display only.
HTML-escape all strings that are not intended to contain markup.
2007-03-18 11:04:02 +02:00
Kalle Olavi Niemitalo
b48a2d660d More const in URI functions.
Not yet all of them, though.
2007-03-18 09:57:29 +02:00
Kalle Olavi Niemitalo
c6b8fa7151 ftp, add_file_cmd_to_str: Check errors from string functions.
Use goto for error handling.  Free all strings in the same place.
2007-03-18 09:32:47 +02:00
Kalle Olavi Niemitalo
adfde652b9 Reject CR and LF characters in FTP pathnames. 2007-03-18 08:53:56 +02:00
Witold Filipczyk
3f4de99f16 ftp: ftp didn't handle filenames with spaces. 2007-03-18 08:15:54 +02:00
Kalle Olavi Niemitalo
a495f6d26a Cast the NULL argument of string_concat to unsigned char *.
string_concat reads the args with va_arg(ap, const unsigned char *),
and the NULL macro may have the wrong type (e.g. int).

Many places pass string literals of type char * to string_concat.
This is in principle also a violation, but I'm ignoring it for now
because if it becomes a problem with some C implementation, then so
will the use of unsigned char * with printf "%s", which is so
widespread in ELinks that I'm not going to try fixing it now.
2007-03-11 13:01:50 +02:00
Kalle Olavi Niemitalo
7645a836fc Cast the NULL argument of straconcat to unsigned char *.
straconcat reads the args with va_arg(ap, const unsigned char *),
and the NULL macro may have the wrong type (e.g. int).

Many places pass string literals of type char * to straconcat.  This
is in principle also a violation, but I'm ignoring it for now because
if it becomes a problem with some C implementation, then so will the
use of unsigned char * with printf "%s", which is so widespread in
ELinks that I'm not going to try fixing it now.
2007-03-11 12:59:11 +02:00
Kalle Olavi Niemitalo
a05f7203cd Cast variadic arguments of getml to void *.
getml reads the args with va_arg(ap, void *), and the NULL macro in
particular may have the wrong type.
2007-03-11 12:41:17 +02:00
Kalle Olavi Niemitalo
801d520ddd Fix compiler errors without HAVE_VARIADIC_MACROS. 2007-03-11 12:22:02 +02:00
Kalle Olavi Niemitalo
2b7788614f Type-check button arguments of msg_box.
Don't cast function pointers; calling functions via pointers of
incorrect types is not guaranteed to work.  Instead, define the
functions with the desired types, and make them cast the incoming
parameters.  Or define wrapper functions if the return types don't
match.

really_exit_prog wasn't being used outside src/dialogs/menu.c,
and I had to change its parameter type, so it's now static.
2007-03-10 23:50:56 +02:00
Kalle Olavi Niemitalo
701e7e3e64 cgi: Avoid assertion failure when the POST data is empty. 2007-03-10 16:56:16 +02:00
Witold Filipczyk
035ce283c7 cgi: Fix the possible memleak and close pipes in case of error. 2007-03-10 13:45:56 +02:00
Witold Filipczyk
eef7924ff1 POST method of CGI did not work. It works now. 2007-03-10 13:45:35 +02:00
Kalle Olavi Niemitalo
4c636d74f1 cgi: Ensure correct type of NULL pointer to variadic execl. 2007-03-10 13:19:31 +02:00
Witold Filipczyk
2828d587b2 cgi: set_nonblocking_fd
[ This is part of commit 71adb0e6cc
  from the witekfl branch.  The SMB part is in commit
  36477ffa45, and the FSP part is
  in commit 93f3dc3bbf.  --KON ]
2007-03-10 13:10:35 +02:00
Kalle Olavi Niemitalo
87431832be Document the syntax of protocol.rewrite.default_template. 2007-03-10 12:15:06 +02:00
Kalle Olavi Niemitalo
c068ca92c0 get_http_error_document: Change "happenned" to "happened". 2007-03-10 11:16:26 +02:00
Kalle Olavi Niemitalo
f2fc402093 Merge with http://elinks.cz/elinks.git 2007-03-06 16:01:21 +02:00
Kalle Olavi Niemitalo
f905379aed smb: Use atol rather than atoi for file sizes.
Corresponds to FSP commit 9f47368894.
2007-03-06 15:59:14 +02:00
Kalle Olavi Niemitalo
3b634ffee6 smb: Don't call qsort with a NULL pointer.
Corresponds to FSP commit 97edc3a2cc.
2007-03-06 15:59:06 +02:00
Kalle Olavi Niemitalo
6ae6c0b438 smb: Remove a cast.
Corresponds to FSP commit 95a377e81b.
2007-03-06 15:59:00 +02:00
Kalle Olavi Niemitalo
846a368fb0 smb: Assert that there is room for a terminating null.
Corresponds to FSP commit 23b4b912ac.
2007-03-06 15:58:50 +02:00
Kalle Olavi Niemitalo
588375444b smb: Comment about not freeing memory in the child process.
Corresponds to FSP commit 368a749123.
2007-03-06 15:58:45 +02:00
Kalle Olavi Niemitalo
146a605938 smb: Call close_socket(socket) rather than close(socket->fd).
Corresponds to FSP commit 3ba31763a9.
2007-03-06 15:58:38 +02:00
Kalle Olavi Niemitalo
c19ad66070 smb: Comment and FIXME about closing file descriptors.
Corresponds to FSP commit 1ad016bdd5.
2007-03-06 15:58:28 +02:00
Kalle Olavi Niemitalo
e08d040c4c smb: Don't cast the qsort comparison function pointer.
Inspired by FSP commit c3a6ca3ef0.
This time, the cast was a no-op though.
2007-03-06 15:58:24 +02:00
Kalle Olavi Niemitalo
9665f1b813 smb: More const.
Inspired by FSP commit c06d6ba5d0.
2007-03-06 15:58:07 +02:00
Kalle Olavi Niemitalo
327de14aa8 smb: Fix libsmbclient 3.0.10 compatibility.
Also, allocate memory for only one copy of each comment string, rather
than two.
2007-03-06 15:57:58 +02:00
Kalle Olavi Niemitalo
f621ed63b4 Revert 11e6aa8d97, "Bug 944, SMB: Fix leaks and libsmbclient 3.0.10 compatibility."
Revert commit 11e6aa8d97.
It is not useful to complicate the code to free the memory,
because the process is soon going to exit, and it has inherited
a lot more memory allocations from its parent.

The libsmbclient 3.0.10 compatibility changes are good though.
I'll re-apply them soon enough.
2007-03-06 15:57:40 +02:00
Kalle Olavi Niemitalo
e517ef22a9 fsp: Try to recover from ABI mismatches caused by _FILE_OFFSET_BITS. 2007-03-06 15:57:18 +02:00
Laurent MONIN
d7400bed08 asprintf() is not used in this file. 2007-03-05 22:04:34 +01:00
Laurent MONIN
5acb3a68fb If there is nothing to write do not even open the file for write (test
formdata length). Patch by Alexey Tourbin.
2007-03-05 21:37:24 +01:00
Laurent MONIN
edb8d9001c If there is nothing to write do not even open the file for write. Patch
by Alexey Tourbin.
2007-03-05 21:34:45 +01:00
Laurent MONIN
4b9ddf1481 Take care of fwrite() and fclose() return values. Patch by Alexey Tourbin. 2007-03-05 21:30:16 +01:00
Laurent MONIN
6bdc34cfbc Unlink file on error. Patch by Alexey Tourbin. 2007-03-05 21:24:02 +01:00
Laurent MONIN
0a8b52282c formfd -> fd, formfile -> fp, formfilename -> filename. Idea by Alexey
Tourbin.
2007-03-05 21:17:09 +01:00
Kalle Olavi Niemitalo
9f47368894 fsp: Try to support large files.
FSP v2 uses 32-bit file offsets in its UDP packets and cannot get past
4 GiB.  ELinks should however try not to wrap the numbers to negative
at 2 GiB, if it is built with large file support.
2007-03-05 22:09:17 +02:00
Kalle Olavi Niemitalo
1d0a3e9f7c fsp: Call fsp_closedir also if protocol.fsp.sort is true. 2007-03-05 22:01:22 +02:00
Kalle Olavi Niemitalo
0eb0f05b35 fsp: Don't call decode_uri(NULL). It will crash. 2007-03-05 21:59:34 +02:00
Kalle Olavi Niemitalo
97edc3a2cc fsp: Don't call qsort with a NULL pointer. 2007-03-05 21:36:36 +02:00
Kalle Olavi Niemitalo
f1d400ab3e fsp: Use copy_struct rather than memcpy. 2007-03-05 21:27:32 +02:00
Kalle Olavi Niemitalo
bb79836cb7 fsp: HTML-encode file names in the directory listing. 2007-03-05 21:24:25 +02:00
Kalle Olavi Niemitalo
380deb2c1d fsp: Comment about not calling fsp_close_session on error. 2007-03-05 21:21:26 +02:00
Kalle Olavi Niemitalo
95a377e81b fsp: Remove a cast. 2007-03-05 20:51:38 +02:00
Kalle Olavi Niemitalo
23b4b912ac fsp: Assert that there is room for a terminating null. 2007-03-05 20:50:27 +02:00
Kalle Olavi Niemitalo
368a749123 fsp: Comment about not freeing memory in the child process. 2007-03-05 20:48:17 +02:00
Kalle Olavi Niemitalo
3ba31763a9 fsp: Call close_socket(socket) rather than close(socket->fd). 2007-03-05 20:46:15 +02:00
Kalle Olavi Niemitalo
fb184a4cd0 fsp: prompt_username_pw is in the parent process. 2007-03-05 20:21:24 +02:00
Kalle Olavi Niemitalo
1ad016bdd5 fsp: Comment and FIXME about closing file descriptors. 2007-03-05 20:20:04 +02:00
Kalle Olavi Niemitalo
c3a6ca3ef0 fsp: Don't cast the qsort comparison function pointer.
Cast the parameters of the function instead.  The C standard does not
guarantee that a function can be properly called via a pointer of a
different type.
2007-03-05 20:18:59 +02:00
Kalle Olavi Niemitalo
c06d6ba5d0 fsp: More const. 2007-03-05 20:01:14 +02:00
Kalle Olavi Niemitalo
d17005e23f encode_uri_string: Let name point to const. 2007-03-05 19:59:17 +02:00
Kalle Olavi Niemitalo
136ff42bb1 fsp: Comments about interprocess communication. 2007-03-05 19:32:55 +02:00
Witold Filipczyk
e34d646f1a fsp: remember the username and the password given in the uri.
[ This is half of commit c7f6f76951
  from the witekfl branch.  The SMB half is in commit
  a0db520267.  --KON ]
2007-03-03 17:26:19 +02:00
Witold Filipczyk
05b19b05e6 fsp: call find_auth in both cases.
When the username and the password were given in the uri and when
they weren't. I'm not sure if it changes anything.
2007-03-03 17:25:00 +02:00
Witold Filipczyk
636f4e6aa4 fsp: used strings, encode and decode filenames with spaces. 2007-03-03 17:24:26 +02:00
Witold Filipczyk
93f3dc3bbf fsp: set_nonblocking_fd
[ This is part of commit 71adb0e6cc
  from the witekfl branch.  The SMB part is in commit
  36477ffa45.  The CGI part will
  come later.  --KON ]
2007-03-03 17:24:07 +02:00
Witold Filipczyk
6cf69b2948 fsp: abort connection on empty files.
Empty files were causing 'read from socket' errors.

[ This is half of commit eef1c17dce
  from the witekfl branch.  The SMB half is in commit
  916b5cf545.  --KON ]
2007-03-03 17:20:41 +02:00
Witold Filipczyk
8c5ef76e52 fsp: prompt for password when the authentication fails.
It works only for directory listings.
2007-03-03 17:17:33 +02:00
Witold Filipczyk
a020450830 Removed unneded header file accidentally included by the previous commit. 2007-03-03 17:17:21 +02:00
Witold Filipczyk
ff087c3e06 fsp: Pass the filesize by ctype (stderr). 2007-03-03 17:17:13 +02:00
Witold Filipczyk
b517367cc8 dup2 closes given descriptors, so no need for the explicit close. 2007-03-03 17:17:00 +02:00
Witold Filipczyk
bef03e6106 FSP: The preparation for the error handling.
Numeric codes are returned instead of a plain text in the event
of the fsp error.
2007-03-03 17:15:21 +02:00
Kalle Olavi Niemitalo
174a6459e6 Bug 844: Remove src/protocol/smb/smb.c, superseded by smb2.c. 2007-02-25 23:53:53 +02:00
Kalle Olavi Niemitalo
0212ba7e93 Bug 844, SMB: EACCES from smbc_opendir beats ENOENT from smbc_open. 2007-02-25 23:40:43 +02:00
Kalle Olavi Niemitalo
8a25be932b Bug 844, SMB: HTML-encode file names and comments.
This probably does the wrong thing with non-ASCII characters.
That's just because libsmbclient does not document which charset
it uses: it even reads smb.conf, which then may affect the choice.
2007-02-25 23:28:02 +02:00
Kalle Olavi Niemitalo
11e6aa8d97 Bug 944, SMB: Fix leaks and libsmbclient 3.0.10 compatibility. 2007-02-25 21:15:46 +02:00
Witold Filipczyk
5289a840d8 smb2: Do not use smb_options. 2007-02-25 16:53:54 +02:00
Witold Filipczyk
546a52597f Typo. 2007-02-25 16:53:45 +02:00
Witold Filipczyk
a0db520267 smb: remember the username and the password given in the uri.
[ This is half of commit c7f6f76951
  from the witekfl branch.  The FSP half will come later.  --KON ]
2007-02-25 16:53:35 +02:00
Witold Filipczyk
0c1371b161 smb: minor optimisation. 2007-02-25 16:52:25 +02:00
Witold Filipczyk
0cf6f91394 smb: Encode and decode spaces in filenames. 2007-02-25 16:52:19 +02:00
Witold Filipczyk
28fcc17564 smb: Do not encode ' ' as %20 in base href. 2007-02-25 16:52:07 +02:00
Witold Filipczyk
36477ffa45 smb: set_nonblocking_fd
[ This is part of commit 71adb0e6cc from
  the witekfl branch.  The FSP and CGI parts will come later.  --KON ]
2007-02-25 16:51:53 +02:00
Witold Filipczyk
c828cda079 smb: used string functions in place of printf and puts. 2007-02-25 16:50:22 +02:00
Witold Filipczyk
916b5cf545 smb: abort connection on empty files.
Empty files were causing 'read from socket' errors.

[ This is half of commit eef1c17dce
  from the witekfl branch.  The FSP half will come later.  --KON ]
2007-02-25 16:50:02 +02:00
Witold Filipczyk
f70196dde8 smb: used string functions instead of snprintf. 2007-02-25 16:47:21 +02:00
Witold Filipczyk
a584aacb26 smb2: show comments. 2007-02-25 16:47:06 +02:00
Witold Filipczyk
d399c809f7 The SMB protocol handling using libsmbclient. 2007-02-25 16:46:55 +02:00
Kalle Olavi Niemitalo
927f08ec6a Revert 5f36ad302e, to make bug 534 less likely to occur.
Revert commit 5f36ad302e,
"Decompression: write PIPE_BUF bytes to the pipe at once if possible."
Without this reversion, <http://blogs.msdn.com/> displays as garbage.
It has Content-Encoding: gzip and Transfer-Encoding: chunked.
2007-02-25 16:09:25 +02:00
Kalle Olavi Niemitalo
4d7d8acaf5 Bug 937, http_send_header: indentation fix 2007-02-25 15:14:18 +02:00
Kalle Olavi Niemitalo
4e4dddb4cc Bug 937, http_send_header: Don't send all headers to CONNECT proxy. 2007-02-25 12:49:56 +02:00
Witold Filipczyk
728c97556d bzip2: Used the patch from bug the 517.
Removed the bzip2-pipe.patch from contrib.
2007-02-24 16:12:49 +02:00
Witold Filipczyk
0fe90d6ac6 bzip2: added the configure option --enable-bzip2-encoding
Use it with the patched bzlib. The patch in contrib.
Added the bzip2-pipe.patch.README.
2007-02-24 16:12:39 +02:00
Witold Filipczyk
5f36ad302e Decompression: write PIPE_BUF bytes to the pipe at once if possible. 2007-02-24 16:12:24 +02:00
Witold Filipczyk
24a96717a6 BZ_bzRead2 is based on BZ_bzRead from the bzlib library.
Slightly modified to handle reading from the pipe. This fixes the bug 517.
2007-02-24 16:12:11 +02:00
Witold Filipczyk
573bd43e0c The gzip decompression simplification. gzclearerr does the job. 2007-02-24 16:12:02 +02:00
Kalle Olavi Niemitalo
c62e9f9eae check_http_server_bugs: Make buggy_servers[] const. 2007-02-04 15:30:51 +02:00
Kalle Olavi Niemitalo
c8a57c562f Make http_code[] const; make http_code[].str point to const. 2007-02-04 15:18:45 +02:00
Kalle Olavi Niemitalo
d7e4b57146 Make instances of struct listbox_ops const. 2007-02-04 15:17:49 +02:00
Kalle Olavi Niemitalo
a5e321cb2b Make instances of struct hierbox_browser_button const.
And explicitly disable the "Save" buttons in anonymous mode,
even though they are currently inside #if 0.
2007-02-04 13:54:07 +02:00
Kalle Olavi Niemitalo
31dc108c73 end_with_known_tld: Make tld[] const. 2007-02-04 13:46:45 +02:00
Kalle Olavi Niemitalo
18771fdedb Bug 924, my_timegm: Added a comment about 2100 not being a leap year. 2007-01-13 15:38:02 +02:00
Kalle Olavi Niemitalo
01fdf6c4d3 Bug 923: Added comments about potential time_t truncation.
And removed Miciah's portability question; MSVC++2005 already
has a time_t longer than long, so assuming that time_t is long
is surely not portable.
2007-01-13 15:26:21 +02:00
Kalle Olavi Niemitalo
9385c93ffd Move README.timegm to the same directory as date.c. 2007-01-13 10:01:51 +02:00
Jonas Fonseca
7589d4457a Bug 899: Fix size handling in FTP directory listings
This fixes parse_ftp_number to use off_t instead of long to store its
(intermediate) result and return type. It also introduces an OFFT_MAX type
"limit" that is used for validating the size of the parsed number.

A test-case for was added in 37c9bf3f75 to
test-ftp-parser and the patch has been confirmed to fix the test-case by
adamg and me.  This closes bug 899, which is a duplicate of debian bug
403139.
2006-12-18 18:51:57 +01:00
Jonas Fonseca
37c9bf3f75 Test response from server mentioned in debian bug 403139
The problem is in the FTP directory listing and number parser which stores
it intermediate results in a variable of type long.
2006-12-15 22:36:53 +01:00
Jonas Fonseca
f90c07d54f Make it possible to request only the password component of an URI
Before it was only to get the password when the user name was also
requested.  This fixes FSP access to password protected directories.

The problem was discovered by Witold and mentioned in the post to
elinks-dev with the message-id: <20061209204151.GA32758@pldmachine> on
2006-12-09.
2006-12-10 21:46:32 +01:00
Kalle Olavi Niemitalo
3988ab97cc about_protocol_handler: Don't define len if CONFIG_SMALL.
It is not used if CONFIG_SMALL is defined, and GCC complained about this.
With -Werror added by --enable-debug, the whole build failed.
2006-12-10 17:16:38 +02:00
Kalle Olavi Niemitalo
bddafe5f7e Document how timer callbacks erase timer IDs; add some assertions.
Tangential to bug 868.
2006-12-02 18:35:03 +02:00
Kalle Olavi Niemitalo
f915c31127 Bug 841, CVE-2006-5925: Prevent enabling the SMB protocol.
src/protocol/smb/smb.c: Added #error directives so that this
vulnerable code cannot be accidentally compiled in.

features.conf: Disable CONFIG_SMB by default and explain why.

configure.in: If CONFIG_SMB is enabled, disable it and warn the user.
This is for people who have customized features.conf.
2006-11-18 20:39:01 +02:00
Kalle Olavi Niemitalo
18f30e7886 decompress_data: Always initialize to_read, avoiding a GCC warning.
"'to_read' may be used uninitialized in this function" was a false warning
but removing it will make important warnings easier to see.
2006-11-11 14:12:39 +02:00
Miciah Dashiel Butler Masters
810a1fc591 data_compress: fix problem with decompression after recent change
Fix bug 834 (various gzip-encoded documents were being truncated),
which I introduced with commit e441361f2c.

Thanks to Witek for reporting the bug, Kalle for determining the
problematic commit, and Jonas for letting me know about the bug report(!).
2006-11-10 15:57:23 +00:00
Jonas Fonseca
b61d8d06d9 Fix crashes with various bogus BitTorrent URLs
... mainly bittorrent:// and bittorrent://x

The BitTorrent URL is supposed to contain an embedded URL pointing to a
metainfo file. If this is not the case a "custom" error message will be
shown. Also fixes calling of free_list() on an uninitialized list.

Closes bug 729.
2006-11-06 16:24:07 +01:00
Jonas Fonseca
f33d9b004d Fix handling of links using file://localhost/
A simple "update" of Hugo Haas' patch posted for bug 107. This of course
also affects the (undocumented?) feature of file:// refering to the local
directory in that directories named "localhost" can no longer be displayed
using file://localhost. Nobody should do that anyway.
2006-11-06 05:43:48 +01:00
Miciah Dashiel Butler Masters
dfbbde1952 decompress_data: move a comment
This should have been done in commit e441361f2c.
2006-11-05 04:24:48 +00:00
Miciah Dashiel Butler Masters
6f8f41e20d decompress_data: change initial malloc size, drop init variable
Adjust the size of to_read for the initial read instead of setting the init
flag and using that later to check whether to read a smaller amount than
the value in to_read. This also affects the realloc call on the initial
read, which was allocating more memory than necessary (altho this
discrepency would be corrected with the realloc for the next read).
2006-11-05 04:21:52 +00:00
Miciah Dashiel Butler Masters
e441361f2c decompress_data: make the current state more explicit
Introduce and use the local variable state instead of determining the
current state from to_read. Localise to_read to the loop.
2006-11-05 03:42:16 +00:00
Miciah Dashiel Butler Masters
157b08609f decompress_data: remove some unnecessary code 2006-11-05 03:17:30 +00:00
Witold Filipczyk
4bf3e2693b "If-Modified-Since" second approach.
Added document.cache.interval option. When time elapsed since previous access
to the document is less than interval then the document is taken from
the cache. Otherwise the request with filled "If-Modified-Since" and/or
"If-None-Match" header field is sent. By default interval is set to 10 minutes.
This requires the correct time to be set on your machine.
2006-10-26 11:53:30 +02:00
Petr Baudis
9c8fff1100 Merge with /srv/git/elinks.git 2006-10-12 23:44:12 +02:00
Witold Filipczyk
8d6a73646b Commented code related to "If-Modified-Since" (infinite loop). 2006-10-12 14:07:58 +02:00
Petr Baudis
647db326fb Merge with /srv/git/elinks.git 2006-10-12 11:11:05 +02:00
Petr Baudis
f06aed0d8f More verbose assert messages for invalid h1/h2 in POST buffer 2006-10-12 11:10:41 +02:00
Witold Filipczyk
cc6c59d932 Handling If-Modified-Since. 2006-10-08 16:24:47 +02:00
Kalle Olavi Niemitalo
92cb452a9e Rename CONFIG_UTF_8 to CONFIG_UTF8.
The configure script no longer recognizes "CONFIG_UTF_8=yes" lines
in custom features.conf files.  They will have to be changed to
"CONFIG_UTF8=yes".  This incompatibility was deemed acceptable
because no released version of ELinks supports CONFIG_UTF_8.

The --enable-utf-8 option was not renamed.
2006-09-17 16:12:47 +03:00
Jonas Fonseca
b9d66bd9bd Fix compilation on Minix3
- Include arpa/inet.h to get hton* ntoh* functions.
 - Use socklen_t instead of int.
 - Try to define PF_INET to AF_INET if it doesn't exist.

Reported-by: Andy Tanenbaum <ast@cs.vu.nl>
2006-08-22 22:18:00 +02:00
Witold Filipczyk
8615cb529e Added output parameter to the get_filesize_from_RETR. It indicates
whether we ought to add the conn->progress->start to
the conn->est_length. Currently displaying resuming works correctly with
ftp.task.gda.pl and ftp.pld-linux.org.
2006-08-19 09:11:53 +02:00
Witold Filipczyk
77470526ba vsftpd shows total filesize, so I commented out addition.
I know that this is not correct for every server.
Show me ftp sites, where resuming displays wrong filesize.
2006-08-19 00:06:04 +02:00
Witold Filipczyk
5e1a1a215a Fixed about: 2006-08-13 08:58:20 +02:00
Kalle Olavi Niemitalo
ef2f6383c6 do_auth_dialog: Don't claim that the authentication is for HTTP. 2006-08-06 20:02:36 +00:00
Kalle Olavi Niemitalo
ca496aa2dd do_auth_dialog: Fix off-by-one error leading to reads of uninitialized memory.
This bug manifested as a junk character at the end of the text in the
authentication dialog.
2006-08-06 20:02:35 +00:00
Witold Filipczyk
2e818771d0 Made directory listings XML compliant 2006-07-31 13:24:39 +02:00
Laurent MONIN
1136aefb71 Trim trailing whitespaces. 2006-07-27 09:51:10 +02:00
Witold Filipczyk
2a6125e3d0 Merge with utf8. src/document/plain/renderer.c replaced by utf8 version 2006-07-21 13:12:06 +02:00
Laurent MONIN
c2ca89cab1 HTTP DIGEST AUTH: fix wrong sizeof(), patch by Vitaly Lavrov (added to
AUTHORS). Close bug 769.
2006-07-05 15:07:48 +02:00
Witold Filipczyk
1f747b2299 Local file browsing works under Windows. It is done lame way.
In protocol/common.c length of string is known, so pass it
instead of -1 to encode_uri_string.
Introduced encode_win32_uri_string, because there were problems
with : and \ in base href.
2006-07-02 19:20:27 +02:00
Witold Filipczyk
8fa2b8180e s|/|\|g in directory listings under Windows 2006-07-02 16:48:39 +02:00
Witold Filipczyk
c6426b4634 CHAR_DIR_SEP used in directory listings 2006-07-02 16:38:52 +02:00
Witold Filipczyk
3fd1ac87bd STRING_DIR_SEP in file redirects 2006-07-02 09:01:14 +02:00
Miciah Dashiel Butler Masters
888faebaea parse_header_param: better describe behaviour when @ret is NULL
This got lost during merging of Kalle Olavi Niemitalo's patches.
2006-06-23 06:07:22 +00:00
Laurent MONIN
645ee58c83 http_negotiate_get(): only change *is_new on successful allocation. 2006-06-16 16:27:28 +02:00
Laurent MONIN
2217c885b4 http_negotiate: tidy up. 2006-06-16 16:26:20 +02:00
Laurent MONIN
2e0d5aa197 Add forgotten files from negotiate-auth patch. 2006-06-14 20:25:11 +02:00
Laurent MONIN
b373ded19b Trim trailing whitespaces. 2006-06-14 14:46:30 +02:00
Laurent MONIN
4b04a25b32 Support for negotiate-auth, using GSSAPI. It makes possible to
authenticate users by Kerberos. Patch by Karel Zak.
2006-06-14 14:41:59 +02:00
Laurent MONIN
b6e6ac96a3 ftp_process_dirlist(): re-introduce else { ERROR() } part, just drop
#ifdef/#endif.
2006-06-10 01:28:35 +02:00
Laurent MONIN
de2264f712 ftp_process_dirlist(): minor test optiization. 2006-06-10 01:12:38 +02:00
Laurent MONIN
6960fc8feb ftp_process_dirlist(): drop stale debug code, spotted by Miciah. 2006-06-10 00:58:50 +02:00
Miciah Dashiel Butler Masters
14595404d1 ftp_process_dirlist: Rename local variable bufp to line_length. 2006-06-09 21:46:47 +00:00
Miciah Dashiel Butler Masters
71ec83c0de ftp_get_line: Reflow some code. 2006-06-09 21:43:36 +00:00
Miciah Dashiel Butler Masters
2d49225db3 ftp_get_line: Reflow some code. 2006-06-09 21:43:18 +00:00
Miciah Dashiel Butler Masters
e1ea1cf2bb ftp_get_line: Don't update *@len if returning -1. 2006-06-09 21:42:16 +00:00
Miciah Dashiel Butler Masters
ea5b06c329 ftp_process_dirlist: Drop a silly comment. 2006-06-09 21:39:51 +00:00
Miciah Dashiel Butler Masters
4122a97a03 Factor ftp_get_line out of ftp_process_dirlist.
Per Quiznos's suggestion.
2006-06-09 21:38:06 +00:00
Miciah Dashiel Butler Masters
585f7c5f2b ftp_process_dirlist: check for bufl == 0 earlier. 2006-06-09 20:17:57 +00:00
Miciah Dashiel Butler Masters
dafc209c61 Simplify ftp_process_dirlist via memchr. 2006-06-09 20:16:35 +00:00
Miciah Dashiel Butler Masters
8c3d7a8e72 Fix data: protocol
Increment conn->from by the length of the data so that when
abort_connection calls normalize_cache_entry, it doesn't truncate the
cache entry to 0 length.
2006-06-08 17:42:27 +00:00
Kalle Olavi Niemitalo
819b6fab80 parse_header_param stores the string via a pointer parameter.
Its return value is now an enum that lets callers know whether an
error occurred.  However, this commit changes the callers only
minimally, so they do not yet check the return value.
2006-06-05 20:22:53 +00:00
Miciah Dashiel Butler Masters
d6d72a6ff5 Relabel the auth module
As noted by Jonas Fonseca, the auth module is used by FTP as well as HTTP,
so take 'HTTP' out of the name.
2006-06-02 19:08:09 +00:00
Kalle Olavi Niemitalo
d10a489a14 BFU: Mark format strings in struct listbox_ops_messages.
With regular comments in the definition of the structure itself,
and with xgettext:c-format comments in constants of that type,
if xgettext would otherwise guess wrong; so that translators
will know they'll have to double any percent signs they add.
I didn't regenerate PO files, though.
2006-06-02 19:08:09 +00:00
Laurent MONIN
1d3656a317 Pass a pointer to a hash pointer to free_hash() to ensure hash pointer
is NULL on return.
2006-05-31 19:33:36 +02:00
Laurent MONIN
54099f5286 Do not export init_hash(),strhash() and hash_size() anymore, use a
wrapper named init_hash8() instead.
2006-05-31 19:17:01 +02:00
Miciah Dashiel Butler Masters
337958d4e4 Modularise HTTP authentication 2006-05-20 15:01:23 +00:00
Miciah Dashiel Butler Masters
eee3ecdbbc BitTorrent: Remove superfluous check and assignment
unchoke_bittorrent_peer checks and clears peer->remote.choked,
so do not do so in the caller.
2006-05-20 12:13:32 +00:00
Miciah Dashiel Butler Masters
fe07757574 BitTorrent: Remove a superfluous check and assignment
choke_bittorrent_peer checks and sets peer->remote.choked,
so do not do it again in the caller.
2006-05-20 12:13:30 +00:00
Witold Filipczyk
f377e6f4af copiousoutput: only mark /dev/fd/%d as popen data . I reflect if ELinks may
run out of fds
2006-05-09 09:42:00 +02:00
Witold Filipczyk
4dc4ea47f2 copiousoutput: cleanup after copiousoutput handling. Temporary files should
be deleted
2006-05-09 09:36:16 +02:00
Witold Filipczyk
9c3817675f set_nonblocking_fd seems to be superfluous 2006-05-06 08:07:38 +02:00
Witold Filipczyk
c283f8cfd9 Gradual rendering in pager mode. ELinks is almost as good as less.
TODO: cg-log -c | elinks
2006-05-05 21:12:10 +02:00
Witold Filipczyk
e0103c2c68 Drop unnecessary cgi_pipes[2] 2006-05-03 21:46:39 +02:00
Witold Filipczyk
8b77bc6617 enum connection_state instead of int to satisfy tcc 2006-04-05 16:27:16 +02:00
Witold Filipczyk
55bd690b88 Files under /usr/share/doc/ncurses-c++-devel-5.5 (directory with
+ in filename) were unreachable. This is fix for it
2006-04-04 20:21:20 +02:00
Witold Filipczyk
1fc28980d7 Parsing filesize on ftp.task.gda.pl 2006-03-16 22:13:40 +01:00
Pavol Babincak
8b9d06c977 Convert link titles to correct codepage before displaying it on screen.
Don't replace UTF-8 bytes with '*'. Probably there is need to do better
check what will be displayed.

Also get_current_link_title is no longer pretty and trivial. (o:
2006-03-13 01:54:34 +01:00
Kalle Olavi Niemitalo
4217f2c555 Merge with http://elinks.cz/elinks.git 2006-02-18 12:21:47 +02:00
Miciah Dashiel Butler Masters
190259ca22 mem_alloc_align: drop the obj type parameter
Instead use the object itself, i.e., replace typeof(obj) with
typeof(**ptr).
2006-02-17 17:32:59 +00:00
Kalle Olavi Niemitalo
a1f26c1f25 Merge with http://elinks.cz/elinks.git 2006-02-12 17:54:22 +02:00
Miciah Dashiel Butler Masters
daad05c055 Don't check is_in_progress_state before calling cancel_download
With commit 637f1e82e6 ('NET: Merge
change_connection into cancel_download'), cancel_download returns
immediately if the connection is not in a result state, so save some
code by not checking is_in_progress_state before calling cancel_download.
2006-02-12 15:41:21 +00:00
Kalle Olavi Niemitalo
416bd01269 Merge with http://elinks.cz/elinks.git 2006-02-12 00:34:53 +02:00
witekfl
15b52b62e4 REFERRER is back 2006-02-11 19:11:50 +01:00
Petr Baudis
c0f98c34ce Revert witekfl's e723ddaee6
This is utterly silly and breaks plenty of stuff - Witek, you CAN'T append
slashes to all hosts just because some silly referer needs it, everywhere
else we NEED the hosts without slashes!
2006-02-11 17:44:54 +01:00
Kalle Olavi Niemitalo
0066214b47 Merge with http://elinks.cz/elinks.git 2006-02-10 09:15:12 +02:00
witekfl
e723ddaee6 Add slash after host. Required by URI_HTTP_REFERRER_HOST 2006-02-09 22:46:44 +01:00
Jonas Fonseca
4b91866c84 GOPHER: Blast end_gopher_connection which now only wraps abort_connection 2006-02-08 21:47:54 +01:00
Jonas Fonseca
854bb90d88 NET: Move cache entry normalization to abort_connection
It simplifies the code and ensures that stuff like conn->from is properly
updated.
2006-02-08 21:40:08 +01:00
Jonas Fonseca
4bfd40ec10 NNTP: Use state instead of conn->state, since it hasn't been updated yet
Fixes: 1735f96a87
2006-02-08 21:04:19 +01:00
Jonas Fonseca
1735f96a87 FTP, NNTP: Normalize the cache entry before setting the connection state
... so it is normalized when the download callbacks are called.
2006-02-08 20:45:15 +01:00
Kalle Olavi Niemitalo
b1f8756c59 Merge with http://elinks.cz/elinks.git 2006-02-05 17:48:43 +02:00
Jonas Fonseca
3324496b57 NET: Replace change_connection with cancel_download and move_download
This simplifies unqueuing of downloads and makes it more obvious that
the 'change' being performed is to migrate or replace an old download
handle with a new one.
2006-02-03 10:44:28 +01:00
Jonas Fonseca
5bf39bd304 FSP: Check and exit the file 'writer' process if writes to stdout fails
This ensures that the 'writer' process will remove itself when the
main ELinks process for some reason decides to shutdown the connection.
Before the 'writer' process would complete it's task taking up unnecessary
system resources.

This is mostly an issue when fetching big files. Therefore only file
fetching is fixed. FIXME added about also checking return codes for write
associated with directory listing.

Reported-by: zas
2006-02-02 16:29:20 +01:00
Jonas Fonseca
4de26051b9 Ignore test files 2006-01-31 22:23:22 +01:00
Miciah Dashiel Butler Masters
db9768963f Merge with git+ssh://pasky.or.cz/srv/git/elinks.git
git+ssh://pasky.or.cz/srv/git/elinks.git
2006-01-30 15:42:03 +00:00
41e8570e64 Merge with git+ssh://pasky.or.cz/srv/git/elinks.git 2006-01-30 12:42:40 +01:00
aed26bf002 Introduced CGI module 2006-01-30 08:56:40 +01:00
Jonas Fonseca
ba2b6e633a DIRLIST:Use directory listing initializer in the Gopher protocol module 2006-01-30 02:41:09 +01:00
Jonas Fonseca
94f4b2fd1d DIRLIST: Cleanup macros used in the FTP directory listing 2006-01-30 01:29:40 +01:00
Jonas Fonseca
d8ef7e1b68 DIRLIST: Use directory listing initializer in the FSP protocol module 2006-01-30 01:25:39 +01:00
Jonas Fonseca
b567f6a5db DIRLIST: Use directory listing initializer in the FTP protocol module 2006-01-30 01:25:30 +01:00
Jonas Fonseca
c96cb0bbae DIRLIST: Use directory listing initializer in the file protocol module 2006-01-30 01:25:18 +01:00
Jonas Fonseca
865af9ac4a DIRLIST: Add helper to at start of (HTML) directory listing 2006-01-30 01:22:31 +01:00
Jonas Fonseca
7d1ff4fbf1 Only add ending slash to directory URLs
Not even to directory names. We don't do that for file: or ftp: protocol.

Fixes: af2cc87054
2006-01-29 18:35:59 +01:00
Laurent MONIN
cf429c4ecc FSP: trim trailing whitespaces. 2006-01-29 18:01:48 +01:00
Laurent MONIN
af2cc87054 FSP: display_entry() cleanup, and mark directories by an ending /
in lists.
2006-01-29 18:01:22 +01:00
Laurent MONIN
0c4bc5a362 FSP: reduce code redundancy, introducing display_entry(). 2006-01-29 17:53:26 +01:00
Laurent MONIN
d07cf588bd FSP: reduce code redundancy. 2006-01-29 17:48:09 +01:00
5511c5b748 Merge with git+ssh://pasky.or.cz/srv/git/elinks.git 2006-01-29 16:51:11 +01:00
Jonas Fonseca
a236608554 Do not set the content type for FSP files
Simplify commit 8d4f44f2f1, in particular
detecting MIME types for files. It is more consistent to do it the way
it was already done by the session/download code.

Instead, write a NUL byte to stderr when getting FSP files and only set
cache->content_type when the header string is non-empty.

Additionally it also moves close(stderr) after the fsp_error() in the
file handling part of do_fsp() so the error message is shown with the
correct type.
2006-01-29 14:27:14 +01:00
46aae704eb Added slash to base href when directory didn't end with '/' 2006-01-29 13:22:05 +01:00
Miciah Dashiel Butler Masters
5bcb1309da Use enum connection_state
Use enum connection_state instead of int in load_uri,
proxy_uri, get_proxy_worker, and get_proxy_uri. See commit
d18809522e. I hope that satisfies TCC.
2006-01-28 20:21:09 +00:00
Laurent MONIN
5114c9d110 Trim trailing whitespaces. 2006-01-28 01:59:22 +01:00
e8030e09fd Set text/plain for errors 2006-01-26 18:35:58 +01:00
8d4f44f2f1 Content-Type handling 2006-01-26 18:20:13 +01:00
f47daa2291 Use slashes after directories. Blocks are not used where there is only
one instruction
2006-01-26 14:34:11 +01:00
Jonas Fonseca
ba3e4a611d Merge with git+ssh://pasky.or.cz/srv/git/elinks.git 2006-01-21 23:38:15 +01:00
d18809522e Make elinks tcc (tiny C compiler) friendly.
If you want to try tcc use CC=tcc ./configure and make LD=tcc.
I built ELinks with tcc, but ELinks segfaults.
2006-01-21 21:33:23 +01:00
Jonas Fonseca
91e8fdf34b Fix the EPLF FTP parser test to run FreeBSD 2006-01-21 08:28:57 +01:00
Jonas Fonseca
c97b4be9b9 Move SUBDIRS and OBJS defining before their conditional defining 2006-01-18 21:53:13 +01:00
Jonas Fonseca
7f076a8832 Also compile in protocol/common when CGI is enabled 2006-01-18 21:50:43 +01:00
witekfl
095e440270 Used protocol/common.h in CGI 2006-01-18 18:11:29 +01:00
Jonas Fonseca
c7bdf62152 Remove unused fsp_info struct; use sizeof(*table); fix dir entry hiliting 2006-01-17 00:54:06 +01:00
Jonas Fonseca
28fbb9317b Simplify URI string grapping; make dir listing more like FTP; use READ_SIZE 2006-01-17 00:40:27 +01:00
Laurent MONIN
a9907297b4 Merge with git+ssh://pasky.or.cz/srv/git/elinks.git 2006-01-17 00:22:40 +01:00
Jonas Fonseca
54863e537f Minor space cleanups; use pid_t; abort_connection() will close_socket() 2006-01-17 00:06:24 +01:00
Laurent MONIN
491654975d Trim trailing whitespaces. 2006-01-16 23:51:02 +01:00
Laurent MONIN
8fe86eac0b Typo fix. 2006-01-16 23:50:34 +01:00
Jonas Fonseca
bb12fbca37 Add protocol/common files ;) 2006-01-16 23:42:17 +01:00
Jonas Fonseca
0955086a6f Move close_all_non_term_fd() shared by SMB and FSP to protocol/common
Stick a note near the OBJS sorting that it is there also to filter out
duplicates, which are now occuring with SMB and FSP compiled in.
2006-01-16 23:32:27 +01:00
04b253eef9 Make PHP 5 happy. 2006-01-16 11:45:17 +01:00
bb9b4437fa - FSP protocol 2006-01-16 11:40:13 +01:00
Jonas Fonseca
2748d043f9 Autogenerate .vimrc files and put the master in config/vimrc
This changes the init target to be idempotent: most importantly it will now
never overwrite a Makefile if it exists. Additionally 'make init' will
generate the .vimrc files. Yay, no more stupid 'added fairies' commits! ;)
2006-01-15 18:38:58 +01:00
Kalle Olavi Niemitalo
a7e465d785 Merge with http://elinks.cz/elinks.git 2006-01-14 21:38:13 +02:00
Kalle Olavi Niemitalo
89fe822f70 Merge with 6a9ea02f3a
(via http://elinks.cz/elinks.git)
2006-01-14 21:30:12 +02:00
Jonas Fonseca
3e202cd2ef Include osdep/stat.h to get S_* macros 2006-01-12 03:26:58 +01:00
Laurent MONIN
151bcbd3a2 Prefer S_I?USR and S_IRWXU over obsolete S_IREAD, S_IWRITE, S_IEXEC. 2006-01-10 23:40:39 +01:00
Laurent MONIN
88de36b8d2 Use mode_t and mode macros everywhere. 2006-01-10 23:36:06 +01:00
Laurent MONIN
9b88da873a Use mode_t and mode macros everywhere. 2006-01-10 23:35:22 +01:00
Kalle Olavi Niemitalo
9deceafa0b Merge with http://elinks.cz/elinks.git 2006-01-10 21:02:21 +02:00
Jonas Fonseca
b673e64e10 As a stop gap measure avoid using NULL entry->nonce and realms
Reported by xmath. Obviously needs to be looked into.
2006-01-10 15:35:15 +01:00
Jonas Fonseca
9877579c63 This years batch of Gopher fixes
Two crash fixes, and really make the directory 'view' the default.
2006-01-09 15:13:44 +01:00
Kalle Olavi Niemitalo
2cfd0a9bb4 Merge with http://elinks.cz/elinks.git 2006-01-09 02:20:27 +02:00
Laurent MONIN
8fe7eb0357 check_uri_file(): use strcspn(). 2006-01-08 19:06:46 +01:00
Laurent MONIN
8f2d4860bc Trim trailing whitespaces. 2006-01-07 21:02:51 +01:00
Laurent MONIN
eda6529ced check_uri_file(): optimize by not using strlen() more than needed. 2006-01-07 21:00:51 +01:00
Laurent MONIN
9183e0cf04 check_whether_file_exists(): optimize by not using strlen() more than
needed.
2006-01-07 20:59:34 +01:00