Mercurial > mplayer.hg
view libmpdemux/http.h @ 8575:1d15ca298dda
Fix DVD authentication on Solaris 9.
Solaris 9 does not allow USCSICMD ioctls for non-root users on vold devices
any more; they are failing with an EPERM "permission denied" error. Now, only
root is allowed to run USCSICMD ioctls on vold devices.
Fortunatelly there's a new subroutine exported from libsmedia.so
(smedia_uscsi_cmd) which allows non-root users to perform user mode SCSI
commands on a vold device. (This works with a help of a daemon running as
user root, /usr/lib/smedia/rpc.smserverd)
This change detects the presence of function "smedia_uscsi_cmd" in library
libsmedia.so at runtime, and uses this function if it's found (i.e. on
solaris 9 smedia_uscsi_cmd() is used to execture user mode scsi commands).
On solaris 8 or older, "smedia_uscsi_cmd" is not available and the code
falls back to the old ioctl(.. USCSICMD ..) method.
author | jkeil |
---|---|
date | Fri, 27 Dec 2002 16:29:11 +0000 |
parents | 60624e692b95 |
children | f580a7755ac5 |
line wrap: on
line source
/* * HTTP Helper * by Bertrand Baudet <bertrand_baudet@yahoo.com> * (C) 2001, MPlayer team. */ #ifndef __HTTP_H #define __HTTP_H typedef struct HTTP_field_type { char *field_name; struct HTTP_field_type *next; } HTTP_field_t; typedef struct { char *protocol; char *method; char *uri; unsigned int status_code; char *reason_phrase; unsigned int http_minor_version; // Field variables HTTP_field_t *first_field; HTTP_field_t *last_field; unsigned int field_nb; char *field_search; HTTP_field_t *field_search_pos; // Body variables char *body; size_t body_size; char *buffer; size_t buffer_size; unsigned int is_parsed; } HTTP_header_t; HTTP_header_t* http_new_header(); void http_free( HTTP_header_t *http_hdr ); int http_response_append( HTTP_header_t *http_hdr, char *data, int length ); int http_response_parse( HTTP_header_t *http_hdr ); int http_is_header_entire( HTTP_header_t *http_hdr ); char* http_build_request( HTTP_header_t *http_hdr ); char* http_get_field( HTTP_header_t *http_hdr, const char *field_name ); char* http_get_next_field( HTTP_header_t *http_hdr ); void http_set_field( HTTP_header_t *http_hdr, const char *field_name ); void http_set_method( HTTP_header_t *http_hdr, const char *method ); void http_set_uri( HTTP_header_t *http_hdr, const char *uri ); int http_add_basic_authentication( HTTP_header_t *http_hdr, const char *username, const char *password ); void http_debug_hdr( HTTP_header_t *http_hdr ); int base64_encode(const void *enc, int encLen, char *out, int outMax); #endif // __HTTP_H