Commit Graph
100 Commits
Author SHA1 Message Date
Zaid Abdulla bbe4def5cf No Basic auth for connection requests by default
A fix for a security vulnerability reported by Maximilian Hils.
2018-01-11 06:20:25 -08:00
Zaid Abdulla 88a50a3387 Disable XXE processing in Libxml
A fix for a security vulnerability reported by Maximilian Hils.
2018-01-11 06:20:25 -08:00
Zaid Abdulla c99496527d Optimize GPN nextLevel heuristic 2017-12-12 16:17:15 -08:00
Zaid Abdulla 32b2d721e5 Avoid extra query caused by unsaved event codes
Since not all event codes are saved (for compatibility reasons), such
event codes (e.g. "2 PERIODIC") causes a new param to be created which
results in a DB query to perform clear() operation.
2017-11-27 16:13:46 -08:00
Zaid Abdulla 945323a7da Avoid extra declare cycle when refreshing vparams 2017-11-27 16:13:15 -08:00
Zaid Abdulla 8b400a45b5 Fix preset_loop fault introduced in #93452d4 2017-11-26 12:40:05 -08:00
Zaid Abdulla 3adee03533 Fix bug where declare returns wrong value 2017-11-21 01:11:44 -08:00
Zaid Abdulla 4288fd5980 Reimplement parsing auth header
Resolves #257
2017-11-13 22:52:14 -08:00
Zaid Abdulla ec57131d51 Log only non-default config 2017-11-12 13:01:39 -08:00
Zaid Abdulla 6bfe590b0d Config to use 1/0 for booleans 2017-11-12 12:56:41 -08:00
Zaid Abdulla f7c1857b6a Config to strip milliseconds from dateTime 2017-11-12 12:29:18 -08:00
Zaid Abdulla 6a9c62b639 Support time discretization in scripts
This can be used to ensure parameter refresh times are aligned (as
opposed to using Date.now() - X). It also allows for possible future
optimizations by exploiting the fact that the value of Date.now(X)
remains static for a given amount of time.

The variance value can be used to shift the discretization threshold
points based on the hash of the device ID for load distribution.

