]>
Commit | Line | Data |
---|---|---|
c9d2d929 | 1 | /* |
8e92c31c A |
2 | * Copyright (c) 2002-2003 Apple Computer, Inc. All rights reserved. |
3 | * | |
c9d2d929 | 4 | * @APPLE_LICENSE_HEADER_START@ |
8e92c31c | 5 | * |
c9d2d929 A |
6 | * This file contains Original Code and/or Modifications of Original Code |
7 | * as defined in and that are subject to the Apple Public Source License | |
8 | * Version 2.0 (the 'License'). You may not use this file except in | |
9 | * compliance with the License. Please obtain a copy of the License at | |
10 | * http://www.opensource.apple.com/apsl/ and read it before using this | |
11 | * file. | |
8e92c31c | 12 | * |
c9d2d929 A |
13 | * The Original Code and all software distributed under the License are |
14 | * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER | |
15 | * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, | |
16 | * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, | |
17 | * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. | |
18 | * Please see the License for the specific language governing rights and | |
8e92c31c | 19 | * limitations under the License. |
c9d2d929 A |
20 | * |
21 | * @APPLE_LICENSE_HEADER_END@ | |
8e92c31c A |
22 | |
23 | File: uds_daemon.h | |
24 | ||
25 | Contains: Interfaces necessary to talk to uds_daemon.c. | |
26 | ||
27 | Version: 1.0 | |
28 | ||
29 | Change History (most recent first): | |
30 | ||
31 | $Log: uds_daemon.h,v $ | |
283ee3ff A |
32 | Revision 1.14 2005/01/27 17:48:39 cheshire |
33 | Added comment about CFSocketInvalidate closing the underlying socket | |
34 | ||
7f0064bd A |
35 | Revision 1.13 2004/12/10 05:27:26 cheshire |
36 | <rdar://problem/3909147> Guard against multiple autoname services of the same type on the same machine | |
37 | ||
38 | Revision 1.12 2004/12/10 04:28:28 cheshire | |
39 | <rdar://problem/3914406> User not notified of name changes for services using new UDS API | |
40 | ||
41 | Revision 1.11 2004/12/06 21:15:23 ksekar | |
42 | <rdar://problem/3884386> mDNSResponder crashed in CheckServiceRegistrations | |
43 | ||
44 | Revision 1.10 2004/10/26 04:31:44 cheshire | |
45 | Rename CountSubTypes() as ChopSubTypes() | |
46 | ||
47 | Revision 1.9 2004/09/30 00:25:00 ksekar | |
48 | <rdar://problem/3695802> Dynamically update default registration domains on config change | |
49 | ||
50 | Revision 1.8 2004/09/21 21:05:11 cheshire | |
51 | Move duplicate code out of mDNSMacOSX/daemon.c and mDNSPosix/PosixDaemon.c, | |
52 | into mDNSShared/uds_daemon.c | |
53 | ||
54 | Revision 1.7 2004/09/17 01:08:55 cheshire | |
55 | Renamed mDNSClientAPI.h to mDNSEmbeddedAPI.h | |
56 | The name "mDNSClientAPI.h" is misleading to new developers looking at this code. The interfaces | |
57 | declared in that file are ONLY appropriate to single-address-space embedded applications. | |
58 | For clients on general-purpose computers, the interfaces defined in dns_sd.h should be used. | |
59 | ||
60 | Revision 1.6 2004/08/11 01:58:49 cheshire | |
61 | Remove "mDNS *globalInstance" parameter from udsserver_init() | |
62 | ||
63 | Revision 1.5 2004/06/18 04:44:58 rpantos | |
64 | Use platform layer for socket types | |
65 | ||
66 | Revision 1.4 2004/06/12 00:51:58 cheshire | |
67 | Changes for Windows compatibility | |
68 | ||
8e92c31c A |
69 | Revision 1.3 2004/01/25 00:03:21 cheshire |
70 | Change to use mDNSVal16() instead of private PORT_AS_NUM() macro | |
71 | ||
72 | Revision 1.2 2004/01/24 08:46:26 bradley | |
73 | Added InterfaceID<->Index platform interfaces since they are now used by all platforms for the DNS-SD APIs. | |
74 | ||
75 | Revision 1.1 2003/12/08 21:11:42 rpantos; | |
76 | Changes necessary to support mDNSResponder on Linux. | |
77 | ||
78 | */ | |
79 | ||
7f0064bd A |
80 | #include "mDNSEmbeddedAPI.h" |
81 | #include "dnssd_ipc.h" | |
8e92c31c A |
82 | |
83 | ||
84 | /* Client interface: */ | |
85 | ||
86 | #define SRS_PORT(S) mDNSVal16((S)->RR_SRV.resrec.rdata->u.srv.port) | |
87 | ||
7f0064bd | 88 | extern int udsserver_init(void); |
8e92c31c A |
89 | |
90 | // takes the next scheduled event time, does idle work, and returns the updated nextevent time | |
91 | extern mDNSs32 udsserver_idle(mDNSs32 nextevent); | |
92 | ||
7f0064bd | 93 | extern void udsserver_info(mDNS *const m); // print out info about current state |
8e92c31c A |
94 | |
95 | extern void udsserver_handle_configchange(void); | |
96 | ||
97 | extern int udsserver_exit(void); // should be called prior to app exit | |
98 | ||
7f0064bd A |
99 | extern void udsserver_default_reg_domain_changed(const domainname *d, mDNSBool add); |
100 | extern void udsserver_default_browse_domain_changed(const domainname *d, mDNSBool add); | |
8e92c31c A |
101 | |
102 | /* Routines that uds_daemon expects to link against: */ | |
103 | ||
104 | typedef void (*udsEventCallback)(void *context); | |
105 | ||
7f0064bd | 106 | extern mStatus udsSupportAddFDToEventLoop(dnssd_sock_t fd, udsEventCallback callback, void *context); |
283ee3ff | 107 | extern mStatus udsSupportRemoveFDFromEventLoop(dnssd_sock_t fd); // Note: This also CLOSES the file descriptor as well |
7f0064bd A |
108 | |
109 | // RecordUpdatedNiceLabel() can be a no-op on platforms that don't care about updating the machine's | |
110 | // global default service name (was OS X calls the "Computer Name") in response to name conflicts. | |
111 | extern void RecordUpdatedNiceLabel(mDNS *const m, mDNSs32 delay); | |
112 | ||
113 | // Globals and functions defined in uds_daemon.c and also shared with the old "daemon.c" on OS X | |
114 | extern mDNS mDNSStorage; | |
115 | extern mDNSs32 ChopSubTypes(char *regtype); | |
116 | extern AuthRecord *AllocateSubTypes(mDNSs32 NumSubTypes, char *p); | |
117 | extern int CountExistingRegistrations(domainname *srv, mDNSIPPort port); | |
118 | extern void FreeExtraRR(mDNS *const m, AuthRecord *const rr, mStatus result); | |
119 | extern int CountPeerRegistrations(mDNS *const m, ServiceRecordSet *const srs); |