aboutsummaryrefslogtreecommitdiffstats
path: root/fsogsmd
diff options
context:
space:
mode:
authorMichael 'Mickey' Lauer <mickey@vanille-media.de>2010-01-03 20:55:14 +0100
committerMichael 'Mickey' Lauer <mickey@vanille-media.de>2010-01-03 20:55:14 +0100
commite8a6191060db4816a567c773ecfaf3e4ab5ef266 (patch)
treeafebf637a1c2a337a4be0b6488f29fe85a0aebd2 /fsogsmd
parent3043cea4c85021b88e355783aad586898944e87e (diff)
downloadcornucopia-e8a6191060db4816a567c773ecfaf3e4ab5ef266.tar.gz
cornucopia-e8a6191060db4816a567c773ecfaf3e4ab5ef266.tar.bz2
cornucopia-e8a6191060db4816a567c773ecfaf3e4ab5ef266.zip
fsogsmd: catch up with separation of ppp and muxppp handlers
Diffstat (limited to 'fsogsmd')
-rw-r--r--fsogsmd/src/lib/muxppp.vala27
-rw-r--r--fsogsmd/src/lib/pdp.vala23
2 files changed, 11 insertions, 39 deletions
diff --git a/fsogsmd/src/lib/muxppp.vala b/fsogsmd/src/lib/muxppp.vala
index 55dfbdac..01ae310f 100644
--- a/fsogsmd/src/lib/muxppp.vala
+++ b/fsogsmd/src/lib/muxppp.vala
@@ -57,23 +57,12 @@ public class FsoGsm.MuxPppPdpHandler : FsoGsm.PdpHandler, FsoFramework.AbstractO
var data = theModem.data();
var cmdline = new string[] { data.pppCommand };
- // check whether we should use a pipe or not
- var port = theModem.allocateDataPort();
- var intport = port.to_int();
- if ( intport > 0 )
- {
- logger.info( @"Using pppd in PIPE mode via fd $(intport)" );
- }
- else
- {
- cmdline += port;
- }
-
// add modem specific options to command line
foreach ( var option in data.pppOptions )
{
cmdline += option;
}
+ var muxtransport = theModem.channel( "data" ).transport;
/*
// prepare modem
@@ -84,16 +73,16 @@ public class FsoGsm.MuxPppPdpHandler : FsoGsm.PdpHandler, FsoFramework.AbstractO
// launch ppp
ppp = new FsoFramework.GProcessGuard();
- ppp.stopped.connect( onPppStopped );
- if ( intport > 0 )
- {
- ppp.launch( cmdline );
- }
- else
+ var inputfd = 0;
+ var outputfd = 0;
+
+ ppp.stopped.connect( onPppStopped );
+ if ( !ppp.launchWithPipes( cmdline, out inputfd, out outputfd ) )
{
- ppp.launchWithPipe( cmdline, intport );
+ throw new FreeSmartphone.Error.SYSTEM_ERROR( "Could not launch ppp" );
}
+ //FIXME: Set mux transport into ppp mode and start piping data to/from ppp/muxtransport
}
public async void deactivate()
diff --git a/fsogsmd/src/lib/pdp.vala b/fsogsmd/src/lib/pdp.vala
index 3b9395f9..5cd2d5d0 100644
--- a/fsogsmd/src/lib/pdp.vala
+++ b/fsogsmd/src/lib/pdp.vala
@@ -59,20 +59,7 @@ public class FsoGsm.AtPdpHandler : FsoGsm.PdpHandler, FsoFramework.AbstractObjec
// build ppp command line
var data = theModem.data();
- var cmdline = new string[] { data.pppCommand };
-
- // check whether we should use a pipe or not
- var port = theModem.allocateDataPort();
- var intport = port.to_int();
- if ( intport > 0 )
- {
- logger.info( @"Using pppd in PIPE mode via fd $(intport)" );
- }
- else
- {
- cmdline += port;
- }
-
+ var cmdline = new string[] { data.pppCommand, theModem.allocateDataPort() };
// add modem specific options to command line
foreach ( var option in data.pppOptions )
{
@@ -90,13 +77,9 @@ public class FsoGsm.AtPdpHandler : FsoGsm.PdpHandler, FsoFramework.AbstractObjec
ppp = new FsoFramework.GProcessGuard();
ppp.stopped.connect( onPppStopped );
- if ( intport > 0 )
- {
- ppp.launch( cmdline );
- }
- else
+ if ( !ppp.launch( cmdline ) )
{
- ppp.launchWithPipe( cmdline, intport );
+ throw new FreeSmartphone.Error.SYSTEM_ERROR( "Could not launch ppp binary" );
}
}