httpfsclient.c File Reference

#include <stdarg.h>
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include "sleep.h"
#include "crypt.h"
#include "rtvlib.h"
#include "httpfsclient.h"

Go to the source code of this file.

Data Structures

struct  hfs_data

Defines

#define ARGBUFSIZE   2048

Functions

static int map_httpfs_status_to_rc (unsigned long status)
static int make_httpfs_url (char *dst, size_t size, const rtv_device_info_t *device, const char *command, va_list args)
static int add_httpfs_headers (struct hc *hc)
static struct hcmake_request (const rtv_device_info_t *device, const char *command, va_list ap)
static int hfs_do_simple (char **presult, const rtv_device_info_t *device, const char *command,...)
static int hfs_do_simple_binary (rtv_http_resp_data_t *data, const rtv_device_info_t *device, const char *command,...)
static int hfs_callback (unsigned char *buf, size_t len, void *vd)
static int hfs_do_chunked (rtv_read_file_chunked_cb_t fn, void *v, const rtv_device_info_t *device, __u16 msec_delay, int mergechunks, const char *command,...)
unsigned long hfs_do_post_simple (char **presult, const rtv_device_info_t *device, int(*fn)(unsigned char *, size_t, void *), void *v, unsigned long size, const char *command,...)
static int vstrcmp (const void *v1, const void *v2)
int rtv_get_volinfo (const rtv_device_info_t *device, const char *name, rtv_fs_volume_t **volinfo)
void rtv_free_volinfo (rtv_fs_volume_t **volinfo)
void rtv_print_volinfo (const rtv_fs_volume_t *volinfo)
int rtv_get_file_info (const rtv_device_info_t *device, const char *name, rtv_fs_file_t *fileinfo)
void rtv_free_file_info (rtv_fs_file_t *fileinfo)
void rtv_print_file_info (const rtv_fs_file_t *fileinfo)
int rtv_get_filelist (const rtv_device_info_t *device, const char *name, int details, rtv_fs_filelist_t **filelist)
void rtv_free_file_list (rtv_fs_filelist_t **filelist)
void rtv_print_file_list (const rtv_fs_filelist_t *filelist, int detailed)
__u32 rtv_read_file_chunked (const rtv_device_info_t *device, const char *filename, __u64 pos, __u64 size, unsigned int ms_delay, rtv_read_file_chunked_cb_t callback_fxn, void *callback_data)
__u32 rtv_read_file (const rtv_device_info_t *device, const char *filename, __u64 pos, __u64 size, rtv_http_resp_data_t *data)


Define Documentation

#define ARGBUFSIZE   2048
 

Definition at line 27 of file httpfsclient.c.

Referenced by make_httpfs_url().


Function Documentation

static int add_httpfs_headers struct hc hc  )  [static]
 

Definition at line 132 of file httpfsclient.c.

References hc_add_req_header().

Referenced by hfs_do_post_simple(), and make_request().

static int hfs_callback unsigned char *  buf,
size_t  len,
void *  vd
[static]
 

Definition at line 290 of file httpfsclient.c.

References data, map_httpfs_status_to_rc(), rc, RTV_DBGLOG, RTV_ERRLOG, rtv_sleep(), and RTVLOG_CMD.

Referenced by hfs_do_chunked().

static int hfs_do_chunked rtv_read_file_chunked_cb_t  fn,
void *  v,
const rtv_device_info_t device,
__u16  msec_delay,
int  mergechunks,
const char *  command,
  ...
[static]
 

Definition at line 333 of file httpfsclient.c.

References data, hc_free(), hc_read_pieces(), hfs_callback(), rtv_device_info_t::ipaddr, make_request(), map_httpfs_status_to_rc(), rc, RTV_DBGLOG, RTV_ERRLOG, and RTVLOG_CMD.

Referenced by rtv_read_file_chunked().

unsigned long hfs_do_post_simple char **  presult,
const rtv_device_info_t device,
int(*)(unsigned char *, size_t, void *)  fn,
void *  v,
unsigned long  size,
const char *  command,
  ...
 

Definition at line 372 of file httpfsclient.c.

