File ncpfs-hg-commit-426.patch of Package ncpfs
changeset: 426:08cd551d8c1c
user: Petr Vandrovec <petr@vandrovec.name>
date: Sun Jun 05 14:23:57 2005 +0000
files: include/ncp/ipxlib.h include/ncp/kernel/ncp.h include/ncp/ncplib.h ipx-1.0/Samples/rip.c ipx-1.0/Samples/sap.c ipx-1.0/ipx_cmd.c ipxdump/ipxparse.c lib/ncplib.c
description:
Add __attribute__((packed)) at structure level too. Darwin's gcc-3.3
needs that, otherwise it (at least) adds one byte to ncp_request_header,
completely mangling sent packet.
diff -r 8341fcd1dc86 -r 08cd551d8c1c include/ncp/ipxlib.h
--- a/include/ncp/ipxlib.h Sat May 28 20:02:00 2005 +0000
+++ b/include/ncp/ipxlib.h Sun Jun 05 14:23:57 2005 +0000
@@ -73,7 +73,7 @@ struct sap_server_ident
#endif
IPXPort server_port __attribute__((packed));
u_int16_t intermediate_network __attribute__((packed));
-};
+} __attribute__((packed));
#define IPX_RIP_REQUEST (0x1)
#define IPX_RIP_RESPONSE (0x2)
@@ -82,13 +82,13 @@ struct ipx_rt_def {
u_int32_t network __attribute__((packed));
u_int16_t hops __attribute__((packed));
u_int16_t ticks __attribute__((packed));
-};
+} __attribute__((packed));
struct ipx_rip_packet
{
u_int16_t operation __attribute__((packed));
struct ipx_rt_def rt[1] __attribute__((packed));
-};
+} __attribute__((packed));
#ifdef SWIG
#define IPX_BROADCAST_NODE "\xff\xff\xff\xff\xff\xff"
diff -r 8341fcd1dc86 -r 08cd551d8c1c include/ncp/kernel/ncp.h
--- a/include/ncp/kernel/ncp.h Sat May 28 20:02:00 2005 +0000
+++ b/include/ncp/kernel/ncp.h Sun Jun 05 14:23:57 2005 +0000
@@ -59,7 +59,7 @@ struct ncp_request_header {
u_int8_t conn_high __attribute__((packed));
u_int8_t function __attribute__((packed));
u_int8_t data[0] __attribute__((packed));
-};
+} __attribute__((packed));
#define NCP_REPLY (0x3333)
#define NCP_POSITIVE_ACK (0x9999)
@@ -73,7 +73,7 @@ struct ncp_reply_header {
u_int8_t completion_code __attribute__((packed));
u_int8_t connection_state __attribute__((packed));
u_int8_t data[0] __attribute__((packed));
-};
+} __attribute__((packed));
#define NCP_VOLNAME_LEN (16)
#define NCP_NUMBER_OF_VOLUMES (64)
@@ -232,7 +232,7 @@ struct nw_info_struct {
u_int32_t NSCreator __attribute__((packed));
u_int8_t nameLen __attribute__((packed));
u_int8_t entryName[256] __attribute__((packed));
-};
+} __attribute__((packed));
#endif
/* modify mask - use with MODIFY_DOS_INFO structure */
@@ -265,7 +265,7 @@ struct nw_modify_dos_info {
u_int16_t inheritanceGrantMask __attribute__((packed));
u_int16_t inheritanceRevokeMask __attribute__((packed));
u_int32_t maximumSpace __attribute__((packed));
-};
+} __attribute__((packed));
#ifdef SWIG
struct nw_file_info {
@@ -284,13 +284,13 @@ struct nw_file_info {
u_int32_t server_file_handle __attribute__((packed));
u_int8_t open_create_action __attribute__((packed));
u_int8_t file_handle[6] __attribute__((packed));
-};
+} __attribute__((packed));
#endif
struct nw_search_sequence {
u_int8_t volNumber __attribute__((packed));
u_int32_t dirBase __attribute__((packed));
u_int32_t sequence __attribute__((packed));
-};
+} __attribute__((packed));
#endif /* _LINUX_NCP_H */
diff -r 8341fcd1dc86 -r 08cd551d8c1c include/ncp/ncplib.h
--- a/include/ncp/ncplib.h Sat May 28 20:02:00 2005 +0000
+++ b/include/ncp/ncplib.h Sun Jun 05 14:23:57 2005 +0000
@@ -492,7 +492,7 @@ struct ncp_file_server_info
u_int8_t RestrictionLevel __attribute__((packed));
u_int8_t InternetBridge __attribute__((packed));
u_int8_t Reserved[60] __attribute__((packed));
-};
+} __attribute__((packed));
#endif
struct ncp_file_server_info_2 {
@@ -607,7 +607,7 @@ struct ncp_station_addr
u_int8_t Node[6] __attribute__((packed));
#endif
u_int16_t Socket __attribute__((packed));
-};
+} __attribute__((packed));
struct ncp_prop_login_control
{
@@ -640,7 +640,7 @@ struct ncp_prop_login_control
u_int16_t BadLoginCount __attribute__((packed));
u_int32_t BadLoginCountDown __attribute__((packed));
struct ncp_station_addr LastIntruder __attribute__((packed));
-};
+} __attribute__((packed));
NWCCODE NWReadPropertyValue(NWCONN_HANDLE conn, const char *objName,
NWObjectType objType, const char *propertyName,
diff -r 8341fcd1dc86 -r 08cd551d8c1c ipx-1.0/Samples/rip.c
--- a/ipx-1.0/Samples/rip.c Sat May 28 20:02:00 2005 +0000
+++ b/ipx-1.0/Samples/rip.c Sun Jun 05 14:23:57 2005 +0000
@@ -5,7 +5,7 @@ struct rip_data
u_int32_t rip_net __attribute__((packed));
u_int16_t rip_hops __attribute__((packed));
u_int16_t rip_ticks __attribute__((packed));
-};
+} __attribute__((packed));
int
main(int argc, char **argv)
diff -r 8341fcd1dc86 -r 08cd551d8c1c ipx-1.0/Samples/sap.c
--- a/ipx-1.0/Samples/sap.c Sat May 28 20:02:00 2005 +0000
+++ b/ipx-1.0/Samples/sap.c Sun Jun 05 14:23:57 2005 +0000
@@ -8,7 +8,7 @@ struct sap_data
u_int8_t sap_node[6] __attribute__((packed));
u_int16_t sap_sock __attribute__((packed));
u_int16_t sap_hops __attribute__((packed));
-};
+} __attribute__((packed));
int
main(int argc, char **argv)
diff -r 8341fcd1dc86 -r 08cd551d8c1c ipx-1.0/ipx_cmd.c
--- a/ipx-1.0/ipx_cmd.c Sat May 28 20:02:00 2005 +0000
+++ b/ipx-1.0/ipx_cmd.c Sun Jun 05 14:23:57 2005 +0000
@@ -66,8 +66,8 @@ struct {
u_int8_t dst[6] __attribute__((packed));
u_int8_t src[6] __attribute__((packed));
u_int16_t type __attribute__((packed));
- u_int8_t ipx[16384];
- } buffer;
+ u_int8_t ipx[16384] __attribute__((packed));
+ } __attribute__((packed)) buffer;
static int getiflist(int fd, struct ifconf* ifc) {
int i;
diff -r 8341fcd1dc86 -r 08cd551d8c1c ipxdump/ipxparse.c
--- a/ipxdump/ipxparse.c Sat May 28 20:02:00 2005 +0000
+++ b/ipxdump/ipxparse.c Sun Jun 05 14:23:57 2005 +0000
@@ -60,7 +60,7 @@ struct ipx_address
IPXNet net __attribute__((packed));
IPXNode node __attribute__((packed));
IPXPort sock __attribute__((packed));
-};
+} __attribute__((packed));
struct ipx_packet
{
@@ -77,7 +77,7 @@ struct ipx_packet
#define IPX_TYPE_PPROP 0x14 /* complicated flood fill brdcast [Not supported] */
struct ipx_address ipx_dest __attribute__((packed));
struct ipx_address ipx_source __attribute__((packed));
-};
+} __attribute__((packed));
#define NCP_ALLOC_SLOT_REQUEST (0x1111)
#define NCP_REQUEST (0x2222)
@@ -92,7 +92,7 @@ struct ncp_request_header
u_int8_t conn_high __attribute__((packed));
u_int8_t function __attribute__((packed));
u_int8_t data[0] __attribute__((packed));
-};
+} __attribute__((packed));
#define NCP_REPLY (0x3333)
#define NCP_POSITIVE_ACK (0x9999)
@@ -107,7 +107,7 @@ struct ncp_reply_header
u_int8_t completion_code __attribute__((packed));
u_int8_t connection_state __attribute__((packed));
u_int8_t data[0] __attribute__((packed));
-};
+} __attribute__((packed));
#define NCP_BURST_PACKET (0x7777)
@@ -126,7 +126,7 @@ struct ncp_burst_header
u_int32_t data_offset __attribute__((packed));
u_int16_t data_bytes __attribute__((packed));
u_int16_t missing_frags __attribute__((packed));
-};
+} __attribute__((packed));
void handle_ipx(unsigned char *buf, int length, char *frame, int no);
void handle_ncp(struct sockaddr_ipx *source,
@@ -149,7 +149,7 @@ typedef struct saps
u_int8_t serverName[SAP_MAX_SERVER_NAME_LENGTH] __attribute__((packed));
struct ipx_address serverAddress __attribute__((packed));
u_int16_t serverHops __attribute__((packed)); /* NBO */
-}
+} __attribute__((packed))
SAPS;
/* General Service/Nearest Server Response SAP packet */
@@ -160,14 +160,14 @@ union sap_packet
{
u_int16_t sapOperation __attribute__((packed));
u_int16_t serverType __attribute__((packed));
- }
+ } __attribute__((packed))
query;
struct sap_response
{
u_int16_t sapOperation __attribute__((packed));
/* each SAP can has a max of SAP_MAX_SAPS_PER_PACKET packets */
SAPS sap[SAP_MAX_SAPS_PER_PACKET] __attribute__((packed));
- }
+ } __attribute__((packed))
response;
};
@@ -356,7 +356,7 @@ handle_burst(struct sockaddr_ipx *source
u_int8_t reserved[8] __attribute__((packed));
u_int32_t file_offset __attribute__((packed));
u_int32_t number_of_bytes __attribute__((packed));
- }
+ } __attribute__((packed))
*brq = (struct ncp_burst_request *) rq;
printf("Assuming Burst Request:\n");
diff -r 8341fcd1dc86 -r 08cd551d8c1c lib/ncplib.c
--- a/lib/ncplib.c Sat May 28 20:02:00 2005 +0000
+++ b/lib/ncplib.c Sun Jun 05 14:23:57 2005 +0000
@@ -2627,7 +2627,7 @@ struct nw_time_buffer
u_int8_t minute __attribute__((packed));
u_int8_t second __attribute__((packed));
u_int8_t wday __attribute__((packed));
-};
+} __attribute__((packed));
static time_t
nw_to_ctime(struct nw_time_buffer *source)