add support for RAW1394DEV environment variable to override default /dev/raw1394, but also attempt to failover to default.
git-svn-id: svn://svn.linux1394.org/libraw1394/trunk@170 53a565d1-3bb7-0310-b661-cf11e63c67ab
This commit is contained in:
parent
fa981a8b96
commit
4a129dd960
17
src/main.c
17
src/main.c
|
@ -115,6 +115,7 @@ static unsigned int init_rawdevice(struct raw1394_handle *h)
|
|||
struct raw1394_handle *raw1394_new_handle(void)
|
||||
{
|
||||
struct raw1394_handle *handle;
|
||||
const char *defaultDevice = "/dev/raw1394";
|
||||
|
||||
handle = malloc(sizeof(struct raw1394_handle));
|
||||
if (!handle) {
|
||||
|
@ -122,18 +123,32 @@ struct raw1394_handle *raw1394_new_handle(void)
|
|||
return NULL;
|
||||
}
|
||||
|
||||
handle->fd = open("/dev/raw1394", O_RDWR);
|
||||
handle->fd = open(getenv("RAW1394DEV") ? getenv("RAW1394DEV"): defaultDevice, O_RDWR);
|
||||
if (handle->fd < 0) {
|
||||
/* failover to default in attempt to idiot proof */
|
||||
handle->fd = open(defaultDevice, O_RDWR);
|
||||
if (handle->fd < 0) {
|
||||
free(handle);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
handle->generation = init_rawdevice(handle);
|
||||
if (handle->generation == -1) {
|
||||
/* failover to default in attempt to idiot proof */
|
||||
close(handle->fd);
|
||||
handle->fd = open(defaultDevice, O_RDWR);
|
||||
if (handle->fd < 0) {
|
||||
free(handle);
|
||||
return NULL;
|
||||
}
|
||||
handle->generation = init_rawdevice(handle);
|
||||
if (handle->generation == -1) {
|
||||
close(handle->fd);
|
||||
free(handle);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
handle->err = 0;
|
||||
handle->bus_reset_handler = bus_reset_default;
|
||||
|
|
Reference in New Issue