Commit Graph

136 Commits (c31929669265b51abd2d3a5102a161fdcf77108d)

Author SHA1 Message Date
Sam Grove 5c30c0f166 Merge pull request #2594 from svastm/fix_tcp_server_constructor
Fix TCPServer constructor
2016-09-10 13:04:55 -05:00
Sam Grove 5b90bf7b1d Merge pull request #2624 from simonqhughes/master
CFSTORE Bugfix for realloc() moving KV area and cfstore_file_t data structures not being updated correctly
2016-09-10 07:26:41 -05:00
Sam Grove 3806c8713b Merge pull request #2559 from pan-/utest_globals_optimizations
[utest]: Allow the linker to remove any part of utest if not used
2016-09-10 07:16:34 -05:00
Sam Grove c1ee7fb494 Merge pull request #2504 from ohagendorf/disco_f769_ii
[Disco_F769NI] adding new target
2016-09-10 07:16:21 -05:00
Sam Grove a35cd7f81f Merge pull request #2579 from geky/nsapi-max-socket-accept
lwip - Fix handling of max sockets in socket_accept
2016-09-10 07:11:20 -05:00
Sam Grove fb7ffcb5a3 Merge pull request #2580 from geky/nsapi-bind-again
lwip - Add check for previously-bound socket
2016-09-10 07:10:45 -05:00
Sam Grove b10e3a9163 Merge pull request #2578 from c1728p9/fix_double_free
Fix double free in NanostackInterface
2016-09-09 18:00:09 -05:00
Vincent Coubard aab107020b Use SingletonPtr for the internal variables defaults and handlers in utest_harness. 2016-09-09 17:22:41 +01:00
Olaf Hagendorf 765aeb0dc6 disco_f769ni adding ethernet init
the IPV4 feature was already enabled in an earlier commit but the mbed 5 ethernet initialisation was missing
2016-09-09 14:21:55 +02:00
Sam Grove 72b0d46e01 Merge pull request #2545 from marcuschangarm/flash_blob
Added define guards for SEQUENTIAL_FLASH_JOURNAL_MAX_LOGGED_BLOBS so …
2016-09-09 01:49:39 +02:00
Sam Grove a6b27319ec Merge pull request #2496 from geky/callback-cv
Add cv-qualifiers to Callback and deprecate combinatorial explody functions
2016-09-09 01:45:25 +02:00
Vincent Coubard caa4c4f2a3 Use a SingletonPtr for the Timeout object in utest_shim.
Makes sure to initialize it, otherwize, it might be initialized in
interrupt context.
2016-09-06 10:14:26 +01:00
Simon Hughes b2f561a917 Restoring swap code to cfstore_test_delete_all() after being previously removed to work around CFSTORE issue 17/23 (realloc()). 2016-09-05 14:16:40 +01:00
Simon Hughes d9ad7bbb99 This commit contains CFSTORE fixes for the following related issues:
- issue 17: Heap corruption.
- issue 23: Handles invalidated when realloc called.
- issue 24: cfstore_find returns error when "previous" parameter is NULL.
- issue 25: Memory leak when out of memory.

With respect to issues 17 and 23:
- A code defect existed for correctly updating cfstore_file_t data structures
  under the following conditions:
  -- the KV memory area contained some KV's.
  -- cfstore calls realloc() to increase the size of the KV area in
     memory because:
	  * A new KV was being added to the KV area, or
	  * the size of a pre-existing KV was being increased.
  -- The returned address from realloc() has changed from before the
     call (i.e. the location in memory of the KV area has changed)
	 e.g. the presence of heap memory objects directly above the KV memory
	 area in the memory address space causes realloc() to move the KV area
	 so the newly increased area can be accommodated at contiguous addresses.
  -- In this scenario, the cfstore_file_t (structures for open files) head pointers
     do not get correctly updated.
  -- The defect was fixed by correctly updating the cfstore_file_t:: head pointer.
  -- A new add_del test case was added to the scenario where a new KV is being added
     to the KV area.
  -- A new create test case was added to the scenario where the size of a
     pre-existing KV is being increased in size.

- A code defect for suppling a NULL handle as the previous argument to the Find() method
  (issue 24).
	-- Supply a null handle is valid, but it was being used to check for a valid hkey,
	   which was incorrect.
	-- A new test case was added to check the case of supplying a NULL previous argument
	   works correctly.

