Flaga po to, że jak nie ma połączenia to dane mają być zapisane do pliku. Zapisany do pliku tez ma być fakt że wystąpił błąd z połączeniem. Na początku w funkcji miałem taki kod:
U mnie działa idealnie. Jeżeli nie rozłączę się z siecią obie funkcje zwrócą 0. Jeżeli się rozłączę (np. ustawiając sobie adres docelowego serwera jako alias na własnym interfejsie) zwrócą 1.
A nie prościej zajrzeć do kodu klienta mysql - który też jest napisany w C?
I najwyraźniej czai bazę:
MariaDB [(none)]> use vpopmail;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
MariaDB [vpopmail]> show tables; ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
ERROR: Can't connect to the server
unknown [vpopmail]>
unknown [vpopmail]> show tables; No connection. Trying to reconnect...
Connection id: 1
Current database: vpopmail
Także najwyraźniej ktoś ładuje z trepa w otwarte drzwi, albo próbuje trzasnąć drzwiami obrotowymi
Za uwagę dziękuje:
MariaDB [vpopmail]> \s;
--------------
mysql Ver 15.1 Distrib 5.5.23-MariaDB, for Linux (x86_64) using readline 5.1
Connection id: 1
Current database: vpopmail
Current user: root@localhost
SSL: Cipher in use is DHE-RSA-AES256-SHA
Current pager: /usr/bin/less
Using outfile: ''
Using delimiter: ; Server: MariaDB
Server version: 5.5.23-MariaDB-log Source distribution
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8
Db characterset: utf8
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /var/run/mysqld/mysqld.sock
Uptime: 6 min 4 sec
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux
A zajrzeć do źródel biblioteki libmysqlclient też nie możesz?
I poszukać odpowiedniego kawałka kodu, np na podstawie komunikatów wyświetlanych przez oryginalnego klienta przy połączeniu z oryginalnym serwerem?
Taką sztukę to nawet ja potrafię, np (kombinując z kodem łatki chkuser do Qmaila) wylączyłem 2 niepotrzebne akcje, choć w ogóle w C nie programuję, nawet programistą w ogóle nie jestem.
Problemy rozwiązujemy na forum nie na PW -> Niech inni na tym skorzystają.
Komputer jest jak klimatyzacja - gdy otworzysz okna, robi się bezużyteczny...
Linux User #499936
Inny OS: Gentoo Linux
na początku chce sprawdzić czy istnieje fizyczne połączenie, następnie czy można do bazy wysłać zapytanie, jeśli jest ok to wysyła dane do bazy danych.
chce to zrobić tak, że za każdym razem jak chce wysłać dane, to sprawdzam czy połączenie z internetem istnieje, następnie czy istnieje dostęp do bazy danych, jeśli te warunki są spełnione to program ma wystać dane do bazy. Dodam ze dane będą wysyłane nie częściej niż raz na sekundę, a czasem rzadziej.
marcin0x02: ethanak próbuje Ci delikatnie dać do zrozumienia, że sprawdzenie poprawności połączenia w momencie t0 nie zagwarantuje Ci, że to połączenie będzie istniało w momencie t1, kiedy będziesz chciał wysyłać dane "po sprawdzeniu". Ja Ci natomiast usiłuję dać do zrozumienia, że zarówno mysql_ping jak i mysql_query jak najbardziej pozwalają wykryć awarię połączenia, a jeżeli to u Ciebie nie działa to znaczy że popełniasz jakiś trywialny błąd (wyciągasz nie ten kabel co trzeba bądź ustawiasz nie tę flagę o którą chodzi).