-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathChanges
3200 lines (2389 loc) · 118 KB
/
Changes
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
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
f-*-outline-*-
This file documents Prospero, ARDP, and GOSTLIB changes. It covers
Prospero changes since 8/1/96, and is exhaustive for ARDP and GOSTLIB
changes since 2/97. It is intended to be a comprehensive list of
changes; it is (or should be) updated every time a change is checked
into Prospero, ARDP, or GOSTlib.
For a simpler list of changes to Prospero, see README.html in the top
directory of the Prospero release.
The later parts of this file are formatted so that they can be read
with Emacs's outline-mode. If you don't have Emacs, don't worry; it's
human-readable.
*Begin changes (8/96).
**These predate the use of EMACS's outline-mode
Ported Prospero to Solaris 2.5.1 (SunOS 5.5.1)
8/1/96, [email protected], [email protected]
Updated INSTALLATION directions (corrected old bugs)
Added USE_HTTP_GW, USE_WAIS_GW, USE_GOPHER_GW config. options to config.
Makefile;s.
Changes to ARDP library:
Fixed ardp_rwait() prototype
Casted struct sockaddr_in * to struct sockaddr in function calls
(Solaris prototypes caught the trivial mismatch).
Made assignments in condition part of IF statements conform to GNU CC
recommendation that they be wrapped with a pair of parentheses.
Annoying feature: inet_addr() allegedly returns -1 but is declared
unsigned long (handled it by casting -1).
Added detail to error messages when setsockopt() and bind() fail.
Fixed obsolete P_BINARIES_DEFAULT and P_SITE_DIRECTORY and
P_GLOBAL_VS_ROOT in include/psite.h.dist
Now include prototype for inet_addr() where used
(found in arpa/inet.h)
Fixed declaration for ardp_add2req().
Failed attempt to make calls to setsockopt() cleaner (see comments
in lib/ardp/ardp_xmit.c)
Little tiny solaris cleanups (lib/pfs/acalloc.c, stuff like that).
<solaris_stdlib.h> no longer needed.
vcache now checks <pserver.h> for PSRV_WAIS_GW before linking in WAIS
support, PSRV_GOPHER_GW before linking in GOPHER support.
WAIS support and GOPHER support and HOST database are no longer made
or linked in by default.
changes:
8/2/96, swa & sridhar: Got rid of
AUTOSTATIC_VAR_INITIALIZED(TYPE,VARNAME,INITIALIZER) in
<pfs_threads.h>. It was (a) never used (b) broken (c) had an
inconsistent interface between the threaded and non-threaded macro
definitions (so it would not have compiled if it had ever been used.)
Changes committed 8/7/96; [email protected], [email protected]
1) Configuration-related:
a) Updated INSTALLATION documents
b) THREAD_LIBS config option different from LIBS. Makefile.config.gostlib-dist
updated accordingly.
2) Cleanup
got rid of AUTOSTATIC_VAR_INITIALIZED in pfs_threads.h
(unused)
b) Repaired p_th_mutex_islocked() for Solaris
c) ardp_refuse() added to ardp.h
d) replaced L_FAILURE log facility in delete_link() with more
appropriate L_DIR_PERR
e) Minor variable name changes in ftp.c; comments improved
3) Threading
a) Several approaches tried for creating a new thread under
solaris. We got it to work (i) using pthread_create(), the
POSIX facility. (ii) using thr_create(), the Solaris facility.
b) Added ardp_rwait() to Server's (debugging) SLEEP statement.
Work done by Eul Gyu Im, Spring and Summer 1996. (minor help from swa)
Committed Fri, 9/13/96
* Added HTTP-GW database to Prospero server, with caching and multithreading.
Multithreading done under SunOS 4.1.3, PFS_THREADS_PROVEN; not yet
tested under SOLARIS.
* Minor improvement to user/vcache/vcache; vcache1 function can now be
used separately.
CHANGES to Prospero, made 8/30/96, Steve Augart and Dongho Kim
* Added 'installlibs' target.
* Added 'source-directories' file.
* Added working TAGS target, using source-directories
* Disabled old TAGS target
* Added P_LIBRARIES config variable.
* GOSTLIB now never needs to be linked with ARDP. (Added ardp_debug.c
to gostlib)
* Changed P__FREE_PATTERN and P__INUSE_PATTERN; removed vestiges of
old code (compiler constants FREE_PATTERN INUSE_PATTERN
ALLOCATOR_CONSISTENCY_CHECK)
* p_user_file, p_system_file are now global variables -- can be set by the
programmer (This was done so that Santosh could name the PRM
configuration files something other than .ProsperoResources)
* -D command-line flag now sets both pfs_debug and ardp_debug
* Added three error codes to Prospero library to correspond with
server's error messages -- scan_error() is now consistent with the
protocol specification.
* Improved documentation of keyed data items (GL_KEYED_STRING_... )
and moved it to pfs_threads.h from pfs.h.
* Updated & improved prototypes in pfs.h of pget_* family of functions.
* Fixed nasty bug in wcmatch() -- arbitrary length file names now OK.
* Atomic writing of .object#shadow files now happens; behaves properly
if disk fills up.
* Improved (really implemented :)) handling of FILE+DIRECTORY and
naked OBJECT objects. New FILE and DIRECTORY flags on vlinks.
vls and vln support these both. Added pmkobject command to
user directory. CREATE-OBJECT will create these objects.
* ACCESS-METHOD for POS objects now returns PROSPERO-CONTENTS, if the
POS object has a FILE component.
* We can set the CONTENTS attribute on POS objects. This means we can finally
write to files! We even have nice accurate error reporting.
* Logging never causes an internal error; used to (showed when the
disk filled up). We try to log a warning to syslog() if the
logfile cannot be written and we send a message to stderr.
* The server should no longer go into an infinite loop of restarts.
The above internal error while logging was triggering such a loop.
If we get an internal error before any requests have been
received, then we don't restart.
--
Trivial changes:
Dependencies updated
Documentation improved doc/working-notes/prospero-url-scheme.txt
ARDP protocol Version # now printed out for outbound packets with
ardp_debug on.
some comments updated
minor changes to replyf.c to support security context.
pstatus supports ARDP security context (done by Katia & Steve)
vls now prints types in lower case. This means we print 'f' for files
and 'F' for failed expansion of a link.
Changes to Prospero, committed 9/20/96, <[email protected]>
* EXTERN_MUTEXED_ISLOCKED() macro added to pfs_threads.h; used
elsewhere in code; takes over almost all uses of
p_th_mutex_islocked().
* Nasty bug fixed: the second and subsequent ardp PTEXT packets
created by the PFS library p__add_req() function would be corrupted if
they contained null bytes. This meant that long GIF files would be
corrupted if being retrieved or set via the CONTENTS attribute.
* All bcopy() references turned into memcpy(). Our bcopy1(),
bcopy2(), bcopy4() functions become memcpy1(), memcpy2(), memcpy4().
* bzero(a, n) turned into memset(a, '\000', n)
* p_mk_nobj() PFS library interface added.
* p_bst_tkappend() library interface added.
* Bits of minor code cleanup; some dead code removed.
* 'makefile installlibs' target -- attempted fix; not done yet.
CHANGES to Prospero, made 11/20/96, Steve Augart, Nader Salehi, and Dongho Kim
VLS:
(a) Added -S command-line flag (meaning do not Sort).
(b) Trivial code cleanup
ACL documentation:
improved (lib/psrv/check_acl.c, doc/working-notes/new-acl-rights).
Changes to GOSTLIB, ARDP, and Prospero, 11/25/96.
Where not specifically stated, by Steve Augart and Dongho Kim.
Where stated, by Steve Augart and Nader Salehi or Sio-Man Cheang
or Dino Kutsikos or Padma Indraganti
MAJOR CHANGES:
1) We implemented the DIRECTORY-ORDERING attribute for all DIRECTORY
objects. It can be set and retrieved. It is in the FIELD namespace.
Its only two values right now are:
UNSORTED '' ''
and
SORTED NAME-COMPONENT INCREASING
It can be set with 'set_atr' or 'pset_at()', and retrieved with the
usual 'vls -a' command or 'pget_at()' command. This involved changes
to the server's EDIT-OBJECT-INFO and GET-OBJECT-INFO protocol
commands; the DIRECTORY-ORDERING attribute is handled as a special
case in the code.
If the DIRECTORY-ORDERING attribute is set to UNSORTED, the server
will no longer sort the directory upon writing updates out to disk.
(This did not used to be the case). Therefore, making changes to it
will still keep it UNSORTED. This involved changes to dswobject() and
dsrobject(). This was also why adding the '-S' flag to VLS was not an
adequate solution to our problem.
The p_get_dir() PFS library function (and therefore the VLS command
too) now checks DIRECTORY-ORDERING when it retrieves a directory, and
behaves appropriately.
Minor note: this means that the -S flag we just added to VLS (do not
Sort) is now probably never going to be used again.
2) New interface: p_mk_nobj() makes named objects in a directory, including
DIRECTORY, FILE, DIRECTORY+FILE, and naked OBJECT.
"mk_vdir()" is now a simple wrapper around p_mk_nobj().
The p_mk_nobj() code started from the mk_vdir() code, with these
changes:
a) many comments added,
b) most function-wide variables renamed,
c) The number of function-wide variables was significantly reduced
d) Much code rewritten to be easier to follow.
e) Error handling cleaned up.
3) (Nader Salehi and Steve Augart) EDIT-ACL protocol command on server
side: nasty bug fixed: it was impossible to perform some updates on
LINK ACLs. This was fixed, at a huge cost in time. We added some
internal consistency checking to handle possible cases where security
violations would otherwise occur. So far these haven't been triggered.
4) Parsing of hostnames in p__get_pauth() (low-level PFS library
function used to format Prospero protocol AUTHENTICATE commands) and
in user VCACHE program has been rewritten; ':' is now an acceptable
separator, so we can have hostnames like PROSPERO.ISI.EDU:1526, as
well as the old 'PROSPERO.ISI.EDU(1526)'.
There are likely to still be problems in some places in the code; the
convention that '(' ')' delimit the port # of a host has appeared in a
number of places, and they have not necessarily all been identified.
5) The PFS library function 'member()' has had the interface enhanced;
it now returns the matching member of the tokenlist or NULL, instead
of simply returning TRUE or FALSE. This change is
backwards-compatible with the former interface.
6) (Sio-Man CHEANG and Steve Augart): Server implementation of LIST
command has filter handling fixed.
7) Padma Indraganti and Steve Augart: Prospero VLN user command has new '-h'
flag, meaning 'Host type'. This allows us to make Prospero links to
special hosts with the host type 'GATEWAY'; until now, all hosts have
been 'INTERNET-D'.
Minor and Medium changes:
1) Code and doc cleanup: Improvements and updates to documentation and
comments for:
GOSTLIB: vqscanf()
PFS library: PATTRIB structure, modify_acl(),
PSRV library: ad2l_seq1_atr()
SERVER: GET-OBJECT-INFO protocol command implementation
USER commands: set_atr, VLN (with Padma), vls,
2) Enhanced prototypes or interfaces for member(), p__set_sw_id(),
pfs_debug.
3) ARDP library: ardp_rqalloc() interface: passing a NULL value is now OK.
4) Some fixed-size buffers made arbitrary-length (dynamically allocated).
5) Bugs were fixed in the PFS library p_vl_attribute_alloc()
function. This work done by Steve Augart and Dino Kutsikos for the
ARPA demo.
6) Error handling strengthened: PSRV library function dsrobject().
7) Improved code flow and renamed variables (for understandability) in
USER command 'set_atr'.
8) (Code broken out by Padma Indraganti) Additional debugging
infrastructure enabled. The development/debugging infrastructure
function display_link() has been added, in misc/display_link.c.
Compile and link with it if you want to fancily format the display of
a link your program is using.
CHANGES to PROSPERO, made December 2, 1996, by Steve Augart and Dongho Kim
a) BUG: VLS was not respecting the -u (don't expand Union links)
option.
FIX: corrected the flags it passed to rd_vdir() in case of the '-u'
option. This bug was introduced in the last patch.
b) Improved (made code cleaner and easier to follow ) how vls and
p_get_dir() examine the rd_vdir() and p_get_dir() flags
that handle expanding or not expanding union links.
c) added comments to 'vls' and p_get_dir().
d) BUG: p_get_dir() would sometimes dump core when expanding union
links.
FIX: The bug in p_get_dir() (introduced in the last patch) which could
cause a core dump in case of union links needing to be expanded. This
appeared because not all of the 'struct dqstate' was initialized
properly.
Changes to PROSPERO, 12/3/96, Steve Augart and Dongho Kim
Confirmed that memory leaks were fixed in mk_vdir(). Improved
mk_vdir()'s error handling. Fixed bug where mk_vdir() reported errors
when in fact it was successful.
Fixed a couple of places in the PFS library where the handling of the
Prospero Protocol's VERSION protocol message used to break if there
was a peer software ID that contained whitespace.
Added to Prospero Protocol documentation.
Change to Prospero, 12/6/96, Sukumal Imudom & Steve Augart
We added the P__USE_UTMPX configuration
description option to pmachine.h. This is part of porting
lib/psrv/host/libhost.a to Solaris.
Change to Prospero Server Library (PSRV library), 12/10/96, Nader Salehi and Steve Augart
We fixed a bug in the server's EDIT-ACL command, where deleting the only entry
of an ACL would lead to a segmentation fault. This was fixed by replacing the
old linked-list remove-an-item code with the EXTRACT_ITEM() macro, in
change_acl(), in lib/psrv/change_acl.c.
1/14/97, 12:40 AM:
[email protected]: Added misc/gost_etags. Top-level Makefile now uses this to
generate a better TAGS file.
Change to GOSTLIB, 1/22/97, Steve Augart:
p_bstsize() is now the preferred name for p__bstsize(). The old
p__bstsize() interface remains for backwards compatibility.
Changes to PROSPERO server, checked in Monday, 1/27/97.
Short list:
EDIT-LINK-INFO and EDIT-OBJECT-INFO now preserve the order of
attributes when they perform the REPLACE operation.
New p_vl_add_atrs() and p_vl_add_atr() interfaces (enhanced versions of old functions).
Bugs fixed in EDIT-ACL on server:
(1) position of new entries added superseding those already there
(2) ACL-NONE goes away immediately, whenever a real ACL entry is added.
I) (swa & dongho) EDIT-LINK-INFO: Fixed REPLACE: (finished 1/24/97)
If an attribute on a link (or object!) is REPLACEd, the replacement
attribute should take the place of the old one. The implementation
until now (which was causing problems for Dongho and the Prospero-MAIL
project) was that the old attribute would be deleted, and the new one
would take its place.
Question: is the order of attributes significant to a program *if* the
attributes have different names.
Answer: (I) Why not make it possible for it to be so? This would add
functionality (admittedly at a cost of simpler implementation) or (II) No.
If you assume (I), then this should be corrected, and is here. It
turns out not to be necessary yet. If you assume (II), then the
previous behavior isn't a BUG. However, it is still more aesthetic
for humans. It also lets a programmer assume the whole list of
attributes of different types will be in a particular order, if he or
she has already set them in that order. (This could make parsing code
easier to write, for example.)
This still doesn't free us from the need to sometimes do a DELETE-ALL
and then an ADD -- we still do not have an INSERT.
As part of the above work:
Added p_vl_add_atrs(), p_vl_add_atr(): New interfaces, in the PFS
library. They take a third argument, 'follow_me', the position to be
inserted into.
II) (swa & dongho) EDIT-OBJECT-INFO:
Changes like those for EDIT-LINK-INFO. However, ob_add_atr() and
ob_add_atrs() were static (private) to server/ed_obj_info.c, and we
are keeping p_ob_add_atrs(), p_ob_add_atr() as also static, until we
find a clear need to publish them.
Also fixed bug in ob_add_atrs() where in error conditions freeing
might not occur.
--
III) (swa) Minor protocol spec amplifications.
--
IV) (swa) Various comment improvements.
--
V) (swa & salehi) Bugs fixed in SET-ACL on server: (1) Adding an ACL entry which was
already there will cause the entry to go to the front of the ACL; this
means that more recently specified rights override older ones.
(2) ACL-NONE now goes away as soon as a real ACL entry is added.
--
VI) STATUS command in dirsrv.c:
Now additionally displays process's PID, UID ,EUID, GID.
Converts times to local.
--
Minor:
Ordering of include files improved in dirsrv.c. (System files
shouldn't follow the unique Prospero ones.)
More arrays turned into flexlen strings. st_time_str_local global
variable added to server/dirsrv.c
--
The 'vmkdir' command now has memory-use debugging infrastructure added
to it. Possibly generally useful function: p_show_memory_usage().
Changes done and committed 2/7/97, Steve Augart
* (With Nader salehi) ASRTHOST username@*.*.*.* ACL bug fixed (see below)
* P_USERNAME environment variable now read in; can set env-var.
* gl_initialize() (and transitively, p_initialize()) now initializes
p_err_string and p_warn_string to empty strings instead of null
pointers. Misleading comment moved to right place.
* (with katia) Warnings added to headers of ARDP functions which do not do any
retransmit queue timeouts. Documents also added to ardp_api_v0.html
web page.
* (with katia) ARDP no longer uses time(); replaced last two instances with
ardp__gettimeofday().
**Trivial:
* trivial doc/manual.tex, improved new-acl-rights.
* (with katia) ARDP mentions ARDP_WAIT_TILL_TO constant more, suggestions for code
improvement.
* turned off some debugging assertions
* (with katia) code rearrangement (lib/ardp/time.c) for legibility.
**Message sent:
Nader and I fixed another prospero server bug and replaced the
server. This one was that ASRTHOST access control list entries
would not be recognized if the first character was a '*'.
The new servers are now running.
There is a new client feature now. You can set the environment
variable P_USERNAME in order to make the server think you are somebody
else for authentication purposes. This is useful for those of us who
are trying to make access control lists work properly to experiment with.
I have not yet installed the new clients, nor have I committed the new
sources; to try them, do this (in the C shell):
set env P_BINARIES /nfs/gost/build/prospero/user
set path = ( $P_BINARIES $path)
--Steve
Changes committed 4/1/97 ([email protected]):
This cleans up the changes that had been sitting in the directory
/nfs/gost/products/prospero/working/sun4.SunOS.clean.. It merges them
with the main sources and allows us to nuke a separate line of development.
pmachine.h: added tests for _INT16_T_ and _INT32_T_
Configuration stuff for HTTP_GW added to Makefile.config.dist and
inclue/pserver.h.dist. The configuration stuff still all should be
reviewed before the release goes out.
Provenzano pthreads support added to
gostlib/Makefile.config.gostlib-dist
Changes done by Sung Wook Ryu, committed 4/8/97:
Changes to server:
Sung added db_filep, a new global variable; the GDBM database is now opened
only once. Appropriate changes made in server DB functions and server/dirsrv.c.
USER-visible changes to Prospero, committed Sunday, 5/4/97:
VRM can now delete links with quoted ':' or '/' in their names.
Programmer-visible changes to Prospero and ARDP and GOSTLIB, 5/4/97
*lib/pfs/del_vlink.c (affects VRM user command):
** BUG fixed: it used to be impossible to use del_vlink() or vrm to
delete links with colons (':') or forward slashes ('/') in their names.
** BSTRINGS
Now uses flexible-length names (bstrings) in all cases where there
had been fixed-length arrays of characters.
** unusual HOSTname types and HSOname types
Now has support for various HOSTnames and HSOnames.
** Forwarding, link names:
We now set a VLINK to point to the host and directory being read from.
** MEMORY LEAKS
vdir_freelinks() now called before each 'return' statement; had been
a (probable) memory leak.
*lib/pfs/p_uln_index.c
** New routine: p_uln_to_diruln_comp_GSP().
** New routine: p_uln_srindex(). -- rindex(), but for a whole set of
significant characters in quoted Prospero user-level-names.
*gostlib/stcopy.c, gostlib/gl_strings.h:
** stalloc_GSP(int nbytes, char **gp): /* Ensure that the gostlib string GP
will have at least NBYTES of storage allocated for it. Allocates the storage if unavailable and frees the previous storage. */
*lib/ardp/pmachine.h:
** P__USE_TZNAME_NOT_TM_ZONE: New feature test to differentiate LINUX and
SOLARIS from SunOS 4.1.3 and other BSD systems. This refers
to how, on different systems, you find out what time zone you're in.
** P__USE_UTMPX: More elegant way of making VFINGER work on Solaris.
*gostlib/perrno.h, lib/pfs/perrmesg.c:
** Added new error codes and error message strings for several existing ones.
*SOLARIS
Made various changes so that the current Prospero configuration
clean-compiles on Solaris again.
* top-level Makefile:
Automatically Installing .h files now should install the proper files; used to install way too many, and not install a couple of vital ones.
*Updated automatically generated files (as usual)
** All Makefile.dependencies
** TAGS
*Various small code cleanups that shouldn't affect the programmer's view.
5/12/97, Sung Ryu & swa: fixed rd_vdir() in PFS library so that it wouldn't
break under some circumstances (replaced strcmp () == 0 with stequal()).
Changes committed 5/13/97. Most of these changes affect the (experimental)
garbage collection system.
Changes done by Sung Wook Ryu; committed 5/13/97:
server/create_obj.c:
*Adding a garbage collection registration routine.
There are three types: GC_LOCAL_ONLY_REG, GC_TS_PROPAGATION_REG and
GC_REFERENCE_LISTING_REG, and the second one is default.
* Attributes for the newly created object can be sent along with
the CREATE-OBJECT command.
lib/psrv/dsrobject.c: Garbage collector change:
Used to immediately propagate last referenceable
timestamp when garbage collecting. Now we modify it, and do
the propagation during a separate refreshment phase.
lib/pfs/del_vlink.c (swa & Sung):
Simplified implementation (use FIND_FNCTN_LIST macro).
Simpler interface to gc_delete_backlink() -- didn't need all the info.
gc_delete_backlink() uses p_get_dir() instead of rd_vdir();
improvement in robustness.
bug fix: (had been reading into an uninitialized directory
structure; caused sporadic problems)
user/vmkdir.c:
Additional options so the VMKDIR user command will set the
garbage collection registration type for newly created objects.
Done by Sung Wook Ryu with Steve Augart:
lib/pfs/mk_vdir.c:
* Added p_mk_nobj_gc() interface. subsumes functionality of
p_mk_nobj() interface. We are making a unified piece of code that can have
garbage-collection conditionally compiled on or off, changing only a little
bit of the code. This will improve maintainability. Before, we had a
mk_vdir_gc() entirely separate from the other mk_vdir().
* Error handling improved; perrno no longer reset to zero on success.
ed_obj_info.c:
* p_ob_add_atrs() now an exported interface for the rest of the server.
* gc_read_object() not needed; functionality subsumed into dsrobject, with
new DRO_DO_NOT_PROPAGATE flag.
* Changes to garbage collection propagation algorithm.
* Little functions replaced by calls to FIND_FNCTN_LIST() macro.
6/4/97: Steve Augart: Fixed bug; Made call to p_mk_nobj() work
even when compiling with GC on.
Changes done & committed by Steve Augart and Nader Salehi, 6/10/97
User visible:
Fixed nasty SYSV-specific problem in lib/pfs/pmap_cache.c.
This meant that Solaris users could not retrieve files with
pfs_open().
Programmer-visible:
Added feature tests to pmachine.h, or moved them there from
lib/pfs/pmap_cache.c:
DO_NOT_HAVE_WAITPID
TURNING_OFF_SIGCLD_MEANS_PARENT_PROCESS_CAN_NOT_WAIT_FOR_CHILDREN
SYSV_DERIVED_OPERATING_SYSTEM
*Changes to Prospero committed 7/1/97 (Steve Augart):
(Committing all changes that had been made in the
/nfs/gost/products/prospero/working/sun4 development directory):
**.gdbinit:
Added 'logardp' user command to top-level GDB.
**doc/library.tex:
Upped revision to 0.5.4 of 6/1/97
Updated documentation of macros. Added docs. for PREPEND_ITEM,
INSERT_NEW_ITEM1_BEFORE_ITEM2,
INSERT_NEW_ITEM1_AFTER_ITEM2_IN_LIST,
EXTRACT_HEAD_LAST_ITEM. Removed obsolete CONCATENATE_LISTS();
now it's APPEND_LISTS().
**doc/protocol.tex:
Minor formatting improvements. Removed silly footnote.
**include/atnames_parse.h, and others:
Old ZERO macro decommissioned; now it's GL_ZERO().
**include/pfs.h
Added prototype for p_bst_realloc()
**lib/pfs/opentcp.c:
Removed extern declaration that didn't need to be there.
**lib/pfs/p_get_dir.c:
Might have fixed a bug with filters being initialized properly.
Greatly improved filter documentation.
**lib/pfs/vlcont2bsta.c:
p_bst_realloc() is now a published interface. Has the same calling
signature as the standard C library realloc() function.
**server/create_object.c:
Added an implementation of the ADD option to CREATE-OBJECT
**server/dirsrv.c:
Fixed error message when SIGCONTEXT_LACKS_SC_PC is defined.
**user/p__vcd.c:
Improved error messages
**user/vcache/ftp.c
Minor code cleanup. Removed EXTERN we didn't need.
* Sung and Steve, 7/7/97
** include/pfs.h:
Added P_TKFREE() and P_TKLFREE() macros.
*Changes to Prospero consolidated 7/5/97 (Steve Augart):
(Committing all changes that had been made in the
/nari/prospero-ardp-v1-development directory):
In general, these are the changes that we made for ARDP V1
development. However, other changes were also made in this batch.
** .cvsignore (in all directories)
Added *.flc to the files we ignore.
**include/pfs_utils.h: Obsolete, removed
Everything in include/pfs_utils.h is now somewhere else. This
file is no longer referenced in the Prospero code.
** include/pserver.h.dist: PSRV_HOST turned on by default (this was an inconsistency)
* Change committed 7/8/97 (?)
** lib/pfs/atr_build.c: vatbuild has new prototype;
added GNU parenthesization to vatbuild()
*Checked in 7/8/97. Author: Dongho Kim
[checked in by Steve Augart]
**lib/ardp/pmachine.h
Dongho fixed a typo in pmachine.h; it had meant you could not
clean-compile on SysV systems. This was great.
*Changes checked in 7/10/97. Author: Eul Gyu Im
[checkin helped by Steve Augart]. (About 1500 lines of new code.)
**Note to ISI Prospero users:
The changes checked in are mostly not parts of the production
Prospero system yet.
These changes should not hurt anything you do; if they do, please
contact me <[email protected]> immediately. We are checking them in so
that we keep our code base consistent, and so that Gyu and I can do
work on promoting the MD5 object identifiers to be supported parts
of the production system.
**Summary:
***HTTP:
Gyu's HTTP documentation had been accidentally left out of previous
committed sources. They are now checked in. See "doc/http".
***Replication:
Gyu wrote a system using MD5
checksums as an alternative OBJECT identifier. This is enabled
with MD5_CHECKSUM_AS_OBJ_ID. This supports a system of replication
enabled with SUPPORT_REPLICA.
There were additional changes made under the #ifdef
SUPPORT_REPLICA_V1. Ignore them.
**Replication status:
The current replica system supports P_OBJECTs as replicas.
Updates (including deletions) are propagated. However, the replica
list is currently stored in the objects. Each object has the same
list of replicas (including itself).
Currently, each directory link only points to one of the replicas
of an object; the next stage in the research is to make the links point to
all of them.
** Files Modified
Changes, Makefile, Makefile.boilerplate, include/atnames_parse.h,
include/pfs.h, lib/pfs/Makefile, lib/pfs/Makefile.dependencies,
lib/pfs/equal_atrs.c, lib/pfs/in_line.c, lib/pfs/in_link.c,
lib/pfs/opentcp.c, lib/pfs/out_link.c, lib/pfs/rd_vdir.c,
lib/pfs/vl_comp.c, lib/pfs/vl_insert.c, lib/pfs/vl_insert_ob.c,
lib/pfs/vlalloc.c, lib/psrv/dsrobject.c, lib/psrv/dswobject.c,
lib/psrv/http_gw/Makefile.dependencies, lib/psrv/http_gw/ht_get.c,
server/Makefile, server/Makefile.dependencies, server/delete_link.c,
server/dirsrv.c, server/dirsrv.h, server/dirsrv_v1.c,
server/ed_obj_info.c, server/list.c, server/newlist.c, user/Makefile,
user/aq_query.c, user/vls.c
**Files Added
doc/http/header-fields.txt, doc/http/http_gw.txt,
lib/pfs/pget_at_new.c, lib/replica/Makefile,
lib/replica/Makefile.dependencies, lib/replica/TODO.replication,
lib/replica/get_replicas_list.c, lib/replica/md5-int.h,
lib/replica/md5.c, lib/replica/mk_replica.c, lib/replica/preplica.h,
lib/replica/read_replicas.c, lib/replica/rep_util.c,
lib/replica/replica.c, lib/replica/rsa-md5.h,
lib/replica/srv_chk_obj_info.c, lib/replica/srv_chk_rep.c,
lib/replica/srv_cmt_rep.c, lib/replica/write_replicas.c,
lib/replica/quorum/ABOUT_THIS_DIRECTORY,
lib/replica/quorum/Makefile.dependencies,
lib/replica/quorum/Makefile.inc, lib/replica/quorum/quorum_read.c,
lib/replica/rowa/ABOUT_THIS_DIRECTORY, lib/replica/rowa/Makefile.inc,
lib/replica/rowa/rowa_write_replicas.c, server/create_replica.c,
user/mkreplica.c
**Major Replication and MD5 Changes
***New library "libreplica.a" (lib/replica)
Includes commands used by the MD5 object ID.
***New user command "mkreplica"
***lib/pfs/pget_at_new.c: pget_at() for server; handles remote and local cases.
pget_at_new() will use pget_at() for remote objects and dsrobject()
for local ones. This will go into lib/psrv/ at a later code cleanup.
***Server DELETE_LINK command propagates to replicas.
***New Protocol commands
Server has three new protocol commands added to it:
CREATE-REPLICA, CHECK-OBJECT-INFO-EDIT, COMMIT-OBJECT-INFO-EDIT
***server/ed_obj_info.c:
srv_edit_object_info_sub() routine does replication stuff and has
MD5 checksum support.
**Supporting Replication and MD5 Changes
Makefile.boilerplate now doesn't have paired USE_XXX_LIB/XXX_LIB
variables. This is an improvement; Steve will later confirm that
the documentation in the installation instructions are consistent
with it, and that there aren't leftovers of the old
USE_XXX... system around.
The PATTRIB structure includes a special replica_info member, for
the REPLICAS attribute.
***vl_equal_atrs():
New function to compare links, but ignoring TARGET and NAME fields.
This is for comparing LINK-valued attributes.
***in_line():
Vast usability improvement. Blank lines no longer generate an error.
***lib/pfs/opentcp.c (and others): Helpful comments added
***lib/pfs/rd_vdir.c [TO BE DONE]:
Still checks just magic no; needs to recognize full-blown object
IDs.
***lib/psrv/dswobject.c: No live code modifications.
***server/list.c: No live code modifications.
***user/vls.c: Replicas handled specially as attributes.
***lib/psrv/http_gw/ht_get.c: Comments were improved.
***Makefiles:
Entries added for new files (obviously:))
***Changes:
Updated top-level Changes file with all this stuff.
*Another change committed 7/10/97: register/unregister
**(1) Now assume that users already have the Prospero executable path set up appropriately; do not try to fix it for them.
**(2) unregister and register from misc to user directory
* Change committed 7/10/97: Configuration of replication and md5 ids.
** Moved MD5_CHECKSUM_AS_OBJ_ID and SUPPORT_REPLICA from
predefined in include/pfs.h to an option in Makefile.config.dist.
*Another 7/10/97 Change
server/create_replica.c: Added SUPPORT_REPLICA configuration #ifdef
* Checked in 7/10/97. Authors: Steve Augart and Katia Obraczka
** Summary
This Check-In, of the /nari/prospero-ardp-v1-development directory,
provides:
*** The new interface to the ARDP security context, including documentation.
*** Additional ARDP documentation.
*** Code cleanup.
**Major Functionality
A major change happened to the ARDP security context
user interface. The INTEGRITY_CRC and the LABELS_CLASS_OF_SERVICE
security context types now work again (after the change) and have been
tested. The ARDP library's basic functionality has been tested as
well.
***Members added to RREQ structure.
***Dirsrv option (set in debugger): int p_dirsrv_debug_show_class_of_service_tags_received = 0;
***ARDP function return type changed to 'enum ardp_errcode'.
This allows symbolic display of error codes.
***Declarations for missing variables and functions in ardp.h;
Declarations are sorted alphabetically too.
***(const char *) cast bug
Appear to have discovered a surreal little bug in GCC under SOLARIS.
See APPARENT_BUG_IN_CAST_TO_CONST_CHAR_STAR in <ardp.h>
***gostlib.h got GL_UNUSED_C_ARGUMENT, NEVER_RETURNS, and NO_SIDE_EFFECTS macros.
***Converted ARDP to use new u_int32_t typedefs, etc.
***Cut down executable size for the ARDP library
See (*ardp_accept)() variable for how we did this.
***HANDLE_BAD_VERSION (ardp)
bugs fixed in version compatibility
***Most warning flags tested. Code cleanup.
See gostlib/Makefile.config.compiler-warning-flags
***Almost all interfaces for ARDP security context now start with ARDP_SEC or ARDP__SEC or ardp_sec or ardp__sec.
***ARDP security context code is properly #ifdef'd, so any context type can be turned off.
***Improved error handling in ARDP's 'struct timeval' manipulation routines.
See lib/ardp/time.c
***Nearly hopeless cases
A couple of files or directories have enough problems that I gave up on
cleaning them up for a while.
****user/vcache/ftp.c
****user/menu
****user/psession.c
****lib/pfs/p__req.c
****lib/psrv/wais_gw
****user/vfinger.c won't work in the HPUX support.
**Minor changes:
***gostlib/Makefile.config.gostlib-dist is updated.
See gostlib/Makefile.config.compiler-warning-flags
***.gdbinit changed again; ignore this if you have your own.
***Changes file updated, as usual
***Top-level Makefile.boilerplate
**** has additional portability features recommended in the GCC manual.
****Additional comments in Makefile.boilerplate.
***.cvsignore files
Now ignore the *.flc font-lock caches that EMACS generates.
***gostlib.h
Got qsscanf() prototype added.
***Unused variables deleted in a number of places (including gostlib/in_readc.c)
***gostlib/list_macros.h:INSERT_NEW_ITEM1_BEFORE_ITEM2_IN_LIST() macro added
***Prototypes
****Got rid of many explicit 'extern' declarations in .c files.
****Many functions are now fully prototyped instead of having old-style (empty parentheses) prototypes.
****'const' keyword added to many many prototypes in Prospero.
****Missing prototypes added for functions in the PFS library.
***Moved function name to the head of the line in more places
This is part of moving our older stuff to be more in compliance with
our coding conventions. This makes it possible to more easily use
various searching tools to find functions by name.
***The old ZERO and GL_ZERO() macros gone; using memset(foo, 0, bar)
***p_mk_nobj_gc() interface added to PFS library.
***Many
**Files modified:
.cvsignore .gdbinit Changes INSTALLATION Makefile Makefile.boilerplate
TAGS app/.cvsignore gostlib/.cvsignore gostlib/gostlib.h
gostlib/in_readc.c gostlib/list_macros.h gostlib/p_config.c
gostlib/pconfig.h gostlib/stcopy.c include/.cvsignore
include/atnames_parse.h include/pfs.h include/pparse.h include/psrv.h
lib/ardp/.cvsignore lib/ardp/Makefile
lib/ardp/Makefile.config.ardp-dist lib/ardp/Makefile.dependencies
lib/ardp/ardp.h lib/ardp/ardp_abort.c lib/ardp/ardp_accept.c
lib/ardp/ardp_add2req.c lib/ardp/ardp_add2secdata4req.c
lib/ardp/ardp_breply.c lib/ardp/ardp_get_nxt.c lib/ardp/ardp_headers.c
lib/ardp/ardp_initialize.c lib/ardp/ardp_int.h lib/ardp/ardp_pr_actv.c
lib/ardp/ardp_reply.c lib/ardp/ardp_req_security.c
lib/ardp/ardp_respond.c lib/ardp/ardp_retriev.c
lib/ardp/ardp_rqalloc.c lib/ardp/ardp_sec.h lib/ardp/ardp_sectype.c
lib/ardp/ardp_send.c lib/ardp/ardp_showbuf.c lib/ardp/ardp_snd_pkt.c
lib/ardp/ardp_srv_ini.c lib/ardp/ardp_xmit.c
lib/ardp/class_of_service_tags.c lib/ardp/dispatch_svc.c
lib/ardp/dnscache_alloc.h lib/ardp/hostname2adr.c
lib/ardp/integrity_checksum.c lib/ardp/myhost.c lib/ardp/pmachine.h
lib/ardp/process_contexts.c lib/ardp/time.c lib/ardp/v1-rewrites
lib/filters/.cvsignore lib/filters/nl_apply_fil.c lib/pfs/.cvsignore
lib/pfs/add_vlink.c lib/pfs/asntotime.c lib/pfs/atr_lookup.c
lib/pfs/copyfile.c lib/pfs/del_vlink.c lib/pfs/equal_atrs.c
lib/pfs/fl_insert.c lib/pfs/get_acl.c lib/pfs/heuristic_oi.c
lib/pfs/in_acl.c lib/pfs/in_atrs.c lib/pfs/in_filter.c lib/pfs/in_id.c
lib/pfs/in_select.c lib/pfs/mk_vdir.c lib/pfs/mkdirs.c
lib/pfs/modify_acl.c lib/pfs/ob_atput.c lib/pfs/opentcp.c
lib/pfs/out_acl.c lib/pfs/p__req.c lib/pfs/p_get_dir.c
lib/pfs/p_initialize.c lib/pfs/p_uln_index.c lib/pfs/pfs_enable.c
lib/pfs/pset_at.c lib/pfs/rd_vdir.c lib/pfs/rd_vlink.c
lib/pfs/re_comp_exec.c lib/pfs/readheader.c lib/pfs/socket.c
lib/pfs/strccmp.c lib/pfs/ul_insert.c lib/pfs/vfsetenv.c
lib/pfs/vl_attribute.c lib/pfs/vl_attributea.c lib/pfs/vl_priority_q.c
lib/pfs/vqfprintf.c lib/pfs/wcmatch.c lib/psrv/.cvsignore
lib/psrv/Makefile lib/psrv/atnames_parse.c lib/psrv/change_acl.c
lib/psrv/check_acl.c lib/psrv/check_nfs.c lib/psrv/dswobject.c
lib/psrv/error_reply.c lib/psrv/flocks.c
lib/psrv/hsoname_aliases.conf.c lib/psrv/magic.c lib/psrv/named_acl.c
lib/psrv/p__flocks.h lib/psrv/plog.c lib/psrv/read_native_object.c
lib/psrv/read_shadow_entry.c lib/psrv/gopher_gw/goph_gw_dsdb.c
lib/psrv/host/collect_info.c lib/psrv/host/collect_info.h
lib/psrv/host/host_dsdb.c lib/psrv/wais_gw/.cvsignore
server/.cvsignore server/ardp_additional.c server/authenticate.c
server/compiled_on.c server/cvt_v1_ltype.c server/dirsrv.c
server/dirsrv.h server/dirsrv_v1.c server/ed_obj_info.c
server/get_obj_info.c server/list.c server/newlist.c
server/restart_srv.c server/shadowcvt.c
server/p_cvt_database_v5tov6/.cvsignore