- A code defect for a memory leak under the following conditions (issue 25):
  -- When realloc() fails to perform a requested change to the size of the KV area, the
     error handling sometimes incorrectly sets cfstore_context_t::area_0_head to NULL.
	 Cfstore returns a suitable error to the client. If memory had previously been held
	 at area_0_head, realloc(area_0_head, size) returning NULL means the memory
	 at area_0_head is still retained.
  -- On receiving the error code, the client cleans up including a call to Uninitialize().
     This should free the retained but as area_0_head == NULL this is not possible. Hence
	 a memory leak occurred.
  -- This was fixed by not setting area_0_head = NULL on the realloc() failure.
  -- A create test case was modified to detect the leaking of memory in this way.
2016-09-05 12:45:43 +01:00
svastm b56201c8c4 Fix TCPServer constructor
- Avoid a call to the protected method `get_stack()` which cause a build fail.
 - Remove the constructor definition `TCPServer(NetworkStack *stack)`
   because it has no implementation.
2016-08-31 17:35:10 +02:00
Vincent Coubard cb4a7fa85e Use greentea_serial SingletonPtr. 2016-08-31 16:24:12 +01:00
Vincent Coubard 85bce1467f Improve compatibility between base_control_t and control_t.
* provide missing member functions from control_t in base_control_t
* construction of control_t from reference of base_control_t instead of
  value.
* overload operator+ for all permutations between control_t and
  base_control_t.
2016-08-30 13:29:17 +01:00
Vincent Coubard df3e3b251d Fix scope of the serial variable. 2016-08-30 13:29:16 +01:00
Vincent Coubard daa135a1b3 Move defaults and handlers variable into a static function.
This change allow a lot of code from utest to be removed from the final
binary if not used.
2016-08-30 13:29:14 +01:00
Vincent Coubard eed52a05d5 Replace default_handlers value by a reference. 2016-08-30 13:29:12 +01:00
Vincent Coubard 4bf28d474c Convert case_control to a POD. 2016-08-30 13:29:10 +01:00
Vincent Coubard 7a6edda44c Enhance compatibility between control_t and base_control_t:
* Add conversion operator in control_t to convert instances to base_control_t
2016-08-30 13:29:09 +01:00
Vincent Coubard 6d319c521f Construct control_t from a POD struct.
Replace const control_t instances by this POD.

This save memory and prevent inclusion of the constants in the binary if
they are not used.
2016-08-30 13:29:07 +01:00
Vincent Coubard 8fa239cdfd Move constant definitions of non POD object into cpp file.
It save space and fix the ODR violation.
2016-08-30 13:29:05 +01:00
Vincent Coubard 2bc5c3d069 Move global Timeout object from utest_shim in static function.
The change of scope allow the linker to remove the variable if not used.
2016-08-30 13:29:03 +01:00
Vincent Coubard acc3115e27 Move utest global serial object into a function.
That way it is not a global object anymore and is not attached to the
.init section and init array. If the function which contain the object is
not called then the serial object will not be present in the final binary.
2016-08-30 13:23:08 +01:00
Christopher Haster c3130e51e4 lwip - Added check for previously-bound socket
Avoids what turns into an infinite loop in lwip's internals
2016-08-29 18:47:30 -05:00
Christopher Haster db2738f850 nsapi - Corrected handling of errors in TCPServer accept
- Corrected handling, before errors would forcibly restart the
  accept loop without checks for timeouts
- Rearranged accept logic to match the logic of
  recv/send/recvfrom/sendto
2016-08-29 17:38:06 -05:00
Christopher Haster 506aa3d4ea lwip - Fixed handling of max sockets in socket_accept 2016-08-29 17:37:13 -05:00
Russ Butler dd07c522c9 Fix double free in NanostackInterface
When freeing all memory in the rx buffer chain set the head pointer to
NULL. This prevents the head rx buffer from getting freed twice.
2016-08-29 17:14:16 -05:00
Yogesh Pande be70130f3e Fix failing compilation for mbed-os
This commit fixes issue
https://github.com/ARMmbed/mbed-os/issues/2569

