Skip to content

Commit

Permalink
Added NSD
Browse files Browse the repository at this point in the history
  • Loading branch information
Xcreen committed Dec 26, 2024
1 parent be422bf commit 6da1e32
Showing 1 changed file with 43 additions and 1 deletion.
44 changes: 43 additions & 1 deletion app/src/main/java/net/xcreen/restsms/server/SMSServer.kt
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
package net.xcreen.restsms.server

import android.content.Context
import android.net.nsd.NsdManager
import android.net.nsd.NsdServiceInfo
import android.util.Log
import net.xcreen.restsms.AppContext
import org.eclipse.jetty.server.Server
import org.eclipse.jetty.servlet.ServletContextHandler
import org.eclipse.jetty.servlet.ServletHolder
Expand All @@ -10,7 +15,9 @@ class SMSServer {
var goodToken = ""
var authEnabled = false
private var jettyServer: Server? = null

private var nsdManager: NsdManager? = null
private var nsdRegistrationListener: NsdManager.RegistrationListener? = null
private val TAG = "SMSServer"
/**
* Get Server-Logger
* @return serverLogging - ServerLogging-Object
Expand Down Expand Up @@ -38,6 +45,38 @@ class SMSServer {
servletContextHandler.addServlet(smsWelcomeServletHolder, "/")
jettyServer!!.handler = servletContextHandler

//Start NSD
val nsdServiceInfo = NsdServiceInfo()
nsdServiceInfo.serviceName = "RestSMS"
nsdServiceInfo.serviceType = "_http._tcp."
nsdServiceInfo.port = port

nsdManager = AppContext.appContext.getSystemService(Context.NSD_SERVICE) as NsdManager

nsdRegistrationListener = object : NsdManager.RegistrationListener {
override fun onServiceRegistered(serviceInfo: NsdServiceInfo) {
val registeredName = serviceInfo.serviceName
Log.i(TAG, "NSD Service registered: $registeredName")
serverLogging!!.log("info", "NSD Service registered: $registeredName")
}

override fun onRegistrationFailed(serviceInfo: NsdServiceInfo, errorCode: Int) {
Log.e(TAG, "NSD Service registration failed: $errorCode")
serverLogging!!.log("error", "NSD Service registration failed: $errorCode")
}

override fun onServiceUnregistered(serviceInfo: NsdServiceInfo) {
Log.i(TAG, "NSD Service unregistered.")
serverLogging!!.log("info", "NSD Service unregistered.")
}

override fun onUnregistrationFailed(serviceInfo: NsdServiceInfo, errorCode: Int) {
Log.e(TAG, "NSD Service unregistration failed: $errorCode")
serverLogging!!.log("error", "NSD Service unregistration failed: $errorCode")
}
}
nsdManager!!.registerService(nsdServiceInfo, NsdManager.PROTOCOL_DNS_SD, nsdRegistrationListener)

//Start Jetty
jettyServer!!.start()
jettyServer!!.join()
Expand All @@ -53,6 +92,9 @@ class SMSServer {
serverLogging!!.log("info", "Stopping Server...")
jettyServer!!.stop()
}
nsdRegistrationListener?.let {
nsdManager?.unregisterService(it)
}
}

/**
Expand Down

0 comments on commit 6da1e32

Please sign in to comment.