Skip to content

Commit 6da1e32

Browse files
committed
Added NSD
1 parent be422bf commit 6da1e32

File tree

1 file changed

+43
-1
lines changed

1 file changed

+43
-1
lines changed

app/src/main/java/net/xcreen/restsms/server/SMSServer.kt

Lines changed: 43 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
package net.xcreen.restsms.server
22

3+
import android.content.Context
4+
import android.net.nsd.NsdManager
5+
import android.net.nsd.NsdServiceInfo
6+
import android.util.Log
7+
import net.xcreen.restsms.AppContext
38
import org.eclipse.jetty.server.Server
49
import org.eclipse.jetty.servlet.ServletContextHandler
510
import org.eclipse.jetty.servlet.ServletHolder
@@ -10,7 +15,9 @@ class SMSServer {
1015
var goodToken = ""
1116
var authEnabled = false
1217
private var jettyServer: Server? = null
13-
18+
private var nsdManager: NsdManager? = null
19+
private var nsdRegistrationListener: NsdManager.RegistrationListener? = null
20+
private val TAG = "SMSServer"
1421
/**
1522
* Get Server-Logger
1623
* @return serverLogging - ServerLogging-Object
@@ -38,6 +45,38 @@ class SMSServer {
3845
servletContextHandler.addServlet(smsWelcomeServletHolder, "/")
3946
jettyServer!!.handler = servletContextHandler
4047

48+
//Start NSD
49+
val nsdServiceInfo = NsdServiceInfo()
50+
nsdServiceInfo.serviceName = "RestSMS"
51+
nsdServiceInfo.serviceType = "_http._tcp."
52+
nsdServiceInfo.port = port
53+
54+
nsdManager = AppContext.appContext.getSystemService(Context.NSD_SERVICE) as NsdManager
55+
56+
nsdRegistrationListener = object : NsdManager.RegistrationListener {
57+
override fun onServiceRegistered(serviceInfo: NsdServiceInfo) {
58+
val registeredName = serviceInfo.serviceName
59+
Log.i(TAG, "NSD Service registered: $registeredName")
60+
serverLogging!!.log("info", "NSD Service registered: $registeredName")
61+
}
62+
63+
override fun onRegistrationFailed(serviceInfo: NsdServiceInfo, errorCode: Int) {
64+
Log.e(TAG, "NSD Service registration failed: $errorCode")
65+
serverLogging!!.log("error", "NSD Service registration failed: $errorCode")
66+
}
67+
68+
override fun onServiceUnregistered(serviceInfo: NsdServiceInfo) {
69+
Log.i(TAG, "NSD Service unregistered.")
70+
serverLogging!!.log("info", "NSD Service unregistered.")
71+
}
72+
73+
override fun onUnregistrationFailed(serviceInfo: NsdServiceInfo, errorCode: Int) {
74+
Log.e(TAG, "NSD Service unregistration failed: $errorCode")
75+
serverLogging!!.log("error", "NSD Service unregistration failed: $errorCode")
76+
}
77+
}
78+
nsdManager!!.registerService(nsdServiceInfo, NsdManager.PROTOCOL_DNS_SD, nsdRegistrationListener)
79+
4180
//Start Jetty
4281
jettyServer!!.start()
4382
jettyServer!!.join()
@@ -53,6 +92,9 @@ class SMSServer {
5392
serverLogging!!.log("info", "Stopping Server...")
5493
jettyServer!!.stop()
5594
}
95+
nsdRegistrationListener?.let {
96+
nsdManager?.unregisterService(it)
97+
}
5698
}
5799

58100
/**

0 commit comments

Comments
 (0)