From 88747bc08285f2e0061d744caeb02138e0a6965e Mon Sep 17 00:00:00 2001 From: Tom Early Date: Wed, 11 Apr 2018 11:49:47 -0700 Subject: [PATCH] updated config group 'g2_link' to 'link' --- .gitignore | 2 +- MMDVM.README | 8 ++++++++ QnetDVRPTR.cpp | 6 ++---- QnetGateway.cpp | 10 +++++----- QnetLink.cpp | 24 ++++++++++++------------ qn.dvap.cfg | 4 ++-- qn.everything.cfg | 4 ++-- 7 files changed, 32 insertions(+), 26 deletions(-) diff --git a/.gitignore b/.gitignore index 5ff9514..9247c19 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ qnlink qngateway qnlinktest qnlinktestaudio -qnmodem +qnrelay diff --git a/MMDVM.README b/MMDVM.README index 3a37fba..f781e90 100644 --- a/MMDVM.README +++ b/MMDVM.README @@ -60,10 +60,18 @@ system should work. It just needs a g++ compiler with version greater than 4.9. } } + link = { + admin = [ "AA0AAA" , "BB1BBB" , "CC3CCC" ] + } + where x is the lowercase module you specified in the MMDVM.qn file. Use B and b or C and c. Don't mix them up! You can add more stuff to the gn.cfg file. Please see the qn.everything.cfg example. + Only callsigns in the admin list can execute scripts. Two scripts are include: + YR = _ _ _ _ _ R X will reboot you system, and + YR = _ _ _ _ _ H X will halt your system (never unplug a running computer!) + 13) You need a gwys.txt file for all the reflectors: ./reflist.sh 14) Install and start the three QnetGateway services: sudo make install diff --git a/QnetDVRPTR.cpp b/QnetDVRPTR.cpp index 22ccb6b..6c4c677 100644 --- a/QnetDVRPTR.cpp +++ b/QnetDVRPTR.cpp @@ -3177,13 +3177,11 @@ int main(int argc, const char **argv) ptt_off[4] = Send_Modem_Header[4]; write(fd_ser, ptt_off, 8); - printf("End RF, ber=%.02f\n", - (num_dv_frames == 0)?0.00:100.00 * ((float)num_bit_errors / (float)(num_dv_frames * 24.00)) ); + printf("End RF, ber=%.02f\n", (num_dv_frames == 0) ? 0.00 : 100.00 * ((float)num_bit_errors / (float)(num_dv_frames * 24.00)) ); last_RF_time = 0; if (IS_ENABLED && RPTR_ACK) - send_ack(ok?myCall:RPTR, - (num_dv_frames == 0)?0.00:100.00 * ((float)num_bit_errors / (float)(num_dv_frames * 24.00)) ); + send_ack(ok ? myCall : RPTR, (num_dv_frames == 0) ? 0.00 : 100.00 * ((float)num_bit_errors / (float)(num_dv_frames * 24.00)) ); ok = false; } } diff --git a/QnetGateway.cpp b/QnetGateway.cpp index 86eda94..2f16e04 100644 --- a/QnetGateway.cpp +++ b/QnetGateway.cpp @@ -315,10 +315,10 @@ bool CQnetGateway::read_config(char *cfgFile) get_value(cfg, "gateway.internal.port", g2_internal.port, 16000, 65535, 19000); - if (! get_value(cfg, "g2_link.outgoing_ip", g2_link.ip, 7, IP_SIZE, "127.0.0.1")) + if (! get_value(cfg, "link.outgoing_ip", g2_link.ip, 7, IP_SIZE, "127.0.0.1")) return true; - get_value(cfg, "g2_link.port", g2_link.port, 16000, 65535, 18997); + get_value(cfg, "link.port", g2_link.port, 16000, 65535, 18997); get_value(cfg, "log.qso", bool_qso_details, false); @@ -1078,7 +1078,7 @@ void CQnetGateway::process() printf("Failed to validate MYCALL [%s], regexec error=%d\n", temp_radio_user, mycall_valid); } - /* send data g2_link */ + /* send data qnlink */ if (mycall_valid == REG_NOERROR) sendto(srv_sock, rptrbuf.pkt_id, recvlen, 0, (struct sockaddr *)&plug, sizeof(struct sockaddr_in)); @@ -1917,7 +1917,7 @@ void CQnetGateway::process() } } - /* send data to g2_link */ + /* send data to qnlink */ sendto(srv_sock, rptrbuf.pkt_id, recvlen, 0, (struct sockaddr *)&plug, sizeof(struct sockaddr_in)); /* aprs processing */ @@ -2582,7 +2582,7 @@ int CQnetGateway::init(char *cfgfile) to_remote_g2[i].last_time = 0; } - /* where to send packets to g2_link */ + /* where to send packets to qnlink */ memset(&plug, 0, sizeof(struct sockaddr_in)); plug.sin_family = AF_INET; plug.sin_port = htons(g2_link.port); diff --git a/QnetLink.cpp b/QnetLink.cpp index f84ff18..f097b40 100644 --- a/QnetLink.cpp +++ b/QnetLink.cpp @@ -696,7 +696,7 @@ static bool read_config(char *cfgFile) } std::string value; - std::string key = "g2_link.ref_login"; + std::string key = "link.ref_login"; if (cfg.lookupValue(key, login_call) || cfg.lookupValue("ircddb.login", login_call)) { int l = login_call.length(); if (l<3 || l>CALL_SIZE-2) { @@ -715,7 +715,7 @@ static bool read_config(char *cfgFile) return false; } - key = "g2_link.admin"; + key = "link.admin"; only_admin_login = false; if (cfg.exists(key)) { Setting &userlist = cfg.lookup(key); @@ -750,7 +750,7 @@ static bool read_config(char *cfgFile) fprintf(stdout, " ]\n"); } - key = "g2_link.link_unlink"; + key = "link.link_unlink"; only_link_unlink = false; if (cfg.exists(key)) { Setting &unlinklist = cfg.lookup(key); @@ -801,13 +801,13 @@ static bool read_config(char *cfgFile) } } - get_value(cfg, "g2_link.ref_port", rmt_ref_port, 10000, 65535, 20001); - get_value(cfg, "g2_link.xrf_port", rmt_xrf_port, 10000, 65535, 30001); - get_value(cfg, "g2_link.dcs_port", rmt_dcs_port, 10000, 65535, 30051); + get_value(cfg, "link.ref_port", rmt_ref_port, 10000, 65535, 20001); + get_value(cfg, "link.xrf_port", rmt_xrf_port, 10000, 65535, 30001); + get_value(cfg, "link.dcs_port", rmt_dcs_port, 10000, 65535, 30051); - if (! get_value(cfg, "g2_link.incoming_ip", my_g2_link_ip, 7, IP_SIZE, "0.0.0.0")) + if (! get_value(cfg, "link.incoming_ip", my_g2_link_ip, 7, IP_SIZE, "0.0.0.0")) return false; - get_value(cfg, "g2_link.port", my_g2_link_port, 10000, 65535, 18997); + get_value(cfg, "link.port", my_g2_link_port, 10000, 65535, 18997); if (! get_value(cfg, "gateway.internal.ip", to_g2_external_ip, 7, IP_SIZE, "0.0.0.0")) return false; @@ -823,9 +823,9 @@ static bool read_config(char *cfgFile) get_value(cfg, "timing.play.delay", delay_between, 9, 25, 19); - get_value(cfg, "g2_link.acknowledge", bool_rptr_ack, true); + get_value(cfg, "link.acknowledge", bool_rptr_ack, true); - get_value(cfg, "g2_link.announce", announce, true); + get_value(cfg, "link.announce", announce, true); if (! get_value(cfg, "file.announce_dir", announce_dir, 2, FILENAME_MAX, "/usr/local/etc")) return false; @@ -833,14 +833,14 @@ static bool read_config(char *cfgFile) get_value(cfg, "timing.play.wait", delay_before, 1, 10, 2); memset(link_at_startup, 0, CALL_SIZE+1); - if (get_value(cfg, "g2_link.link_at_start", value, 5, CALL_SIZE, "NONE")) { + if (get_value(cfg, "link.link_at_start", value, 5, CALL_SIZE, "NONE")) { if (strcasecmp(value.c_str(), "none")) strcpy(link_at_startup, value.c_str()); } else return false; int maxdongle; - get_value(cfg, "g2_link.max_dongles", maxdongle, 0, 10, 5); + get_value(cfg, "link.max_dongles", maxdongle, 0, 10, 5); saved_max_dongles = max_dongles = (unsigned int)maxdongle; for (i=0; i<3; i++) { diff --git a/qn.dvap.cfg b/qn.dvap.cfg index 7779f07..835c675 100644 --- a/qn.dvap.cfg +++ b/qn.dvap.cfg @@ -10,7 +10,7 @@ ircddb = { module = { c = { // change the module to "b" if you have a 70cm DVAP - type = "dvap" + type = "dvap" serial_number = "AP123456" // your serial number is visible through the case frequency = 145.5 // this is the default value, chose a quiet frequency # uncomment and set if you want the following to appear on you ircddb host website. @@ -23,7 +23,7 @@ module = { } } -g2_link = { +glink = { # add the callsigns that can shutdown or reboot your system # admin = [ "XX0XXX" , "YY0YYY" ] // only these users can execute scripts diff --git a/qn.everything.cfg b/qn.everything.cfg index 5b1aa2c..d4be263 100644 --- a/qn.everything.cfg +++ b/qn.everything.cfg @@ -261,11 +261,11 @@ aprs = { # APRS.NET connect info # filter = "" } -g2_link = { +link = { # link_at_start = "NONE" # Link to a reflector at startup. # to link repeater module B to REF001 C, use "BREF001C" # ref_login = "" # for loging into REF reflectors, if undefined, ircddb.username will be used -# admin = [ "CALL1", "CALL2", "CALL3" ] # if defined, only these users can execute scripts, block dongles and reload the gwys.txt +# admin = [ "CALL1", "CALL2", "CALL3" ] # only these users can execute scripts, block dongles and reload the gwys.txt # you probabaly want you own callsign in the admin list! # link_unlink = [ "CALL4", "CALL5", "CALL6" ] # if defined, only these users can link and unlink a repeater # incoming_ip = "0.0.0.0" # incoming ip address, "0.0.0.0" means accepts all connections.