Changeset 4948:29b5b41a1ca2 in roaraudio for roard
- Timestamp:
- 05/10/11 01:41:14 (13 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/req.c
r4923 r4948 343 343 344 344 int req_on_exec_stream (int client, struct roar_message * mes, char ** data, uint32_t flags[2]) { 345 struct roar_message m; 346 struct roar_client * c; 347 struct roar_connection con; 348 int16_t * d = (int16_t*)mes->data; 349 int sock; 350 int i; 345 351 int r; 346 352 … … 348 354 349 355 350 if ( streams_is_ready(mes->stream) ) { 351 flags[1] |= COMMAND_FLAG_OUT_CLOSECON; 352 } else { 353 if ( (r = client_stream_exec(client, mes->stream)) == -1 ) 354 return -1; 355 } 356 357 ROAR_DBG("req_on_exec_stream(client=%i, mes={stream=%i,...},...): returning (OK)...", client, mes->stream); 358 mes->cmd = ROAR_CMD_OK; 359 mes->datalen = 0; 356 if ( mes->stream != -1 ) { 357 if ( streams_is_ready(mes->stream) ) { 358 flags[1] |= COMMAND_FLAG_OUT_CLOSECON; 359 } else { 360 if ( (r = client_stream_exec(client, mes->stream)) == -1 ) 361 return -1; 362 } 363 364 ROAR_DBG("req_on_exec_stream(client=%i, mes={stream=%i,...},...): returning (OK)...", client, mes->stream); 365 mes->cmd = ROAR_CMD_OK; 366 mes->datalen = 0; 367 return 0; 368 } 369 370 if ( mes->datalen < 4*2 ) 371 return -1; 372 373 for (i = 0; i < 4; i++) { 374 d[i] = ROAR_NET2HOST16(d[i]); 375 } 376 377 if ( d[0] != 0 ) // version 378 return -1; 379 380 if ( d[1] != 0 ) // flags 381 return -1; 382 383 memset(&m, 0, sizeof(m)); 384 385 m.cmd = ROAR_CMD_OK; 386 387 flags[1] |= COMMAND_FLAG_OUT_NOSEND; 388 389 c = ROAR_CLIENT(g_clients[client]); 390 391 sock = c->fh; 392 393 if ( sock == -1 ) 394 return -1; 395 396 roar_connect_fh(&con, sock); 397 398 roar_send_message(&con, &m, NULL); 399 400 clients_set_fh(client, -1); 401 clients_delete(client); 402 403 clients_new_from_fh(sock, d[2], d[3], 1); 360 404 361 405 return 0;
Note: See TracChangeset
for help on using the changeset viewer.