| /* |
| File: DNSServiceDiscoveryPref.h |
| |
| Abstract: System Preference Pane for Dynamic DNS and Wide-Area DNS Service Discovery |
| |
| Copyright: (c) Copyright 2005 Apple Computer, Inc. All rights reserved. |
| |
| Disclaimer: IMPORTANT: This Apple software is supplied to you by Apple Computer, Inc. |
| ("Apple") in consideration of your agreement to the following terms, and your |
| use, installation, modification or redistribution of this Apple software |
| constitutes acceptance of these terms. If you do not agree with these terms, |
| please do not use, install, modify or redistribute this Apple software. |
| |
| In consideration of your agreement to abide by the following terms, and subject |
| to these terms, Apple grants you a personal, non-exclusive license, under Apple's |
| copyrights in this original Apple software (the "Apple Software"), to use, |
| reproduce, modify and redistribute the Apple Software, with or without |
| modifications, in source and/or binary forms; provided that if you redistribute |
| the Apple Software in its entirety and without modifications, you must retain |
| this notice and the following text and disclaimers in all such redistributions of |
| the Apple Software. Neither the name, trademarks, service marks or logos of |
| Apple Computer, Inc. may be used to endorse or promote products derived from the |
| Apple Software without specific prior written permission from Apple. Except as |
| expressly stated in this notice, no other rights or licenses, express or implied, |
| are granted by Apple herein, including but not limited to any patent rights that |
| may be infringed by your derivative works or by other works in which the Apple |
| Software may be incorporated. |
| |
| The Apple Software is provided by Apple on an "AS IS" basis. APPLE MAKES NO |
| WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION THE IMPLIED |
| WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY AND FITNESS FOR A PARTICULAR |
| PURPOSE, REGARDING THE APPLE SOFTWARE OR ITS USE AND OPERATION ALONE OR IN |
| COMBINATION WITH YOUR PRODUCTS. |
| |
| IN NO EVENT SHALL APPLE BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL OR |
| CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE |
| GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) |
| ARISING IN ANY WAY OUT OF THE USE, REPRODUCTION, MODIFICATION AND/OR DISTRIBUTION |
| OF THE APPLE SOFTWARE, HOWEVER CAUSED AND WHETHER UNDER THEORY OF CONTRACT, TORT |
| (INCLUDING NEGLIGENCE), STRICT LIABILITY OR OTHERWISE, EVEN IF APPLE HAS BEEN |
| ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #import <Cocoa/Cocoa.h> |
| #import <PreferencePanes/PreferencePanes.h> |
| #import <CoreFoundation/CoreFoundation.h> |
| #import <SecurityInterface/SFAuthorizationView.h> |
| #import <SystemConfiguration/SystemConfiguration.h> |
| #import <dns_sd.h> |
| |
| typedef struct MyDNSServiceState { |
| DNSServiceRef service; |
| CFRunLoopSourceRef source; |
| CFSocketRef socket; |
| } MyDNSServiceState; |
| |
| |
| @interface DNSServiceDiscoveryPref : NSPreferencePane |
| { |
| IBOutlet NSTextField *hostName; |
| IBOutlet NSTextField *sharedSecretName; |
| IBOutlet NSSecureTextField *sharedSecretValue; |
| IBOutlet NSComboBox *browseDomainsComboBox; |
| IBOutlet NSComboBox *regDomainsComboBox; |
| IBOutlet NSButton *wideAreaCheckBox; |
| IBOutlet NSButton *hostNameSharedSecretButton; |
| IBOutlet NSButton *registrationSharedSecretButton; |
| IBOutlet NSButton *applyButton; |
| IBOutlet NSButton *revertButton; |
| IBOutlet NSWindow *sharedSecretWindow; |
| IBOutlet NSWindow *addBrowseDomainWindow; |
| IBOutlet NSButton *addBrowseDomainButton; |
| IBOutlet NSButton *removeBrowseDomainButton; |
| IBOutlet NSButton *browseOKButton; |
| IBOutlet NSButton *browseCancelButton; |
| IBOutlet NSButton *secretOKButton; |
| IBOutlet NSButton *secretCancelButton; |
| IBOutlet NSImageView *statusImageView; |
| IBOutlet NSTabView *tabView; |
| IBOutlet NSTableView *browseDomainList; |
| IBOutlet SFAuthorizationView *comboAuthButton; |
| |
| NSWindow *mainWindow; |
| NSString *currentHostName; |
| NSString *currentRegDomain; |
| NSArray *currentBrowseDomainsArray; |
| NSMutableArray *browseDomainsArray; |
| NSMutableArray *defaultBrowseDomainsArray; |
| NSString *defaultRegDomain; |
| |
| NSString *hostNameSharedSecretName; |
| NSString *hostNameSharedSecretValue; |
| NSString *regSharedSecretName; |
| NSString *regSharedSecretValue; |
| BOOL currentWideAreaState; |
| BOOL prefsNeedUpdating; |
| BOOL toolInstalled; |
| BOOL browseDomainListEnabled; |
| BOOL justStartedEditing; |
| NSImage *successImage; |
| NSImage *inprogressImage; |
| NSImage *failureImage; |
| |
| MyDNSServiceState regQuery; |
| MyDNSServiceState browseQuery; |
| NSMutableArray *browseDataSource; |
| NSMutableArray *registrationDataSource; |
| } |
| |
| -(IBAction)applyClicked : (id)sender; |
| -(IBAction)enableBrowseDomainClicked : (id)sender; |
| -(IBAction)addBrowseDomainClicked : (id)sender; |
| -(IBAction)removeBrowseDomainClicked : (id)sender; |
| -(IBAction)revertClicked : (id)sender; |
| -(IBAction)changeButtonPressed : (id)sender; |
| -(IBAction)closeMyCustomSheet : (id)sender; |
| -(IBAction)comboAction : (id)sender; |
| -(IBAction)wideAreaCheckBoxChanged : (id)sender; |
| |
| |
| -(NSMutableArray *)browseDataSource; |
| -(NSMutableArray *)registrationDataSource; |
| -(NSComboBox *)browseDomainsComboBox; |
| -(NSComboBox *)regDomainsComboBox; |
| -(NSString *)currentRegDomain; |
| -(NSMutableArray *)defaultBrowseDomainsArray; |
| -(NSArray *)currentBrowseDomainsArray; |
| -(NSString *)currentHostName; |
| -(NSString *)defaultRegDomain; |
| -(void)setDefaultRegDomain : (NSString *)domain; |
| |
| |
| |
| -(void)enableApplyButton; |
| -(void)disableApplyButton; |
| -(void)applyCurrentState; |
| -(void)setBrowseDomainsComboBox; |
| -(void)setupInitialValues; |
| -(void)startDomainBrowsing; |
| -(void)toggleWideAreaBonjour : (BOOL)state; |
| -(void)updateApplyButtonState; |
| -(void)enableControls; |
| -(void)disableControls; |
| -(void)validateTextFields; |
| -(void)readPreferences; |
| -(void)savePreferences; |
| -(void)restorePreferences; |
| -(void)watchForPreferenceChanges; |
| -(void)updateStatusImageView; |
| |
| |
| -(NSString *)sharedSecretKeyName : (NSString * )domain; |
| -(NSString *)domainForHostName : (NSString *)hostNameString; |
| -(int)statusForHostName : (NSString * )domain; |
| -(NSData *)dataForDomainArray : (NSArray *)domainArray; |
| -(NSData *)dataForDomain : (NSString *)domainName isEnabled : (BOOL)enabled; |
| -(NSData *)dataForSharedSecret : (NSString *)secret domain : (NSString *)domainName key : (NSString *)keyName; |
| -(BOOL)domainAlreadyInList : (NSString *)domainString; |
| -(NSString *)trimCharactersFromDomain : (NSString *)domain; |
| |
| |
| // Delegate methods |
| -(void)authorizationViewDidAuthorize : (SFAuthorizationView *)view; |
| -(void)authorizationViewDidDeauthorize : (SFAuthorizationView *)view; |
| -(void)mainViewDidLoad; |
| -(int)numberOfItemsInComboBox : (NSComboBox *)aComboBox; |
| -(id)comboBox : (NSComboBox *)aComboBox objectValueForItemAtIndex : (int)index; |
| -(void)controlTextDidChange : (NSNotification *) notification; |
| |
| @end |