Subversion Repositories Kolibri OS

Rev

Rev 1773 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1773 Rev 1774
Line 12... Line 12...
12
;;          GNU GENERAL PUBLIC LICENSE                             ;;
12
;;          GNU GENERAL PUBLIC LICENSE                             ;;
13
;;             Version 2, June 1991                                ;;
13
;;             Version 2, June 1991                                ;;
14
;;                                                                 ;;
14
;;                                                                 ;;
15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
15
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Line 16... Line 16...
16
 
16
 
Line 17... Line 17...
17
$Revision: 1773 $
17
$Revision: 1774 $
18
 
18
 
19
;-----------------------------------------------------------------
19
;-----------------------------------------------------------------
20
;
20
;
Line 1337... Line 1337...
1337
 
1337
 
Line 1338... Line 1338...
1338
  .process_fin:
1338
  .process_fin:
Line -... Line 1339...
-
 
1339
 
-
 
1340
	DEBUGF	1,"Processing FIN\n"
-
 
1341
 
-
 
1342
	cmp	[ebx + TCP_SOCKET.t_state], TCB_CLOSE_WAIT
-
 
1343
	je	.not_first_fin
-
 
1344
	cmp	[ebx + TCP_SOCKET.t_state], TCB_CLOSING
-
 
1345
	je	.not_first_fin
-
 
1346
	cmp	[ebx + TCP_SOCKET.t_state], TCB_FIN_WAIT_2
-
 
1347
	je	.not_first_fin
-
 
1348
 
-
 
1349
	DEBUGF	1,"First FIN for this connection\n"
-
 
1350
 
-
 
1351
	mov	eax, ebx
-
 
1352
	call	SOCKET_cant_recv_more
-
 
1353
 
-
 
1354
	mov	[ebx + TCP_SOCKET.t_flags], TF_ACKNOW
1339
 
1355
	inc	[ebx + TCP_SOCKET.RCV_NXT]
1340
	DEBUGF	1,"Processing FIN\n"
1356
 
1341
 
1357
  .not_first_fin:
Line 1342... Line 1358...
1342
	mov	eax, [ebx + TCP_SOCKET.t_state]
1358
	mov	eax, [ebx + TCP_SOCKET.t_state]
Line 1354... Line 1370...
1354
	dd	.no_fin 	;TCB_CLOSING
1370
	dd	.no_fin 	;TCB_CLOSING
1355
	dd	.no_fin 	;TCB_LAST_ACK
1371
	dd	.no_fin 	;TCB_LAST_ACK
1356
	dd	.fin_wait2	;TCB_FIN_WAIT_2
1372
	dd	.fin_wait2	;TCB_FIN_WAIT_2
1357
	dd	.fin_timed	;TCB_TIMED_WAIT
1373
	dd	.fin_timed	;TCB_TIMED_WAIT
Line 1358... Line -...
1358
 
-
 
1359
 
-
 
1360
 
1374
 
Line -... Line 1375...
-
 
1375
  .fin_syn_est:
1361
  .fin_syn_est:
1376
 
Line 1362... Line 1377...
1362
 
1377
	mov	[ebx + TCP_SOCKET.t_state], TCB_CLOSE_WAIT
Line -... Line 1378...
-
 
1378
	jmp	.no_fin
1363
	jmp	.final_processing
1379
 
Line 1364... Line 1380...
1364
 
1380
  .fin_wait1:
Line -... Line 1381...
-
 
1381
 
-
 
1382
	mov	[ebx + TCP_SOCKET.t_state], TCB_CLOSING
-
 
1383
	jmp	.no_fin
-
 
1384
 
-
 
1385
  .fin_wait2:
1365
  .fin_wait1:
1386
 
Line 1366... Line 1387...
1366
 
1387
	mov	[ebx + TCP_SOCKET.t_state], TCB_TIMED_WAIT
1367
	jmp	.final_processing
-
 
-
 
1388
	mov	eax, ebx
1368
 
1389
	call	TCP_cancel_timers
Line 1369... Line 1390...
1369
  .fin_wait2:
1390
	mov	[ebx + TCP_SOCKET.timer_timed_wait], 2 * TCP_time_MSL