static void kr_stream_send_request_for_stream (krad_stream_t *stream) { ssize_t ret; int len; char http_req[512]; len = snprintf (http_req, sizeof(http_req), "GET %s HTTP/1.0\r\nHost: %s\r\n\r\n", stream->mount, stream->host); ret = kr_stream_send (stream, http_req + stream->position, len - stream->position); if (ret > 0) { if (stream->position == len) { stream->position = 0; stream->half_ready = 1; } } }
static void kr_stream_send_request_to_stream (krad_stream_t *stream) { ssize_t ret; int len; char http_req[512]; char auth[256]; char auth_base64[256]; len = 0; snprintf (auth, sizeof(auth), "source:%s", stream->password); kr_base64_encode (auth_base64, auth, sizeof(auth_base64)); len = snprintf (http_req, sizeof(http_req) - len, "SOURCE %s ICE/1.0\r\n", stream->mount); len += snprintf (http_req + len, sizeof(http_req) - len, "content-type: %s\r\n", stream->content_type); len += snprintf (http_req + len, sizeof(http_req) - len, "Authorization: Basic %s\r\n\r\n", auth_base64); ret = kr_stream_send (stream, http_req + stream->position, len - stream->position); if (ret > 0) { //printf ("RTR!! %.*s--\n", stream->position, http_req); if (stream->position == len) { stream->position = 0; stream->ready = 1; stream->connected = 1; } } }
static int kr_ogg_io_push_internal (kr_ogg_io *ogg_io) { ssize_t ret; ssize_t sent; ssize_t bytes; uint8_t *buffer; if (ogg_io->stream != NULL) { sent = 0; buffer = ogg_io->io->buffer; bytes = ogg_io->io->len; while (sent != bytes) { kr_stream_i_am_a_blocking_subscripter (ogg_io->stream); ret = kr_stream_send (ogg_io->stream, buffer + sent, bytes - sent); if (ret > 0) { sent += ret; } if (sent != bytes) { //printf ("\nSent to few bytes: ret %zd - sent %zd - total %zd\n", // ret, sent, bytes); //fflush (stdout); } if (ogg_io->stream->connected == 0) { printke ("Failed!: %s\n", ogg_io->stream->error_str); return -1; } } if (ogg_io->stream->connected == 1) { kr_io2_restart (ogg_io->io); } } else { kr_io2_sync (ogg_io->io); } return 0; }