Skip to content

Merge for RMDoor#8

Open
richorr wants to merge 14 commits intorickparrish:masterfrom
richorr:master
Open

Merge for RMDoor#8
richorr wants to merge 14 commits intorickparrish:masterfrom
richorr:master

Conversation

@richorr
Copy link
Copy Markdown
Contributor

@richorr richorr commented May 4, 2025

No description provided.

@rickparrish
Copy link
Copy Markdown
Owner

Thanks for the updates. A few requests before merging:

  • There's a conflict to resolve
  • .gitignore change should be reverted (.o and .ppu files should go into an output directory, so there should never be any in the source directory that need ignoring)
  • ansi.pas change should be reverted
  • comm.pas change should be reverted (REEPORT is an indicator for me (Ree) that something needs to be ported. Basically after building an EXE I check for "REEPORT" in the binary, and if it's there, I know a function that I haven't bothered to port yet is being called, so now I need to port it)
  • door.pas
    • TDoorDropInfo variables/flags
      • Access labeled with 'F' but not assigned to by ReadPhenomDrop. Seems like SecurityLevel should be read into Access, then SecurityLevel could be dropped
      • Alias labeled with 'F' but not assigned. Comment related to assigning RealName says line 4 is the Username, so it seems like that should be assigned to Alias (unless line 4 does in fact contain the real name, in which case the comment should be updated and the F should be removed from Alias)
      • BBSName was added - is it really needed? If so, please update the other dropfile functions to assign this value (when the dropfile contains it), and then add the relevant letter to the comment
      • ComNum is associated with a comment that indicates the phenom dropfile does not contain the com number, and a workaround is used to append it to the end of the file. This would create a non-standard drop format and would break on a system where the com number isn't appended, so I think ComNum should be marked as not handled by the phenom dropfile, and the value should be passed to the door a different way
      • Columns: same comment as BBSName
      • Domain: same comment as BBSName. If keeping, should be more clear (ie BBSDomain)
      • Directory: same comment as BBSName. If keeping, should be more clear (ie BBSDirectory)
      • Emulation: not read from drop file, hardcoded to ANSI, should not have an F in the comment
      • LoadableFonts: same comment as BBSName
      • OSType: same comment as BBSName
      • Rows: same comment as BBSName
      • Sysop: same comment as BBSName
      • SecurityLevel: As mentioned in Access, I think this is redundant and should be removed
      • XtendPalette: same comment as BBSName
    • Revert whitespace change on line 676
  • dropfiles.pas
    • The comment with the workaround for passing the socket sounds like instructions that apply to a sysop installing a door, not a programmer writing a door, so I don't think it's relevant to include there.

richorr and others added 6 commits March 17, 2026 18:04
All write-path Open* functions now acquire an exclusive advisory lock
(fpfcntl F_SetLk/F_WRLCK on Unix; FileMode fmShareExclusive on Windows)
after a successful open. If the lock is unavailable the file is closed
and retried within the existing timeout loop. Locks release on Close().

LockFile and UnLockFile replaced their Halt stubs with real fpfcntl
implementations (F_SetLkW blocking lock / F_UNLCK unlock).

Fixes concurrent-write race conditions in multi-user BBS deployments.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
cint is defined by BaseUnix which is Unix-only, but the function
signature was unconditional. On Windows the parameter is never
used (function returns true immediately; exclusive access is
enforced at open time via fmShareExclusive). Use LongWord on
Windows to match the THandle type returned by FileRec/TextRec.Handle.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants