kopia lustrzana https://gitlab.com/sane-project/backends
2009-01-13 Louis Lagendijk <llagendijk-guest at users.alioth.debian.org>
* backend/pixma_bjnp.c: send broadcasts from bjnp port to make firewalling easiermerge-requests/1/head
rodzic
894e0cc8ed
commit
1b57825ef3
|
@ -1,3 +1,7 @@
|
||||||
|
2009-01-13 Louis Lagendijk <llagendijk-guest at users.alioth.debian.org>
|
||||||
|
* backend/pixma_bjnp.c: send broadcasts from bjnp port to make
|
||||||
|
firewalling easier
|
||||||
|
|
||||||
2009-01-13 Julien Blache <jb@jblache.org>
|
2009-01-13 Julien Blache <jb@jblache.org>
|
||||||
* tools/sane-desc.c: replace opencoded device permissions and
|
* tools/sane-desc.c: replace opencoded device permissions and
|
||||||
ownership by proper definitions. Group USB devices by vendor in
|
ownership by proper definitions. Group USB devices by vendor in
|
||||||
|
|
|
@ -563,8 +563,8 @@ parse_scanner_address (char *resp_buf, char *address, char *serial)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
bjnp_send_broadcast (struct in_addr broadcast_addr, struct BJNP_command cmd,
|
bjnp_send_broadcast (struct in_addr local_addr, struct in_addr broadcast_addr,
|
||||||
int size)
|
struct BJNP_command cmd, int size)
|
||||||
{
|
{
|
||||||
/*
|
/*
|
||||||
* send command to interface and return open socket
|
* send command to interface and return open socket
|
||||||
|
@ -595,11 +595,11 @@ bjnp_send_broadcast (struct in_addr broadcast_addr, struct BJNP_command cmd,
|
||||||
return -1;
|
return -1;
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Bind to local address, let OS select local address and port */
|
/* Bind to local address, use BJNP port */
|
||||||
|
|
||||||
sendaddr.sin_family = AF_INET;
|
sendaddr.sin_family = AF_INET;
|
||||||
sendaddr.sin_port = htons (0);
|
sendaddr.sin_port = htons (BJNP_PORT_SCAN);
|
||||||
sendaddr.sin_addr.s_addr = htonl (INADDR_ANY);
|
sendaddr.sin_addr = local_addr;
|
||||||
memset (sendaddr.sin_zero, '\0', sizeof sendaddr.sin_zero);
|
memset (sendaddr.sin_zero, '\0', sizeof sendaddr.sin_zero);
|
||||||
|
|
||||||
if (bind
|
if (bind
|
||||||
|
@ -1180,6 +1180,7 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
||||||
struct ifaddrs *interface;
|
struct ifaddrs *interface;
|
||||||
#else
|
#else
|
||||||
struct in_addr broadcast;
|
struct in_addr broadcast;
|
||||||
|
struct in_addr local;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
PDBG (pixma_dbg (LOG_INFO, "sanei_bjnp_find_devices:\n"));
|
PDBG (pixma_dbg (LOG_INFO, "sanei_bjnp_find_devices:\n"));
|
||||||
|
@ -1219,8 +1220,10 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
||||||
|
|
||||||
if ((socket_fd[no_sockets] =
|
if ((socket_fd[no_sockets] =
|
||||||
bjnp_send_broadcast (((struct sockaddr_in *) interface->
|
bjnp_send_broadcast (((struct sockaddr_in *) interface->
|
||||||
ifa_broadaddr)->sin_addr, cmd,
|
ifa_addr)->sin_addr,
|
||||||
sizeof (cmd))) != -1)
|
((struct sockaddr_in *) interface->
|
||||||
|
ifa_broadaddr)->sin_addr,
|
||||||
|
cmd, sizeof (cmd))) != -1)
|
||||||
{
|
{
|
||||||
if (socket_fd[no_sockets] > last_socketfd)
|
if (socket_fd[no_sockets] > last_socketfd)
|
||||||
{
|
{
|
||||||
|
@ -1240,10 +1243,11 @@ sanei_bjnp_find_devices (const char **conf_devices,
|
||||||
/* we have no easy way to find interfaces with their broadcast addresses, use global broadcast */
|
/* we have no easy way to find interfaces with their broadcast addresses, use global broadcast */
|
||||||
|
|
||||||
no_sockets = 0;
|
no_sockets = 0;
|
||||||
broadcast.s_addr = INADDR_BROADCAST;
|
broadcast.s_addr = htonl(INADDR_BROADCAST);
|
||||||
|
local.s_addr = htonl(INADDR_ANY);
|
||||||
|
|
||||||
if ((socket_fd[no_sockets] =
|
if ((socket_fd[no_sockets] =
|
||||||
bjnp_send_broadcast (broadcast, cmd, sizeof (cmd))) != -1)
|
bjnp_send_broadcast (local, broadcast, cmd, sizeof (cmd))) != -1)
|
||||||
{
|
{
|
||||||
if (socket_fd[no_sockets] > last_socketfd)
|
if (socket_fd[no_sockets] > last_socketfd)
|
||||||
{
|
{
|
||||||
|
|
Ładowanie…
Reference in New Issue