Skip to content

Commit

Permalink
cod for aprs.fi
Browse files Browse the repository at this point in the history
  • Loading branch information
on4akh committed Aug 5, 2014
1 parent 3c9e0b0 commit 1711999
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 4 deletions.
7 changes: 5 additions & 2 deletions aprs.c
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
sqlite3 *openDatabase();
void closeDatabase();

char aprsUrl[100];
char aprsPort[7];


int openAprsSock(){

Expand All @@ -34,7 +37,7 @@ int openAprsSock(){
char ipstr[INET_ADDRSTRLEN];

syslog(LOG_NOTICE,"Opening APRS socket");
if ((rv = getaddrinfo("belgium.aprs2.net", "8080", &hints, &servinfo)) != 0) {
if ((rv = getaddrinfo(aprsUrl, aprsPort, &hints, &servinfo)) != 0) {
syslog(LOG_NOTICE,"getaddrinfo: %s\n", gai_strerror(rv));
return;
}
Expand All @@ -47,7 +50,7 @@ int openAprsSock(){
inet_ntop(p->ai_family, addr, ipstr, sizeof ipstr);
syslog(LOG_NOTICE,"address: %s",ipstr);
if ((sockfd = socket(p->ai_family, p->ai_socktype,p->ai_protocol)) == -1) {
syslog(LOG_NOTICE,"To able to create APRS sock");
syslog(LOG_NOTICE,"Not able to create APRS sock");
continue;
}
if (connect(sockfd, p->ai_addr, p->ai_addrlen) == -1) {
Expand Down
6 changes: 5 additions & 1 deletion main.c
Original file line number Diff line number Diff line change
Expand Up @@ -374,7 +374,7 @@ int getMasterInfo(){
syslog(LOG_NOTICE,"sMaster info: ownName %s, ownCountryCode %s, ownRegion %s, sMasterIp %s, sMasterPort %s",
master.ownName,master.ownCountryCode,master.ownRegion,master.sMasterIp,master.sMasterPort);

sprintf(SQLQUERY,"SELECT servicePort, rdacPort, dmrPort, baseDmrPort, maxRepeaters, echoId,rrsGpsId FROM master");
sprintf(SQLQUERY,"SELECT servicePort, rdacPort, dmrPort, baseDmrPort, maxRepeaters, echoId,rrsGpsId,aprsUrl,aprsPort FROM master");
if (sqlite3_prepare_v2(db,SQLQUERY,-1,&stmt,0) == 0){
if (sqlite3_step(stmt) == SQLITE_ROW){
servicePort = sqlite3_column_int(stmt,0);
Expand All @@ -384,6 +384,9 @@ int getMasterInfo(){
maxRepeaters = sqlite3_column_int(stmt,4) + 1;
echoId = sqlite3_column_int(stmt,5);
rrsGpsId = sqlite3_column_int(stmt,6);
sprintf(aprsUrl,"%s",sqlite3_column_text(stmt,7));
sprintf(aprsPort,"%s",sqlite3_column_text(stmt,8));

}
else{
syslog(LOG_NOTICE,"failed to read masterInfo, no row");
Expand All @@ -399,6 +402,7 @@ int getMasterInfo(){
}
syslog(LOG_NOTICE,"ServicePort %i rdacPort %i dmrPort %i baseDmrPort %i baseRdacPort %i maxRepeaters %i echoId %i rrsGpsId %i",
servicePort,rdacPort,dmrPort,baseDmrPort,baseRdacPort,maxRepeaters-1,echoId,rrsGpsId);
syslog(LOG_NOTICE,"Assigning APRS server %s port %s",aprsUrl,aprsPort);
if (maxRepeaters > 98){
syslog(LOG_NOTICE,"maxRepeaters exceeded 98, quiting application");
closeDatabase(db);
Expand Down
2 changes: 2 additions & 0 deletions master_server.h
Original file line number Diff line number Diff line change
Expand Up @@ -149,3 +149,5 @@ extern char version[5];
extern sqlite3 *db;
extern int restart;
extern char page[50];
extern char aprsUrl[100];
extern char aprsPort[7];
25 changes: 24 additions & 1 deletion sqlite.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ int initDatabase(sqlite3 *db){
bool neededToCreate = false;

if (!isTableExisting(db,"master")){
sprintf(SQLQUERY,"CREATE TABLE master (repTS1 VARCHAR(100) default '',repTS2 VARCHAR(100) default '',sMasterTS1 VARCHAR(100) default '',sMasterTS2 VARCHAR(100) default '', timeBase INTEGER default 60, servicePort int default 50000, rdacPort int default 50002,dmrPort int default 50001, baseDmrPort int default 50100, baseRdacPort int default 50200, maxRepeaters int default 20, echoId int default 9990, rrsGpsId in default 500)");
sprintf(SQLQUERY,"CREATE TABLE master (repTS1 VARCHAR(100) default '',repTS2 VARCHAR(100) default '',sMasterTS1 VARCHAR(100) default '',sMasterTS2 VARCHAR(100) default '', timeBase INTEGER default 60, servicePort int default 50000, rdacPort int default 50002,dmrPort int default 50001, baseDmrPort int default 50100, baseRdacPort int default 50200, maxRepeaters int default 20, echoId int default 9990, rrsGpsId in default 500, aprsUrl VARCHAR(100) default '', aprsPort VARCHAR(7) default '8080')");
if (sqlite3_exec(db,SQLQUERY,0,0,0) == 0){
neededToCreate = true;
sprintf(SQLQUERY,"INSERT INTO master (repTS1) VALUES ('')");
Expand Down Expand Up @@ -173,6 +173,29 @@ int initDatabase(sqlite3 *db){
}
}

if (!isFieldExisting(db,"master","aprsUrl")){
sprintf(SQLQUERY,"ALTER TABLE master ADD COLUMN aprsUrl VARCHAR(100) default ''");
if (sqlite3_exec(db,SQLQUERY,0,0,0) == 0){
syslog(LOG_NOTICE,"field aprsUrl in master created");
}
else{
syslog(LOG_NOTICE,"Database error: %s",sqlite3_errmsg(db));
return 0;
}
}

if (!isFieldExisting(db,"master","aprsPort")){
sprintf(SQLQUERY,"ALTER TABLE master ADD COLUMN aprsPort VARCHAR(7) default '8080'");
if (sqlite3_exec(db,SQLQUERY,0,0,0) == 0){
syslog(LOG_NOTICE,"field aprsPort in master created");
}
else{
syslog(LOG_NOTICE,"Database error: %s",sqlite3_errmsg(db));
return 0;
}
}


if (!isFieldExisting(db,"repeaters","geoLocation")){
sprintf(SQLQUERY,"ALTER TABLE repeaters ADD COLUMN geoLocation varchar(20) default ''");
if (sqlite3_exec(db,SQLQUERY,0,0,0) == 0){
Expand Down

0 comments on commit 1711999

Please sign in to comment.