private static void Error(object arg, err_t err) { TcpCep _this = (TcpCep)arg; Task wtask = null; foreach (Task task in _this.m_SendTaskQueue) { if ((task.rtsk.tskwait != TSKWAIT.TTW_TCP) || (task.rtsk.wid != _this.m_CepID)) { continue; } wtask = task; break; } bool ok = false; if (wtask != null) { ok = wtask.ReleaseWait(); } if (_this.m_TPcb != null) { _this.m_lwIP.tcp.tcp_close(_this.m_TPcb); } }
private static err_t Connected(object arg, tcp_pcb tpcb, err_t err) { TcpCep _this = (TcpCep)arg; if (err != err_t.ERR_OK) { err = _this.m_lwIP.tcp.tcp_close(tpcb); return(err); } Task wtask = null; foreach (Task task in _this.m_SendTaskQueue) { if ((task.rtsk.tskwait != TSKWAIT.TTW_TCP) || (task.rtsk.wid != _this.m_CepID)) { continue; } wtask = task; break; } if (wtask != null) { _this.m_SendTaskQueue.Remove(wtask); _this.NewSession(tpcb); wtask.ReleaseWait(); } return(err_t.ERR_OK); }
public ER Close(TMO tmout) { err_t err = m_lwIP.tcp.tcp_close(m_Pcb); if (err == err_t.ERR_OK) { return(ER.E_OK); } else { return(ER.E_OBJ); } }
private err_t SentData(object arg, tcp_pcb tpcb, ushort space) { err_t err = err_t.ERR_OK; int rest = space; int pos = m_SendPos; pointer buf = m_SendPBuf; int len = m_SendLen; if (buf != null) { int tmp = rest; if (tmp > len) { tmp = len; } err = m_lwIP.tcp.tcp_write(m_TPcb, new pointer(buf, pos), (ushort)tmp, 0); if (err != err_t.ERR_OK) { return(err); } pos += tmp; rest -= tmp; if (pos == len) { pos = 0; buf = null; len = 0; } } m_SendPBuf = buf; m_SendPos = pos; m_SendLen = len; if ((m_SendPBuf == null) && (rest > 0)) { if (m_SendTaskQueue.First != null) { Task task = m_SendTaskQueue.First.Value; m_SendTaskQueue.RemoveFirst(); task.ReleaseWait(); } } return(err); }
private static err_t Accepting(object arg, tcp_pcb newpcb, err_t err) { TcpRep _this = (TcpRep)arg; _this.m_TcpCep.NewSession(newpcb); _this.m_AcceptQueue.AddLast(newpcb); if (_this.m_TskQueue.First != null) { Task task = _this.m_TskQueue.First.Value; _this.m_TskQueue.RemoveFirst(); if (!task.ReleaseWait()) { return(err_t.ERR_WOULDBLOCK); } } return(err); }
private static err_t RecvData(object arg, tcp_pcb tpcb, pbuf p, err_t err) { TcpCep _this = (TcpCep)arg; if (p == null) { _this.NetworkToHost(null); return(err_t.ERR_OK); } if (err != err_t.ERR_OK) { _this.m_lwIP.pbuf_free(p); return(err); } _this.NetworkToHost(p); _this.m_lwIP.tcp.tcp_recved(tpcb, p.tot_len); return(err_t.ERR_OK); }
/** * Convert an lwip internal error to a pointer representation. * * @param err an lwip internal err_t * @return a pointer representation for err */ public static string lwip_strerr(err_t err) { return err_strerr[-(int)err]; }
public static bool ERR_IS_FATAL(err_t e) { return ((e) < err_t.ERR_ISCONN); }
public err_t lwip_tcp_event(object arg, tcp_pcb pcb, lwip_event e, pbuf p, ushort size, err_t err) { return _lwip_tcp_event(arg, pcb, e, p, size, err); }
public static bool ERR_IS_FATAL(err_t e) { return((e) < err_t.ERR_ISCONN); }
/** * Convert an lwip internal error to a pointer representation. * * @param err an lwip internal err_t * @return a pointer representation for err */ public static string lwip_strerr(err_t err) { return(err_strerr[-(int)err]); }