Changeset 77:9ebf545c4539 in mediastreamer2
- Timestamp:
- Oct 11, 2008 10:42:58 PM (5 years ago)
- Branch:
- default
- Location:
- p2pproxy
- Files:
-
- 6 edited
-
launcher/Debug/makefile (modified) (1 diff)
-
launcher/src/launcher-tester.c (modified) (1 diff)
-
launcher/src/p2pproxy.c (modified) (9 diffs)
-
src/org/linphone/p2pproxy/core/GenericService.java (modified) (3 diffs)
-
src/org/linphone/p2pproxy/core/P2pProxyMain.java (modified) (3 diffs)
-
src/org/linphone/p2pproxy/core/rdvautoconfig/PeerInfoProviderService.java (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
p2pproxy/launcher/Debug/makefile
r48 r77 30 30 @echo 'Building target: $@' 31 31 @echo 'Invoking: GCC C Linker' 32 gcc -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/lib/ amd64/server -o"p2pproxy-launcher" $(OBJS) $(USER_OBJS) $(LIBS)32 gcc -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64 -L/usr/lib/jvm/java-6-openjdk/jre/lib/i386 -L/usr/lib/jvm/java-6-openjdk/jre/lib/amd64/server -L/usr/lib/jvm/java-6-openjdk/jre/lib/i386/server -o"p2pproxy-launcher" $(OBJS) $(USER_OBJS) $(LIBS) 33 33 @echo 'Finished building target: $@' 34 34 @echo ' ' -
p2pproxy/launcher/src/launcher-tester.c
r75 r77 12 12 int main(int argc, char **argv) { 13 13 pthread_t th; 14 printf("starting p2pproxy tester ");14 printf("starting p2pproxy tester \n"); 15 15 pthread_create(&th,NULL,thread_starter,NULL); 16 sleep(3); 16 17 17 sleep(1000); 18 /*p2pproxy_application_stop();*/ 18 if (p2pproxy_application_get_state() == P2PPROXY_CONNECTED) { 19 printf("CONNECTED \n"); 20 } else { 21 printf("NOT CONNECTED \n"); 22 }; 23 24 25 if (p2pproxy_accountmgt_createAccount("sip:titi@p2p.linphone.org") != P2PPROXY_NO_ERROR) { 26 printf("cannot create account \n"); 27 } 28 29 30 if (p2pproxy_accountmgt_isValidAccount("sip:titi@p2p.linphone.org") != P2PPROXY_ACCOUNTMGT_USER_EXIST) { 31 printf("user not created \n"); 32 } 33 34 char string_buffer[256]; 35 if (p2pproxy_resourcelocation_get_sip_proxyregistrar_uri(string_buffer,256) != P2PPROXY_NO_ERROR) { 36 printf("cannot get proxy\n"); 37 } else { 38 printf("registrar is [%s]\n",string_buffer); 39 } 40 if (p2pproxy_accountmgt_deleteAccount("sip:titi@p2p.linphone.org") != P2PPROXY_NO_ERROR) { 41 printf("cannot delete account \n"); 42 } 43 44 p2pproxy_application_stop(); 19 45 pthread_join(th,NULL); 20 46 return 0; -
p2pproxy/launcher/src/p2pproxy.c
r75 r77 13 13 #endif 14 14 #define NUMBER_OF_OPTION 7 15 JNIEnv* p2pproxy_application_jnienv = 0;16 15 JavaVM* p2pproxy_application_jvm = 0; 17 jclass p2pproxy_proxy_main_class = 0; 16 17 #define GET_JNI_ENV \ 18 jint lResut = 0 ;\ 19 JNIEnv* lJniEnv = 0;\ 20 jclass lMainClass = 0;\ 21 lResut = (*p2pproxy_application_jvm)->AttachCurrentThread(p2pproxy_application_jvm,&lJniEnv,NULL);\ 22 if (lResut != 0) { \ 23 fprintf(stderr,"cannot attach VM\n");\ 24 return P2PPROXY_ERROR;\ 25 }\ 26 lMainClass = (*lJniEnv)->FindClass(lJniEnv, "org/linphone/p2pproxy/core/P2pProxyMain");\ 27 if (lMainClass == 0) { \ 28 fprintf(stderr,"cannot load class org/linphone/p2pproxy/core/P2pProxyMain\n");\ 29 return P2PPROXY_ERROR; \ 30 } \ 31 18 32 19 33 int p2pproxy_application_start(int argc, char **argv) { 20 34 JNIEnv* lJniEnv = 0; 35 jclass lMainClass = 0; 36 21 37 JavaVMInitArgs args; 22 38 JavaVMOption options[NUMBER_OF_OPTION]; … … 28 44 int optioncount=0; 29 45 30 if (p2pproxy_application_j nienv!= 0) {46 if (p2pproxy_application_jvm != 0) { 31 47 fprintf(stderr,"p2pproxy already started"); 32 48 return P2PPROXY_ERROR_APPLICATION_ALREADY_STARTED; … … 53 69 args.nOptions = NUMBER_OF_OPTION; 54 70 args.options = options; 55 args.ignoreUnrecognized = JNI_FALSE; 71 args.ignoreUnrecognized = JNI_FALSE; int lResult; 72 56 73 57 res = JNI_CreateJavaVM(&p2pproxy_application_jvm, (void **)& p2pproxy_application_jnienv, &args);74 res = JNI_CreateJavaVM(&p2pproxy_application_jvm, (void **)&lJniEnv, &args); 58 75 if (res < 0) { 59 76 fprintf(stderr,"cannot start p2pproxy vm [%i]",res); … … 61 78 } 62 79 63 p2pproxy_proxy_main_class = (*p2pproxy_application_jnienv)->FindClass(p2pproxy_application_jnienv, "org/linphone/p2pproxy/core/P2pProxyMain");80 lMainClass = (*lJniEnv)->FindClass(lJniEnv, "org/linphone/p2pproxy/core/P2pProxyMain"); 64 81 65 if ( p2pproxy_proxy_main_class == 0) {82 if (lMainClass == 0) { 66 83 fprintf(stderr,"cannot load class org/linphone/p2pproxy/core/P2pProxyMain\n"); 67 84 return P2PPROXY_ERROR; 68 85 } 69 mainMethod = (* p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "main", "([Ljava/lang/String;)V");86 mainMethod = (*lJniEnv)->GetStaticMethodID(lJniEnv, lMainClass, "main", "([Ljava/lang/String;)V"); 70 87 71 applicationArgsList = (* p2pproxy_application_jnienv)->NewObjectArray(p2pproxy_application_jnienv, argc, (*p2pproxy_application_jnienv)->FindClass(p2pproxy_application_jnienv, "java/lang/String"), NULL);88 applicationArgsList = (*lJniEnv)->NewObjectArray(lJniEnv, argc, (*lJniEnv)->FindClass(lJniEnv, "java/lang/String"), NULL); 72 89 73 90 for (i=0;i<argc;i++) { 74 applicationArg = (* p2pproxy_application_jnienv)->NewStringUTF(p2pproxy_application_jnienv, argv[i]);75 (* p2pproxy_application_jnienv)->SetObjectArrayElement(p2pproxy_application_jnienv, applicationArgsList, 0, applicationArg);91 applicationArg = (*lJniEnv)->NewStringUTF(lJniEnv, argv[i]); 92 (*lJniEnv)->SetObjectArrayElement(lJniEnv, applicationArgsList, i, applicationArg); 76 93 77 94 } 78 95 79 (* p2pproxy_application_jnienv)->CallStaticVoidMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, mainMethod, applicationArgsList);96 (*lJniEnv)->CallStaticVoidMethod(lJniEnv, lMainClass, mainMethod, applicationArgsList); 80 97 81 98 return P2PPROXY_NO_ERROR; 82 99 } 100 int lResult; 83 101 84 102 … … 90 108 int p2pproxy_accountmgt_createAccount(const char* user_name) { 91 109 jmethodID createAccountMethod; 92 jstring applicationArg; 93 94 createAccountMethod = (*p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "createAccount", "([java/lang/String;)I"); 95 applicationArg = (*p2pproxy_application_jnienv)->NewStringUTF(p2pproxy_application_jnienv, user_name); 96 return (*p2pproxy_application_jnienv)->CallStaticIntMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, createAccountMethod, applicationArg); 110 jstring applicationArg; 111 GET_JNI_ENV 112 createAccountMethod = (*lJniEnv)->GetStaticMethodID(lJniEnv, lMainClass, "createAccount", "(Ljava/lang/String;)I"); 113 applicationArg = (*lJniEnv)->NewStringUTF(lJniEnv, user_name); 114 lResult = (*lJniEnv)->CallStaticIntMethod(lJniEnv, lMainClass, createAccountMethod, applicationArg); 115 (*p2pproxy_application_jvm)->DetachCurrentThread(p2pproxy_application_jvm); 116 return lResult; 97 117 } 98 118 … … 100 120 jmethodID isValidAccountMethod; 101 121 jstring applicationArg; 102 103 isValidAccountMethod = (*p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "isValidAccount", "([java/lang/String;)I"); 104 applicationArg = (*p2pproxy_application_jnienv)->NewStringUTF(p2pproxy_application_jnienv, user_name); 105 return (*p2pproxy_application_jnienv)->CallStaticIntMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, isValidAccountMethod, applicationArg); 122 GET_JNI_ENV 123 isValidAccountMethod = (*lJniEnv)->GetStaticMethodID(lJniEnv, lMainClass, "isValidAccount", "(Ljava/lang/String;)I"); 124 applicationArg = (*lJniEnv)->NewStringUTF(lJniEnv, user_name); 125 lResult = (*lJniEnv)->CallStaticIntMethod(lJniEnv, lMainClass, isValidAccountMethod, applicationArg); 126 (*p2pproxy_application_jvm)->DetachCurrentThread(p2pproxy_application_jvm); 127 return lResult; 106 128 } 107 129 … … 109 131 jmethodID deleteAccountMethod; 110 132 jstring applicationArg; 111 112 deleteAccountMethod = (*p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "deleteAccount", "([java/lang/String;)I"); 113 applicationArg = (*p2pproxy_application_jnienv)->NewStringUTF(p2pproxy_application_jnienv, user_name); 114 return (*p2pproxy_application_jnienv)->CallStaticIntMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, deleteAccountMethod, applicationArg); 133 GET_JNI_ENV 134 deleteAccountMethod = (*lJniEnv)->GetStaticMethodID(lJniEnv, lMainClass, "deleteAccount", "(Ljava/lang/String;)I"); 135 applicationArg = (*lJniEnv)->NewStringUTF(lJniEnv, user_name); 136 lResult = (*lJniEnv)->CallStaticIntMethod(lJniEnv, lMainClass, deleteAccountMethod, applicationArg); 137 (*p2pproxy_application_jvm)->DetachCurrentThread(p2pproxy_application_jvm); 138 return lResult; 115 139 } 116 140 … … 120 144 const jbyte* lString; 121 145 jboolean lIsCopy; 146 GET_JNI_ENV 122 147 123 getSipProxyRegistrarUriMethod = (* p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "getSipProxyRegistrarUriMethod", "()[java/lang/String;");124 lJStringResult = (* p2pproxy_application_jnienv)->CallStaticObjectMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, getSipProxyRegistrarUriMethod);148 getSipProxyRegistrarUriMethod = (*lJniEnv)->GetStaticMethodID(lJniEnv, lMainClass, "getSipProxyRegistrarUri", "()Ljava/lang/String;"); 149 lJStringResult = (*lJniEnv)->CallStaticObjectMethod(lJniEnv, lMainClass, getSipProxyRegistrarUriMethod); 125 150 if (lJStringResult == 0) { 126 151 return P2PPROXY_ERROR_RESOURCELOCATOR_SERVER_NOT_FOUND; 127 152 } 128 lString = (* p2pproxy_application_jnienv)->GetStringUTFChars(p2pproxy_application_jnienv, lJStringResult, &lIsCopy);153 lString = (*lJniEnv)->GetStringUTFChars(lJniEnv, lJStringResult, &lIsCopy); 129 154 memcpy(aStringArray,lString,aSize); 130 (*p2pproxy_application_jnienv)->ReleaseStringUTFChars(p2pproxy_application_jnienv, lJStringResult, lString); 155 (*lJniEnv)->ReleaseStringUTFChars(lJniEnv, lJStringResult, lString); 156 (*p2pproxy_application_jvm)->DetachCurrentThread(p2pproxy_application_jvm); 131 157 return P2PPROXY_NO_ERROR; 132 158 } … … 134 160 int p2pproxy_application_get_state() { 135 161 jmethodID stateMethod; 162 GET_JNI_ENV 136 163 137 stateMethod = (*p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "getState", "()I"); 138 return (*p2pproxy_application_jnienv)->CallStaticIntMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, stateMethod); 164 stateMethod = (*lJniEnv)->GetStaticMethodID(lJniEnv, lMainClass, "getState", "()I"); 165 lResult = (*lJniEnv)->CallStaticIntMethod(lJniEnv, lMainClass, stateMethod); 166 (*p2pproxy_application_jvm)->DetachCurrentThread(p2pproxy_application_jvm); 167 return lResult; 139 168 140 169 } 141 170 void p2pproxy_application_stop() { 142 jmethodID stopMethod; 171 jmethodID stopMethod = 0; 172 GET_JNI_ENV 143 173 144 stopMethod = (*p2pproxy_application_jnienv)->GetStaticMethodID(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, "stop", "()V"); 145 (*p2pproxy_application_jnienv)->CallStaticVoidMethod(p2pproxy_application_jnienv, p2pproxy_proxy_main_class, stopMethod); 174 stopMethod = (*lJniEnv)->GetStaticMethodID(lJniEnv, lMainClass, "stop", "()V"); 175 (*lJniEnv)->CallStaticVoidMethod(lJniEnv, lMainClass, stopMethod); 176 (*p2pproxy_application_jvm)->DetachCurrentThread(p2pproxy_application_jvm); 177 (*p2pproxy_application_jvm)->DestroyJavaVM(p2pproxy_application_jvm); 178 p2pproxy_application_jvm = 0; 146 179 return; 147 180 -
p2pproxy/src/org/linphone/p2pproxy/core/GenericService.java
r0 r77 20 20 package org.linphone.p2pproxy.core; 21 21 22 import java.io.IOException; 22 23 import java.net.Socket; 23 24 import java.net.URI; … … 57 58 private final ExecutorService mPool; 58 59 private final ServiceSocketHandlerFactory mServiceSocketHandlerFactory; 60 private boolean mExist = false; 59 61 60 62 public GenericService(Configurator lProperties,JxtaNetworkManager aJxtaNetworkManager,String aServiceName,ServiceSocketHandlerFactory aServiceSocketHandlerFactory) { … … 123 125 } 124 126 public void stop(){ 125 throw new RuntimeException("Not implemented"); 127 try { 128 mJxtaServerSocket.close(); 129 } catch (IOException e) { 130 //nop 131 } 132 mExist = true; 126 133 } 127 134 public void run() { 128 while ( true) {135 while (mExist) { 129 136 try { 130 137 mLog.info("Waiting for connection on service ["+ADV_NAME+"]"); -
p2pproxy/src/org/linphone/p2pproxy/core/P2pProxyMain.java
r74 r77 43 43 import org.linphone.p2pproxy.core.media.rtprelay.RtpRelayService; 44 44 import org.linphone.p2pproxy.core.sipproxy.SipProxyRegistrar; 45 import org.linphone.p2pproxy.core.sipproxy.SipProxyRegistrarAdvertisement; 45 46 import org.zoolu.sip.provider.SipStack; 46 47 import org.linphone.p2pproxy.launcher.P2pProxylauncherConstants; … … 380 381 private static void isReady() throws P2pProxyNotReadyException { 381 382 try { 382 if (mJxtaNetworkManager!=null && mJxtaNetworkManager.isConnectedToRendezVous(0) == false) { 383 throw new P2pProxyNotReadyException("not connected to any rdv"); 383 if ((mJxtaNetworkManager!=null && mJxtaNetworkManager.isConnectedToRendezVous(0) == true) 384 || 385 (mJxtaNetworkManager!=null && mJxtaNetworkManager.getPeerGroup().getRendezVousService().isRendezVous())) 386 { 387 //nop connected 388 } else { 389 throw new P2pProxyNotReadyException("not connected to any rdv"); 384 390 } 385 391 } catch (InterruptedException e) { … … 425 431 try { 426 432 isReady(); 427 return mP2pProxyManagement.getSipProxyRegistrarUri(); 428 } catch (P2pProxyException e) { 433 SipProxyRegistrarAdvertisement lSipProxyRegistrarAdvertisement = (SipProxyRegistrarAdvertisement) (mJxtaNetworkManager.getAdvertisement(null, SipProxyRegistrarAdvertisement.NAME, true)); 434 return lSipProxyRegistrarAdvertisement.getAddress(); 435 } catch (Exception e) { 429 436 return null; 430 } 437 } 431 438 } 432 439 public static int getState() { -
p2pproxy/src/org/linphone/p2pproxy/core/rdvautoconfig/PeerInfoProviderService.java
r0 r77 62 62 public final static String PEERINFO_MODULE_CLASS_ID="org.linphone.p2pproxy.PeerInfoProviderService.module-class.id"; 63 63 public final static String PEERINFO_MODULE_SPEC_ID="org.linphone.p2pproxy.PeerInfoProviderService.module-spec.id"; 64 private boolean mExist = false; 64 65 65 66 public PeerInfoProviderService(Configurator lProperties,JxtaNetworkManager aJxtaNetworkManager) { … … 119 120 } 120 121 } 121 public void stop(){ 122 throw new RuntimeException("Not implemented"); 122 public void stop() { 123 try { 124 mJxtaServerSocket.close(); 125 } catch (IOException e) { 126 //nop 127 } 128 mExist = true; 129 mLog.info("PeerInfoProviderService stopped"); 123 130 } 124 131 125 132 public void run() { 126 while ( true) {133 while (mExist) { 127 134 try { 128 135 mLog.info("Waiting for connection on ["+ADV_NAME+"]"); … … 156 163 Object lInputObj; 157 164 Object lOutputObj; 158 boolean lStop = false; 159 while (lStop == false) { 165 while (mExist == false) { 160 166 lInputObj = lIn.readObject(); 161 167 mLog.info("request message ["+lInputObj+"] received");
Note: See TracChangeset
for help on using the changeset viewer.