The djb2 hashing algorithm has been replaced with MD5 for better
distribution.
2017-11-10 14:34:24 -08:00
Zaid Abdulla ed873cdd4a Only invalidate syncState after read stage
This is in order to reduce the number of commit iterations especially
during the initial discovery of the data model.
2017-11-04 22:09:52 -07:00
Zaid Abdulla 14bf276112 Clamp param timestamp values to session timestamp 2017-11-04 22:02:22 -07:00
Zaid Abdulla 93452d445f Fix bug updating tags not triggering preset rerun 2017-11-04 20:47:55 -07:00
Zaid Abdulla a436f17888 Replace endless_cycle with more specific faults 2017-10-31 12:58:00 -07:00
Zaid Abdulla 947b4d7118 Fix bug adding duplicate provisions in session 2017-10-29 12:45:26 -07:00
Zaid Abdulla b152071085 Fix exception when logging invalid session
Resolves #269
2017-10-23 17:09:37 -07:00
Zaid Abdulla 9dcd55a84f Log XML parse errors 2017-10-09 00:28:02 -07:00
Zaid Abdulla 342138d92e Log session timeout and connection drop 2017-10-09 00:25:32 -07:00
Zaid Abdulla ef712de9e3 Fix concurrent requests counter leak 2017-09-18 13:51:22 -07:00
Zaid Abdulla b2c5f5ecc9 Handle overload spikes gracefully 2017-09-16 22:43:17 -07:00
Zaid Abdulla f0b9c32ab4 Improve service shutdown process 2017-09-16 22:38:21 -07:00
Zaid Abdulla 3fc13317a2 Include PID in exception logs 2017-09-16 22:36:42 -07:00
Zaid Abdulla 73295729c8 Fix exception when TCP connection drops abruptly 2017-09-16 22:35:46 -07:00
Zaid Abdulla ed3239e4db Fix exception when setting invalid bool value 2017-09-16 22:19:10 -07:00
Zaid Abdulla f2d64d7676 Fix bug deleting specific object instances 2017-09-16 22:16:44 -07:00
Zaid Abdulla 1a83dcc1de Fix issue with declaring values using wildcards
When declaring parameter values using a wildcard path, overlapping
declarations are not applied correctly according to their weight and
execution order. The fix is to unpack first then apply the declarations
to the individual parameters.
2017-09-16 22:14:51 -07:00
Zaid Abdulla 4b17c3c9c3 Fix bug when deleting tags from script 2017-08-22 16:07:04 -07:00
Zaid Abdulla 9cb623c096 Expose random seed function to scripts 2017-08-06 16:56:58 -07:00
Zaid Abdulla 7306f7a8a5 Improve set and clear data model functions 2017-08-04 19:29:25 -07:00
Zaid Abdulla 4eb1c61c4b Fix bug in committing vparam update 2017-07-30 04:57:35 -07:00
Zaid Abdulla 306193e6e9 Don't remove root Tags when empty
It unnecessarily complicates things.
2017-07-30 04:54:55 -07:00
Zaid Abdulla 0ca44d7ffb VersionedMap.delete() should return true/false 2017-07-30 04:52:57 -07:00
Zaid Abdulla 3012f29bb2 Remove redundant delete operator 2017-07-30 04:51:20 -07:00
Zaid Abdulla 8d588507ac Remove unused arg in extensions.killAll() 2017-07-30 04:50:14 -07:00
Zaid Abdulla 7e6eebc486 Avoid deleting Downloads tree after root GPN 2017-07-19 12:38:40 -07:00
Zaid Abdulla 4be709a61b Fix orphan extension processes bug
Issue happens after an exception occurs and existing sessions fail to
finish within the timeout period.
2017-07-17 13:44:49 -07:00
Zaid Abdulla d74c56f182 Show 404 when deleting a non-existing task 2017-07-13 21:56:40 -07:00
Zaid Abdulla 444af51307 Fix vparam bug introduced in 68ea488 2017-07-10 15:00:26 -07:00
Zaid Abdulla bde0bfe616 Fix fault detail when ext throws non-error object 2017-07-04 02:37:08 -07:00
Zaid Abdulla b13b9a54ab Skip tree traversal in case of no declarations 2017-07-04 02:35:58 -07:00
Zaid Abdulla 68ea4887b1 Fix repeating vparam execution
This issue only happens when a device doesn't maintain a single
connection for the entire session.
2017-07-04 02:30:16 -07:00
Zaid Abdulla 75b10bb528 Fix crash in session.deserialize
Resolves #243
2017-07-04 02:26:00 -07:00
Zaid Abdulla f444ff753c Optimize loadPath function 2017-06-30 05:12:31 -07:00
Zaid Abdulla 9dd6980da2 Further fixes related to the previous commit 2017-06-30 03:55:50 -07:00
Zaid Abdulla ec1360217b Some fixes on fetchDevice function
Includes a fix for issue where timestamp for nonexisting root params is
not reported which can result in an unnecessary GPN request.
2017-06-27 01:06:02 -07:00
Zaid Abdulla 8743cebb01 Fix add_object preset ignoring non-key params 2017-06-26 00:51:53 -07:00
Zaid Abdulla ae4526defe Fix expired tasks not getting deleted 2017-06-20 13:54:42 -07:00
Zaid Abdulla 2cba450128 Fix issue causing unnecessary GPN requests 2017-06-16 12:14:00 -07:00
Zaid Abdulla b9fd78390f Fix repeating root GPN requests bug 2017-06-16 12:12:28 -07:00
Zaid Abdulla 9787dd2be7 Fix sync state invalidation bug 2017-06-16 12:10:24 -07:00
Zaid Abdulla defa0c2d41 Fix parameter change tracking bug 2017-06-16 12:07:14 -07:00
Zaid Abdulla 23da93538e Fix declaration generated from download task 2017-06-16 12:06:43 -07:00
Zaid Abdulla 63b7a27021 Show fault if invalid vparam return value 2017-06-10 22:36:14 -07:00
Zaid Abdulla a2f70a8e70 Fix fault code and string in CPE fault log 2017-06-10 22:21:47 -07:00
Zaid Abdulla 480ae5efd6 Fix crash when script throws non-error object 2017-06-05 17:13:52 -07:00
Zaid Abdulla a735f0d9e7 Commit vparam after its declarations are applied 2017-06-05 10:47:00 -07:00
Zaid Abdulla eb812e9754 Remove unnecessary character from QUERY_REGEX 2017-06-01 17:37:10 -07:00
Zaid Abdulla 330c6fc720 Encode download file name with encodeURI 2017-06-01 16:53:09 -07:00
Zaid Abdulla 3ebc249ffa Confirm compatibility with Node 8.x 2017-06-01 16:48:21 -07:00
Zaid Abdulla b38b3cf5ab Default to using Mongo for caching
Stress testing shows that after the recent caching optimization there
seems to be no significant difference in performance when using Mongo
for caching as opposed to Redis. Redis is still supported but is now
optional.

