diff --git a/android/project/jni/fwknop/fwknop_client.c b/android/project/jni/fwknop/fwknop_client.c index 1c300c32..9188f15b 100644 --- a/android/project/jni/fwknop/fwknop_client.c +++ b/android/project/jni/fwknop/fwknop_client.c @@ -68,6 +68,10 @@ jstring Java_com_max2idea_android_fwknop_Fwknop_sendSPAPacket(JNIEnv* env, jstring jdestip = (*env)->GetObjectField(env, thiz, fid); const char *destip_str = (*env)->GetStringUTFChars(env, jdestip, 0); + fid = (*env)->GetFieldID(env, c, "destport_str", "Ljava/lang/String;"); + jstring jdestport = (*env)->GetObjectField(env, thiz, fid); + const char *destport_str = (*env)->GetStringUTFChars(env, jdestport, 0); + fid = (*env)->GetFieldID(env, c, "passwd_str", "Ljava/lang/String;"); jstring jpasswd = (*env)->GetObjectField(env, thiz, fid); const char *passwd_str = (*env)->GetStringUTFChars(env, jpasswd, 0); @@ -94,6 +98,10 @@ jstring Java_com_max2idea_android_fwknop_Fwknop_sendSPAPacket(JNIEnv* env, sprintf(res_msg, "Error: Invalid or missing destination IP"); goto cleanup2; } + if(destport_str == NULL) { + sprintf(res_msg, "Error: Invalid or missing destination port"); + goto cleanup2; + } if(passwd_str == NULL) { sprintf(res_msg, "Error: Invalid or missing password"); goto cleanup2; @@ -112,7 +120,7 @@ jstring Java_com_max2idea_android_fwknop_Fwknop_sendSPAPacket(JNIEnv* env, /* Set our spa server info */ opts.spa_server_str = (char*)destip_str; - opts.spa_dst_port = FKO_DEFAULT_PORT; /* Until we make this settable. */ + opts.spa_dst_port = atoi(destport_str); /* Intialize the context */ diff --git a/android/project/res/layout/main.xml b/android/project/res/layout/main.xml index 17b5497b..d25a734a 100644 --- a/android/project/res/layout/main.xml +++ b/android/project/res/layout/main.xml @@ -88,6 +88,27 @@ android:textSize="20dip" /> + + + +