Rekord ta’ skonnessjoni jasal wara li tkun diġà bdiet it-tieni konnessjoni bl-istess isem, u handler li jaġġorna l-aħħar ringiela għal dak l-utent jagħlaq is-sessjoni ħażina. L-iżball mhuwiex il-paragun tat-timbri tal-ħin. Huwa l-assunzjoni li isem flimkien ma’ sekonda sħiħa jidentifikaw sessjoni waħda. L-avvenimenti tal-ganċ jiddeskrivu konnessjonijiet, u konnessjoni teħtieġ muftieħ li jappartjeni lilha biss.

Ibda b’dak li verament ifissru l-varjabbli tas-skonnessjoni. Biss imbagħad l-għażla tal-identifikatur tagħmel sens.

X’iġġorr verament il-ganċ tas-skonnessjoni

Fi Community OpenVPN 2.6, ir-referenza tal-ganċ time_unix tiddefinixxih bħala l-mument meta l-klijent ikkonnetta; jiġi stabbilit qabel ma jaħdem il-ganċ tal-konnessjoni u ma jiġix definit mill-ġdid meta l-ganċ tas-skonnessjoni jiġi attivat aktar tard. time_duration tagħti t-tul ta’ dik is-sessjoni f’sekondi, għalhekk it-tmiem huwa bejn wieħed u ieħor il-ħin tal-konnessjoni flimkien mat-tul. It-tnejn huma sekondi sħaħ, u l-ebda waħda mhi l-mument meta d-database tiegħek ipproċessat l-avveniment. Iż-żamma ta’ dawn it-tliet ħinijiet separati hija dik li tagħmel korrelazzjoni tinżamm, minflok ma tidher biss korretta waqt l-ittestjar.

Din l-aritmetika jistħoqqilha li tinkiteb, għax huwa l-uniku ħin tat-tmiem li joffri l-ganċ stess. Id-dewmien tal-ipproċessar u d-differenzi fl-arloġġi bejn il-hosts għadhom barra minnu.

Għaliex il-par ovvju mhuwiex uniku

L-iggruppar tal-isem mal-ħin tal-konnessjoni jnaqqas it-tfittxija u għadu ma jidentifikax sessjoni. Klijent jista’ jerġa’ jikkonnettja fl-istess sekonda, għalhekk żewġ sessjonijiet jistgħu jaqsmu ż-żewġ valuri. Żewġ istanzi tad-daemon, jew sostituzzjoni tas-server li żżomm l-istess konfigurazzjoni, jistgħu jipproduċu dak il-par minn proċessi differenti. L-indirizzi tat-tunnel jiġu riċiklati għall-istess raġuni, li tagħmilhom attributi ta’ sessjoni u mhux identifikaturi għaliha.

Il-mod tal-falliment huwa sieket. Skonnessjoni tardiva għall-ewwel sessjoni taqbel mal-aħħar ringiela u ttemm allokazzjoni li t-tieni sessjoni għadha tuża, għalhekk l-utent jesperjenza telf ta’ aċċess każwali li ma kkawżax. Għadd ta’ ringieli li jidher korrett wara jagħmel il-problema aktar diffiċli biex tinstab.

Minn fejn tiġi identità stabbli

L-interface tal-maniġment jassenja lil kull klijent identifikatur tal-istanza tal-klijent, u dak l-identifikatur huwa limitat għall-istanza tad-daemon li ħarġet. Muftieħ estern li jista’ jaħdem jgħaqqad identifikatur stabbli tas-server, epoka li tinbidel meta jibda d-daemon, u dak l-ID tal-klijent. L-epoka hija importanti għax l-identifikaturi jerġgħu jibdew mal-proċess, u ID ta’ proċess vojt jista’ jerġa’ jintuża aktar tard minn xi ħaġa mhux relatata.

Il-varjabbli tal-ambjent stabbiliti ġewwa skript tal-konnessjoni tat-tfal ma jivvjaġġawx lejn l-iskript tas-skonnessjoni aktar tard tad-daemon ġenitur, għax dawk l-iskripts jaħdmu bħala proċessi separati bl-ambjenti tagħhom stess. Għalhekk il-ġenerazzjoni ta’ UUID fil-ħin tal-konnessjoni hija nofs soluzzjoni. In-naħa tas-skonnessjoni trid tkun tista’ ssemmi l-istess UUID, li jfisser li l-identità trid tgħix f’xi post li jistgħu jilħqu ż-żewġ avvenimenti.

Agħmel l-irtirar kundizzjonali u idempotenti

Ittira skont is-sid tas-sessjoni, mhux skont l-utent. Handler li jħassar kwalunkwe allokazzjoni li bħalissa tappartjeni lil isem eventwalment iħassar dik ħażina, u l-unika difiża hija li tiċċekkja li r-rekord li jitneħħa huwa r-rekord li jiddeskrivi dan l-avveniment.

L-interface tal-maniġment taċċetta klijent tal-maniġment wieħed konness fi żmien wieħed, għalhekk integra ma’ min diġà jippossjedih minflok ma ttejjeb it-tieni osservatur li jikkompeti għall-istess socket.

Immaniġġja avvenimenti ripetuti mingħajr ma tbiddel ir-riżultat darbtejn, u żżejjen l-avvenimenti mhux imqabbla għar-rikonċiljazzjoni minflok ma tarmihom. Callback tas-skonnessjoni għandu kundizzjonijiet ta’ ċiklu tal-ħajja dokumentati u jista’ qatt ma jasal wara crash jew waqfien iebes, għalhekk id-disinn jeħtieġ mod kif jirrappreżenta sessjoni li l-avveniment tat-tmiem tagħha jkun nieqes.

Ittestja l-każijiet skomdi apposta: żewġ rikonnessjonijiet f’sekonda waħda, żewġ istanzi tad-daemon, konnessjoni li l-ipproċessar tagħha falla, u restart tad-daemon f’nofs sessjoni. Muftieħ li jiflaħ l-erbgħa kollha huwa muftieħ denju tal-fiduċja.

Artikli relatati