| 34 } |
34 } |
| 35 |
35 |
| 36 return TRUE; |
36 return TRUE; |
| 37 } |
37 } |
| 38 |
38 |
| 39 /* |
|
| 40 * check the command is the command with payload content |
|
| 41 * if it is return TRUE |
|
| 42 * else return FALSE |
|
| 43 */ |
|
| 44 static gboolean |
|
| 45 msn_check_payload_cmd(const char *str) |
|
| 46 { |
|
| 47 g_return_val_if_fail(str != NULL, FALSE); |
|
| 48 |
|
| 49 if((!strcmp(str,"ADL")) || |
|
| 50 (!strcmp(str,"GCF")) || |
|
| 51 (!strcmp(str,"SG")) || |
|
| 52 (!strcmp(str,"MSG")) || |
|
| 53 (!strcmp(str,"RML")) || |
|
| 54 (!strcmp(str,"UBX")) || |
|
| 55 (!strcmp(str,"UBN")) || |
|
| 56 (!strcmp(str,"UUM")) || |
|
| 57 (!strcmp(str,"UBM")) || |
|
| 58 (!strcmp(str,"FQY")) || |
|
| 59 (!strcmp(str,"UUN")) || |
|
| 60 (!strcmp(str,"UUX")) || |
|
| 61 (!strcmp(str,"IPG")) || |
|
| 62 (is_num(str))){ |
|
| 63 return TRUE; |
|
| 64 } |
|
| 65 |
|
| 66 return FALSE; |
|
| 67 } |
|
| 68 |
|
| 69 /* |
|
| 70 * set command Payload length |
|
| 71 */ |
|
| 72 static gboolean |
|
| 73 msn_set_payload_len(MsnCommand *cmd) |
|
| 74 { |
|
| 75 char *param; |
|
| 76 int len = 0; |
|
| 77 gboolean has_payload = FALSE; |
|
| 78 |
|
| 79 if (msn_check_payload_cmd(cmd->command) && (cmd->param_count > 0)){ |
|
| 80 param = cmd->params[cmd->param_count - 1]; |
|
| 81 len = is_num(param) ? atoi(param) : 0; |
|
| 82 has_payload = TRUE; |
|
| 83 } |
|
| 84 |
|
| 85 cmd->payload_len = len; |
|
| 86 |
|
| 87 return has_payload; |
|
| 88 } |
|
| 89 |
|
| 90 MsnCommand * |
39 MsnCommand * |
| 91 msn_command_from_string(const char *string) |
40 msn_command_from_string(const char *string) |
| 92 { |
41 { |
| 93 MsnCommand *cmd; |
42 MsnCommand *cmd; |
| 94 char *param_start; |
43 char *param_start; |