summaryrefslogtreecommitdiffstats
path: root/libdvdcss
diff options
context:
space:
mode:
Diffstat (limited to 'libdvdcss')
-rw-r--r--libdvdcss/common.h6
-rw-r--r--libdvdcss/css.c68
-rw-r--r--libdvdcss/css.h6
-rw-r--r--libdvdcss/csstables.h6
-rw-r--r--libdvdcss/device.c131
-rw-r--r--libdvdcss/device.h8
-rw-r--r--libdvdcss/dvdcss/dvdcss.h6
-rw-r--r--libdvdcss/error.c10
-rw-r--r--libdvdcss/ioctl.c10
-rw-r--r--libdvdcss/ioctl.h6
-rw-r--r--libdvdcss/libdvdcss.c51
-rw-r--r--libdvdcss/libdvdcss.h8
12 files changed, 251 insertions, 65 deletions
diff --git a/libdvdcss/common.h b/libdvdcss/common.h
index aff5ccbaa7..931413fb15 100644
--- a/libdvdcss/common.h
+++ b/libdvdcss/common.h
@@ -19,9 +19,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
/*****************************************************************************
diff --git a/libdvdcss/css.c b/libdvdcss/css.c
index 23d186ab73..2bb4f18833 100644
--- a/libdvdcss/css.c
+++ b/libdvdcss/css.c
@@ -16,19 +16,19 @@
* - DecVOB
* see http://www.lemuria.org/DeCSS/ by Tom Vogt for more information.
*
- * This program is free software; you can redistribute it and/or modify
+ * This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this library; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
/*****************************************************************************
@@ -89,10 +89,19 @@ static int AttackPadding ( uint8_t const[], int, uint8_t * );
/*****************************************************************************
* _dvdcss_test: check if the disc is encrypted or not
+ *****************************************************************************
+ * Return values:
+ * 1: DVD is scrambled but can be read
+ * 0: DVD is not scrambled and can be read
+ * -1: could not get "copyright" information
+ * -2: could not get RPC information (reading the disc might be possible)
+ * -3: drive is RPC-II, region is not set, and DVD is scrambled: the RPC
+ * scheme will prevent us from reading the scrambled data
*****************************************************************************/
int _dvdcss_test( dvdcss_t dvdcss )
{
- int i_ret, i_copyright;
+ char const *psz_type, *psz_rpc;
+ int i_ret, i_copyright, i_type, i_mask, i_rpc;
i_ret = ioctl_ReadCopyright( dvdcss->i_fd, 0 /* i_layer */, &i_copyright );
@@ -115,14 +124,51 @@ int _dvdcss_test( dvdcss_t dvdcss )
if( i_ret < 0 )
{
/* Since it's the first ioctl we try to issue, we add a notice */
- print_error( dvdcss, "css error: ioctl_ReadCopyright failed, "
- "make sure there is a DVD in the drive, and that "
- "you have used the correct device node." );
+ print_error( dvdcss, "css error: could not get \"copyright\""
+ " information, make sure there is a DVD in the drive,"
+ " and that you have used the correct device node." );
+
+ return -1;
+ }
+
+ print_debug( dvdcss, "disc reports copyright information 0x%x",
+ i_copyright );
+
+ i_ret = ioctl_ReportRPC( dvdcss->i_fd, &i_type, &i_mask, &i_rpc);
+
+ if( i_ret < 0 )
+ {
+ print_error( dvdcss, "css error: could not get RPC status" );
+ return -2;
+ }
- return i_ret;
+ switch( i_rpc )
+ {
+ case 0: psz_rpc = "RPC-I"; break;
+ case 1: psz_rpc = "RPC-II"; break;
+ default: psz_rpc = "unknown RPC scheme"; break;
+ }
+
+ switch( i_type )
+ {
+ case 0: psz_type = "no region code set"; break;
+ case 1: psz_type = "region code set"; break;
+ case 2: psz_type = "one region change remaining"; break;
+ case 3: psz_type = "region code set permanently"; break;
+ default: psz_type = "unknown status"; break;
+ }
+
+ print_debug( dvdcss, "drive region mask %x, %s, %s",
+ i_mask, psz_rpc, psz_type );
+
+ if( i_copyright && i_rpc == 1 && i_type == 0 )
+ {
+ print_error( dvdcss, "css error: drive will prevent access to "
+ "scrambled data" );
+ return -3;
}
- return i_copyright;
+ return i_copyright ? 1 : 0;
}
/*****************************************************************************
diff --git a/libdvdcss/css.h b/libdvdcss/css.h
index 03becda17c..a97fa4a193 100644
--- a/libdvdcss/css.h
+++ b/libdvdcss/css.h
@@ -22,9 +22,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
#define KEY_SIZE 5
diff --git a/libdvdcss/csstables.h b/libdvdcss/csstables.h
index bd0fc3a706..1c00685bcc 100644
--- a/libdvdcss/csstables.h
+++ b/libdvdcss/csstables.h
@@ -24,9 +24,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
diff --git a/libdvdcss/device.c b/libdvdcss/device.c
index 0d8e4a06ee..98507f4ea5 100644
--- a/libdvdcss/device.c
+++ b/libdvdcss/device.c
@@ -8,19 +8,19 @@
* Sam Hocevar <sam@zoy.org>
* HÃ¥kan Hjort <d95hjort@dtek.chalmers.se>
*
- * This program is free software; you can redistribute it and/or modify
+ * This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this library; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
/*****************************************************************************
@@ -65,6 +65,14 @@
# include <IOKit/storage/IODVDMedia.h>
#endif
+#ifdef SYS_OS2
+# define INCL_DOS
+# define INCL_DOSDEVIOCTL
+# include <os2.h>
+# include <io.h> /* setmode() */
+# include <fcntl.h> /* O_BINARY */
+#endif
+
#include "dvdcss/dvdcss.h"
#include "common.h"
@@ -91,6 +99,12 @@ static int aspi_read ( dvdcss_t, void *, int );
static int win_readv ( dvdcss_t, struct iovec *, int );
static int aspi_read_internal ( int, void *, int );
+#elif defined( SYS_OS2 )
+static int os2_open ( dvdcss_t, char const * );
+/* just use macros for libc */
+# define os2_seek libc_seek
+# define os2_read libc_read
+# define os2_readv libc_readv
#endif
int _dvdcss_use_ioctls( dvdcss_t dvdcss )
@@ -110,6 +124,16 @@ int _dvdcss_use_ioctls( dvdcss_t dvdcss )
{
return 1;
}
+#elif defined( SYS_OS2 )
+ ULONG ulMode;
+
+ if( DosQueryFHState( dvdcss->i_fd, &ulMode ) != 0 )
+ return 1; /* What to do? Be conservative and try to use the ioctls */
+
+ if( ulMode & OPEN_FLAGS_DASD )
+ return 1;
+
+ return 0;
#else
struct stat fileinfo;
int ret;
@@ -157,6 +181,28 @@ void _dvdcss_check ( dvdcss_t dvdcss )
kern_return_t kern_result;
io_iterator_t media_iterator;
CFMutableDictionaryRef classes_to_match;
+#elif defined( SYS_OS2 )
+#pragma pack( 1 )
+ struct
+ {
+ BYTE bCmdInfo;
+ BYTE bDrive;
+ } param;
+
+ struct
+ {
+ BYTE abEBPB[31];
+ USHORT usCylinders;
+ BYTE bDevType;
+ USHORT usDevAttr;
+ } data;
+#pragma pack()
+
+ ULONG ulParamLen;
+ ULONG ulDataLen;
+ ULONG rc;
+
+ int i;
#else
char *ppsz_devices[] = { "/dev/dvd", "/dev/cdrom", "/dev/hdc", NULL };
int i, i_fd;
@@ -270,6 +316,32 @@ void _dvdcss_check ( dvdcss_t dvdcss )
}
IOObjectRelease( media_iterator );
+#elif defined( SYS_OS2 )
+ for( i = 0; i < 26; i++ )
+ {
+ param.bCmdInfo = 0;
+ param.bDrive = i;
+
+ rc = DosDevIOCtl( ( HFILE )-1, IOCTL_DISK, DSK_GETDEVICEPARAMS,
+ &param, sizeof( param ), &ulParamLen,
+ &data, sizeof( data ), &ulDataLen );
+
+ if( rc == 0 )
+ {
+ /* Check for removable and for cylinders */
+ if( ( data.usDevAttr & 1 ) == 0 && data.usCylinders == 0xFFFF )
+ {
+ char psz_dvd[] = "A:";
+
+ psz_dvd[0] += i;
+
+ print_debug( dvdcss, "defaulting to drive `%s'", psz_dvd );
+ free( dvdcss->psz_device );
+ dvdcss->psz_device = strdup( psz_dvd );
+ return;
+ }
+ }
+ }
#else
for( i = 0; ppsz_devices[i]; i++ )
{
@@ -322,6 +394,18 @@ int _dvdcss_open ( dvdcss_t dvdcss )
return aspi_open( dvdcss, psz_device );
}
else
+#elif defined( SYS_OS2 )
+ /* If device is "X:" or "X:\", we are not actually opening a file. */
+ if( psz_device[0] && psz_device[1] == ':' &&
+ ( !psz_device[2] || ( psz_device[2] == '\\' && !psz_device[3] ) ) )
+ {
+ print_debug( dvdcss, "using OS2 API for access" );
+ dvdcss->pf_seek = os2_seek;
+ dvdcss->pf_read = os2_read;
+ dvdcss->pf_readv = os2_readv;
+ return os2_open( dvdcss, psz_device );
+ }
+ else
#endif
{
print_debug( dvdcss, "using libc for access" );
@@ -332,7 +416,7 @@ int _dvdcss_open ( dvdcss_t dvdcss )
}
}
-#ifndef WIN32
+#if !defined(WIN32) && !defined(SYS_OS2)
int _dvdcss_raw_open ( dvdcss_t dvdcss, char const *psz_device )
{
dvdcss->i_raw_fd = open( psz_device, 0 );
@@ -385,11 +469,13 @@ int _dvdcss_close ( dvdcss_t dvdcss )
#else
close( dvdcss->i_fd );
+#ifndef SYS_OS2
if( dvdcss->i_raw_fd >= 0 )
{
close( dvdcss->i_raw_fd );
dvdcss->i_raw_fd = -1;
}
+#endif
return 0;
#endif
@@ -402,7 +488,7 @@ int _dvdcss_close ( dvdcss_t dvdcss )
*****************************************************************************/
static int libc_open ( dvdcss_t dvdcss, char const *psz_device )
{
-#if !defined( WIN32 )
+#if !defined( WIN32 ) && !defined( SYS_OS2 )
dvdcss->i_fd = dvdcss->i_read_fd = open( psz_device, 0 );
#else
dvdcss->i_fd = dvdcss->i_read_fd = open( psz_device, O_BINARY );
@@ -578,6 +664,37 @@ static int aspi_open( dvdcss_t dvdcss, char const * psz_device )
}
#endif
+#ifdef SYS_OS2
+static int os2_open ( dvdcss_t dvdcss, char const *psz_device )
+{
+ char psz_dvd[] = "X:";
+ HFILE hfile;
+ ULONG ulAction;
+ ULONG rc;
+
+ psz_dvd[0] = psz_device[0];
+
+ rc = DosOpenL( ( PSZ )psz_dvd, &hfile, &ulAction, 0, FILE_NORMAL,
+ OPEN_ACTION_OPEN_IF_EXISTS | OPEN_ACTION_FAIL_IF_NEW,
+ OPEN_ACCESS_READONLY | OPEN_SHARE_DENYNONE | OPEN_FLAGS_DASD,
+ NULL );
+
+ if( rc )
+ {
+ print_error( dvdcss, "failed to open device" );
+ return -1;
+ }
+
+ setmode( hfile, O_BINARY );
+
+ dvdcss->i_fd = dvdcss->i_read_fd = hfile;
+
+ dvdcss->i_pos = 0;
+
+ return 0;
+}
+#endif
+
/*****************************************************************************
* Seek commands.
*****************************************************************************/
diff --git a/libdvdcss/device.h b/libdvdcss/device.h
index d8a73f0d4e..33c53ac64f 100644
--- a/libdvdcss/device.h
+++ b/libdvdcss/device.h
@@ -18,9 +18,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
/*****************************************************************************
@@ -52,7 +52,7 @@ int _dvdcss_close ( dvdcss_t );
/*****************************************************************************
* Device reading prototypes, raw-device specific
*****************************************************************************/
-#ifndef WIN32
+#if !defined(WIN32) && !defined(SYS_OS2)
int _dvdcss_raw_open ( dvdcss_t, char const * );
#endif
diff --git a/libdvdcss/dvdcss/dvdcss.h b/libdvdcss/dvdcss/dvdcss.h
index c97f996824..8ef98f6e77 100644
--- a/libdvdcss/dvdcss/dvdcss.h
+++ b/libdvdcss/dvdcss/dvdcss.h
@@ -22,9 +22,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef DVDCSS_DVDCSS_H
diff --git a/libdvdcss/error.c b/libdvdcss/error.c
index 66d2b67ad4..794f4841ac 100644
--- a/libdvdcss/error.c
+++ b/libdvdcss/error.c
@@ -6,19 +6,19 @@
*
* Author: Sam Hocevar <sam@zoy.org>
*
- * This program is free software; you can redistribute it and/or modify
+ * This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this library; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
#include "config.h"
diff --git a/libdvdcss/ioctl.c b/libdvdcss/ioctl.c
index d0903994c7..5c7e615327 100644
--- a/libdvdcss/ioctl.c
+++ b/libdvdcss/ioctl.c
@@ -13,19 +13,19 @@
* Alex Strelnikov <lelik@os2.ru>
* Gildas Bazin <gbazin@netcourrier.com>
*
- * This program is free software; you can redistribute it and/or modify
+ * This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this library; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
/*****************************************************************************
diff --git a/libdvdcss/ioctl.h b/libdvdcss/ioctl.h
index 16f51d251b..ef6ae8a9d4 100644
--- a/libdvdcss/ioctl.h
+++ b/libdvdcss/ioctl.h
@@ -16,9 +16,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
int ioctl_ReadCopyright ( int, int, int * );
diff --git a/libdvdcss/libdvdcss.c b/libdvdcss/libdvdcss.c
index 1be814f838..f39d7025d4 100644
--- a/libdvdcss/libdvdcss.c
+++ b/libdvdcss/libdvdcss.c
@@ -7,19 +7,19 @@
* Copyright (C) 1998-2008 VideoLAN
* $Id$
*
- * This program is free software; you can redistribute it and/or modify
+ * This library is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
- * This program is distributed in the hope that it will be useful,
+ * This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this library; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
/**
@@ -166,7 +166,7 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target )
char *psz_method = getenv( "DVDCSS_METHOD" );
char *psz_verbose = getenv( "DVDCSS_VERBOSE" );
char *psz_cache = getenv( "DVDCSS_CACHE" );
-#ifndef WIN32
+#if !defined(WIN32) && !defined(SYS_OS2)
char *psz_raw_device = getenv( "DVDCSS_RAW_DEVICE" );
#endif
@@ -184,7 +184,7 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target )
/*
* Initialize structure with default values
*/
-#ifndef WIN32
+#if !defined(WIN32) && !defined(SYS_OS2)
dvdcss->i_raw_fd = -1;
#endif
dvdcss->p_titles = NULL;
@@ -306,7 +306,25 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target )
/* Cache our keys in ${HOME}/.dvdcss/ */
if( psz_home )
{
- snprintf( psz_buffer, PATH_MAX, "%s/.dvdcss", psz_home );
+ int home_pos = 0;
+
+#ifdef SYS_OS2
+ if( *psz_home == '/' || *psz_home == '\\')
+ {
+ char *psz_unixroot = getenv("UNIXROOT");
+
+ if( psz_unixroot &&
+ psz_unixroot[0] &&
+ psz_unixroot[1] == ':' &&
+ psz_unixroot[2] == '\0')
+ {
+ strcpy( psz_buffer, psz_unixroot );
+ home_pos = 2;
+ }
+ }
+#endif
+ snprintf( psz_buffer + home_pos, PATH_MAX - home_pos,
+ "%s/.dvdcss", psz_home );
psz_buffer[PATH_MAX-1] = '\0';
psz_cache = psz_buffer;
}
@@ -349,7 +367,14 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target )
if( dvdcss->b_ioctls )
{
i_ret = _dvdcss_test( dvdcss );
- if( i_ret < 0 )
+ if( i_ret == -2 )
+ {
+ /* Scrambled disk, RPC-II drive, no region set: bail out */
+ free( dvdcss->psz_device );
+ free( dvdcss );
+ return NULL;
+ }
+ else if( i_ret < 0 )
{
/* Disable the CSS ioctls and hope that it works? */
print_debug( dvdcss,
@@ -402,7 +427,6 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target )
if( psz_cache )
{
uint8_t p_sector[DVDCSS_BLOCK_SIZE];
- char psz_debug[PATH_MAX + 30];
char psz_key[1 + KEY_SIZE * 2 + 1];
char *psz_title;
uint8_t *psz_serial;
@@ -530,13 +554,12 @@ LIBDVDCSS_EXPORT dvdcss_t dvdcss_open ( char *psz_target )
/* Pointer to the filename we will use. */
dvdcss->psz_block = dvdcss->psz_cachefile + i;
- sprintf( psz_debug, "using CSS key cache dir: %s",
- dvdcss->psz_cachefile );
- print_debug( dvdcss, psz_debug );
+ print_debug( dvdcss, "using CSS key cache dir: %s",
+ dvdcss->psz_cachefile );
}
nocache:
-#ifndef WIN32
+#if !defined(WIN32) && !defined(SYS_OS2)
if( psz_raw_device != NULL )
{
_dvdcss_raw_open( dvdcss, psz_raw_device );
diff --git a/libdvdcss/libdvdcss.h b/libdvdcss/libdvdcss.h
index 80f78c3062..35ffc9b9de 100644
--- a/libdvdcss/libdvdcss.h
+++ b/libdvdcss/libdvdcss.h
@@ -17,9 +17,9 @@
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with libdvdcss; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*****************************************************************************/
struct iovec;
@@ -62,7 +62,7 @@ struct dvdcss_s
int i_readv_buf_size;
#endif
-#ifndef WIN32
+#if !defined(WIN32) && !defined(SYS_OS2)
int i_raw_fd;
#endif
};