summaryrefslogtreecommitdiff
path: root/server/MDnsSdListener.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/MDnsSdListener.h')
-rw-r--r--server/MDnsSdListener.h121
1 files changed, 0 insertions, 121 deletions
diff --git a/server/MDnsSdListener.h b/server/MDnsSdListener.h
deleted file mode 100644
index 860b97d3..00000000
--- a/server/MDnsSdListener.h
+++ /dev/null
@@ -1,121 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-#ifndef _MDNSSDLISTENER_H__
-#define _MDNSSDLISTENER_H__
-
-#include <android-base/thread_annotations.h>
-#include <dns_sd.h>
-#include <sysutils/FrameworkListener.h>
-#include <mutex>
-#include <string>
-#include <thread>
-
-#include "NetdCommand.h"
-
-// callbacks
-void MDnsSdListenerDiscoverCallback(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t ifIndex,
- DNSServiceErrorType errorCode, const char* serviceName,
- const char* regType, const char* replyDomain, void* inContext);
-
-void MDnsSdListenerRegisterCallback(DNSServiceRef sdRef, DNSServiceFlags flags,
- DNSServiceErrorType errorCode, const char *serviceName, const char *regType,
- const char *domain, void *inContext);
-
-void MDnsSdListenerResolveCallback(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t ifIndex,
- DNSServiceErrorType errorCode, const char* fullname,
- const char* hosttarget, uint16_t port, uint16_t txtLen,
- const unsigned char* txtRecord, void* inContext);
-
-void MDnsSdListenerSetHostnameCallback(DNSServiceRef, DNSServiceFlags flags,
- DNSServiceErrorType errorCode, const char *hostname, void *inContext);
-
-void MDnsSdListenerGetAddrInfoCallback(DNSServiceRef sdRef, DNSServiceFlags flags, uint32_t ifIndex,
- DNSServiceErrorType errorCode, const char* hostname,
- const struct sockaddr* const sa, uint32_t ttl,
- void* inContext);
-
-class MDnsSdListener {
- public:
- class Context {
- public:
- int mRefNumber;
-
- Context(int refNumber) { mRefNumber = refNumber; }
-
- ~Context() {
- }
- };
-
- int stop(int requestId);
-
- int discover(uint32_t ifIndex, const char* regType, const char* domain, const int requestId,
- const int requestFlags);
-
- int serviceRegister(int requestId, const char* serviceName, const char* serviceType,
- const char* domain, const char* host, int port,
- const std::vector<unsigned char>& txtRecord, uint32_t ifIndex);
-
- int resolveService(int requestId, uint32_t ifIndex, const char* serviceName,
- const char* regType, const char* domain);
-
- int getAddrInfo(int requestId, uint32_t ifIndex, uint32_t protocol, const char* hostname);
-
- int startDaemon();
-
- int stopDaemon();
-
- private:
- class Monitor {
- public:
- Monitor();
- ~Monitor();
- DNSServiceRef *allocateServiceRef(int id, Context *c);
- void startMonitoring(int id);
- DNSServiceRef *lookupServiceRef(int id);
- void freeServiceRef(int id);
- int startService();
- int stopService();
- void run();
- void deallocateServiceRef(DNSServiceRef* ref);
- std::string threadName() { return std::string("MDnsSdMonitor"); }
-
- private:
- int rescan(); // returns the number of elements in the poll
-
- struct Element {
- Element(int id, Context* context) : mId(id), mContext(context) {}
- ~Element() { delete mContext; }
-
- int mId;
- Element* mNext = nullptr;
- DNSServiceRef mRef = nullptr;
- Context *mContext;
- int mReady = 0;
- };
- Element* mHead GUARDED_BY(mMutex);
- int mLiveCount;
- struct pollfd *mPollFds;
- DNSServiceRef **mPollRefs;
- int mPollSize;
- int mCtrlSocketPair[2];
- std::mutex mMutex;
- std::thread* mRescanThread;
- };
- Monitor mMonitor;
-};
-
-#endif