Szivárgó absztrakciók

Az én konkrét esetemben az Oracle-kliens által nyitott TCP-kapcsolatról lenne szó, amely ugye az ő magánügye, nekem semmi közöm hozzá.

Ugyanakkor a [sporadikusan jelentkező] 15-perces válaszidőt kicsit sokallom, ezért némiképpen mégis beleavatkozom az ő TCP kapcsolatába, jelen pillanatban így állunk (részlet az alkalmazás logjából):


20220525.085737.172 Attached to server 'tnsid' in 40 ms
20220525.085737.172 Guessed file handle=11, TCP-connection 10.20.30.40:47490 -> 10.129.129.10:1521
20220525.085737.172 setsockopt (11, SO_KEEPALIVE, 1=ON) OK
20220525.085737.172 setsockopt (11, TCP_KEEPIDLE, 120s): OK
20220525.085737.173 setsockopt (11, TCP_USER_TIMEOUT, 45000ms): OK
20220525.085737.192 Logged on as 'username' in 19 ms

Ebből az egyik érdekes rész az, hogy az Oracle-kliens TCP-kapcsolatának azonosítóját (itt 11) közönséges telepátia útján kell kitalálni, mivel nem találtam hivatalos módot a lekérdezésre.

Hozzászólások

+r, mert így kicsit raccsolós a cím

en stracevel megneznem van-e connect() hivas. ha igen akkor ld_preload-al hookolnam, ha megfeleloek a parameterek, akkor elotte/utana mehet a setsockopt-al beallitanam amit kell. 

A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Csak annyi, hogy megnézem a nyitott handle-kat connect előtt és után: ami különbözik (és működik rá a getsockname/getpeername), az lesz az Oracle kapcsolata. (Pl. az isatty(2) hívással lehet lekérdezni, hogy egy handle használatban van-e: ha a válasz EBADF, akkor nincs.)