File ncpfs-hg-commit-414.patch of Package ncpfs
changeset: 414:5e027b02f28c
user: Petr Vandrovec <petr@vandrovec.name>
date: Sat May 28 13:49:58 2005 +0000
files: lib/resolve.c
description:
Properly wrap sockaddr_ipx accesses with NCP_IPX_SUPPORT and sockaddr_in
with NCP_IN_SUPPORT. Needed on IPX-less architectures.
diff -r 94680aa0251a -r 5e027b02f28c lib/resolve.c
--- a/lib/resolve.c Sat May 28 13:47:31 2005 +0000
+++ b/lib/resolve.c Sat May 28 13:49:58 2005 +0000
@@ -875,7 +875,9 @@ NWCCODE ncp_find_server_addr(const char
err = NWCCGetConnInfo(conn, NWCC_INFO_TRAN_ADDR, sizeof(ta), &ta);
if (!err) {
- if (ta.type == NT_IPX) {
+ switch (ta.type) {
+#ifdef NCP_IPX_SUPPORT
+ case NT_IPX: {
struct sockaddr_ipx* ipx = (struct sockaddr_ipx*)addr;
if (len < sizeof(*ipx)) {
@@ -887,7 +889,12 @@ NWCCODE ncp_find_server_addr(const char
memcpy(&ipx->sipx_port, buffer + 10, 2);
ipx->sipx_type = 0x11;
}
- } else if (ta.type == NT_UDP || ta.type == NT_TCP) {
+ break;
+ }
+#endif
+#ifdef NCP_IN_SUPPORT
+ case NT_UDP:
+ case NT_TCP: {
struct sockaddr_in* in = (struct sockaddr_in*)addr;
if (len < sizeof(*in)) {
@@ -897,8 +904,12 @@ NWCCODE ncp_find_server_addr(const char
memcpy(&in->sin_addr.s_addr, buffer + 2, 4);
memcpy(&in->sin_port, buffer, 2);
}
- } else {
+ break;
+ }
+#endif
+ default:
err = EINVAL;
+ break;
}
if (!err) {
err = NWGetFileServerName(conn, sname);