Commit Graph

55 Commits

Author SHA1 Message Date
Roger A. Light
11756d24c8 Change internal funcs _foo_bar() to foo__bar(). 2015-04-19 22:10:59 +01:00
Roger A. Light
90dc6d8c4c Don't use uhpa for whole topics, unlikely to be of benefit. 2015-04-11 21:17:16 +01:00
Roger A. Light
2da74ad043 Use uhpa for topics. 2015-04-04 21:15:27 +01:00
Roger A. Light
aca979a473 [457371] Fix building for WITH_TLS=no
Thanks to Micheal Laing.

Bug: https://bugs.eclipse.org/bugs/show_bug.cgi?id=457371
2015-01-15 20:11:14 +00:00
Roger A. Light
0e72d3cc32 Should check acl result for lack of success, not presence of error. 2015-01-06 17:35:46 +00:00
Roger A. Light
2ce4d94282 Fix dereferencing of msg store items. 2014-11-19 20:59:10 +00:00
Roger A. Light
d30d711c3b Improve struct layouts for memory usage. 2014-11-18 07:42:49 +00:00
Roger A. Light
ea8537c048 Remove unused messages from store immediately.
This removes the need for *store_clean*.
2014-11-17 23:46:02 +00:00
Roger A. Light
9b9f1c7613 Remove unnecessary callocs. 2014-11-17 22:00:00 +00:00
Roger A. Light
66443c14bd Assign to NULL to prevent double free later. 2014-10-21 23:11:31 +01:00
Roger A. Light
7a2dd634cb Protect against possible NULL dereference after unsubscribing. 2014-10-20 18:01:45 +01:00
Roger A. Light
c8dffcbfbb Fixes for clientid stealing situation. 2014-10-16 23:48:56 +01:00
Roger A. Light
43b1ea8050 Memory leak and id stealing fixes. 2014-10-12 23:58:49 +01:00
Roger A. Light
e3bf10cd9a Change the way that new clients with match client ids are dealt with.
This change means that the connection isn't swapped from new context to
old, which makes dealing with websockets lots easier. It does require
that clients storing a list of their subscriptons.
2014-10-12 11:38:21 +01:00
Roger A. Light
070d783c9f Merge 1.3.2-1.3.5 into 1.4. 2014-10-12 11:17:13 +01:00
Roger A. Light
bad7ec75f0 Temporarily disable ACL checks on subscriptions when using MQTT v3.1.1.
This is due to the complexity of checking wildcard ACLs against wildcard
subscriptions. This does not have a negative impact on security because
checks are still made before a message is sent to a client.  Fixes bug

Thanks to Jan-Piet Mens and Christoph Krey.
2014-10-08 21:16:34 +01:00
Roger A. Light
dcd469c177 Use own linked list for storing disused contexts for freeing.
Seemed to be a problem with getting it to work under a hash and there
isn't really any need for a hash.
2014-09-22 23:35:09 +01:00
Roger A. Light
2bf7a8fb13 Prevent NULL derefencing and accessing of freed memory. 2014-09-17 21:53:39 +01:00
Roger A. Light
1fb5a3edc6 Use hash counts to calculate numbers of clients. 2014-09-17 00:03:14 +01:00
Roger A. Light
9286da192e Fix unused var. 2014-09-14 18:12:30 +01:00
Roger A. Light
06bec1083d Expose mosquitto_pub_topic_check() and mosquitto_sub_topic_check(). 2014-09-10 15:57:20 +01:00
Roger A. Light
e5aa843ec7 Don't allow access to clients when authenticating if a security plugin returns an application error. Fixes bug #1340782.
Thanks to Charlie Davis.
2014-07-13 21:20:18 +01:00
Roger A. Light
885d8ca5db When a durable client reconnects, its queued messages are now checked against ACLs in case of a change in username/ACL state since it last connected.
Thanks to "web1".
2014-07-13 14:18:08 +01:00
Roger A. Light
bb1a69b7d7 Disconnect clients consistently. 2014-07-08 23:07:19 +01:00
Roger A. Light
3fd1dc477f Fix defects identified by Coverity. 2014-07-03 21:55:25 +01:00
Roger A. Light
405b7f0aab Don't free here, leads to potential double free. 2014-07-03 17:37:31 +01:00
Roger A. Light
0856e9519d Need to assign ws_context here. 2014-07-03 11:32:54 +01:00
Roger A. Light
13f94f3511 More reconnect fixes. 2014-07-03 01:00:57 +01:00
Roger A. Light
2b300b718b Fix double free for websockets with bad auth. 2014-07-02 20:57:04 +01:00
Roger A. Light
0fb064e0b4 Fix clean session for reconnecting clients. 2014-07-02 20:44:08 +01:00
Roger A. Light
fe5dba5887 Add use_username_as_clientid. 2014-07-02 00:09:50 +01:00
Roger A. Light
d75903b0ae Fix reconnect support for websockets. 2014-06-30 23:30:43 +01:00
Roger A. Light
d60e44ec1b Handle reconnects for websockets. 2014-06-30 06:58:56 +01:00
Roger A. Light
542ebb2480 Free peer certificate after use. 2014-06-30 05:33:41 +01:00
Roger A. Light
bdb3e74100 More memory fixes. 2014-06-29 23:16:10 +01:00
Roger A. Light
15efd2d072 Various memory fixes. 2014-06-28 01:38:58 +01:00
Roger A. Light
482d604598 Only remove from hash if a valid socket (i.e. if present) 2014-06-23 23:51:16 +01:00
Roger A. Light
480d8a08d0 Count disconnected clients on persistence restore. 2014-06-23 18:29:25 +01:00
Roger A. Light
764b7e0a91 Use hash functions to store client data. 2014-06-23 17:57:35 +01:00
Roger A. Light
4025fad5aa libuuid is used to generate client ids, where it is available, when an MQTT v3.1.1 client connects with a zero length client id. 2014-06-15 01:07:05 +01:00
Roger A. Light
731391bcb3 Separate function for generating a random client id. 2014-06-15 00:37:30 +01:00
Roger A. Light
0461c08fdf use_identity_as_username now no longer affects non-TLS listeners. 2014-06-14 23:42:24 +01:00
Roger A. Light
af49fc556a When a durable client reconnects, its queued messages are now checked against ACLs in case of a change in username/ACL state since it last connected.
Thanks to "web1".
2014-06-13 23:07:00 +01:00
Roger A. Light
aca67a2170 Better function names. 2014-06-08 22:51:36 +01:00
Roger A. Light
1ef8575a35 Reset disconnect_t on client reconnect. 2014-06-04 22:13:19 +01:00
Roger A. Light
ad43754b62 Log username in single quotes. 2014-06-03 17:06:11 +01:00
Roger A. Light
7cef936ba6 Logging fixes. 2014-06-03 15:16:27 +01:00
Roger A. Light
6a7f77d2a8 More intelligent client counting. 2014-06-02 22:08:40 +01:00
Roger A. Light
0d80800786 Don't refuse clients with will topic that isn't allowed by acl. 2014-06-02 01:19:48 +01:00
Roger A. Light
85af9bdd9a Simplify. 2014-05-31 22:12:20 +01:00