Begin transition to interface with vgetty

This commit is contained in:
dcp1990 2010-02-13 19:02:57 +00:00
parent e5f79de09a
commit 4acfc6f0b2
9 changed files with 41 additions and 17 deletions

View File

@ -3,7 +3,7 @@
* (C)2005, Dan Ponte
* BSDL w/ advert.
*/
/* $Amigan: phoned/include/phoned.h,v 1.29 2005/06/28 02:32:52 dcp1990 Exp $ */
/* $Amigan: phoned/include/phoned.h,v 1.30 2010/02/13 19:02:57 dcp1990 Exp $ */
#include <pcre.h> /* fugly, I know... */
#define VERSION "0.1"
#define LOGFILE "-"
@ -18,6 +18,7 @@ struct conf {
int loglevels;
short modem_tm;
char* modemdev;
int modemhand;
char *dbfile;
};
#define LL_DEBUG 0x1

View File

@ -1,9 +1,9 @@
# cnd Makefile
# (C)2005, Dan Ponte
# $Amigan: phoned/phoned/Makefile,v 1.15 2008/08/07 19:17:23 dcp1990 Exp $
# $Amigan: phoned/phoned/Makefile,v 1.16 2010/02/13 19:03:04 dcp1990 Exp $
include ../global.mk
# basic stuff. we append for a reason.
CPPFLAGS+=-I../include -DDEBUG -DYY_NO_UNPUT -DMODDEBUG
CPPFLAGS+=-I../include -DDEBUG -DYY_NO_UNPUT -DMODDEBUG -DMODEMSAID
CFLAGS+=-g -Wall -W -ansi ${CPPFLAGS} -pthread
LDFLAGS+=-lutil -lpcre -lsqlite3
# keep these up to date.

View File

@ -39,6 +39,9 @@ hangup yylval.number = CTACT_HUP; return ACTN;
ignore yylval.number = CTACT_IGN; return ACTN;
play yylval.number = CTACT_PLAY; return ACTN;
record yylval.number = CTACT_REC; return ACTN;
enabled yylval.number = 1; return ENA_DIS_STATE;
disabled yylval.number = 0; return ENA_DIS_STATE;
modemhandler return MODHAND;
modemdev return MODDEV;
\| return OR;
\" return QUOTE;

View File

@ -33,10 +33,10 @@ int yywrap(void)
return 1;
}
%}
%token NOTIFY OBRACE CBRACE SCOLON QUOTE MODDEV MAIN LLEVEL OR
%token NOTIFY OBRACE CBRACE SCOLON QUOTE MODDEV MAIN LLEVEL OR MODHAND
%token FILTERS ACTION NAME PHNUM FILTER FLAGS DB SOCK
/* HANGUP IGNOREIT PLAY RECORD */
%token <number> LNUML ACTN FLAG
%token <number> LNUML ACTN FLAG ENA_DIS_STATE
%token <string> IPADDR PATH REGEX FNAME
%%
commands:
@ -68,6 +68,8 @@ directive:
database
|
socket
|
modhand
;
notify:
NOTIFY iplist
@ -113,6 +115,15 @@ dbpath:
modemdev:
MODDEV devpath
;
modhand:
MODHAND ENA_DIS_STATE
{
pthread_mutex_lock(&cfmx);
cf.modemhand = $2;
pthread_mutex_unlock(&cfmx);
lprintf(debug, "Modem handler %s\n", yylval.number ? "enabled" : "disabled");
}
;
devpath:
QUOTE PATH QUOTE
{

View File

@ -76,11 +76,13 @@ void initialize(void)
exit(-1);
} else whatdone |= WD_CONFIG; /* XXX: if you put anything before this, edit config.y's bitmask on shutd() */
pthread_mutex_lock(&cfmx);
if(cf.modemhand) {
if(init_modem(cf.modemdev) != 1) {
lprintf(fatal, "fatal error: modem didn't initialise properly; see previous messages\n");
shutd(whatdone);
exit(-1);
} else whatdone |= WD_MODEM;
}
if(!db_init(cf.dbfile)) {
lprintf(fatal, "fatal error: database did not open, see previous messages\n");
shutd(whatdone);

View File

@ -65,13 +65,18 @@ int main(argc, argv)
}
cf.modem_tm = 0;
cf.loglevels = LL_ALL;
cf.modemhand = 1;
pthread_mutex_unlock(&cfmx);
initialize();
lprintf(debug, "INIT IS 0x%x", PTHREAD_MUTEX_INITIALIZER);
pthread_create(&networkth, NULL, network, NULL);
lprintf(debug, "Started network with 0x%x.", networkth);
pthread_mutex_lock(&cfmx);
if(cf.modemhand) {
pthread_create(&modemth, NULL, modem_io, NULL);
lprintf(debug, "Started modemth with 0x%x.", modemth);
}
pthread_mutex_unlock(&cfmx);
pthread_create(&mainth, NULL, mainthf, NULL);
pthread_exit(NULL);
return 0;

View File

@ -69,6 +69,7 @@ int modempipes[2];
extern pthread_mutex_t cfmx;
modem_t* mo;
extern modem_t rockwell;
extern modem_t agere;
void stmod(str)
const char* str;
{
@ -237,7 +238,7 @@ int init_modem(char* dev)
return -3;
}
fcntl(modemfd, F_SETFL, O_NONBLOCK);
mo = &rockwell;
mo = &agere;
mo->init();
/* voice_init(); */
pthread_mutex_unlock(&modemmx);

View File

@ -1,6 +1,6 @@
# cnd Makefile
# (C)2005, Dan Ponte
# $Amigan: phoned/phoned/modems/Makefile,v 1.2 2005/06/18 20:26:14 dcp1990 Exp $
# $Amigan: phoned/phoned/modems/Makefile,v 1.3 2010/02/13 19:03:10 dcp1990 Exp $
include ../../global.mk
# basic stuff. we append for a reason.
CPPFLAGS+=-I../../include
@ -8,8 +8,8 @@ CFLAGS+=-g -Wall -W -ansi ${CPPFLAGS}
LDFLAGS=
# keep these up to date.
MAINBIN=libmodems.a
SRCS=rockwell.c
OBJS=rockwell.o
SRCS=rockwell.c agere.c
OBJS=rockwell.o agere.o
all: .depend ${MAINBIN}
# I know, I know, but it's good.
.depend: ${SRCS} ${OHDRS}

View File

@ -1,8 +1,9 @@
main {
modemdev "/dev/cuad0";
modemdev "/dev/cuau1";
loglevel all;
database "./phoned.db";
socket "/tmp/phoned.sock";
modemhandler disabled;
};
filters {
filter test1 {