This is the mail archive of the
ecos-bugs@sourceware.org
mailing list for the eCos project.
[Bug 1001696] New: cyg_ppp_up and cyg_wait_up sometimes never return
- From: bugzilla-daemon at bugs dot ecos dot sourceware dot org
- To: ecos-bugs at ecos dot sourceware dot org
- Date: Thu, 1 Nov 2012 18:27:31 +0000
- Subject: [Bug 1001696] New: cyg_ppp_up and cyg_wait_up sometimes never return
- Auto-submitted: auto-generated
Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001696
Summary: cyg_ppp_up and cyg_wait_up sometimes never return
Product: eCos
Version: 3.0
Platform: All
OS/Version: Other
Status: UNCONFIRMED
Severity: critical
Priority: low
Component: TCP/IP
AssignedTo: unassigned@bugs.ecos.sourceware.org
ReportedBy: kenkyee@excite.com
CC: ecos-bugs@ecos.sourceware.org
Class: Advice Request
Our application requires that we make multiple PPP connections to minimize
connection costs, so we have a pretty simple core bit of code that brings the
PPP line up and down.
Sometimes, eCos will hang during the cyg_ppp_up or cyg_ppp_wait_up calls. The
only thing that shows up in the diag console is:
SYSLOG 08: Using interface ppp0
SYSLOG 04: Connect: ppp0 <--> /dev/ser0
SYSLOG 08: Connect time expired
SYSLOG 04: Connection terminated, connected for 1 minutes
The core loop is roughly like this:
cyg_ppp_handle_t pppHandle = cyg_ppp_up(PPP_PORT, &options)
if (pppHandle != 0) {
int pppStatus = cyg_ppp_wait_up(pppHandle);
if (pppStatus == 0) {
// wait for connection to come down
if (cyg_ppp_wait_up(pppHandle) == 0) {
int pppTimeout = PPPMAXUPTIMESECS; // PPP timeout in seconds
while ((pppTimeout-- > 0) && (cyg_ppp_wait_up(pppHandle) == 0))
{
Thread::sleep(sec(1));
}
cyg_ppp_down(pppHandle);
}
}
--
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.