Also removed hiredis dependency since as of node_redis 2.6 the default
parser is faster than hiredis.
2017-06-01 16:34:42 -07:00
Zaid Abdulla b1ed1f4f2f Fix Device.ID param missing on first contact 2017-05-31 23:08:35 -07:00
Zaid Abdulla 8f5effe84c Fix broken path when using nested alias params
Resolves #236
2017-05-30 16:23:13 -07:00
Zaid Abdulla 4d255acfc6 Consider all object params as keys if none exists 2017-05-18 14:15:15 -07:00
Zaid Abdulla 7fdd04343b Fix stack overflow when task name not recognized 2017-05-17 19:14:47 -07:00
Zaid Abdulla 30221f1d4e Don't attempt to cache sessions after exception 2017-05-17 19:13:43 -07:00
Zaid Abdulla 729a4dc6ae Generate download requests before reboot 2017-05-14 18:03:48 -07:00
Zaid Abdulla 87007e20c6 Fix no GPN generated for data model root 2017-05-14 17:43:04 -07:00
Zaid Abdulla 549f4f0323 Accept SOAP requests with no cwmp:ID element
Resolves #233
2017-05-14 14:34:18 -07:00
Zaid Abdulla 3f72bdd84b Fix lock timeout bug 2017-05-12 02:43:21 -07:00
Zaid Abdulla ef8aeda02d Fix TransferComplete fault not saved 2017-05-11 19:01:23 -07:00
Zaid Abdulla 222f8cd701 Fix exception when Download method faults 2017-05-11 19:01:09 -07:00
Zaid Abdulla 624cf01270 Support caching in MongoDB instead of Redis 2017-05-08 10:44:42 -07:00
Zaid Abdulla c6328ce2f4 Avoid unnecessary increment of iteration 2017-05-07 23:50:36 -07:00
Zaid Abdulla 5ab49014b0 Pass current attribute values to vparam scripts 2017-05-01 11:15:30 -07:00
Zaid Abdulla c43933225b Use args variable in vparam scripts 2017-05-01 11:11:28 -07:00
Zaid Abdulla 4ef216679d Fix vparam set declarations being ignored 2017-05-01 11:09:46 -07:00
Zaid Abdulla ca2cce8ab6 Fix exception when adding and removing tags
Only happens if adding and removing tags within the same session.

Resolves: #229
2017-04-21 15:05:08 -07:00
Zaid Abdulla c58f93aeb2 Fix exception when using default provisions 2017-04-19 23:25:57 -07:00
Zaid Abdulla 7e7a2032bb Missing err arg in insertTasks callback 2017-04-12 11:33:09 -07:00
Zaid Abdulla 0d9ca3486b Gracefully handle invalid dateTime param values 2017-04-12 11:03:28 -07:00
Zaid Abdulla dc5c12c8ce Fix bug where values of vparams get mixed up 2017-04-10 15:26:44 -07:00
Zaid Abdulla 09b3d7cb1c Fix missing log details 2017-03-31 11:49:07 -07:00
Zaid Abdulla 84e79bda9e Fix bug in testing preconditions and events
The bug occurs when the session was serialized and deserialized as a
result of requests coming through a new TCP connection.

Resolves: #219
2017-03-29 17:28:42 -07:00
Zaid Abdulla 00aacd212b Fix bug in sandbox's Math.random() 2017-03-23 15:59:33 -07:00
Zaid Abdulla 843d183045 1.1.1 2017-03-23 00:41:32 -07:00
Zaid Abdulla 1cf455540a Update CHANGELOG 2017-03-23 00:41:00 -07:00
Zaid Abdulla 29d6f5b9d0 Parse datetime string in testFilter 2017-03-22 15:35:40 -07:00
Zaid Abdulla f639435a09 Missing convert Date to timestamp in fetchDevice 2017-03-22 04:08:08 -07:00
Zaid Abdulla 9db29bb55d Translate special fields in precondition filter 2017-03-21 15:28:37 -07:00
Zaid Abdulla 48f861a6a5 Fix value parsing issue from last commit 2017-03-20 00:15:44 -07:00
Zaid Abdulla 1a5fd65f4e Show warning when failing to parse attributes 2017-03-18 22:20:17 -07:00
Zaid Abdulla 475e3fffbe Fix bug discovering params if path timestamp is 1 2017-03-17 16:14:27 -07:00
Zaid Abdulla 3a178a5744 Avoid crash when missing connection request creds 2017-03-15 16:25:44 -07:00
Zaid Abdulla ceeb213899 Fix bug declaring instances using wildcard 2017-03-14 22:55:02 -07:00
Zaid Abdulla 38db068c29 Add missing "Registered" event 2017-03-13 13:51:50 -07:00
Zaid Abdulla 6f45042c52 1.1.0 2017-03-10 16:43:45 -08:00
Zaid Abdulla c7136cbedd Add CHANGELOG 2017-03-10 16:42:27 -08:00
Zaid Abdulla d1ef1ae817 Remove development branch warning 2017-03-10 16:33:13 -08:00