References add_httpfs_headers(), errno, hc_add_req_header(), hc_free(), hc_get_status(), hc_post_request(), hc_read_all(), hc_start_request(), rtv_device_info_t::ipaddr, make_httpfs_url(), map_httpfs_status_to_rc(), rc, RTV_DBGLOG, RTV_ERRLOG, RTV_WARNLOG, RTVLOG_CMD, and URLSIZE.

static int hfs_do_simple char **  presult,
const rtv_device_info_t device,
const char *  command,
  ...
[static]
 

Definition at line 184 of file httpfsclient.c.

References hc_free(), hc_get_status(), hc_read_all(), rtv_device_info_t::ipaddr, make_request(), map_httpfs_status_to_rc(), rc, RTV_DBGLOG, RTV_ERRLOG, RTV_WARNLOG, and RTVLOG_CMD.

Referenced by rtv_get_file_info(), rtv_get_filelist(), and rtv_get_volinfo().

static int hfs_do_simple_binary rtv_http_resp_data_t data,
const rtv_device_info_t device,
const char *  command,
  ...
[static]
 

Definition at line 233 of file httpfsclient.c.

References data, hc_free(), hc_get_status(), hc_read_all(), rtv_device_info_t::ipaddr, make_request(), map_httpfs_status_to_rc(), rc, RTV_DBGLOG, RTV_ERRLOG, RTV_WARNLOG, and RTVLOG_CMD.

Referenced by rtv_read_file().

static int make_httpfs_url char *  dst,
size_t  size,
const rtv_device_info_t device,
const char *  command,
va_list  args
[static]
 

Definition at line 64 of file httpfsclient.c.

References ARGBUFSIZE, rtv_device_info_t::ipaddr, rtv_device_version_t::major, rtv_device_version_t::minor, RTV_DBGLOG, rtv_encrypt(), RTV_ERRLOG, RTVLOG_CMD, value(), and rtv_device_info_t::version.

Referenced by hfs_do_post_simple(), and make_request().

static struct hc* make_request const rtv_device_info_t device,
const char *  command,
va_list  ap
[static]
 

Definition at line 141 of file httpfsclient.c.

References add_httpfs_headers(), errno, hc_free(), hc_get_status(), hc_send_request(), hc_start_request(), rtv_device_info_t::ipaddr, make_httpfs_url(), RTV_DBGLOG, RTV_ERRLOG, RTVLOG_CMD, and URLSIZE.

Referenced by hfs_do_chunked(), hfs_do_simple(), and hfs_do_simple_binary().

static int map_httpfs_status_to_rc unsigned long  status  )  [static]
 

Definition at line 29 of file httpfsclient.c.

References rc, and RTV_ERRLOG.

Referenced by hfs_callback(), hfs_do_chunked(), hfs_do_post_simple(), hfs_do_simple(), and hfs_do_simple_binary().

void rtv_free_file_info rtv_fs_file_t fileinfo  ) 
 

Definition at line 590 of file httpfsclient.c.

References rtv_fs_file_t::name, rtv_fs_file_t::time_str_fmt1, and rtv_fs_file_t::time_str_fmt2.

Referenced by ciHttpFsGetFile(), ciHttpFsStatus(), play_show(), rtv_device_hilite_callback(), rtv_free_file_list(), rtv_free_show(), rtv_open_ndx_file(), and thruput_test().

void rtv_free_file_list rtv_fs_filelist_t **  filelist  ) 
 

Definition at line 707 of file httpfsclient.c.

References rtv_fs_filelist_t::files, rtv_fs_filelist_t::num_files, and rtv_free_file_info().

Referenced by ciHttpFsListFiles().

void rtv_free_volinfo rtv_fs_volume_t **  volinfo  ) 
 

Definition at line 495 of file httpfsclient.c.

References rtv_fs_volume_t::name.

Referenced by ciHttpFsVolinfo(), rtv_device_hilite_callback(), and rtv_get_guide().

int rtv_get_file_info const rtv_device_info_t device,
const char *  name,
rtv_fs_file_t fileinfo
 

