Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
P
paho.mqtt.c
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
eclipse
paho.mqtt.c
Commits
1b61a3bf
Commit
1b61a3bf
authored
May 16, 2018
by
Ian Craggs
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'develop' into mqttv5 - get latest fixes
parents
43dfcb2f
a66faf8c
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
138 additions
and
29 deletions
+138
-29
.travis.yml
.travis.yml
+3
-5
CMakeLists.txt
CMakeLists.txt
+27
-15
CMakeLists.txt
doc/CMakeLists.txt
+6
-1
Heap.c
src/Heap.c
+2
-2
MQTTAsync.c
src/MQTTAsync.c
+39
-0
MQTTAsync.h
src/MQTTAsync.h
+7
-0
MQTTClient.c
src/MQTTClient.c
+31
-0
MQTTClient.h
src/MQTTClient.h
+7
-0
MQTTPacket.c
src/MQTTPacket.c
+9
-3
MQTTPacketOut.c
src/MQTTPacketOut.c
+1
-2
utf-8.c
src/utf-8.c
+1
-1
travis-deploy.sh
travis-deploy.sh
+1
-0
travis-setup-deploy.sh
travis-setup-deploy.sh
+4
-0
No files found.
.travis.yml
View file @
1b61a3bf
...
...
@@ -17,10 +17,8 @@ matrix:
os
:
linux
before_install
:
-
openssl aes-256-cbc -K $encrypted_dcd2b299f7c9_key -iv $encrypted_dcd2b299f7c9_iv -in deploy_rsa.enc -out /tmp/deploy_rsa -d
-
eval "$(ssh-agent -s)"
-
chmod 600 /tmp/deploy_rsa
-
ssh-add /tmp/deploy_rsa
-
if [ "$TRAVIS_PULL_REQUEST" = "false" -a "$TRAVIS_REPO_SLUG" = "eclipse/paho.mqtt.c" ]; then export DEPLOY=true; fi
-
if [ "$DEPLOY" = "true" ]; then ./travis-setup-deploy.sh; fi
-
./travis-install.sh
env
:
...
...
@@ -53,4 +51,4 @@ addons:
after_success
:
-
ls -l build.paho/*.tar.gz
-
scp -o StrictHostKeyChecking=no build.paho/*.tar.gz icraggs@build.eclipse.org:../../../../shared/technology/paho/C/
-
if [ "$DEPLOY" = "true" ]; then ./travis-deploy.sh; fi
CMakeLists.txt
View file @
1b61a3bf
...
...
@@ -49,6 +49,8 @@ SET(PAHO_BUILD_DOCUMENTATION FALSE CACHE BOOL "Create and install the HTML based
SET
(
PAHO_BUILD_SAMPLES FALSE CACHE BOOL
"Build sample programs"
)
SET
(
PAHO_BUILD_DEB_PACKAGE FALSE CACHE BOOL
"Build debian package"
)
SET
(
PAHO_ENABLE_TESTING TRUE CACHE BOOL
"Build tests and run"
)
SET
(
PAHO_ENABLE_CPACK TRUE CACHE BOOL
"Enable CPack"
)
ADD_SUBDIRECTORY
(
src
)
IF
(
PAHO_BUILD_SAMPLES
)
...
...
@@ -59,22 +61,32 @@ IF(PAHO_BUILD_DOCUMENTATION)
ADD_SUBDIRECTORY
(
doc
)
ENDIF
()
### packaging settings
SET
(
CPACK_PACKAGE_VENDOR
"Eclipse Paho"
)
SET
(
CPACK_PACKAGE_NAME
"Eclipse-Paho-MQTT-C"
)
INSTALL
(
FILES CONTRIBUTING.md epl-v10 edl-v10 README.md notice.html DESTINATION .
)
FILE
(
GLOB samples
"src/samples/*.c"
)
INSTALL
(
FILES
${
samples
}
DESTINATION samples
)
IF
(
WIN32
)
SET
(
CPACK_GENERATOR
"ZIP"
)
ELSEIF
(
PAHO_BUILD_DEB_PACKAGE
)
SET
(
CPACK_GENERATOR
"DEB"
)
CONFIGURE_FILE
(
${
CMAKE_SCRIPTS
}
/CPackDebConfig.cmake.in
${
CMAKE_BINARY_DIR
}
/CPackDebConfig.cmake @ONLY
)
SET
(
CPACK_PROJECT_CONFIG_FILE
${
CMAKE_BINARY_DIR
}
/CPackDebConfig.cmake
)
ADD_SUBDIRECTORY
(
debian
)
IF
(
PAHO_ENABLE_CPACK
)
### packaging settings
FILE
(
GLOB samples
"src/samples/*.c"
)
INSTALL
(
FILES
${
samples
}
DESTINATION samples
)
SET
(
CPACK_PACKAGE_VENDOR
"Eclipse Paho"
)
SET
(
CPACK_PACKAGE_NAME
"Eclipse-Paho-MQTT-C"
)
INSTALL
(
FILES CONTRIBUTING.md epl-v10 edl-v10 README.md notice.html DESTINATION .
)
IF
(
WIN32
)
SET
(
CPACK_GENERATOR
"ZIP"
)
ELSEIF
(
PAHO_BUILD_DEB_PACKAGE
)
INSTALL
(
FILES CONTRIBUTING.md epl-v10 edl-v10 README.md notice.html DESTINATION .
)
SET
(
CPACK_GENERATOR
"DEB"
)
CONFIGURE_FILE
(
${
CMAKE_SCRIPTS
}
/CPackDebConfig.cmake.in
${
CMAKE_BINARY_DIR
}
/CPackDebConfig.cmake @ONLY
)
SET
(
CPACK_PROJECT_CONFIG_FILE
${
CMAKE_BINARY_DIR
}
/CPackDebConfig.cmake
)
ADD_SUBDIRECTORY
(
debian
)
ELSE
()
SET
(
CPACK_GENERATOR
"TGZ"
)
ENDIF
()
ELSE
()
SET
(
CPACK_GENERATOR
"TGZ"
)
FILE
(
GLOB samples
"src/samples/*.c"
)
INSTALL
(
FILES
${
samples
}
DESTINATION
${
CMAKE_INSTALL_DOCDIR
}
)
ENDIF
()
SET
(
CPACK_PACKAGE_VERSION_MAJOR
${
PAHO_VERSION_MAJOR
}
)
...
...
doc/CMakeLists.txt
View file @
1b61a3bf
...
...
@@ -36,5 +36,10 @@ FOREACH(DOXYFILE_SRC DoxyfileV3ClientAPI;DoxyfileV3AsyncAPI;DoxyfileV3ClientInte
)
SET
(
DOXYTARGETS
${
DOXYTARGETS
}
${
DOXYFILE_SRC
}
.target
)
ENDFOREACH
(
DOXYFILE_SRC
)
ADD_CUSTOM_TARGET
(
doc ALL DEPENDS
${
DOXYTARGETS
}
)
INSTALL
(
DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
/doc DESTINATION share
)
IF
(
PAHO_ENABLE_CPACK
)
INSTALL
(
DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
/doc DESTINATION share
)
ELSE
()
INSTALL
(
DIRECTORY
${
CMAKE_CURRENT_BINARY_DIR
}
/doc DESTINATION
${
CMAKE_INSTALL_DOCDIR
}
)
ENDIF
()
\ No newline at end of file
src/Heap.c
View file @
1b61a3bf
/*******************************************************************************
* Copyright (c) 2009, 201
4
IBM Corp.
* Copyright (c) 2009, 201
8
IBM Corp.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
...
...
@@ -376,7 +376,7 @@ static void HeapScan(enum LOG_LEVELS log_level)
{
storageElement
*
s
=
(
storageElement
*
)(
current
->
content
);
Log
(
log_level
,
-
1
,
"Heap element size %d, line %d, file %s, ptr %p"
,
s
->
size
,
s
->
line
,
s
->
file
,
s
->
ptr
);
Log
(
log_level
,
-
1
,
" Content %
*.
s"
,
(
10
>
current
->
size
)
?
s
->
size
:
10
,
(
char
*
)(((
int
*
)
s
->
ptr
)
+
1
));
Log
(
log_level
,
-
1
,
" Content %
.*
s"
,
(
10
>
current
->
size
)
?
s
->
size
:
10
,
(
char
*
)(((
int
*
)
s
->
ptr
)
+
1
));
#if defined(HEAP_STACK)
Log
(
log_level
,
-
1
,
" Stack:
\n
%s"
,
s
->
stack
);
#endif
...
...
src/MQTTAsync.c
View file @
1b61a3bf
...
...
@@ -3665,3 +3665,42 @@ MQTTAsync_nameValue* MQTTAsync_getVersionInfo(void)
libinfo
[
i
].
value
=
NULL
;
return
libinfo
;
}
const
char
*
MQTTAsync_strerror
(
int
code
)
{
switch
(
code
)
{
case
MQTTASYNC_SUCCESS
:
return
"Success"
;
case
MQTTASYNC_FAILURE
:
return
"Failure"
;
case
MQTTASYNC_PERSISTENCE_ERROR
:
return
"Persistence error"
;
case
MQTTASYNC_DISCONNECTED
:
return
"Disconnected"
;
case
MQTTASYNC_MAX_MESSAGES_INFLIGHT
:
return
"Maximum in-flight messages amount reached"
;
case
MQTTASYNC_BAD_UTF8_STRING
:
return
"Invalid UTF8 string"
;
case
MQTTASYNC_NULL_PARAMETER
:
return
"Invalid (NULL) parameter"
;
case
MQTTASYNC_TOPICNAME_TRUNCATED
:
return
"Topic containing NULL characters has been truncated"
;
case
MQTTASYNC_BAD_STRUCTURE
:
return
"Bad structure"
;
case
MQTTASYNC_BAD_QOS
:
return
"Invalid QoS value"
;
case
MQTTASYNC_NO_MORE_MSGIDS
:
return
"Too many pending commands"
;
case
MQTTASYNC_OPERATION_INCOMPLETE
:
return
"Operation discarded before completion"
;
case
MQTTASYNC_MAX_BUFFERED_MESSAGES
:
return
"No more messages can be buffered"
;
case
MQTTASYNC_SSL_NOT_SUPPORTED
:
return
"SSL is not supported"
;
case
MQTTASYNC_BAD_PROTOCOL
:
return
"Invalid protocole scheme"
;
}
return
NULL
;
}
src/MQTTAsync.h
View file @
1b61a3bf
...
...
@@ -1343,6 +1343,13 @@ typedef struct
*/
DLLExport
MQTTAsync_nameValue
*
MQTTAsync_getVersionInfo
(
void
);
/**
* Returns a pointer to the string representation of the error or NULL.
*
* Do not free after use. Returns NULL if the error code is unknown.
*/
DLLExport
const
char
*
MQTTAsync_strerror
(
int
code
);
/**
* @cond MQTTAsync_main
...
...
src/MQTTClient.c
View file @
1b61a3bf
...
...
@@ -2237,6 +2237,37 @@ MQTTClient_nameValue* MQTTClient_getVersionInfo(void)
}
const
char
*
MQTTClient_strerror
(
int
code
)
{
switch
(
code
)
{
case
MQTTCLIENT_SUCCESS
:
return
"Success"
;
case
MQTTCLIENT_FAILURE
:
return
"Failure"
;
case
MQTTCLIENT_DISCONNECTED
:
return
"Disconnected"
;
case
MQTTCLIENT_MAX_MESSAGES_INFLIGHT
:
return
"Maximum in-flight messages amount reached"
;
case
MQTTCLIENT_BAD_UTF8_STRING
:
return
"Invalid UTF8 string"
;
case
MQTTCLIENT_NULL_PARAMETER
:
return
"Invalid (NULL) parameter"
;
case
MQTTCLIENT_TOPICNAME_TRUNCATED
:
return
"Topic containing NULL characters has been truncated"
;
case
MQTTCLIENT_BAD_STRUCTURE
:
return
"Bad structure"
;
case
MQTTCLIENT_BAD_QOS
:
return
"Invalid QoS value"
;
case
MQTTCLIENT_SSL_NOT_SUPPORTED
:
return
"SSL is not supported"
;
case
MQTTCLIENT_BAD_PROTOCOL
:
return
"Invalid protocole scheme"
;
}
return
NULL
;
}
/**
* See if any pending writes have been completed, and cleanup if so.
* Cleaning up means removing any publication data that was stored because the write did
...
...
src/MQTTClient.h
View file @
1b61a3bf
...
...
@@ -1053,6 +1053,13 @@ DLLExport void MQTTClient_free(void* ptr);
*/
DLLExport
void
MQTTClient_destroy
(
MQTTClient
*
handle
);
/**
* Returns a pointer to the string representation of the error or NULL.
*
* Do not free after use. Returns NULL if the error code is unknown.
*/
DLLExport
const
char
*
MQTTClient_strerror
(
int
code
);
#endif
#ifdef __cplusplus
}
...
...
src/MQTTPacket.c
View file @
1b61a3bf
...
...
@@ -14,6 +14,7 @@
* Ian Craggs - initial API and implementation and/or initial documentation
* Ian Craggs, Allan Stockdill-Mander - SSL updates
* Ian Craggs - MQTT 3.1.1 support
* Ian Craggs - fix for issue 453
* Ian Craggs - MQTT 5.0 support
*******************************************************************************/
...
...
@@ -183,27 +184,32 @@ int MQTTPacket_send(networkHandles* net, Header header, char* buffer, size_t buf
int
rc
;
size_t
buf0len
;
char
*
buf
;
int
count
=
0
;
FUNC_ENTRY
;
buf
=
malloc
(
10
);
buf
[
0
]
=
header
.
byte
;
buf0len
=
1
+
MQTTPacket_encode
(
&
buf
[
1
],
buflen
);
if
(
buffer
!=
NULL
)
count
=
1
;
#if !defined(NO_PERSISTENCE)
if
(
header
.
bits
.
type
==
PUBREL
)
{
char
*
ptraux
=
buffer
;
int
msgId
=
readInt
(
&
ptraux
);
rc
=
MQTTPersistence_put
(
net
->
socket
,
buf
,
buf0len
,
1
,
&
buffer
,
&
buflen
,
rc
=
MQTTPersistence_put
(
net
->
socket
,
buf
,
buf0len
,
count
,
&
buffer
,
&
buflen
,
header
.
bits
.
type
,
msgId
,
0
);
}
#endif
#if defined(OPENSSL)
if
(
net
->
ssl
)
rc
=
SSLSocket_putdatas
(
net
->
ssl
,
net
->
socket
,
buf
,
buf0len
,
1
,
&
buffer
,
&
buflen
,
&
freeData
);
rc
=
SSLSocket_putdatas
(
net
->
ssl
,
net
->
socket
,
buf
,
buf0len
,
count
,
&
buffer
,
&
buflen
,
&
freeData
);
else
#endif
rc
=
Socket_putdatas
(
net
->
socket
,
buf
,
buf0len
,
1
,
&
buffer
,
&
buflen
,
&
freeData
);
rc
=
Socket_putdatas
(
net
->
socket
,
buf
,
buf0len
,
count
,
&
buffer
,
&
buflen
,
&
freeData
);
if
(
rc
==
TCPSOCKET_COMPLETE
)
time
(
&
(
net
->
lastSent
));
...
...
src/MQTTPacketOut.c
View file @
1b61a3bf
...
...
@@ -193,12 +193,11 @@ int MQTTPacket_send_pingreq(networkHandles* net, const char* clientID)
{
Header
header
;
int
rc
=
0
;
size_t
buflen
=
0
;
FUNC_ENTRY
;
header
.
byte
=
0
;
header
.
bits
.
type
=
PINGREQ
;
rc
=
MQTTPacket_send
(
net
,
header
,
NULL
,
buflen
,
0
);
rc
=
MQTTPacket_send
(
net
,
header
,
NULL
,
0
,
0
);
Log
(
LOG_PROTOCOL
,
20
,
NULL
,
net
->
socket
,
clientID
,
rc
);
FUNC_EXIT_RC
(
rc
);
return
rc
;
...
...
src/utf-8.c
View file @
1b61a3bf
...
...
@@ -138,7 +138,7 @@ int UTF8_validate(int len, const char* data)
}
curdata
=
UTF8_char_validate
(
len
,
data
);
while
(
curdata
&&
(
curdata
<
data
+
len
))
curdata
=
UTF8_char_validate
(
len
,
curdata
);
curdata
=
UTF8_char_validate
(
data
+
len
-
curdata
,
curdata
);
rc
=
curdata
!=
NULL
;
exit:
...
...
travis-deploy.sh
0 → 100644
View file @
1b61a3bf
scp
-o
StrictHostKeyChecking
=
no build.paho/
*
.tar.gz icraggs@build.eclipse.org:../../../../shared/technology/paho/C/
travis-setup-deploy.sh
0 → 100755
View file @
1b61a3bf
openssl aes-256-cbc
-K
$encrypted_dcd2b299f7c9_key
-iv
$encrypted_dcd2b299f7c9_iv
-in
deploy_rsa.enc
-out
/tmp/deploy_rsa
-d
eval
"
$(
ssh-agent
-s
)
"
chmod
600 /tmp/deploy_rsa
ssh-add /tmp/deploy_rsa
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment