summarylogtreecommitdiffstats
path: root/02-legacy.patch
blob: d3d1ecc7df2771568c5b3e025412ecde509d2a48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
--- a/contrib/pam/pam_ncp_auth.c	2005-01-28 04:35:59.000000000 +1100
+++ b/contrib/pam/pam_ncp_auth.c	2010-03-27 15:18:45.000000000 +1100
@@ -257,6 +257,7 @@
 #include <stdlib.h>
 #include <stdio.h>
 #include <string.h>
+#include <syslog.h>
 #include <unistd.h>
 #include <pwd.h>
 #include <grp.h>
@@ -266,6 +267,7 @@
 #include <fcntl.h>
 #include <errno.h>
 #include <ctype.h>
+#include <syslog.h>
 
 #include "support.h"
 
--- a/include/ncp/ipxlib.h	2005-01-28 04:35:59.000000000 +1100
+++ b/include/ncp/ipxlib.h	2010-03-27 15:20:07.000000000 +1100
@@ -63,32 +63,32 @@ struct sap_query
 
 struct sap_server_ident
 {
-	u_int16_t	server_type __attribute__((packed));
-	char		server_name[48] __attribute__((packed));
-	IPXNet		server_network __attribute__((packed));
+	u_int16_t	server_type;
+	char		server_name[48];
+	IPXNet		server_network;
 #ifdef SWIG
-	u_int8_t	server_node[6] __attribute__((packed));
+	u_int8_t	server_node[6];
 #else
-	IPXNode		server_node __attribute__((packed));
+	IPXNode		server_node;
 #endif
-	IPXPort		server_port __attribute__((packed));
-	u_int16_t	intermediate_network __attribute__((packed));
-};
+	IPXPort		server_port;
+	u_int16_t	intermediate_network;
+} __attribute__((packed));
 
 #define IPX_RIP_REQUEST (0x1)
 #define IPX_RIP_RESPONSE (0x2)
 
 struct ipx_rt_def {
-	u_int32_t network __attribute__((packed));
-	u_int16_t hops __attribute__((packed));
-	u_int16_t ticks __attribute__((packed));
-};
+	u_int32_t network;
+	u_int16_t hops;
+	u_int16_t ticks;
+} __attribute__((packed));
 
 struct ipx_rip_packet
 {
-	u_int16_t		operation __attribute__((packed));
-	struct ipx_rt_def	rt[1] __attribute__((packed));
-};
+	u_int16_t		operation;
+	struct ipx_rt_def	rt[1];
+} __attribute__((packed));
 
 #ifdef SWIG
 #define IPX_BROADCAST_NODE "\xff\xff\xff\xff\xff\xff"
--- a/include/ncp/kernel/ncp.h	2005-01-28 04:35:59.000000000 +1100
+++ b/include/ncp/kernel/ncp.h	2010-03-27 15:20:07.000000000 +1100
@@ -52,28 +52,28 @@
 #define NCP_DEALLOC_SLOT_REQUEST (0x5555)
 
 struct ncp_request_header {
-	u_int16_t type __attribute__((packed));
-	u_int8_t  sequence __attribute__((packed));
-	u_int8_t  conn_low __attribute__((packed));
-	u_int8_t  task __attribute__((packed));
-	u_int8_t  conn_high __attribute__((packed));
-	u_int8_t  function __attribute__((packed));
-	u_int8_t  data[0] __attribute__((packed));
-};
+	u_int16_t type;
+	u_int8_t  sequence;
+	u_int8_t  conn_low;
+	u_int8_t  task;
+	u_int8_t  conn_high;
+	u_int8_t  function;
+	u_int8_t  data[0];
+} __attribute__((packed));
 
 #define NCP_REPLY                (0x3333)
 #define NCP_POSITIVE_ACK         (0x9999)
 
 struct ncp_reply_header {
-	u_int16_t type __attribute__((packed));
-	u_int8_t sequence __attribute__((packed));
-	u_int8_t conn_low __attribute__((packed));
-	u_int8_t task __attribute__((packed));
-	u_int8_t conn_high __attribute__((packed));
-	u_int8_t completion_code __attribute__((packed));
-	u_int8_t connection_state __attribute__((packed));
-	u_int8_t data[0] __attribute__((packed));
-};
+	u_int16_t type;
+	u_int8_t sequence;
+	u_int8_t conn_low;
+	u_int8_t task;
+	u_int8_t conn_high;
+	u_int8_t completion_code;
+	u_int8_t connection_state;
+	u_int8_t data[0];
+} __attribute__((packed));
 
 #define NCP_VOLNAME_LEN (16)
 #define NCP_NUMBER_OF_VOLUMES (64)
