EthernetNetIf Compatibility.

Dependents:   XBeeWiFi_SPI_example

Fork of NetServicesSource by Donatien Garnier

Revision:
12:8dc6b255af6c
Parent:
11:da4498f591ee
--- a/if/ppp/PPPNetIf.cpp	Thu Aug 05 15:01:33 2010 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,224 +0,0 @@
-
-/*
-Copyright (c) 2010 Donatien Garnier (donatiengar [at] gmail [dot] com)
- 
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
- 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
- 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
-OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
-THE SOFTWARE.
-*/
-
-#include "PPPNetIf.h"
-#include "mbed.h"
-#include "ppp/ppp.h"
-#include "lwip/init.h"
-#include "lwip/sio.h"
-
-#define __DEBUG
-#include "dbg/dbg.h"
-
-#include "netCfg.h"
-#if NET_PPP
-
-#define PPP_TIMEOUT 60000
-
-#define BUF_SIZE 256
-
-PPPNetIf::PPPNetIf(GPRSModem* pIf) : LwipNetIf(), m_pIf(pIf),/* m_open(false),*/ m_connected(false), m_status(PPP_DISCONNECTED), m_fd(0) //, m_id(0)
-{
-  //FIXME: Check static refcount
-  m_buf = new uint8_t[BUF_SIZE];
-}
-
-PPPNetIf::~PPPNetIf()
-{
-  delete[] m_buf;
-}
-
-#if 0
-PPPErr PPPNetIf::open(Serial* pSerial)
-{
-  GPRSErr err = m_pIf->open(pSerial);
-  if(err)
-    return PPP_MODEM;
-  m_open = true;
-  #if 0
-  m_id = sioMgr::registerSerialIf(this);
-  if(!m_id)
-  {
-    close();
-    return PPP_CLOSED;
-  }
-  #endif
-  return PPP_OK;
-}
-#endif
-
-
-PPPErr PPPNetIf::GPRSConnect(const char* apn, const char* userId, const char* password) //Connect using GPRS
-{
-  LwipNetIf::init();
-  pppInit();
-  //TODO: Tell ATIf that we get ownership of the serial port
-    
-  GPRSErr gprsErr;
-  gprsErr = m_pIf->connect(apn);
-  if(gprsErr)
-    return PPP_NETWORK;
-    
-  DBG("PPPNetIf: If Connected.\n");
-
-  if( userId == NULL )
-    pppSetAuth(PPPAUTHTYPE_NONE, NULL, NULL);
-  else
-    pppSetAuth(PPPAUTHTYPE_PAP, userId, password); //TODO: Allow CHAP as well
-    
-  DBG("PPPNetIf: Set Auth.\n");
-  
-  //wait(1.);
-  
-  //m_pIf->flushBuffer(); //Flush buffer before passing serial port to PPP
-  
-  m_status = PPP_CONNECTING;
-  DBG("m_pIf = %p\n", m_pIf);
-  int res = pppOverSerialOpen((void*)m_pIf, sPppCallback, (void*)this);
-  DBG("PPP connected\n");
-  if(res<0)
-  {
-    disconnect();
-    return PPP_PROTOCOL;
-  }
-  
-  DBG("PPPNetIf: PPP Started with res = %d.\n", res);
-  
-  m_fd = res;
-  m_connected = true;
-  Timer t;
-  t.start();
-  while( m_status == PPP_CONNECTING ) //Wait for callback
-  {
-    poll();
-    if(t.read_ms()>PPP_TIMEOUT)
-    {
-      DBG("PPPNetIf: Timeout.\n");  
-      disconnect();
-      return PPP_PROTOCOL;
-    }
-  }
-  
-  DBG("PPPNetIf: Callback returned.\n");
-  
-  if( m_status == PPP_DISCONNECTED )
-  {
-    disconnect();
-    return PPP_PROTOCOL;
-  }
-  
-  return PPP_OK;
-
-}
-
-PPPErr PPPNetIf::ATConnect(const char* number) //Connect using a "classic" voice modem or GSM
-{
-  //TODO: IMPL
-  return PPP_MODEM;
-}
-
-PPPErr PPPNetIf::disconnect()
-{
-  if(m_fd)
-    pppClose(m_fd); //0 if ok, else should gen a WARN
-  m_connected = false;
-  
-  m_pIf->flushBuffer();
-  m_pIf->printf("+++\r\n");
-  wait(.5);
-  m_pIf->flushBuffer();
-  
-  GPRSErr gprsErr;  
-  gprsErr = m_pIf->disconnect();
-  if(gprsErr)
-    return PPP_NETWORK;
-    
-  return PPP_OK;
-}
-
-#if 0
-PPPErr PPPNetIf::close()
-{
-  GPRSErr err = m_pIf->close();
-  if(err)
-    return PPP_MODEM;
-  m_open = false;
-  return PPP_OK;
-}
-#endif
-
-
-#if 0
-//We have to use :
-
-/** Pass received raw characters to PPPoS to be decoded. This function is
- * thread-safe and can be called from a dedicated RX-thread or from a main-loop.
- *
- * @param pd PPP descriptor index, returned by pppOpen()
- * @param data received data
- * @param len length of received data
- */
-void
-pppos_input(int pd, u_char* data, int len)
-{
-  pppInProc(&pppControl[pd].rx, data, len);
-}
-#endif
-
-void PPPNetIf::poll()
-{
-  if(!m_connected)
-    return;
-  LwipNetIf::poll();
-  //static u8_t buf[128];
-  int len;
-  do
-  {
-    len = sio_tryread((sio_fd_t) m_pIf, m_buf, BUF_SIZE);
-    if(len > 0)
-      pppos_input(m_fd, m_buf, len);
-  } while(len>0);
-}
-
-//Link Callback
-void PPPNetIf::pppCallback(int errCode, void *arg)
-{
-  switch ( errCode )
-  {
-    //No error
-    case PPPERR_NONE:
-      {
-        struct ppp_addrs* addrs = (struct ppp_addrs*) arg;
-        m_ip = IpAddr(&(addrs->our_ipaddr)); //Set IP
-      }
-      m_status = PPP_CONNECTED;
-      break;
-    default:
-      //Disconnected
-      DBG("PPPNetIf: Callback errCode = %d.\n", errCode);
-      m_status = PPP_DISCONNECTED;
-    break;
-  }
-}
-
-#endif