Exemplo n.º 1
0
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;
    }
  }
}
Exemplo n.º 2
0
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;      
    }
  }
}
Exemplo n.º 3
0
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;
}