@@ -175,64 +175,64 @@ struct ncp_volume_info {
 
 #ifdef SWIG
 struct nw_info_struct {
-	u_int32_t spaceAlloc __attribute__((packed));
-	u_int32_t attributes __attribute__((packed));
-	u_int16_t flags __attribute__((packed));
-	u_int32_t dataStreamSize __attribute__((packed));
-	u_int32_t totalStreamSize __attribute__((packed));
-	u_int16_t numberOfStreams __attribute__((packed));
-	u_int16_t creationTime __attribute__((packed));
-	u_int16_t creationDate __attribute__((packed));
-	u_int32_t creatorID __attribute__((packed));
-	u_int16_t modifyTime __attribute__((packed));
-	u_int16_t modifyDate __attribute__((packed));
-	u_int32_t modifierID __attribute__((packed));
-	u_int16_t lastAccessDate __attribute__((packed));
-	u_int16_t archiveTime __attribute__((packed));
-	u_int16_t archiveDate __attribute__((packed));
-	u_int32_t archiverID __attribute__((packed));
-	u_int16_t inheritedRightsMask __attribute__((packed));
-	u_int32_t dirEntNum __attribute__((packed));
-	u_int32_t DosDirNum __attribute__((packed));
-	u_int32_t volNumber __attribute__((packed));
-	u_int32_t EADataSize __attribute__((packed));
-	u_int32_t EAKeyCount __attribute__((packed));
-	u_int32_t EAKeySize __attribute__((packed));
-	u_int32_t NSCreator __attribute__((packed));
+	u_int32_t spaceAlloc;
+	u_int32_t attributes;
+	u_int16_t flags;
+	u_int32_t dataStreamSize;
+	u_int32_t totalStreamSize;
+	u_int16_t numberOfStreams;
+	u_int16_t creationTime;
+	u_int16_t creationDate;
+	u_int32_t creatorID;
+	u_int16_t modifyTime;
+	u_int16_t modifyDate;
+	u_int32_t modifierID;
+	u_int16_t lastAccessDate;
+	u_int16_t archiveTime;
+	u_int16_t archiveDate;
+	u_int32_t archiverID;
+	u_int16_t inheritedRightsMask;
+	u_int32_t dirEntNum;
+	u_int32_t DosDirNum;
+	u_int32_t volNumber;
+	u_int32_t EADataSize;
+	u_int32_t EAKeyCount;
+	u_int32_t EAKeySize;
+	u_int32_t NSCreator;
 %pragma(swig) readonly
-	u_int8_t nameLen __attribute__((packed));
+	u_int8_t nameLen;
 %pragma(swig) readwrite
-	byteLenPrefixCharArray entryName[255] __attribute__((packed));
-};
+	byteLenPrefixCharArray entryName[255];
+} __attribute__((packed));
 #else
 struct nw_info_struct {
-	u_int32_t spaceAlloc __attribute__((packed));
-	u_int32_t attributes __attribute__((packed));
-	u_int16_t flags __attribute__((packed));
-	u_int32_t dataStreamSize __attribute__((packed));
-	u_int32_t totalStreamSize __attribute__((packed));
-	u_int16_t numberOfStreams __attribute__((packed));
-	u_int16_t creationTime __attribute__((packed));
-	u_int16_t creationDate __attribute__((packed));
-	u_int32_t creatorID __attribute__((packed));
-	u_int16_t modifyTime __attribute__((packed));
-	u_int16_t modifyDate __attribute__((packed));
-	u_int32_t modifierID __attribute__((packed));
-	u_int16_t lastAccessDate __attribute__((packed));
-	u_int16_t archiveTime __attribute__((packed));
-	u_int16_t archiveDate __attribute__((packed));
-	u_int32_t archiverID __attribute__((packed));
-	u_int16_t inheritedRightsMask __attribute__((packed));
-	u_int32_t dirEntNum __attribute__((packed));
-	u_int32_t DosDirNum __attribute__((packed));
-	u_int32_t volNumber __attribute__((packed));
-	u_int32_t EADataSize __attribute__((packed));
-	u_int32_t EAKeyCount __attribute__((packed));
-	u_int32_t EAKeySize __attribute__((packed));
-	u_int32_t NSCreator __attribute__((packed));
-	u_int8_t nameLen __attribute__((packed));
-	u_int8_t entryName[256] __attribute__((packed));
-};
+	u_int32_t spaceAlloc;
+	u_int32_t attributes;
+	u_int16_t flags;
+	u_int32_t dataStreamSize;
+	u_int32_t totalStreamSize;
+	u_int16_t numberOfStreams;
+	u_int16_t creationTime;
+	u_int16_t creationDate;
+	u_int32_t creatorID;
+	u_int16_t modifyTime;
+	u_int16_t modifyDate;
+	u_int32_t modifierID;
+	u_int16_t lastAccessDate;
+	u_int16_t archiveTime;
+	u_int16_t archiveDate;
+	u_int32_t archiverID;
+	u_int16_t inheritedRightsMask;
+	u_int32_t dirEntNum;
+	u_int32_t DosDirNum;
+	u_int32_t volNumber;
+	u_int32_t EADataSize;
+	u_int32_t EAKeyCount;
+	u_int32_t EAKeySize;
+	u_int32_t NSCreator;
+	u_int8_t nameLen;
+	u_int8_t entryName[256];
+} __attribute__((packed));
 #endif
 
 /* modify mask - use with MODIFY_DOS_INFO structure */
@@ -251,46 +251,46 @@ struct nw_info_struct {
 #define DM_MAXIMUM_SPACE	  (0x00002000L)
 
 struct nw_modify_dos_info {
-	u_int32_t attributes __attribute__((packed));
-	u_int16_t creationDate __attribute__((packed));
-	u_int16_t creationTime __attribute__((packed));
-	u_int32_t creatorID __attribute__((packed));
-	u_int16_t modifyDate __attribute__((packed));
-	u_int16_t modifyTime __attribute__((packed));
-	u_int32_t modifierID __attribute__((packed));
-	u_int16_t archiveDate __attribute__((packed));
-	u_int16_t archiveTime __attribute__((packed));
-	u_int32_t archiverID __attribute__((packed));
-	u_int16_t lastAccessDate __attribute__((packed));
-	u_int16_t inheritanceGrantMask __attribute__((packed));
-	u_int16_t inheritanceRevokeMask __attribute__((packed));
-	u_int32_t maximumSpace __attribute__((packed));
-};
+	u_int32_t attributes;
+	u_int16_t creationDate;
+	u_int16_t creationTime;
+	u_int32_t creatorID;
+	u_int16_t modifyDate;
+	u_int16_t modifyTime;
+	u_int32_t modifierID;
+	u_int16_t archiveDate;
+	u_int16_t archiveTime;
+	u_int32_t archiverID;
+	u_int16_t lastAccessDate;
+	u_int16_t inheritanceGrantMask;
+	u_int16_t inheritanceRevokeMask;
+	u_int32_t maximumSpace;
+} __attribute__((packed));
 
 #ifdef SWIG
 struct nw_file_info {
 	struct nw_info_struct i;
 	int opened;
 	int access;
-	u_int32_t server_file_handle __attribute__((packed));
-	u_int8_t open_create_action __attribute__((packed));
-	fixedArray file_handle[6] __attribute__((packed));
-};
+	u_int32_t server_file_handle;
+	u_int8_t open_create_action;
+	fixedArray file_handle[6];
+} __attribute__((packed));
 #else
 struct nw_file_info {
 	struct nw_info_struct i;
 	int opened;
 	int access;
-	u_int32_t server_file_handle __attribute__((packed));
-	u_int8_t open_create_action __attribute__((packed));
-	u_int8_t file_handle[6] __attribute__((packed));
-};
+	u_int32_t server_file_handle;
+	u_int8_t open_create_action;
+	u_int8_t file_handle[6];
+} __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));
-};
+	u_int8_t volNumber;
+	u_int32_t dirBase;
+	u_int32_t sequence;
+} __attribute__((packed));
 
 #endif				/* _LINUX_NCP_H */
