]> git.saurik.com Git - apple/mdnsresponder.git/blobdiff - mDNSWindows/ControlPanel/ConfigPropertySheet.cpp
mDNSResponder-1096.0.2.tar.gz
[apple/mdnsresponder.git] / mDNSWindows / ControlPanel / ConfigPropertySheet.cpp
diff --git a/mDNSWindows/ControlPanel/ConfigPropertySheet.cpp b/mDNSWindows/ControlPanel/ConfigPropertySheet.cpp
deleted file mode 100755 (executable)
index 34c418e..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-/* -*- Mode: C; tab-width: 4 -*-
- *
- * Copyright (c) 2002-2004 Apple Computer, Inc. All rights reserved.
- *
- * 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.
- */
-
-#include "ConfigPropertySheet.h"
-#include <WinServices.h>
-extern "C"
-{
-#include <ClientCommon.h>
-}
-#include <process.h>
-
-// Custom events
-
-#define WM_DATAREADY           ( WM_USER + 0x100 )
-
-
-IMPLEMENT_DYNCREATE(CConfigPropertySheet, CPropertySheet)
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::CConfigPropertySheet
-//---------------------------------------------------------------------------------------------------------------------------
-
-CConfigPropertySheet::CConfigPropertySheet()
-:
-       CPropertySheet(),
-       m_browseDomainsRef( NULL ),
-       m_thread( NULL ),
-       m_threadExited( NULL )
-{
-       AddPage(&m_firstPage );
-       AddPage(&m_secondPage);
-       AddPage(&m_thirdPage);
-
-       InitializeCriticalSection( &m_lock );
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::~CConfigPropertySheet
-//---------------------------------------------------------------------------------------------------------------------------
-
-CConfigPropertySheet::~CConfigPropertySheet()
-{
-       DeleteCriticalSection( &m_lock );
-}
-
-
-BEGIN_MESSAGE_MAP(CConfigPropertySheet, CPropertySheet)
-       //{{AFX_MSG_MAP(CConfigPropertySheet)
-       //}}AFX_MSG_MAP
-       ON_MESSAGE( WM_DATAREADY, OnDataReady )
-END_MESSAGE_MAP()
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::OnInitDialog
-//---------------------------------------------------------------------------------------------------------------------------
-
-BOOL
-CConfigPropertySheet::OnInitDialog()
-{
-       OSStatus err;
-
-       BOOL b = CPropertySheet::OnInitDialog();
-
-       err = SetupBrowsing();
-       require_noerr( err, exit );
-
-exit:
-
-       return b;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::OnCommand
-//---------------------------------------------------------------------------------------------------------------------------
-
-BOOL
-CConfigPropertySheet::OnCommand(WPARAM wParam, LPARAM lParam)
-{
-   // Check if OK or Cancel was hit
-
-   if ( ( wParam == ID_WIZFINISH ) || ( wParam == IDOK ) || ( wParam == IDCANCEL ) ) 
-   {
-      OnEndDialog();
-   }
-
-   return CPropertySheet::OnCommand(wParam, lParam);
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::OnDataReady
-//---------------------------------------------------------------------------------------------------------------------------
-
-LRESULT
-CConfigPropertySheet::OnDataReady(WPARAM inWParam, LPARAM inLParam)
-{
-       if (WSAGETSELECTERROR(inLParam) && !(HIWORD(inLParam)))
-       {
-               dlog( kDebugLevelError, "OnSocket: window error\n" );
-       }
-       else
-       {
-               SOCKET sock = (SOCKET) inWParam;
-
-               if ( m_browseDomainsRef && DNSServiceRefSockFD( m_browseDomainsRef ) == (int) sock )
-               {
-                       DNSServiceProcessResult( m_browseDomainsRef );
-               }
-       }
-
-       return 0;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::OnEndDialog
-//---------------------------------------------------------------------------------------------------------------------------
-
-void
-CConfigPropertySheet::OnEndDialog()
-{
-       OSStatus err;
-
-       err = TearDownBrowsing();
-       check_noerr( err );
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::SetupBrowsing
-//---------------------------------------------------------------------------------------------------------------------------
-
-OSStatus
-CConfigPropertySheet::SetupBrowsing()
-{
-       OSStatus err;
-
-       // Start browsing for browse domains
-
-       err = DNSServiceEnumerateDomains( &m_browseDomainsRef, kDNSServiceFlagsBrowseDomains, 0, BrowseDomainsReply, this );
-       require_noerr( err, exit );
-
-       err = WSAAsyncSelect( DNSServiceRefSockFD( m_browseDomainsRef ), m_hWnd, WM_DATAREADY, FD_READ|FD_CLOSE );
-       require_noerr( err, exit );
-
-exit:
-
-       if ( err )
-       {
-               TearDownBrowsing();
-       }
-
-       return err;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::TearDownBrowsing
-//---------------------------------------------------------------------------------------------------------------------------
-
-OSStatus
-CConfigPropertySheet::TearDownBrowsing()
-{
-       OSStatus err = kNoErr;
-
-       if ( m_browseDomainsRef )
-       {
-               err = WSAAsyncSelect( DNSServiceRefSockFD( m_browseDomainsRef ), m_hWnd, 0, 0 );
-               check_noerr( err );
-
-               DNSServiceRefDeallocate( m_browseDomainsRef );
-       
-               m_browseDomainsRef = NULL;
-       }
-
-       return err;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::DecodeDomainName
-//---------------------------------------------------------------------------------------------------------------------------
-
-OSStatus
-CConfigPropertySheet::DecodeDomainName( const char * raw, CString & decoded )
-{
-       char nextLabel[128] = "\0";
-       char decodedDomainString[kDNSServiceMaxDomainName];
-    char * buffer = (char *) raw;
-    int labels = 0, i;
-    char text[64];
-       const char *label[128];
-       OSStatus        err;
-    
-       // Initialize
-
-       decodedDomainString[0] = '\0';
-
-    // Count the labels
-
-       while ( *buffer )
-       {
-               label[labels++] = buffer;
-               buffer = (char *) GetNextLabel(buffer, text);
-    }
-        
-    buffer = (char*) raw;
-
-    for (i = 0; i < labels; i++)
-       {
-               buffer = (char *)GetNextLabel(buffer, nextLabel);
-        strcat_s(decodedDomainString, sizeof(decodedDomainString), nextLabel);
-        strcat_s(decodedDomainString, sizeof(decodedDomainString), ".");
-    }
-    
-    // Remove trailing dot from domain name.
-    
-       decodedDomainString[ strlen( decodedDomainString ) - 1 ] = '\0';
-
-       // Convert to Unicode
-
-       err = UTF8StringToStringObject( decodedDomainString, decoded );
-
-       return err;
-}
-
-
-//---------------------------------------------------------------------------------------------------------------------------
-//     CConfigPropertySheet::BrowseDomainsReply
-//---------------------------------------------------------------------------------------------------------------------------
-
-void DNSSD_API
-CConfigPropertySheet::BrowseDomainsReply
-                                                       (
-                                                       DNSServiceRef                   sdRef,
-                                                       DNSServiceFlags                 flags,
-                                                       uint32_t                                interfaceIndex,
-                                                       DNSServiceErrorType             errorCode,
-                                                       const char                      *       replyDomain,
-                                                       void                            *       context
-                                                       )
-{
-       CConfigPropertySheet    *       self = reinterpret_cast<CConfigPropertySheet*>(context);
-       CString                                         decoded;
-       OSStatus                                        err;
-
-       DEBUG_UNUSED( sdRef );
-       DEBUG_UNUSED( interfaceIndex );
-
-       if ( errorCode )
-       {
-               goto exit;
-       }
-
-       check( replyDomain );
-       
-       // Ignore local domains
-
-       if ( strcmp( replyDomain, "local." ) == 0 )
-       {
-               goto exit;
-       }
-
-       err = self->DecodeDomainName( replyDomain, decoded );
-       require_noerr( err, exit );
-
-       // Remove trailing '.'
-
-       decoded.TrimRight( '.' );
-
-       if ( flags & kDNSServiceFlagsAdd )
-       {
-               self->m_browseDomains.push_back( decoded );
-       }
-       else
-       {
-               self->m_browseDomains.remove( decoded );
-       }
-
-exit:
-
-       return;
-}