This commit has to go in coming mbed-os release else the build is broken.
2016-08-29 14:49:29 +03:00
Sam Grove eeead562f1 Merge pull request #2558 from meriac/master
Update uVisor with new page allocator
2016-08-27 07:30:50 -05:00
Christopher Haster 4ffeec1797 [nsapi] Restructured nsapi_dns.h to have clear separation between C/C++
- Separated overloads based on language
- Removed NSAPI_C_LINKAGE definition
2016-08-26 12:39:52 -05:00
Christopher Haster a3ecdf3b71 [nsapi] Adopted netconn_gethostbyname in the lwip interface
Provides proper integration with DHCP through lwip
2016-08-26 12:16:41 -05:00
Christopher Haster f9552ddbbe [nsapi] Add support for implementation-provided DNS servers
Support intended for DNS servers provided by DHCP requests.
2016-08-26 12:16:41 -05:00
Christopher Haster dc9ddd42ef [nsapi] Removed unnecessary dns_query functions 2016-08-26 12:16:41 -05:00
Christopher Haster 08584916a5 [nsapi] Added IPv6 support to DNS query
To avoid complications with unexpected IP versions, the wanted
IP version was added as an extra argument to DNS query functions
(defaults to NSAPI_IPv4).

Internal API changes:
m nsapi_dns_query
m nsapi_dns_query_multiple

Interestingly, though multiple questions can be encoded in a single
DNS packet, few, if any, nameservers respect any but the first
question. This makes support for coelescing DNS queries useless.
2016-08-26 12:16:41 -05:00
Christopher Haster 665309986e [nsapi] Added support for multiple results in a dns-query
Internal API changes:
+ nsapi_dns_query_multiple

Note, dns_query_multiple takes a buffer of nsapi_addr_t to fill. This is
less dynamic than the linked-list method used in linux's gethostbyname,
but is easier to manage and more constrained.
2016-08-26 12:16:41 -05:00
Christopher Haster 126df2b4a9 [nsapi] Refactored dns-query to match style of the rest of the nsapi
Internal API changes:
dnsQuery -> nsapi_dns_query

Additionally restructured query code to emit/parse network structures
in stream form to hopefully document the underlying structure more
explicitly.
2016-08-26 12:16:41 -05:00
Milosch Meriac 9cb6d6099e Update uVisor page allocator 2016-08-26 17:18:45 +01:00
Sam Grove a7c7ceda0e Merge pull request #2455 from bridadan/share-greentea-serial-in-frameworks
Sharing greentea-client's RawSerial with utest and UNITY.
2016-08-26 09:56:23 -05:00
Christopher Haster 45d25ed493 Added support for cv-qualifiers in Callback class
Additionally, the following changes were don to avoid combinatorial
explosion in function overloads as a result of adding cv-qualifiers:
- Added convenience function for inferred type
- Deprecated callback overloads qhere cv-qualifiers are not scalable

Supported overloads:
callback(void (*f)(A...));
callback(const Callback<R(A...)> &);
callback(T *t,                void (*f)(T*, A...));
callback(const T *t,          void (*f)(const T*, A...));
callback(volatile T *t,       void (*f)(volatile T*, A...));
callback(const volatile T *t, void (*f)(const volatile T*, A...));
callback(T *t,                void (T::*f)(A...));
callback(const T *t,          void (T::*f)(A...) const);
callback(volatile T *t,       void (T::*f)(A...) volatile);
callback(const volatile T *t, void (T::*f)(A...) const volatile);
2016-08-26 09:40:22 -05:00
Sam Grove 9d3557fbcc Merge pull request #2541 from cyliangtw/master
Fix NUC472 Ethernet wrong INT status in RX_Action
2016-08-26 09:26:51 -05:00
Sam Grove c20d7d210f Merge pull request #2527 from yogpan01/IOTCLT-961
Fix for IOTCLT-961 for next mbed-os release candidate
2016-08-26 09:25:01 -05:00
Sam Grove 2fe3e5214e Merge pull request #2509 from adbridge/copy_constructor
Utest: default copy constructor for failure_t doesn't behave as expected
2016-08-26 09:23:21 -05:00
Sam Grove 390cfc402d Merge pull request #2539 from yogpan01/irq-context
Fix for https://github.com/ARMmbed/mbed-os-example-client/issues/75
2016-08-26 07:00:07 -05:00
Sam Grove a4b57302dd Merge pull request #2532 from AlessandroA/uvisor_supported
Update uVisor to v0.20.1-alpha
2016-08-25 09:27:11 -05:00
Sam Grove 2ecb560eb7 Merge pull request #2502 from c1728p9/fix_lwip_blocking_recv
LWIP - fix recv blocking send on accepted sockets
2016-08-25 09:25:01 -05:00
Marcus Chang 076515c15f Added define guards for SEQUENTIAL_FLASH_JOURNAL_MAX_LOGGED_BLOBS so that the value can be passed as an argument during compile time. 2016-08-25 14:16:59 +01:00
cyliangtw 0441707d4e Fix NUC472 Ethernet wrong INT status in RX_Action 2016-08-25 15:06:52 +08:00