kopia lustrzana https://github.com/Hamlib/Hamlib
restrict listening IP address
git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@2399 7ae35d74-ebe9-4afe-98af-79ac388436b8Hamlib-1.2.8
rodzic
45cbd3b019
commit
f7e6d60341
|
@ -97,6 +97,9 @@ Use -L option for a list.
|
|||
.B \-t, --port=number
|
||||
Use \fInumber\fP as the TCP listening port. The default is 4532.
|
||||
.TP
|
||||
.B \-T, --listen-addr=IPADDR
|
||||
Use \fIIPADDR\fP as the listening IP address. The default is ANY.
|
||||
.TP
|
||||
.B \-l, --list
|
||||
List all model numbers defined in \fBHamlib\fP and exit.
|
||||
.TP
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* This program test/control a radio using Hamlib.
|
||||
* It takes commands from network connection.
|
||||
*
|
||||
* $Id: rigctld.c,v 1.7 2008-09-17 20:36:34 fillods Exp $
|
||||
* $Id: rigctld.c,v 1.8 2008-09-21 20:32:07 fillods Exp $
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
|
@ -68,7 +68,7 @@
|
|||
* NB: do NOT use -W since it's reserved by POSIX.
|
||||
* TODO: add an option to read from a file
|
||||
*/
|
||||
#define SHORT_OPTIONS "m:r:p:d:P:D:s:c:lC:t:LuovhV"
|
||||
#define SHORT_OPTIONS "m:r:p:d:P:D:s:c:lC:t:T:LuovhV"
|
||||
static struct option long_options[] =
|
||||
{
|
||||
{"model", 1, 0, 'm'},
|
||||
|
@ -80,6 +80,7 @@ static struct option long_options[] =
|
|||
{"serial-speed", 1, 0, 's'},
|
||||
{"civaddr", 1, 0, 'c'},
|
||||
{"port", 1, 0, 't'},
|
||||
{"listen-addr", 1, 0, 'T'},
|
||||
{"list", 0, 0, 'l'},
|
||||
{"set-conf", 1, 0, 'C'},
|
||||
{"show-conf",0, 0, 'L'},
|
||||
|
@ -105,6 +106,7 @@ int interactive = 1; /* no cmd because of daemon */
|
|||
int prompt= 0 ; /* Daemon mode for rigparse return string */
|
||||
|
||||
int portno = 4532;
|
||||
uint32_t src_addr = INADDR_ANY;
|
||||
|
||||
#define MAXCONFLEN 128
|
||||
|
||||
|
@ -129,6 +131,7 @@ int main (int argc, char *argv[])
|
|||
int sock_listen;
|
||||
struct sockaddr_in serv_addr;
|
||||
int reuseaddr = 1;
|
||||
int a0,a1,a2,a3;
|
||||
|
||||
while(1) {
|
||||
int c;
|
||||
|
@ -242,6 +245,17 @@ int main (int argc, char *argv[])
|
|||
}
|
||||
portno = atoi(optarg);
|
||||
break;
|
||||
case 'T':
|
||||
if (!optarg) {
|
||||
usage(); /* wrong arg count */
|
||||
exit(1);
|
||||
}
|
||||
if (4 != sscanf(optarg, "%d.%d.%d.%d", &a0,&a1,&a2,&a3)) {
|
||||
usage(); /* wrong arg count */
|
||||
exit(1);
|
||||
}
|
||||
src_addr = (a0<<24)|(a1<<16)|(a2<<8)|a3;
|
||||
break;
|
||||
case 'o':
|
||||
vfo_mode++;
|
||||
break;
|
||||
|
@ -343,7 +357,7 @@ int main (int argc, char *argv[])
|
|||
|
||||
serv_addr.sin_family = AF_INET;
|
||||
serv_addr.sin_port = htons(portno);
|
||||
serv_addr.sin_addr.s_addr = INADDR_ANY;
|
||||
serv_addr.sin_addr.s_addr = htonl(src_addr);
|
||||
|
||||
|
||||
if (setsockopt(sock_listen, SOL_SOCKET, SO_REUSEADDR,
|
||||
|
@ -482,6 +496,7 @@ void usage(void)
|
|||
" -s, --serial-speed=BAUD set serial speed of the serial port\n"
|
||||
" -c, --civaddr=ID set CI-V address, decimal (for Icom rigs only)\n"
|
||||
" -t, --port=NUM set TCP listening port, default %d\n"
|
||||
" -T, --listen-addr=IPADDR set listening IP address, default ANY\n"
|
||||
" -C, --set-conf=PARM=VAL set config parameters\n"
|
||||
" -L, --show-conf list all config parameters\n"
|
||||
" -l, --list list all model numbers and exit\n"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
.\" First parameter, NAME, should be all caps
|
||||
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
|
||||
.\" other parameters are allowed: see man(7), man(1)
|
||||
.TH ROTCTLD "8" "Septembre 12, 2008" "Hamlib" "Rotator Control Daemon"
|
||||
.TH ROTCTLD "8" "Septembre 21, 2008" "Hamlib" "Rotator Control Daemon"
|
||||
.\" Please adjust this date whenever revising the manpage.
|
||||
.\"
|
||||
.\" Some roff macros, for reference:
|
||||
|
@ -74,6 +74,9 @@ Use -L option for a list.
|
|||
.B \-t, --port=number
|
||||
Use \fInumber\fP as the TCP listening port. The default is 4533.
|
||||
.TP
|
||||
.B \-T, --listen-addr=IPADDR
|
||||
Use \fIIPADDR\fP as the listening IP address. The default is ANY.
|
||||
.TP
|
||||
.B \-l, --list
|
||||
List all model numbers defined in \fBHamlib\fP and exit.
|
||||
.TP
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* This program test/control a rotator using Hamlib.
|
||||
* It takes commands from network connection.
|
||||
*
|
||||
* $Id: rotctld.c,v 1.3 2008-09-17 20:36:34 fillods Exp $
|
||||
* $Id: rotctld.c,v 1.4 2008-09-21 20:32:08 fillods Exp $
|
||||
*
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
|
@ -76,13 +76,14 @@ void usage();
|
|||
* NB: do NOT use -W since it's reserved by POSIX.
|
||||
* TODO: add an option to read from a file
|
||||
*/
|
||||
#define SHORT_OPTIONS "m:r:s:C:t:LvhVl"
|
||||
#define SHORT_OPTIONS "m:r:s:C:t:T:LvhVl"
|
||||
static struct option long_options[] =
|
||||
{
|
||||
{"model", 1, 0, 'm'},
|
||||
{"rot-file", 1, 0, 'r'},
|
||||
{"serial-speed", 1, 0, 's'},
|
||||
{"port", 1, 0, 't'},
|
||||
{"listen-addr", 1, 0, 'T'},
|
||||
{"list", 0, 0, 'l'},
|
||||
{"set-conf", 1, 0, 'C'},
|
||||
{"show-conf",0, 0, 'L'},
|
||||
|
@ -96,6 +97,7 @@ int interactive = 1; /* no cmd because of daemon */
|
|||
int prompt= 0 ; /* Daemon mode for rigparse return string */
|
||||
|
||||
int portno = 4533;
|
||||
uint32_t src_addr = INADDR_ANY;
|
||||
|
||||
#define MAXCONFLEN 128
|
||||
|
||||
|
@ -116,6 +118,7 @@ int main (int argc, char *argv[])
|
|||
int sock_listen;
|
||||
struct sockaddr_in serv_addr;
|
||||
int reuseaddr = 1;
|
||||
int a0,a1,a2,a3;
|
||||
|
||||
while(1) {
|
||||
int c;
|
||||
|
@ -170,6 +173,17 @@ int main (int argc, char *argv[])
|
|||
}
|
||||
portno = atoi(optarg);
|
||||
break;
|
||||
case 'T':
|
||||
if (!optarg) {
|
||||
usage(); /* wrong arg count */
|
||||
exit(1);
|
||||
}
|
||||
if (4 != sscanf(optarg, "%d.%d.%d.%d", &a0,&a1,&a2,&a3)) {
|
||||
usage(); /* wrong arg count */
|
||||
exit(1);
|
||||
}
|
||||
src_addr = (a0<<24)|(a1<<16)|(a2<<8)|a3;
|
||||
break;
|
||||
case 'v':
|
||||
verbose++;
|
||||
break;
|
||||
|
@ -243,7 +257,7 @@ int main (int argc, char *argv[])
|
|||
|
||||
serv_addr.sin_family = AF_INET;
|
||||
serv_addr.sin_port = htons(portno);
|
||||
serv_addr.sin_addr.s_addr = INADDR_ANY;
|
||||
serv_addr.sin_addr.s_addr = htonl(src_addr);
|
||||
|
||||
|
||||
if (setsockopt(sock_listen, SOL_SOCKET, SO_REUSEADDR,
|
||||
|
@ -376,6 +390,7 @@ void usage()
|
|||
" -r, --rot-file=DEVICE set device of the rotator to operate on\n"
|
||||
" -s, --serial-speed=BAUD set serial speed of the serial port\n"
|
||||
" -t, --port=NUM set TCP listening port, default %d\n"
|
||||
" -T, --listen-addr=IPADDR set listening IP address, default ANY\n"
|
||||
" -C, --set-conf=PARM=VAL set config parameters\n"
|
||||
" -L, --show-conf list all config parameters\n"
|
||||
" -l, --list list all model numbers and exit\n"
|
||||
|
|
Ładowanie…
Reference in New Issue