Keresés

Részletes keresés

NevemTeve Creative Commons License 2007.09.15 0 0 2
Ma fogtam egy ilyet: SSL_accept azt mondta, hogy SSL_ERROR_ZERO_RETURN.
Úgy képzelem, hogy ez annyit jelent, hogy egy 'recv' során EOF-ot kapott (rc==0), azaz kb azt kell csinálni, mint SSL_ERROR_SYSCALL esetén.
NevemTeve Creative Commons License 2006.02.13 0 0 1
Ma ismét jót mulattam...
Az openssl régebben egy des_key_schedule nevű tömböt használt, most egy DES_key_schedule nevű struktúrát... de a kompatibilitás miatt az új verzió definiálja a des_key_schedule nevű struktúrát is!
Ettől kezdve lehetetlen kompatibilisen fejleszteni - mármint ha egy ilyen des_key_schedule címét akarunk egy saját függvényünknek átadni... annyit bírtam csinálni, hogy felvettem egy saját struktúrát:

typedef struct DKS {
 des_key_schedule dks;
} DKS;
NevemTeve Creative Commons License 2003.05.15 0 0 0
Ja, hogy minek ez? Egy köztes-réteg (magyarul middle-layer) dolog, ami eddig síma read/write -tal kommunikált TCP-n, most át kellene térni SSL_read/SSL_write-ra (illetve opcionálisan megengedni azt is), lehetőleg a felső réteg zavarása módosítása nélkül...
NevemTeve Creative Commons License 2003.05.15 0 0 topiknyitó
Éppen az SSL_read/SSL_write man-ját olvasgatom, és azon töprengek, mit jelent ez:

WARNING
When an SSL_read() operation has to be repeated because of SSL_ERROR_WANT_READ or SSL_ERROR_WANT_WRITE, it must be repeated with the same arguments.

Ha mondjuk non-blocking socket-et használok, és visszakapom hogy nincs adat (SSL_ERROR_WANT_READ), akkor mi a jelentősége annak, hogy legközelebb ugyanarra a címre ugyanannyi byte-ot kérjek... esetleg ez azt jelenti, hogy az én bufferemet ő valamiféle tárolónak használja két hívás között? Ez nagyon hülyén hangzik...

Az SSL_set_mode man-jában meg ez olvasható

SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER
Make it possible to retry SSL_write() with changed buffer location (the buffer contents must stay the same). This is not the default to avoid the misconception that non-blocking SSL_write() behaves like non-blocking write().

remélem, de nem vagyok biztos benne, hogy emiatt nem kell aggódnom, ha megadom ezt:

SSL_MODE_ENABLE_PARTIAL_WRITE
Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success when just a single record has been written). When not set (the default), SSL_write() will only report success once the complete chunk was written. Once SSL_write() returns with r, r bytes have been successfully written and the next call to SSL_write() must only send the n-r bytes left, imitating the behaviour of write().

Ha kedveled azért, ha nem azért nyomj egy lájkot a Fórumért!