Own fork of MbedSmartRestMain
Dependencies: C027_Support C12832 LM75B MMA7660 MbedSmartRest mbed-rtos mbed
Fork of MbedSmartRestMain by
util/SmartRestConf.cpp@100:dbcd3bc51758, 2015-05-08 (annotated)
- Committer:
- xinlei
- Date:
- Fri May 08 12:19:57 2015 +0000
- Revision:
- 100:dbcd3bc51758
- Parent:
- 98:e369fc75c000
- Child:
- 105:c61f0d62b625
v2.1rc3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
xinlei | 92:0acd11870c6a | 1 | #include <string.h> |
xinlei | 93:61d44636f020 | 2 | #include <stdio.h> |
xinlei | 92:0acd11870c6a | 3 | #include "b64.h" |
xinlei | 98:e369fc75c000 | 4 | #include "SmartRestConf.h" |
xinlei | 92:0acd11870c6a | 5 | |
xinlei | 98:e369fc75c000 | 6 | const char *srUsername = NULL; |
xinlei | 98:e369fc75c000 | 7 | const char *srPassword = NULL; |
xinlei | 98:e369fc75c000 | 8 | char srAuthStr[100] = {0}; |
xinlei | 98:e369fc75c000 | 9 | const char *srX_ID = "com_cumulocity_MbedAgent_1.5.2"; |
xinlei | 98:e369fc75c000 | 10 | const char *srHost = "developer.cumulocity.com"; |
xinlei | 100:dbcd3bc51758 | 11 | //const char *srHost = "management.m2m-devicecloud.com"; |
xinlei | 98:e369fc75c000 | 12 | const int srPort = 80; |
xinlei | 98:e369fc75c000 | 13 | long deviceID = 0; |
xinlei | 93:61d44636f020 | 14 | char fmtSmartRest[200] = {0}; |
xinlei | 92:0acd11870c6a | 15 | |
xinlei | 92:0acd11870c6a | 16 | void setAuthStr(const char* p1, const char* p2) |
xinlei | 92:0acd11870c6a | 17 | { |
xinlei | 98:e369fc75c000 | 18 | memset(srAuthStr, 0, sizeof(srAuthStr)); |
xinlei | 92:0acd11870c6a | 19 | size_t ul = strlen(p1); |
xinlei | 92:0acd11870c6a | 20 | size_t pl = strlen(p2); |
xinlei | 92:0acd11870c6a | 21 | unsigned char input[3], output[5]; |
xinlei | 92:0acd11870c6a | 22 | int inputOffset = 0; |
xinlei | 92:0acd11870c6a | 23 | |
xinlei | 92:0acd11870c6a | 24 | for (size_t i = 0; i < (ul+1+pl); i++) { |
xinlei | 92:0acd11870c6a | 25 | if (i < ul) |
xinlei | 92:0acd11870c6a | 26 | input[inputOffset++] = p1[i]; |
xinlei | 92:0acd11870c6a | 27 | else if (i == ul) |
xinlei | 92:0acd11870c6a | 28 | input[inputOffset++] = ':'; |
xinlei | 92:0acd11870c6a | 29 | else |
xinlei | 92:0acd11870c6a | 30 | input[inputOffset++] = p2[i-(ul+1)]; |
xinlei | 92:0acd11870c6a | 31 | |
xinlei | 92:0acd11870c6a | 32 | if ((inputOffset == 3) || (i == ul+pl)) { |
xinlei | 92:0acd11870c6a | 33 | b64_encode(input, inputOffset, output, 4); |
xinlei | 92:0acd11870c6a | 34 | output[4] = '\0'; |
xinlei | 98:e369fc75c000 | 35 | strcat(srAuthStr, (char*)output); |
xinlei | 92:0acd11870c6a | 36 | inputOffset = 0; |
xinlei | 92:0acd11870c6a | 37 | } |
xinlei | 92:0acd11870c6a | 38 | } |
xinlei | 92:0acd11870c6a | 39 | } |
xinlei | 92:0acd11870c6a | 40 | |
xinlei | 92:0acd11870c6a | 41 | void setUsername(const char* username) |
xinlei | 92:0acd11870c6a | 42 | { |
xinlei | 98:e369fc75c000 | 43 | srUsername = username; |
xinlei | 92:0acd11870c6a | 44 | } |
xinlei | 92:0acd11870c6a | 45 | |
xinlei | 92:0acd11870c6a | 46 | void setPassword(const char* password) |
xinlei | 92:0acd11870c6a | 47 | { |
xinlei | 98:e369fc75c000 | 48 | srPassword = password; |
xinlei | 93:61d44636f020 | 49 | } |
xinlei | 93:61d44636f020 | 50 | |
xinlei | 93:61d44636f020 | 51 | void setSmartRestFmt() |
xinlei | 93:61d44636f020 | 52 | { |
xinlei | 93:61d44636f020 | 53 | const char fmt[] = "POST %%s HTTP/1.0\r\nHost: %s\r\nAuthorization: Basic %s\r\nX-Id: %s\r\nContent-Length: %%d\r\n\r\n%%s"; |
xinlei | 98:e369fc75c000 | 54 | snprintf(fmtSmartRest, sizeof(fmtSmartRest), fmt, srHost, srAuthStr, srX_ID); |
xinlei | 93:61d44636f020 | 55 | } |
xinlei | 93:61d44636f020 | 56 | |
xinlei | 98:e369fc75c000 | 57 | void setX_ID(const char* id) |
xinlei | 93:61d44636f020 | 58 | { |
xinlei | 93:61d44636f020 | 59 | if (id) { |
xinlei | 98:e369fc75c000 | 60 | srX_ID = id; |
xinlei | 93:61d44636f020 | 61 | setSmartRestFmt(); |
xinlei | 93:61d44636f020 | 62 | } |
xinlei | 93:61d44636f020 | 63 | } |
xinlei | 93:61d44636f020 | 64 | |
xinlei | 98:e369fc75c000 | 65 | void setDeviceID(long id) |
xinlei | 98:e369fc75c000 | 66 | { |
xinlei | 98:e369fc75c000 | 67 | deviceID = id; |
xinlei | 98:e369fc75c000 | 68 | } |
xinlei | 98:e369fc75c000 | 69 | |
xinlei | 93:61d44636f020 | 70 | void setAuth(const char* username, const char* password) |
xinlei | 93:61d44636f020 | 71 | { |
xinlei | 93:61d44636f020 | 72 | if (username) |
xinlei | 93:61d44636f020 | 73 | setUsername(username); |
xinlei | 93:61d44636f020 | 74 | if (password) |
xinlei | 93:61d44636f020 | 75 | setPassword(password); |
xinlei | 93:61d44636f020 | 76 | if (username || password) { |
xinlei | 93:61d44636f020 | 77 | setAuthStr(username, password); |
xinlei | 93:61d44636f020 | 78 | setSmartRestFmt(); |
xinlei | 93:61d44636f020 | 79 | } |
xinlei | 93:61d44636f020 | 80 | } |