Je souhaiterais savoir comment tester si une connection est UP, j'ai essayer la fonction ct_poll mais elle ne détecte rien alors que la connection a été tuée![]()
Merci de votre aide
Je souhaiterais savoir comment tester si une connection est UP, j'ai essayer la fonction ct_poll mais elle ne détecte rien alors que la connection a été tuée![]()
Merci de votre aide
A ma connaissance la seule façon de tester qu'une connexion est UP est d'envoyer une requête...
On peut aussi tester la condition CS_CONSTAT_DEAD de la connexion:
mais ce status n'est activé qu'après qu'une opération ai échoué.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 ct_con_props(info->connection->connection, CS_GET, CS_CON_STATUS, &ret, CS_UNUSED, NULL); RETVAL = ret & CS_CONSTAT_DEAD;
Michael
En effet ce genre de fonction ne renvoie pas FALSE si une opération n'a pas déjà échoué, merci quand même ;-)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 int isConnected(CS_CONNECTION *connexion) { CS_BOOL loginStatus; CS_INT connexionStatus; if (ct_con_props(*connexion, CS_GET, CS_LOGIN_STATUS, &loginStatus, CS_UNUSED, NULL) != CS_SUCCEED) { printf("ct_con_props CS_LOGIN_STATUS failed\n"); fflush(stdout); return 0; } if (ct_con_props(*connexion, CS_GET, CS_CON_STATUS, &connexionStatus, CS_UNUSED, NULL) != CS_SUCCEED) { printf("ct_con_props CS_CON_STATUS failed\n"); fflush(stdout); return 0; } return (loginStatus && (connexionStatus == CS_CONSTAT_CONNECTED)); }
Est-ce qu'il n'existe pas une opération simple style polling pour se rendre compte de la déconnection ??
ct_poll ne le permet pas en tout cas...
Non - pour voir si la conexion est encore valide il faut envoyer quelque chose, et attendre son retour. La seule façon d'envoyer qqch c'est de faire une requête...
Il y aurait peut-être la possibilité de faire un appel à ct_options() (p.ex. de positionné le CS_OPT_NUMROWS), mais je n'ai pas vérifié que cela detecte effectivement le cas où la connexion est down.
Michael
Partager