Skip to content

Commit

Permalink
Allow UDP listening port selection for Android
Browse files Browse the repository at this point in the history
  • Loading branch information
gmarcosb committed Jun 14, 2022
1 parent 9acc410 commit 51241c3
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 5 deletions.
1 change: 1 addition & 0 deletions src/controller/java/AndroidDeviceControllerWrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,7 @@ class AndroidDeviceControllerWrapper : public chip::Controller::DevicePairingDel
chip::Inet::EndPointManager<chip::Inet::TCPEndPoint> * tcpEndPointManager,
chip::Inet::EndPointManager<chip::Inet::UDPEndPoint> * udpEndPointManager,
AndroidOperationalCredentialsIssuerPtr opCredsIssuer,
uint16_t listenPort,
CHIP_ERROR * errInfoOnFailure);

private:
Expand Down
28 changes: 23 additions & 5 deletions src/controller/java/CHIPDeviceController-JNI.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -160,12 +160,30 @@ JNI_METHOD(jlong, newDeviceController)(JNIEnv * env, jobject self, jobject contr
long result = 0;

ChipLogProgress(Controller, "newDeviceController() called");
std::unique_ptr<chip::Controller::AndroidOperationalCredentialsIssuer> opCredsIssuer(
new chip::Controller::AndroidOperationalCredentialsIssuer());
wrapper = AndroidDeviceControllerWrapper::AllocateNew(sJVM, self, kLocalDeviceId, chip::kUndefinedCATs,
&DeviceLayer::SystemLayer(), DeviceLayer::TCPEndPointManager(),
DeviceLayer::UDPEndPointManager(), std::move(opCredsIssuer), &err);


// Retrieve initialization params.
jmethodID getUdpListenPort;
err = chip::JniReferences::GetInstance().FindMethod(env, controllerParams, "getUdpListenPort",
"()Lchip/devicecontroller/ControllerParams;",
&getUdpListenPort);
SuccessOrExit(err);
{
uint16_t listenPort = env->CallIntMethod(controllerParams, getUdpListenPort);

std::unique_ptr<chip::Controller::AndroidOperationalCredentialsIssuer> opCredsIssuer(
new chip::Controller::AndroidOperationalCredentialsIssuer());
wrapper = AndroidDeviceControllerWrapper::AllocateNew(sJVM,
self,
kLocalDeviceId,chip::kUndefinedCATs,
&DeviceLayer::SystemLayer(),
DeviceLayer::TCPEndPointManager(),
DeviceLayer::UDPEndPointManager(),
std::move(opCredsIssuer),
listenPort,
&err);
SuccessOrExit(err);
}

// Create and start the IO thread. Must be called after Controller()->Init
if (sIOThread == PTHREAD_NULL)
Expand Down

0 comments on commit 51241c3

Please sign in to comment.