Changeset 5608:584b36c566e2 in roaraudio for roard
- Timestamp:
- 07/31/12 15:31:35 (12 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/clients.c
r5607 r5608 758 758 return -1; 759 759 760 roar_connect_fh(&con, ROAR_CLIENT(cs)->fh); 760 if ( roar_connect_fh(&con, ROAR_CLIENT(cs)->fh) == -1 ) { 761 ROAR_WARN("clients_check(id=%i): Can not create con object for client: %s", id, roar_errorstring); 762 } 761 763 762 764 ROAR_DBG("clients_check(id=%i): c->proto=%i", id, ROAR_CLIENT(cs)->proto); … … 802 804 } else { 803 805 roar_notify_core_emit_simple(event, id, -1, -1, m.cmd, -1, NULL, 0); 804 roar_send_message(&con, &m, flags[1] & COMMAND_FLAG_OUT_LONGDATA ? data : NULL); 806 if ( roar_send_message(&con, &m, flags[1] & COMMAND_FLAG_OUT_LONGDATA ? data : NULL) == -1 ) { 807 ROAR_WARN("clients_check(id=%i): Can not send answer to client: %s", id, roar_errorstring); 808 } 805 809 } 806 810 807 811 if ( flags[1] & COMMAND_FLAG_OUT_CLOSECON ) 808 812 clients_close(id, 1); 813 814 if ( flags[1] & COMMAND_FLAG_OUT_DELETE ) 815 clients_delete(id); 809 816 810 817 break; -
roard/commands.c
r5381 r5608 48 48 49 49 {ROAR_CMD_EXEC_STREAM, _NAME("EXEC_STREAM"), req_on_exec_stream, ACCLEV_PWRUSER}, 50 {ROAR_CMD_QUIT, _NAME("QUIT"), (int(*)(int client, struct roar_message * mes, char ** data, uint32_t flags[2]))clients_delete, ACCLEV_NONE},50 {ROAR_CMD_QUIT, _NAME("QUIT"), req_on_quit, ACCLEV_NONE}, 51 51 52 52 {ROAR_CMD_CON_STREAM, _NAME("CON_STREAM"), req_on_con_stream, ACCLEV_PWRUSER}, -
roard/include/commands.h
r5381 r5608 36 36 #define COMMAND_FLAG_OUT_LONGDATA 0x00000002 37 37 #define COMMAND_FLAG_OUT_NOSEND 0x00000004 38 #define COMMAND_FLAG_OUT_DELETE 0x00000008 /* delete the client */ 38 39 39 40 struct roar_command { -
roard/include/req.h
r5381 r5608 30 30 31 31 int req_on_noop (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 32 int req_on_quit (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); 32 33 33 34 int req_on_identify (int client, struct roar_message * mes, char ** data, uint32_t flags[2]); -
roard/req.c
r5586 r5608 81 81 } 82 82 83 int req_on_quit (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 84 (void)client, (void)data; 85 mes->cmd = ROAR_CMD_OK; 86 mes->pos = g_pos; 87 mes->datalen = 0; 88 flags[1] |= COMMAND_FLAG_OUT_DELETE; 89 return 0; 90 } 91 83 92 int req_on_identify (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 84 93 struct roar_client_server * cs; … … 1067 1076 int req_on_get_client (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 1068 1077 struct roar_client * c; 1078 int ret; 1069 1079 1070 1080 if ( mes->datalen != 1 ) 1071 1081 return -1; 1072 1082 1083 if ( *data != NULL ) 1084 roar_mm_free(*data); 1085 *data = NULL; 1086 1073 1087 if ( clients_get(mes->data[0], &c) == -1 ) 1074 1088 return -1; … … 1076 1090 mes->cmd = ROAR_CMD_OK; 1077 1091 1078 return roar_ctl_c2m(mes, c); 1092 ret = roar_ctl_c2m2(mes, c, data); 1093 1094 if ( *data != NULL ) 1095 flags[1] |= COMMAND_FLAG_OUT_LONGDATA; 1096 1097 return ret; 1079 1098 } 1080 1099
Note: See TracChangeset
for help on using the changeset viewer.