--- a/include/ncp/ncp.h	2005-01-28 04:35:59.000000000 +1100
+++ b/include/ncp/ncp.h	2010-03-27 15:20:07.000000000 +1100
@@ -91,21 +91,21 @@ struct nw_property {
 };
 
 struct prop_net_address {
-	u_int32_t network __attribute__((packed));
+	u_int32_t network;
 #ifdef SWIG
 	fixedArray node[IPX_NODE_LEN];
 #else
-	u_int8_t node[IPX_NODE_LEN] __attribute__((packed));
+	u_int8_t node[IPX_NODE_LEN];
 #endif
-	u_int16_t port __attribute__((packed));
-};
+	u_int16_t port;
+} __attribute__((packed));
 
 struct ncp_filesearch_info {
 	u_int8_t volume_number;
 	u_int16_t directory_id;
 	u_int16_t sequence_no;
 	u_int8_t access_rights;
-};
+} __attribute__((packed));
 
 #define NCP_MAX_FILENAME (14)
 struct ncp_file_info {
@@ -127,28 +127,28 @@ struct ncp_file_info {
 
 #ifdef SWIG
 struct nw_queue_job_entry {
-	u_int16_t InUse __attribute__((packed));
-	u_int32_t prev __attribute__((packed));
-	u_int32_t next __attribute__((packed));
-	u_int32_t ClientStation __attribute__((packed));
-	u_int32_t ClientTask __attribute__((packed));
-	u_int32_t ClientObjectID __attribute__((packed));
-	u_int32_t TargetServerID __attribute__((packed));
-	fixedArray TargetExecTime[6] __attribute__((packed));
-	fixedArray JobEntryTime[6] __attribute__((packed));
-	u_int32_t JobNumber __attribute__((packed));
-	u_int16_t JobType __attribute__((packed));
-	u_int16_t JobPosition __attribute__((packed));
-	u_int16_t JobControlFlags __attribute__((packed));
-	u_int8_t FileNameLen __attribute__((packed));
-	byteLenPrefixCharArray JobFileName[13] __attribute__((packed));
-	u_int32_t JobFileHandle __attribute__((packed));
-	u_int32_t ServerStation __attribute__((packed));
-	u_int32_t ServerTaskNumber __attribute__((packed));
-	u_int32_t ServerObjectID __attribute__((packed));
-	fixedCharArray JobTextDescription[50] __attribute__((packed));
-	fixedArray ClientRecordArea[152] __attribute__((packed));
-};
+	u_int16_t InUse;
+	u_int32_t prev;
+	u_int32_t next;
+	u_int32_t ClientStation;
+	u_int32_t ClientTask;
+	u_int32_t ClientObjectID;
+	u_int32_t TargetServerID;
+	fixedArray TargetExecTime[6];
+	fixedArray JobEntryTime[6];
+	u_int32_t JobNumber;
+	u_int16_t JobType;
+	u_int16_t JobPosition;
+	u_int16_t JobControlFlags;
+	u_int8_t FileNameLen;
+	byteLenPrefixCharArray JobFileName[13];
+	u_int32_t JobFileHandle;
+	u_int32_t ServerStation;
+	u_int32_t ServerTaskNumber;
+	u_int32_t ServerObjectID;
+	fixedCharArray JobTextDescription[50];
+	fixedArray ClientRecordArea[152];
+} __attribute__((packed));
 
 struct queue_job {
 	struct nw_queue_job_entry j;
@@ -156,28 +156,28 @@ struct queue_job {
 };
 #else
 struct nw_queue_job_entry {
-	u_int16_t InUse __attribute__((packed));
-	u_int32_t prev __attribute__((packed));
-	u_int32_t next __attribute__((packed));
-	u_int32_t ClientStation __attribute__((packed));
-	u_int32_t ClientTask __attribute__((packed));
-	u_int32_t ClientObjectID __attribute__((packed));
-	u_int32_t TargetServerID __attribute__((packed));
-	u_int8_t TargetExecTime[6] __attribute__((packed));
-	u_int8_t JobEntryTime[6] __attribute__((packed));
-	u_int32_t JobNumber __attribute__((packed));
-	u_int16_t JobType __attribute__((packed));
-	u_int16_t JobPosition __attribute__((packed));
-	u_int16_t JobControlFlags __attribute__((packed));
-	u_int8_t FileNameLen __attribute__((packed));
-	char JobFileName[13] __attribute__((packed));
-	u_int32_t JobFileHandle __attribute__((packed));
-	u_int32_t ServerStation __attribute__((packed));
-	u_int32_t ServerTaskNumber __attribute__((packed));
-	u_int32_t ServerObjectID __attribute__((packed));
-	char JobTextDescription[50] __attribute__((packed));
-	char ClientRecordArea[152] __attribute__((packed));
-};
+	u_int16_t InUse;
+	u_int32_t prev;
+	u_int32_t next;
+	u_int32_t ClientStation;
+	u_int32_t ClientTask;
+	u_int32_t ClientObjectID;
+	u_int32_t TargetServerID;
+	u_int8_t TargetExecTime[6];
+	u_int8_t JobEntryTime[6];
+	u_int32_t JobNumber;
+	u_int16_t JobType;
+	u_int16_t JobPosition;
+	u_int16_t JobControlFlags;
+	u_int8_t FileNameLen;
+	char JobFileName[13];
+	u_int32_t JobFileHandle;
+	u_int32_t ServerStation;
+	u_int32_t ServerTaskNumber;
+	u_int32_t ServerObjectID;
+	char JobTextDescription[50];
+	char ClientRecordArea[152];
+} __attribute__((packed));
 
 struct queue_job {
 	struct nw_queue_job_entry j;
@@ -202,34 +202,34 @@ struct queue_job {
 
 #ifdef SWIG
 struct print_job_record {
-	u_int8_t Version __attribute__((packed));
-	u_int8_t TabSize __attribute__((packed));
-	u_int16_t Copies __attribute__((packed));
-	u_int16_t CtrlFlags __attribute__((packed));
-	u_int16_t Lines __attribute__((packed));
-	u_int16_t Rows __attribute__((packed));
-	fixedCharArray FormName[16] __attribute__((packed));
-	fixedArray Reserved[6] __attribute__((packed));
-	fixedCharArray BannerName[13] __attribute__((packed));
-	fixedCharArray FnameBanner[13] __attribute__((packed));
-	fixedCharArray FnameHeader[14] __attribute__((packed));
-	fixedCharArray Path[80] __attribute__((packed));
-};
+	u_int8_t Version;
+	u_int8_t TabSize;
+	u_int16_t Copies;
+	u_int16_t CtrlFlags;
+	u_int16_t Lines;
+	u_int16_t Rows;
+	fixedCharArray FormName[16];
+	fixedArray Reserved[6];
+	fixedCharArray BannerName[13];
+	fixedCharArray FnameBanner[13];
+	fixedCharArray FnameHeader[14];
+	fixedCharArray Path[80];
+} __attribute__((packed));
 #else
 struct print_job_record {
-	u_int8_t Version __attribute__((packed));
-	u_int8_t TabSize __attribute__((packed));
-	u_int16_t Copies __attribute__((packed));
-	u_int16_t CtrlFlags __attribute__((packed));
-	u_int16_t Lines __attribute__((packed));
-	u_int16_t Rows __attribute__((packed));
-	char FormName[16] __attribute__((packed));
-	u_int8_t Reserved[6] __attribute__((packed));
-	char BannerName[13] __attribute__((packed));
-	char FnameBanner[13] __attribute__((packed));
-	char FnameHeader[14] __attribute__((packed));
-	char Path[80] __attribute__((packed));
-};
+	u_int8_t Version;
+	u_int8_t TabSize;
+	u_int16_t Copies;
+	u_int16_t CtrlFlags;
+	u_int16_t Lines;
+	u_int16_t Rows;
+	char FormName[16];
+	u_int8_t Reserved[6];
+	char BannerName[13];
+	char FnameBanner[13];
+	char FnameHeader[14];
+	char Path[80];
+} __attribute__((packed));
 #endif
 
 #endif				/* _NCP_H */
--- a/include/ncp/ncplib.h	2005-01-28 04:35:59.000000000 +1100
+++ b/include/ncp/ncplib.h	2010-03-27 15:20:07.000000000 +1100
@@ -107,7 +107,7 @@ extern "C" {
 
 /* we know that the 386 can handle misalignment and has the "right" 
    byteorder */
-#if defined(__i386__)
+#if 0
 
 static inline word
 WVAL_LH(const void * buf, int pos)
@@ -462,25 +462,25 @@ struct ncp_file_server_info
 #else
 struct ncp_file_server_info
 {
-	u_int8_t ServerName[48] __attribute__((packed));
-	u_int8_t FileServiceVersion __attribute__((packed));
-	u_int8_t FileServiceSubVersion __attribute__((packed));
-	u_int16_t MaximumServiceConnections __attribute__((packed));
-	u_int16_t ConnectionsInUse __attribute__((packed));
-	u_int16_t NumberMountedVolumes __attribute__((packed));
-	u_int8_t Revision __attribute__((packed));
-	u_int8_t SFTLevel __attribute__((packed));
-	u_int8_t TTSLevel __attribute__((packed));
-	u_int16_t MaxConnectionsEverUsed __attribute__((packed));
-	u_int8_t AccountVersion __attribute__((packed));
-	u_int8_t VAPVersion __attribute__((packed));
-	u_int8_t QueueVersion __attribute__((packed));
-	u_int8_t PrintVersion __attribute__((packed));
-	u_int8_t VirtualConsoleVersion __attribute__((packed));
-	u_int8_t RestrictionLevel __attribute__((packed));
-	u_int8_t InternetBridge __attribute__((packed));
-	u_int8_t Reserved[60] __attribute__((packed));
-};
+	u_int8_t ServerName[48];
+	u_int8_t FileServiceVersion;
+	u_int8_t FileServiceSubVersion;
+	u_int16_t MaximumServiceConnections;
+	u_int16_t ConnectionsInUse;
+	u_int16_t NumberMountedVolumes;
+	u_int8_t Revision;
+	u_int8_t SFTLevel;
+	u_int8_t TTSLevel;
+	u_int16_t MaxConnectionsEverUsed;
+	u_int8_t AccountVersion;
+	u_int8_t VAPVersion;
+	u_int8_t QueueVersion;
+	u_int8_t PrintVersion;
+	u_int8_t VirtualConsoleVersion;
+	u_int8_t RestrictionLevel;
+	u_int8_t InternetBridge;
+	u_int8_t Reserved[60];
+} __attribute__((packed));
 #endif
 
 struct ncp_file_server_info_2 {
@@ -588,47 +588,47 @@ long
 
 struct ncp_station_addr
 {
-	u_int32_t NetWork __attribute__((packed));
+	u_int32_t NetWork;
 #ifdef SWIG
 	fixedArray Node[6];
 #else
-	u_int8_t Node[6] __attribute__((packed));
+	u_int8_t Node[6];
 #endif
-	u_int16_t Socket __attribute__((packed));
-};
+	u_int16_t Socket;
+} __attribute__((packed));
 
 struct ncp_prop_login_control
 {
 #ifdef SWIG
 	fixedArray AccountExpireDate[3];
 #else
-	u_int8_t AccountExpireDate[3] __attribute__((packed));
+	u_int8_t AccountExpireDate[3];
 #endif	
-	u_int8_t Disabled __attribute__((packed));
+	u_int8_t Disabled;
 #ifdef SWIG
 	fixedArray PasswordExpireDate[3];
 #else	
-	u_int8_t PasswordExpireDate[3] __attribute__((packed));
+	u_int8_t PasswordExpireDate[3];
 #endif	
-	u_int8_t GraceLogins __attribute__((packed));
-	u_int16_t PasswordExpireInterval __attribute__((packed));
-	u_int8_t MaxGraceLogins __attribute__((packed));
-	u_int8_t MinPasswordLength __attribute__((packed));
-	u_int16_t MaxConnections __attribute__((packed));
+	u_int8_t GraceLogins;
+	u_int16_t PasswordExpireInterval;
+	u_int8_t MaxGraceLogins;
+	u_int8_t MinPasswordLength;
+	u_int16_t MaxConnections;
 #ifdef SWIG
-	fixedArray ConnectionTimeMask[42] __attribute__((packed));
-	fixedArray LastLogin[6] __attribute__((packed));
+	fixedArray ConnectionTimeMask[42];
+	fixedArray LastLogin[6];
 #else	
-	u_int8_t ConnectionTimeMask[42] __attribute__((packed));
-	u_int8_t LastLogin[6] __attribute__((packed));
+	u_int8_t ConnectionTimeMask[42];
+	u_int8_t LastLogin[6];
 #endif	
-	u_int8_t RestrictionMask __attribute__((packed));
-	u_int8_t reserved __attribute__((packed));
-	u_int32_t MaxDiskUsage __attribute__((packed));
-	u_int16_t BadLoginCount __attribute__((packed));
-	u_int32_t BadLoginCountDown __attribute__((packed));
-	struct ncp_station_addr LastIntruder __attribute__((packed));
-};
+	u_int8_t RestrictionMask;
+	u_int8_t reserved;
+	u_int32_t MaxDiskUsage;
+	u_int16_t BadLoginCount;
+	u_int32_t BadLoginCountDown;
+	struct ncp_station_addr LastIntruder;
+} __attribute__((packed));
 
 NWCCODE NWReadPropertyValue(NWCONN_HANDLE conn, const char *objName,
 			    NWObjectType objType, const char *propertyName,
--- a/ipx-1.0/ipx_internal_net.8	2005-01-28 04:35:59.000000000 +1100
+++ b/ipx-1.0/ipx_internal_net.8	2007-09-16 21:43:16.000000000 +1000
@@ -15,6 +15,8 @@ not have a physical device or frame type
 a route-independent address for service providers.   Internal networks
 are optional; however, when one is present it is also the
 Primary Interface.  There can only be one internal network per host.
+The node number defaults to 1 if a second arg is not
+given to the "add" command.
 .SS OPTIONS
 .TP
 .I add
--- a/ipx-1.0/Makefile.in	2005-01-28 04:35:59.000000000 +1100
+++ b/ipx-1.0/Makefile.in	2007-09-16 21:43:16.000000000 +1000
@@ -52,8 +52,8 @@ mrproper: clean
 distclean: mrproper
 
 install: $(UTILS) $(MAN8GZ) $(UTIIPX)
-	$(INSTALL) -d $(DESTDIR)$(bindir)
-	$(INSTALL) $(UTILS) $(UTIIPX) $(DESTDIR)$(bindir)
+	$(INSTALL) -d $(DESTDIR)$(sbindir)
+	$(INSTALL) $(UTILS) $(UTIIPX) $(DESTDIR)$(sbindir)
 	$(INSTALL) -d $(DESTDIR)$(mandir)/man8
 	$(INSTALL_DATA) $(MAN8GZ) $(DESTDIR)$(mandir)/man8
 
--- a/lib/ncplib.c	2005-01-28 04:35:59.000000000 +1100
+++ b/lib/ncplib.c	2010-03-27 15:20:07.000000000 +1100
@@ -2421,7 +2421,7 @@ ncp_initialize_2(int *argc, char **argv,
 	int i = 1;
 	NWCCODE nwerr;
 
-	static int get_argument(int arg_no, const char **target) {
+	int get_argument(int arg_no, const char **target) {
 		int count = 1;
 
 		if (target != NULL) {
@@ -2584,14 +2584,14 @@ ncp_request(struct ncp_conn *conn, int f
 
 struct nw_time_buffer
 {
-	u_int8_t year __attribute__((packed));
-	u_int8_t month __attribute__((packed));
-	u_int8_t day __attribute__((packed));
-	u_int8_t hour __attribute__((packed));
-	u_int8_t minute __attribute__((packed));
-	u_int8_t second __attribute__((packed));
-	u_int8_t wday __attribute__((packed));
-};
+	u_int8_t year;
+	u_int8_t month;
+	u_int8_t day;
+	u_int8_t hour;
+	u_int8_t minute;
+	u_int8_t second;
+	u_int8_t wday;
+} __attribute__((packed));
 
 static time_t
 nw_to_ctime(struct nw_time_buffer *source)
--- a/lib/ndslib.c	2005-01-28 04:35:59.000000000 +1100
+++ b/lib/ndslib.c	2010-03-27 15:18:45.000000000 +1100
@@ -49,7 +49,7 @@
 #define RANDBUF  /* if defined: read random data once from /dev/urandom */
 /*#define ERR_MSG*/ /* if defined: show error messages in nds_login_auth */
 /*#define DEBUG_PRINT*/
-/*#define FIND_ISR */ /* if defined: show reasons for -330 invalid response */
+#define FIND_ISR /* if defined: show reasons for -330 invalid response */
 
 #define NCP_OBSOLETE
 
--- a/man/Makefile.in	2005-01-28 04:35:59.000000000 +1100
+++ b/man/Makefile.in	2010-03-27 15:18:45.000000000 +1100
@@ -15,7 +15,7 @@ MOUNT2 = @MOUNT2@
 
 MAN1 := nprint.1 nsend.1 nwauth.1 nwbols.1 nwboprops.1 nwbpset.1 \
 	nwbpvalues.1 nwdir.1 nwfsinfo.1 nwfstime.1 nwpasswd.1 nwpurge.1 \
-	nwrights.1 nwsfind.1 nwtrustee.1 nwuserlist.1 nwvolinfo.1 pqlist.1 \
+	nwrights.1 nwsfind.1 nwtrustee.1 nwtrustee2.1 nwuserlist.1 nwvolinfo.1 pqlist.1 \
 	nwpqjob.1 pqstat.1 pserver.1 slist.1 nwpjmv.1
 MAN3 := $(notdir $(wildcard ${this_srcdir}/*.3ncp))
 MAN5 := nwclient.5
@@ -47,6 +47,7 @@ install: all
 	ln -sf nwpqjob.1.gz $(DESTDIR)$(mandir)/man1/pqrm.1.gz
 ifeq ($(USE_KERNEL),1)
 	ln -sf ncpmount.8.gz $(DESTDIR)$(mandir)/man8/mount.ncp.8.gz
+	ln -sf ncpmount.8.gz $(DESTDIR)$(mandir)/man8/mount.ncpfs.8.gz
 endif
 
 install-dev: all
--- a/man/ncpmount.8	2005-01-28 04:35:59.000000000 +1100
+++ b/man/ncpmount.8	2007-09-16 21:43:16.000000000 +1000
@@ -282,7 +282,7 @@ is done by commercial workstations, plea
 You can specify character translation rules for converting names from
 unicode to your desktop (it works together with \fB-p\fP).
 .I iocharset
-is charset name, for example \fIiso-8859-1\fP.
+is charset name, for example \fIiso8859-1\fP.
 .RE
 
 .B -p
--- a/man/nwbpset.1	2005-01-28 04:35:59.000000000 +1100
+++ b/man/nwbpset.1	2010-03-27 15:18:45.000000000 +1100
@@ -26,7 +26,7 @@ Reads a property specification from the 
 sets the corresponding property. The format is determined by the
 output of 'nwbpvalues -c'. nwbpset will hopefully become an important
 part of the bindery management suite of ncpfs, together with
-'nwbpvalues -c'. See util/nwbpsecurity for an example.
+\'nwbpvalues -c\'. See util/nwbpsecurity for an example.
 
 As another example, look at the following command line:
 
--- a/man/nwbpvalues.1	2005-01-28 04:35:59.000000000 +1100
+++ b/man/nwbpvalues.1	2007-09-16 21:43:16.000000000 +1000
@@ -1,4 +1,4 @@
-.TH NWBPVALUES 8 7/9/1996 nwbpvalues nwbpvalues
+.TH NWBPVALUES 1 7/9/1996 nwbpvalues nwbpvalues
 .SH NAME
 nwbpvalues \- Print a NetWare Bindery Propery's contents
 .SH SYNOPSIS
--- a/man/nwfsctrl.8	2005-01-28 04:35:59.000000000 +1100
+++ b/man/nwfsctrl.8	2007-09-16 21:43:16.000000000 +1000
@@ -1,4 +1,4 @@
-.TH NWFSCTRL 1 2/12/1999 nwfsctrl nwfsctrl
+.TH NWFSCTRL 8 2/12/1999 nwfsctrl nwfsctrl
 .SH NAME
 nwfsctrl \- Perform server command
 .SH SYNOPSIS
--- a/man/nwtrustee.1	2005-01-28 04:35:59.000000000 +1100
+++ b/man/nwtrustee.1	2007-09-16 21:43:16.000000000 +1000
@@ -1,4 +1,4 @@
-.TH NWTRUSTEE 8 7/9/1996 nwtrustee nwtrustee
+.TH NWTRUSTEE 1 7/9/1996 nwtrustee nwtrustee
 .SH NAME
 nwtrustee \- List an object's trustee directory assignments
 .SH SYNOPSIS
--- a/man/nwtrustee2.1	1970-01-01 10:00:00.000000000 +1000
+++ b/man/nwtrustee2.1	2007-09-16 21:43:16.000000000 +1000
@@ -0,0 +1,52 @@
+.TH NWTRUSTEE2 1 10/16/2005 nwtrustee2 nwtrustee2
+.SH NAME
+nwtrustee2 \- Lists trustees and permissions of a ncp directory
+.SH SYNOPSIS
+.B nwtrustee2
+[
+.B -h
+] [
+.B -?
+] [
+.B -v
+] [
+.I directory
+]
+
+.SH DESCRIPTION
+.B nwtrustee2
+lists the permissions assigned to any trustees for a given ncp directory. It
+does not show the inherited permissions, but only the ones directly assigned to
+it.
+
+The letters used to express the permissions are explained in the
+\fInwgrant\fP(1) manpage.
+
+The \fIdirectory\fP has to belong to a volume mounted with \fIncpmount\fP or
+mount.ncp, if omited the current directory is used.
+
+.SH OPTIONS
+
+.B -h
+or
+.B -?
+.RS 3
+.B -h
+or
+.B -?
+prints a short help text.
+.RE
+
+.B -v
+.RS 3
+Verbose mode. Prints the directory name before procesing.
+.RE
+
+.SH SEE ALSO
+
+\fInwtrustee\fP(1), \fInwgrant\fP(1), \fInwrevoke\fP(1), \fInwrights\fP(1)
+
+
+.SH AUTHORS
+nwtrustee2 was written by Petr Vandrovec <vandrove@vc.cvut.cz>.
+This manual page was written by Maximiliano Curia <maxy@gnuservers.com.ar>.
--- a/man/nwvolinfo.1	2005-01-28 04:35:59.000000000 +1100
+++ b/man/nwvolinfo.1	2007-09-16 21:43:16.000000000 +1000
@@ -1,4 +1,4 @@
-.TH NWVOLINFO 8 7/9/1996 nwvolinfo nwvolinfo
+.TH NWVOLINFO 1 7/9/1996 nwvolinfo nwvolinfo
 .SH NAME
 nwvolinfo \- Diplay info on NetWare Volumes
 .SH SYNOPSIS
@@ -97,4 +97,4 @@ Display the information in numeric-only 
 
 .SH AUTHORS
 nwvolinfo was written by Jacek Stepniewski <cunio@gazeta.pl> based on
-utilities by Volker Lendecke.
\ No newline at end of file
+utilities by Volker Lendecke.
Binary files ncpfs-2.2.6/po/de.gmo and b/po/de.gmo differ
--- a/po/de.po	2005-01-28 04:35:59.000000000 +1100
+++ b/po/de.po	2007-09-16 21:43:16.000000000 +1000
@@ -216,7 +216,7 @@ msgstr "%s: Ungültiger Routerknoten %s\
 #: ipx-1.0/ipx_route.c:98
 #, c-format
 msgid "%s: Node (%s) is invalid.\n"
-msgstr "%s: Knoten (%s) is ungültig.\n"
+msgstr "%s: Knoten (%s) ist ungültig.\n"
 
 #: ipx-1.0/ipx_route.c:124
 #, c-format
@@ -1426,7 +1426,7 @@ msgstr "Kann Verbindung zu Kontext nicht
 #: sutil/ncplogin.c:920
 #, c-format
 msgid "Cannot authenticate connection: %s\n"
-msgstr "Kann Vebindung nicht authentifizieren: %s\n"
+msgstr "Kann Verbindung nicht authentifizieren: %s\n"
 
 #: sutil/ncplogin.c:939
 #, c-format
@@ -1789,7 +1789,7 @@ msgstr "bind(wdog_sock, ): %s\n"
 #: sutil/ncpm_common.c:1791
 #, c-format
 msgid "Could not open message socket: %s\n"
-msgstr "Konte Socket für Nachrichten nicht öffnen: %s\n"
+msgstr "Konnte Socket für Nachrichten nicht öffnen: %s\n"
 
 #: sutil/ncpm_common.c:1799
 #, c-format
@@ -1904,7 +1904,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"-v              Detailierte Ausgabe\n"
+"-v              Detaillierte Ausgabe\n"
 "-i interface    Zu testendes Interface, Standard: eth0\n"
 "-t timeout      Wartezeit auf Antwort in Sekunden, Standard: 3\n"
 "-h              Zeigt diesen Hilfetext an\n"
@@ -2782,7 +2782,7 @@ msgstr ""
 "\n"
 "-t type        Typ der aufzulistenden Objekte (Dezimalwert)\n"
 "-o object      Maske für aufzulistenden Objekte\n"
-"-v             Detailierte Auflistung\n"
+"-v             Detaillierte Auflistung\n"
 "-a             Alternatives Ausgabeformat\n"
 "-d             Objekttyp dezimal anzeigen\n"
 "\n"
@@ -2818,7 +2818,7 @@ msgstr ""
 "\n"
 "-o object_name Name des zu überprüfenden Objekts\n"
 "-t type        Objekttyp (Dezimalwert)\n"
-"-v             Detailierte Auflistung\n"
+"-v             Detaillierte Auflistung\n"
 "\n"
 
 #: util/nwborm.c:47
@@ -3129,7 +3129,7 @@ msgstr ""
 "-o object_name Objektname\n"
 "-t type        Objekttyp (Dezimalwert)\n"
 "-p property    Name der zu listenden Eigenschaft\n"
-"-v             Detailierte Auflistung\n"
+"-v             Detaillierte Auflistung\n"
 "-c             Kanonische Ausgabe, für die Verwendung mit nwbpadd\n"
 "\n"
 
@@ -3629,7 +3629,7 @@ msgstr ""
 "            über dessen Inhalt\n"
 "      -l    Listet Namespace Informationen\n"
 "      -e    Listet erweiterte Attributinformationen\n"
-"      -v    Detailiertes Auflistung\n"
+"      -v    Detailliertes Auflistung\n"
 "      -f    Listet die Datei nutzende Verbindungen\n"
 "      -p    List physikalische Sperren dieser Datei\n"
 "      -t    Technisch - zeigt Werte und ihre Bedeutung\n"
@@ -4532,7 +4532,7 @@ msgstr ""
 "-O objectid    Objekt-ID\n"
 "-o objname     Objektname (Typ muß angegeben werden)\n"
 "-t type        Objekttyp\n"
-"-v             Detailierte Auflistung\n"
+"-v             Detaillierte Auflistung\n"
 "\n"
 
 #: util/nwtrustee2.c:45
@@ -4559,7 +4559,7 @@ msgid ""
 "\n"
 msgstr ""
 "\n"
-"-v             Detailiert\n"
+"-v             Detailliert\n"
 "\n"
 "Datei- / Verzeichnisliste, die nach Trustees abgesucht wird\n"
 "\n"
--- a/sutil/Makefile.in	2005-01-28 04:35:59.000000000 +1100
+++ b/sutil/Makefile.in	2007-09-16 21:43:16.000000000 +1000
@@ -53,8 +53,8 @@ install: all
 	${INSTALL} -d $(DESTDIR)/sbin
 	${INSTALL} -m 4755 $(UTILS) $(DESTDIR)$(bindir)
 ifeq ($(USE_KERNEL),1)
-	ln -sf ..$(bindir)/ncpmount $(DESTDIR)/sbin/mount.ncp
-	ln -sf ..$(bindir)/ncpmount $(DESTDIR)/sbin/mount.ncpfs
+	ln -sf $(bindir)/ncpmount $(DESTDIR)/sbin/mount.ncp
+	ln -sf $(bindir)/ncpmount $(DESTDIR)/sbin/mount.ncpfs
 	ln -sf ncpumount $(DESTDIR)$(bindir)/ncplogout
 endif
 
--- a/sutil/ncpm_common.c	2005-01-28 04:35:59.000000000 +1100
+++ b/sutil/ncpm_common.c	2007-09-16 21:44:54.000000000 +1000
@@ -85,6 +85,7 @@
 #include <stdio.h>
 #include <string.h>
 #include <signal.h>
+#include <stddef.h>
 #include <pwd.h>
 #include <grp.h>
 #include <ncp/ext/socket.h>
--- a/util/Makefile.in	2005-01-28 04:35:59.000000000 +1100
+++ b/util/Makefile.in	2007-09-16 21:43:16.000000000 +1000
@@ -70,7 +70,7 @@ ifneq ($(SBINUTILS),)
 endif
 ifeq ($(USE_KERNEL)$(MOUNT2),11)
 ifneq ($(sbindir),/sbin)
-	ln -sf ..$(sbindir)/nwmsg $(DESTDIR)/sbin/nwmsg
+	ln -sf $(sbindir)/nwmsg $(DESTDIR)/sbin/nwmsg
 endif
 endif
 
--- a/util/nwpjmv.c	2005-01-28 04:35:59.000000000 +1100
+++ b/util/nwpjmv.c	2007-09-16 21:43:16.000000000 +1000
@@ -131,7 +131,7 @@ build_command(struct nw_queue *q, struct
 	char *s = q->command;
 	char *target_end = target + target_size;
 
-	static void add_string(const char *str)
+	void add_string(const char *str)
 	{
 		int len = strlen(str);
 		if (target + len + 1 > target_end)
--- a/util/pserver.c	2005-01-28 04:35:59.000000000 +1100
+++ b/util/pserver.c	2007-09-16 21:43:16.000000000 +1000
@@ -153,7 +153,7 @@ build_command(struct nw_queue *q, struct
 	char *s = q->command;
 	char *target_end = target + target_size;
 
-	static void add_string(const char *str)
+	void add_string(const char *str)
 	{
 		int len = strlen(str);
 		if (target + len + 1 > target_end)