diff --git a/p2pproxy/launcher/src/p2pproxy.c b/p2pproxy/launcher/src/p2pproxy.c index 2c76a8a1f..f65593bd6 100644 --- a/p2pproxy/launcher/src/p2pproxy.c +++ b/p2pproxy/launcher/src/p2pproxy.c @@ -118,16 +118,22 @@ int p2pproxy_resourcelocation_get_sip_proxyregistrar_uri(char* aStringArray, siz jboolean lIsCopy; getSipProxyRegistrarUriMethod = (*p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "getSipProxyRegistrarUriMethod", "()[java/lang/String;"); - jstring lJStringResult = (*p2pproxy_application_jnienv)->CallStaticObjectMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, getSipProxyRegistrarUriMethod); + lJStringResult = (*p2pproxy_application_jnienv)->CallStaticObjectMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, getSipProxyRegistrarUriMethod); if (lJStringResult == 0) { return P2PPROXY_ERROR_RESOURCELOCATOR_SERVER_NOT_FOUND; } - lString = GetStringUTFChars(p2pproxy_application_jnienv, lJStringResult, &lIsCopy); - strcpy(aStringArray,lString,aSize); - ReleaseStringUTFChars(p2pproxy_application_jnienv, lJStringResult, lString); + lString = (*p2pproxy_application_jnienv)->GetStringUTFChars(p2pproxy_application_jnienv, lJStringResult, &lIsCopy); + memcpy(aStringArray,lString,aSize); + (*p2pproxy_application_jnienv)->ReleaseStringUTFChars(p2pproxy_application_jnienv, lJStringResult, lString); return P2PPROXY_NO_ERROR; } - +int p2pproxy_application_get_state() { + jmethodID stateMethod; + + stateMethod = (*p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "getState", "()I"); + return (*p2pproxy_application_jnienv)->CallStaticIntMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, stateMethod); + +} diff --git a/p2pproxy/launcher/src/p2pproxy.h b/p2pproxy/launcher/src/p2pproxy.h index ca20489ed..7317199ae 100644 --- a/p2pproxy/launcher/src/p2pproxy.h +++ b/p2pproxy/launcher/src/p2pproxy.h @@ -30,7 +30,9 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #define P2PPROXY_ACCOUNTMGT_USER_EXIST 1 #define P2PPROXY_ACCOUNTMGT_USER_NOT_EXIST 0 - +/* state code*/ +#define P2PPROXY_CONNECTED 2 +#define P2PPROXY_NOT_CONNECTED 1 /* status code*/ #define P2PPROXY_NO_ERROR 0 /*error codes*/ @@ -52,6 +54,13 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ int p2pproxy_application_start(int argc, char **argv); +/** + * return status + * @return P2PPROXY_CONNECTED, P2PPROXY_NOT_ERROR + * + */ +int p2pproxy_application_get_state(); + /** * return the status string corresponding to the status code */ diff --git a/p2pproxy/src/org/linphone/p2pproxy/core/P2pProxyMain.java b/p2pproxy/src/org/linphone/p2pproxy/core/P2pProxyMain.java index 4dbbb3053..c5b754cf5 100644 --- a/p2pproxy/src/org/linphone/p2pproxy/core/P2pProxyMain.java +++ b/p2pproxy/src/org/linphone/p2pproxy/core/P2pProxyMain.java @@ -422,4 +422,12 @@ public static String getSipProxyRegistrarUri() { return null; } } +public static int getState() { + try { + isReady(); + return P2pProxylauncherConstants.P2PPROXY_CONNECTED; + } catch (P2pProxyException e) { + return P2pProxylauncherConstants.P2PPROXY_NOT_CONNECTED; + } +} } \ No newline at end of file