Definition at line 526 of file httpfsclient.c.

References data, hfs_do_simple(), rc, RTV_ERRLOG, RTV_FS_UNKNOWN, split_lines(), and hc::status.

Referenced by ciHttpFsGetFile(), ciHttpFsStatus(), play_show(), rtv_device_hilite_callback(), rtv_get_filelist(), rtv_open_ndx_file(), and thruput_test().

int rtv_get_filelist const rtv_device_info_t device,
const char *  name,
int  details,
rtv_fs_filelist_t **  filelist
 

Definition at line 622 of file httpfsclient.c.

References data, rtv_fs_filelist_t::files, hfs_do_simple(), rtv_fs_file_t::name, rtv_fs_filelist_t::num_files, rtv_fs_filelist_t::pathname, RTV_ERRLOG, rtv_get_file_info(), split_lines(), hc::status, rtv_fs_file_t::type, and vstrcmp().

Referenced by ciHttpFsListFiles().

int rtv_get_volinfo const rtv_device_info_t device,
const char *  name,
rtv_fs_volume_t **  volinfo
 

Definition at line 452 of file httpfsclient.c.

References data, hfs_do_simple(), rtv_fs_volume_t::name, RTV_ERRLOG, rtv_fs_volume_t::size, split_lines(), hc::status, U64F, and x.

Referenced by ciHttpFsVolinfo(), rtv_device_hilite_callback(), and rtv_get_guide().

void rtv_print_file_info const rtv_fs_file_t fileinfo  ) 
 

Definition at line 601 of file httpfsclient.c.

References rtv_fs_file_t::name, RTV_PRT, rtv_fs_file_t::size, rtv_fs_file_t::size_k, rtv_fs_file_t::time, rtv_fs_file_t::time_str_fmt1, rtv_fs_file_t::time_str_fmt2, rtv_fs_file_t::type, and U64F.

Referenced by ciHttpFsGetFile(), and ciHttpFsStatus().

void rtv_print_file_list const rtv_fs_filelist_t filelist,
int  detailed
 

Definition at line 727 of file httpfsclient.c.

References rtv_fs_filelist_t::files, rtv_fs_file_t::name, rtv_fs_filelist_t::num_files, rtv_fs_filelist_t::pathname, RTV_PRT, rtv_fs_file_t::size, rtv_fs_file_t::size_k, rtv_fs_file_t::time_str_fmt1, rtv_fs_file_t::type, and U64F.

Referenced by ciHttpFsListFiles().

void rtv_print_volinfo const rtv_fs_volume_t volinfo  ) 
 

Definition at line 509 of file httpfsclient.c.

References rtv_fs_volume_t::name, RTV_PRT, rtv_fs_volume_t::size, rtv_fs_volume_t::size_k, U64F, rtv_fs_volume_t::used, and rtv_fs_volume_t::used_k.

Referenced by ciHttpFsVolinfo().

__u32 rtv_read_file const rtv_device_info_t device,
const char *  filename,
__u64  pos,
__u64  size,
rtv_http_resp_data_t data
 

Definition at line 793 of file httpfsclient.c.

References data, hfs_do_simple_binary(), hc::status, and U64F.

Referenced by play_show(), rtv_get_ndx22_rec(), rtv_get_ndx30_rec(), rtv_open_ndx_file(), and rtv_parse_4k_ndx_file().

__u32 rtv_read_file_chunked const rtv_device_info_t device,
const char *  filename,
__u64  pos,
__u64  size,
unsigned int  ms_delay,
rtv_read_file_chunked_cb_t  callback_fxn,
void *  callback_data
 

Definition at line 755 of file httpfsclient.c.

References hfs_do_chunked(), rtv_globals_t::merge_chunk_sz, rtv_globals, hc::status, and U64F.

Referenced by ciHttpFsGetFile(), and get_mpeg_file().

static int vstrcmp const void *  v1,
const void *  v2
[static]
 

Definition at line 440 of file httpfsclient.c.

Referenced by rtv_get_filelist().


Generated on Fri Sep 10 03:13:24 2010 for mvpmc by  doxygen 1.4.6