deed9e25 |
1 | #include "putty.h" |
2 | #include "network.h" |
3 | #include "mac.h" |
4 | |
5 | /* |
6 | * Network functions exported to the world. These choose whether to call |
7 | * MacTCP or OpenTransport and behave accordingly. |
8 | */ |
2e96d504 |
9 | SockAddr sk_namelookup(char const *host, char **canonicalname) |
deed9e25 |
10 | { |
11 | |
27a3458f |
12 | if (mac_gestalts.otptattr != 0) |
13 | return ot_namelookup(host, canonicalname); |
14 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
15 | return mactcp_namelookup(host, canonicalname); |
16 | else |
17 | return NULL; |
18 | } |
19 | |
2e96d504 |
20 | SockAddr sk_nonamelookup(char const *host) |
deed9e25 |
21 | { |
22 | |
27a3458f |
23 | if (mac_gestalts.otptattr != 0) |
24 | return ot_nonamelookup(host); |
25 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
26 | return mactcp_nonamelookup(host); |
27 | else |
28 | return NULL; |
29 | } |
30 | |
31 | void sk_getaddr(SockAddr addr, char *buf, int buflen) |
32 | { |
33 | |
27a3458f |
34 | if (mac_gestalts.otptattr != 0) |
35 | ot_getaddr(addr, buf, buflen); |
36 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
37 | mactcp_getaddr(addr, buf, buflen); |
38 | else |
39 | *buf = '\0'; |
40 | } |
41 | |
42 | int sk_hostname_is_local(char *name) |
43 | { |
44 | |
27a3458f |
45 | if (mac_gestalts.otptattr != 0) |
46 | return ot_hostname_is_local(name); |
47 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
48 | return mactcp_hostname_is_local(name); |
49 | else |
50 | return 0; |
51 | } |
52 | |
53 | int sk_address_is_local(SockAddr addr) |
54 | { |
55 | |
27a3458f |
56 | if (mac_gestalts.otptattr != 0) |
57 | return ot_address_is_local(addr); |
58 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
59 | return mactcp_address_is_local(addr); |
60 | else |
61 | return 0; |
62 | } |
63 | |
64 | int sk_addrtype(SockAddr addr) |
65 | { |
66 | |
27a3458f |
67 | if (mac_gestalts.otptattr != 0) |
68 | return ot_addrtype(addr); |
69 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
70 | return mactcp_addrtype(addr); |
71 | else |
72 | return 0; |
73 | } |
74 | |
75 | void sk_addrcopy(SockAddr addr, char *buf) |
76 | { |
77 | |
27a3458f |
78 | if (mac_gestalts.otptattr != 0) |
79 | ot_addrcopy(addr, buf); |
80 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
81 | mactcp_addrcopy(addr, buf); |
82 | } |
83 | |
84 | void sk_addr_free(SockAddr addr) |
85 | { |
86 | |
27a3458f |
87 | if (mac_gestalts.otptattr != 0) |
88 | ot_addr_free(addr); |
89 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
90 | mactcp_addr_free(addr); |
91 | } |
92 | |
93 | Socket sk_register(void *sock, Plug plug) |
94 | { |
95 | |
27a3458f |
96 | if (mac_gestalts.otptattr != 0) |
97 | return ot_register(sock, plug); |
98 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
99 | return mactcp_register(sock, plug); |
100 | else |
101 | return NULL; |
102 | } |
103 | |
104 | Socket sk_new(SockAddr addr, int port, int privport, int oobinline, |
105 | int nodelay, Plug plug) |
106 | { |
107 | |
27a3458f |
108 | if (mac_gestalts.otptattr != 0) |
109 | return ot_new(addr, port, privport, oobinline, nodelay, plug); |
110 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
111 | return mactcp_new(addr, port, privport, oobinline, nodelay, plug); |
112 | else |
113 | return NULL; |
114 | } |
115 | |
116 | Socket sk_newlistener(char *srcaddr, int port, Plug plug, int local_host_only) |
117 | { |
118 | |
27a3458f |
119 | if (mac_gestalts.otptattr != 0) |
120 | return ot_newlistener(srcaddr, port, plug, local_host_only); |
121 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
122 | return mactcp_newlistener(srcaddr, port, plug, local_host_only); |
123 | else |
124 | return NULL; |
125 | } |
126 | |
127 | char *sk_addr_error(SockAddr addr) |
128 | { |
129 | |
27a3458f |
130 | if (mac_gestalts.otptattr != 0) |
131 | return ot_addr_error(addr); |
132 | else if (mac_gestalts.mtcpvers != 0) |
deed9e25 |
133 | return mactcp_addr_error(addr); |
134 | else |
135 | return "No TCP/IP stack installed"; |
136 | } |
137 | |
27a3458f |
138 | void sk_cleanup(void) |
139 | { |
140 | |
141 | if (mac_gestalts.otptattr != 0) |
142 | ot_cleanup(); |
143 | else if (mac_gestalts.mtcpvers != 0) |
144 | mactcp_cleanup(); |
145 | } |
146 | |
deed9e25 |
147 | /* |
148 | * Local Variables: |
149 | * c-file-style: "simon" |
150 | * End: |
151 | */ |
152 | |