|
|
| version 1.1.1.1.2.23, 2011/12/13 09:01:43 | version 1.1.1.1.2.24, 2011/12/13 09:51:35 |
|---|---|
| Line 30 Usage(void) | Line 30 Usage(void) |
| "\t-p <port>\t\tDifferent port for connect (default: 1883)\n" | "\t-p <port>\t\tDifferent port for connect (default: 1883)\n" |
| "\t-U <username>\t\tUsername\n" | "\t-U <username>\t\tUsername\n" |
| "\t-P <password>\t\tPassword\n" | "\t-P <password>\t\tPassword\n" |
| "\t-W <topic>\t\tWill Topic\n" | |
| "\t-M <message>\t\tWill Message\n" | |
| "\t-D\t\t\tDaemon mode\n" | "\t-D\t\t\tDaemon mode\n" |
| "\t-v\t\t\tVerbose (more -vvv, more verbose)\n" | "\t-v\t\t\tVerbose (more -vvv, more verbose)\n" |
| "\t-h\t\t\tHelp! This screen\n\n", | "\t-h\t\t\tHelp! This screen\n\n", |
| Line 39 Usage(void) | Line 41 Usage(void) |
| static void | static void |
| cleanArgs(struct tagArgs * __restrict args) | cleanArgs(struct tagArgs * __restrict args) |
| { | { |
| mqtt_msgFree(&args->msg, 42); | |
| AIT_FREE_VAL(&args->Will.Msg); | |
| AIT_FREE_VAL(&args->Will.Topic); | |
| AIT_FREE_VAL(&args->User); | AIT_FREE_VAL(&args->User); |
| AIT_FREE_VAL(&args->Pass); | AIT_FREE_VAL(&args->Pass); |
| AIT_FREE_VAL(&args->Publish); | AIT_FREE_VAL(&args->Publish); |
| Line 58 main(int argc, char **argv) | Line 63 main(int argc, char **argv) |
| if (!(args = malloc(sizeof(struct tagArgs)))) { | if (!(args = malloc(sizeof(struct tagArgs)))) { |
| printf("Error:: in arguments #%d - %s\n", errno, strerror(errno)); | printf("Error:: in arguments #%d - %s\n", errno, strerror(errno)); |
| return 1; | return 1; |
| } else if (!(args->Subscribes = io_allocVars(1))) { | } else |
| memset(args, 0, sizeof(struct tagArgs)); | |
| if (!(args->Subscribes = io_allocVars(1))) { | |
| printf("Error:: in subscribes array #%d - %s\n", io_GetErrno(), io_GetError()); | printf("Error:: in subscribes array #%d - %s\n", io_GetErrno(), io_GetError()); |
| free(args); | free(args); |
| return 1; | return 1; |
| } else | } else |
| args->free = cleanArgs; | args->free = cleanArgs; |
| if (!(args->msg = mqtt_msgAlloc(USHRT_MAX))) { | |
| printf("Error:: in mqtt buffer #%d - %s\n", mqtt_GetErrno(), mqtt_GetError()); | |
| args->free(args); | |
| free(args); | |
| return 1; | |
| } | |
| strlcpy(szCfgName, DEFAULT_CONFIG, sizeof szCfgName); | strlcpy(szCfgName, DEFAULT_CONFIG, sizeof szCfgName); |
| while ((ch = getopt(argc, argv, "U:P:p:t:s:q:drc:fDvh")) != -1) | while ((ch = getopt(argc, argv, "U:P:p:t:s:q:drc:W:M:fDvh")) != -1) |
| switch (ch) { | switch (ch) { |
| case 'M': | |
| AIT_FREE_VAL(&args->Will.Msg); | |
| AIT_SET_STR(&args->Will.Msg, optarg); | |
| break; | |
| case 'W': | |
| AIT_FREE_VAL(&args->Will.Topic); | |
| AIT_SET_STR(&args->Will.Topic, optarg); | |
| break; | |
| case 'U': | case 'U': |
| AIT_FREE_VAL(&args->User); | AIT_FREE_VAL(&args->User); |
| AIT_SET_STR(&args->User, optarg); | AIT_SET_STR(&args->User, optarg); |
| Line 156 main(int argc, char **argv) | Line 178 main(int argc, char **argv) |
| } | } |
| if ((sock = InitClient()) == -1) { | if ((sock = InitClient()) == -1) { |
| UnloadConfig(&cfg); | |
| args->free(args); | args->free(args); |
| free(args); | free(args); |
| return 2; | return 2; |
| } | |
| if (SendConnect(sock) == -1) { | |
| close(sock); | |
| UnloadConfig(&cfg); | |
| args->free(args); | |
| free(args); | |
| return 3; | |
| } | } |
| shutdown(sock, SHUT_RDWR); | shutdown(sock, SHUT_RDWR); |