Commit graph

10017 commits

Author SHA1 Message Date
Oliver Schmidt f6b315a17f Fixed history handling.
- The wraparound handling when using the history with the 'back' button is actually depending on history_last being unsigned (which is the default for cc65) so define it explicitly as unsigned to make it work on other targets too.
- As there's no 'forward' button it doesn't make sense to keep history entries after using them with the 'back' button. Clearing them on use on the other hand avoids an "infinite history".
2015-06-05 16:34:57 +02:00
Oliver Schmidt e6903e4e7e Recognize HTTPS.
Although we for sure don't support HTTPS we need to recognize it. Nowadays it has become pretty usual to redirect HTTP URLs to HTTPS URLs in order to force privacy (thanks, NSA !). So far our redirection handler didn't recognize an HTTPS URL as abslute URLs and therefore appended it to the curent URL. This led to an endless redirection loop. Now we recognize the HTTPS redirection and generate a minimal document on the fly to inform the user of (for us unrachable) the redirection target.

HTML links with HTTPS URLs are treated just like fragment-only links meaning that they get simply completely ignored.
2015-06-05 16:26:20 +02:00
Oliver Schmidt 2f2295c182 Correctly initialize 'wordlen'. 2015-06-05 16:26:17 +02:00
Oliver Schmidt e93f9da7af Adjusted coding style. 2015-06-04 22:39:16 +02:00
Oliver Schmidt 448fa88ad8 Fixed handling of empty URLs.
The code to trim spaces from the end of the URL behaved undefined if the URL was empty. That scenario is far from hypothetic as i.e. pressing the 'back' button with no (more) entry in the history yields an empty URL.
2015-06-04 22:00:52 +02:00
Oliver Schmidt 8b0a7a697f Filter excessive newlines.
The way our HTML parser triggers newlines is a guess at best. On the other hand our screen estate is severely limited. Instead of trying to (further) improve the way we translate tags to newlines it seems more reasonable to simply never render more than two successive empty lines.
2015-06-04 21:14:37 +02:00
Oliver Schmidt cdd289a7ff Ignore fragment-only links.
We don't handle URLs with fragments exactly ;-) well - meaning we send the fragment part to the server and we don't display the document starting at the anchor tag. Instead of adding the missing capabilities and thus adding lots of code I instead opted to simply ignore fragment-only links. This approach is based on the practical knowledge that fragments are primarily used for intra-document navigation - and are as such fragment-only links. And as we ignore them anyway when displaying the document it's more ergonomic to not have those links in the first place.
2015-05-25 18:18:44 +02:00
Oliver Schmidt 9b9b92be06 Improved parsing of <SCRIPT> tag.
Complex script code tends to contain other tags inside strings. As we generally don't parse strings we erroneously interpreted those tags. The easiest workaround is to not interpret tags at all until the </SCRIPT> tag is found.
2015-05-25 16:46:23 +02:00
Oliver Schmidt a8837e230c Removed support for <FRAME> tag.
Framesets aren't used nowadays anymore so it seems reasonable to remove support for them in order to save some space.
2015-05-25 16:19:30 +02:00
Oliver Schmidt 4a6909d16a Remove RDC config from retro definitiions.
After the modularization of the Contiki libraries this isn't necessary anymore.
2015-05-25 13:43:11 +02:00
Oliver Schmidt 980d055f72 Allow for attributes in <li> tags.
parse_tag() is called both for attributes inside a tag and the end of the tag itself. For most tags parse_tag() doesn't distinguish both cases. This means that the "tag action" is additionally triggered for every tag attribute. When the tag "action" is setting some state this doesn't hurt. For many tags the "tag action" is to render a newline. Superfluous newlines are sort of acceptable to keep the code as small as possible. However the <li> "tag action" is to render a newline followed by an asterisk - and superfluous asterisks are ugly so we check for <li> if parse_tag() was called for the end of the tag itself.
2015-05-24 19:40:35 +02:00
Oliver Schmidt a9f88a05d6 Don't render consecutive blanks inside links. 2015-05-24 19:00:39 +02:00
Oliver Schmidt a56af59f40 Avoid randomly "eating" blanks.
At the time do_word() is called s.word[s.wordlen] is undefined. So it doesn't make sense to make decisions based on its value - and in fact I don't see why it was necessary/desirable in the first place.
2015-05-24 15:45:45 +02:00
Oliver Schmidt a9c6d59da3 Avoid compiler warning because of unused variable. 2015-05-02 00:37:46 +02:00
Oliver Schmidt 05d98ffca3 Adjusted some Win32 config values. 2015-05-02 00:17:53 +02:00
Oliver Schmidt 40417a2bcd Skip HTTP header fields to long to parse.
Nowadays many HTTP server set cookies which may easily result in HTTP header fields longer than our 'httpheaderline' buffer. It doesn't hurt if we can't parse them but we need to be able to skip them and continue to parse the following header fields.
2015-05-02 00:11:59 +02:00
Oliver Schmidt 085b7d8898 Set WWW_CONF_MAX_URLLEN to maximum value by default.
WWW_CONF_MAX_URLLEN is used as length for the 'editurl' textentry widget. The CTK code for handling that widget uses a single byte so the length can't be > 255. Thus WWW_CONF_MAX_URLLEN can't be > 255 as well.
2015-04-29 18:21:35 +02:00
Oliver Schmidt 9aee07c9ad Leverage the recently added exec() cmdline support in the cc65 C library for the Apple ][. 2015-04-26 21:45:33 +02:00
Oliver Schmidt a824722862 Merge remote-tracking branch 'upstream/master' 2015-04-26 14:35:40 +02:00
Oliver Schmidt 7b3e80a957 Remove received packet(s) to allow to send one.
Behave just like the CS8900A driver: Both the CS8900A and the LAN91C96 dynamically share a buffer for received packets and packets to be send. If the chip is exposed to a network with a lot of broadcasts the shared buffer might fill quicker with received packets than the 6502 reads them (via polling). So we might need to drop some received packets in order to be able to send anything at all.
2015-04-26 14:23:33 +02:00
George Oikonomou 6ac939bc58 Merge pull request #1029 from adamdunkels/pr/enc28j60-ip64-bindings
IP64 bindings for the ENC28j60 Ethernet driver
2015-04-15 10:35:09 +01:00
Adam Dunkels 12beebeec0 IP64 bindings for the ENC28j60 Ethernet driver 2015-04-15 08:30:26 +02:00
George Oikonomou 9b28486b1a Merge pull request #1028 from g-oikonomou/cc26xx/contrib/rf-filtering-frame-version
Fix CC26xx RF frame filtering for frames with version==1
2015-04-14 13:45:06 +01:00
George Oikonomou 692d50d22f Don't reject frames with version==1 2015-04-14 12:58:49 +01:00
Nicolas Tsiftes 7d06494331 Merge pull request #917 from cetic/pr-hbh-user-conf
Allow user configuration of RPL hop-by-hop option
2015-04-03 22:19:51 +02:00
Laurent Deru 0efa9f2046 Allow user configuration of RPL hop-by-hop option 2015-04-03 09:52:36 +02:00
Nicolas Tsiftes 8f50d9709d Merge pull request #999 from adamdunkels/lebrush-rdnss-support-rebased
RDNSS support, again
2015-03-30 17:21:23 +02:00
Nicolas Tsiftes 793ed65cba Merge pull request #1013 from g-oikonomou/contrib/remove-uip-guard
Remove unnecessary #if guards
2015-03-30 16:59:23 +02:00
George Oikonomou 7238a1628f Merge pull request #1004 from alignan/z1-reed-sensor
Added Reed Sensor driver, example, and minor fix to the SHT25 sensor driver
2015-03-30 15:05:05 +01:00
Nicolas Tsiftes 132b31d6de Merge pull request #715 from adamdunkels/pr/enc28j60
ENC28j60 Ethernet driver code
2015-03-30 13:45:12 +02:00
Antonio Lignan b9334a3b0e Added Reed Sensor driver and example 2015-03-30 10:30:09 +02:00
Adam Dunkels 060bc8f8d7 Merge pull request #1011 from g-oikonomou/contrib/rf230bb-guard
Update #if guard to match header filename
2015-03-30 08:05:34 +02:00
George Oikonomou aedffb6c87 Merge pull request #767 from ejoerns/pull-req/timer-note
Note that timer_reset() must not be executed before timer expired
2015-03-29 00:46:30 +00:00
George Oikonomou 489f9618e8 Update #if guard to match header filename
Closes #952
2015-03-28 23:53:05 +00:00
George Oikonomou ff118be070 Remove unnecessary #if guards
ipv4/uip.c will not even be include in the list of sources in the first place if we are building with NETSTACK_CONF_WITH_IPV6 (CONTIKI_WITH_IPV6). Thus, there is no longer a need to wrap the entire source code in an #if guard.

Closes #935
2015-03-28 23:50:19 +00:00
George Oikonomou 48e987baac Merge pull request #1005 from alignan/i2c_cc2538
CC2538 I2C driver
2015-03-28 23:23:06 +00:00
George Oikonomou 36a80089e7 Merge pull request #1000 from cladmi/master
Cleanup old platforms configuration
2015-03-28 22:17:55 +00:00
George Oikonomou a9f499e528 Merge pull request #1009 from bthebaudeau/use-additive-offsets
Use additive offsets
2015-03-28 19:55:45 +00:00
Benoît Thébaudeau 19fd7a3551 Use additive offsets
OR-ing an offset to a base address instead of adding it is dangerous
because it can only work if the base address is aligned enough for the
offset.

Moreover, if the base address or the offset has a value unknown at
compile time, then the assembly instructions dedicated to 'base +
offset' addressing on most CPUs can't be emitted by the compiler because
this would require the alignment of the base address against the offset
to be known in order to optimize 'base | offset' into 'base + offset'.
In that case, the compiler has to emit more instructions in order to
compute 'base | offset' on most CPUs, e.g. on ARM, which means larger
binary size and slower execution.

Hence, replace all occurrences of 'base | offset' with 'base + offset'.
This must become a coding rule.

Here are the results for the cc2538-demo example:
 - Compilation of uart_init():
    * before:
        REG(regs->base | UART_CC) = 0;
        200b78:	f446 637c 	orr.w	r3, r6, #4032	; 0xfc0
        200b7c:	f043 0308 	orr.w	r3, r3, #8
        200b80:	2200      	movs	r2, #0
        200b82:	601a      	str	r2, [r3, #0]

    * now:
        REG(regs->base + UART_CC) = 0;
        200b7a:	2300      	movs	r3, #0
        200b7c:	f8c4 3fc8 	str.w	r3, [r4, #4040]	; 0xfc8

 - Size of the .text section:
    * before:	0x4c7c
    * now:	0x4c28
    * saved:	84 bytes

Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau.dev@gmail.com>
2015-03-28 17:28:15 +01:00
Antonio Lignan 22be9fd8b7 I2C driver taken from PR #677, uncrustified, made functions static and added burst modes 2015-03-25 16:44:12 +01:00
Gaëtan Harter d0232bb20d Remove unused UIP_CONF_ND6_ defines in platforms
UIP_CONF_ND6_MAX_PREFIXE
  UIP_CONF_ND6_MAX_DEFROUTERS
2015-03-24 13:09:29 +01:00
Gaëtan Harter 697d8c0d23 Remove siclowpan compressions define in platforms
Several platforms defined compressions modes values:

    SICSLOWPAN_CONF_COMPRESSION_IPV6
    SICSLOWPAN_CONF_COMPRESSION_HC1
    SICSLOWPAN_CONF_COMPRESSION_HC01

instead of using the global SICSLOWPAN_COMPRESSION_LEVEL definitions
2015-03-24 11:40:32 +01:00
Gaëtan Harter 60719b8239 Remove unused SICSLOWPAN_CONF_CONVENTIONAL_MAC 2015-03-24 11:18:25 +01:00
Nicolas Tsiftes c76316adf2 Merge pull request #990 from alignan/sht25
Removed duplicated condition in sht25 configuration
2015-03-12 16:00:53 +01:00
Antonio Lignan 64fd000e5d Removed duplicated condition in sht25 configuration 2015-03-11 14:25:23 +01:00
George Oikonomou c169b3e3bb Merge pull request #845 from alignan/fix_region
Changed code region to any
2015-03-10 22:04:38 +00:00
George Oikonomou 15fe97ebc9 Merge pull request #989 from alignan/sht25
Added Z1 SHT25 sensor
2015-03-10 22:04:07 +00:00
Antonio Lignan 1af29a5beb Added SHT25 sensor 2015-03-10 15:33:58 +01:00
Nicolas Tsiftes 2734c97234 Merge pull request #914 from cetic/pr-always-send-no-path-dao
Send no-path DAO only when the dag has a preferred parent
2015-03-06 14:33:07 +01:00
George Oikonomou 0ba7f8df52 Merge pull request #951 from hrzr/master
Make the CC2538DK button sensor clearer to work with
2015-02-28 15:14:53 +00:00