version 1.1.1.1.2.3, 2011/10/13 11:01:37
|
version 1.1.1.1.2.4, 2011/10/13 14:29:30
|
Line 31 pktTx(sched_task_t *task)
|
Line 31 pktTx(sched_task_t *task)
|
} |
} |
} |
} |
|
|
if ((wlen = pktSend(TASK_FD(task), proc->proc_flg, Crypted, proc->proc_buf_[FD2NET], | if ((wlen = pktSend(TASK_FD(task), ++proc->proc_seq, proc->proc_flg, Crypted, |
proc->proc_rlen_[FD2NET], &proc->proc_ea)) != ANSH_FLG_ERR) { | proc->proc_buf_[FD2NET], proc->proc_rlen_[FD2NET], |
| &proc->proc_ea)) != ANSH_FLG_ERR) { |
proc->proc_flg = ANSH_FLG_OK; |
proc->proc_flg = ANSH_FLG_OK; |
proc->proc_rlen_[FD2NET] = 0; |
proc->proc_rlen_[FD2NET] = 0; |
} |
} |
Line 50 pktRx(sched_task_t *task)
|
Line 51 pktRx(sched_task_t *task)
|
struct tagProc *proc = NULL; |
struct tagProc *proc = NULL; |
char ret; |
char ret; |
u_short *b; |
u_short *b; |
|
u_int seq; |
|
|
FTRACE(3); |
FTRACE(3); |
|
|
Line 57 pktRx(sched_task_t *task)
|
Line 59 pktRx(sched_task_t *task)
|
if (!(buf = malloc(rlen))) |
if (!(buf = malloc(rlen))) |
goto end; |
goto end; |
|
|
if ((ret = pktRecv(TASK_FD(task), &Crypted, buf, &rlen, ð)) == ANSH_FLG_ERR) | if ((ret = pktRecv(TASK_FD(task), &seq, &Crypted, buf, &rlen, ð)) == ANSH_FLG_ERR) |
goto end; |
goto end; |
VERB(5) LOG("Received %d bytes", rlen); |
VERB(5) LOG("Received %d bytes", rlen); |
if (!(ret & ANSH_FLG_CPOUT)) |
if (!(ret & ANSH_FLG_CPOUT)) |
Line 86 pktRx(sched_task_t *task)
|
Line 88 pktRx(sched_task_t *task)
|
switch (ret) { |
switch (ret) { |
case ANSH_FLG_EOF: |
case ANSH_FLG_EOF: |
case ANSH_FLG_CPOUT: |
case ANSH_FLG_CPOUT: |
|
if (seq <= proc->proc_seq) |
|
goto end; |
|
else if (seq > (proc->proc_seq + 1)) |
|
LOG("LOST PACKET(s) detect: %d; received seq=%d - %d", |
|
seq - proc->proc_seq + 1, seq, proc->proc_seq); |
|
proc->proc_seq = seq; |
break; |
break; |
case ANSH_FLG_WINZ: |
case ANSH_FLG_WINZ: |
b = (u_short*) buf; |
b = (u_short*) buf; |
Line 132 fdTx(sched_task_t *task)
|
Line 140 fdTx(sched_task_t *task)
|
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
|
|
proc->proc_pid = 0; |
proc->proc_pid = 0; |
|
proc->proc_seq = 0; |
proc->proc_flg = ANSH_FLG_EOF; |
proc->proc_flg = ANSH_FLG_EOF; |
proc->proc_rlen_[FD2NET] = 0; |
proc->proc_rlen_[FD2NET] = 0; |
|
|
Line 153 fdTx(sched_task_t *task)
|
Line 162 fdTx(sched_task_t *task)
|
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
|
|
proc->proc_pid = 0; |
proc->proc_pid = 0; |
|
proc->proc_seq = 0; |
proc->proc_flg = ANSH_FLG_EOF; |
proc->proc_flg = ANSH_FLG_EOF; |
proc->proc_rlen_[FD2NET] = 0; |
proc->proc_rlen_[FD2NET] = 0; |
|
|
Line 192 fdRx(sched_task_t *task)
|
Line 202 fdRx(sched_task_t *task)
|
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
schedCancelby(TASK_ROOT(task), NULL, CRITERIA_FD, (void*) TASK_FD(task), NULL); |
|
|
proc->proc_pid = 0; |
proc->proc_pid = 0; |
|
proc->proc_seq = 0; |
proc->proc_flg = ANSH_FLG_EOF; |
proc->proc_flg = ANSH_FLG_EOF; |
proc->proc_rlen_[FD2NET] = 0; |
proc->proc_rlen_[FD2NET] = 0; |
|
|
Line 217 fdRx(sched_task_t *task)
|
Line 228 fdRx(sched_task_t *task)
|
VERB(3) LOG("EOF process status %d", rlen); |
VERB(3) LOG("EOF process status %d", rlen); |
|
|
proc->proc_pid = 0; |
proc->proc_pid = 0; |
|
proc->proc_seq = 0; |
proc->proc_flg = ANSH_FLG_EOF; |
proc->proc_flg = ANSH_FLG_EOF; |
proc->proc_rlen_[FD2NET] = 0; |
proc->proc_rlen_[FD2NET] = 0; |
|
|