[PR #325] [MERGED] Core: UnixSocket (AF_UNIX) implementation #313

Closed
opened 2026-05-05 03:45:29 -06:00 by gitea-mirror · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/ultimatepp/ultimatepp/pull/325
Author: @ismail-yilmaz
Created: 11/30/2025
Status: Merged
Merged: 12/6/2025
Merged by: @mirek-fidler

Base: masterHead: unixsocket


📝 Commits (6)

  • 703fa45 Core: UnixSocket (AF_UNIX) implementation
  • 0fc7e48 Core: UnixSocket, GetPeerPid() refactored, docs updated
  • 68e27dd Core: TcpSocket renamed as Socket and added unix domain socket support.
  • f068981 Core: UnixSocket entry removed from API docs.
  • 0b93ce6 Core: Socket/SocketWaitEvent API docs cosmetics.
  • 868ca70 Core: Socket cosmetics

📊 Changes

12 files changed (+537 additions, -184 deletions)

View changed files

autotest/UnixSocket/UnixSocket.cpp (+51 -0)
autotest/UnixSocket/UnixSocket.upp (+9 -0)
reference/UnixSocketClient/UnixSocketClient.cpp (+28 -0)
reference/UnixSocketClient/UnixSocketClient.upp (+11 -0)
reference/UnixSocketServer/UnixSocketServer.cpp (+33 -0)
reference/UnixSocketServer/UnixSocketServer.upp (+11 -0)
📝 uppsrc/Core/Core.h (+1 -0)
📝 uppsrc/Core/Inet.h (+28 -13)
📝 uppsrc/Core/SSL/InitExit.cpp (+2 -2)
📝 uppsrc/Core/Socket.cpp (+205 -69)
📝 uppsrc/Core/src.tpp/SocketWaitEvent_en-us.tpp (+4 -4)
📝 uppsrc/Core/src.tpp/Socket_en-us.tpp (+154 -96)

📄 Description

UnixSocket (AF_UNIX) implementation

Overview

This PR adds UnixSocket class for Unix domain socket (AF_UNIX) support, complementing existing TcpSocket.

Features

  • Filesystem and abstract sockets (Linux)
  • Peer process identification via PID (Linux/macOS/FreeBSD)
  • Full TcpSocket I/O compatibility
  • Cross-platform POSIX support

Benefits

  • Local IPC performance over TCP
  • Process authentication via peer PID
  • Clean API with full TcpSocket feature set
  • No breaking changes to existing code

Changes

Modified Files

  • Core/Inet.h - Added friend class UnixSocket to TcpSocket
  • Core/Core.h - Added header include line

New Files

  • Core/UnixSocket.h- UnixSocket class declaration
  • Core/UnixSocket.cpp - Implementation

New Examples

  • reference/UnixSocketServer - Demo server application (replicates SocketServer example)
  • reference/UnixSocketClient - Demo client application (replicates SocketClient example)

Unit tests

  • autotest/UnixSocket - Tests server/client (local IPC) communication (connect, listen, accept)

Please review.


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/ultimatepp/ultimatepp/pull/325 **Author:** [@ismail-yilmaz](https://github.com/ismail-yilmaz) **Created:** 11/30/2025 **Status:** ✅ Merged **Merged:** 12/6/2025 **Merged by:** [@mirek-fidler](https://github.com/mirek-fidler) **Base:** `master` ← **Head:** `unixsocket` --- ### 📝 Commits (6) - [`703fa45`](https://github.com/ultimatepp/ultimatepp/commit/703fa4562a5977bddc232f03ffdb6fc87830077f) Core: UnixSocket (AF_UNIX) implementation - [`0fc7e48`](https://github.com/ultimatepp/ultimatepp/commit/0fc7e48643980a417c0e495c7ac73fa8cd9aa9df) Core: UnixSocket, GetPeerPid() refactored, docs updated - [`68e27dd`](https://github.com/ultimatepp/ultimatepp/commit/68e27dd864d5cfd4c618ed64c8c77a52be66bb7e) Core: TcpSocket renamed as Socket and added unix domain socket support. - [`f068981`](https://github.com/ultimatepp/ultimatepp/commit/f068981023ed90967399608c7b28a15e5c01822f) Core: UnixSocket entry removed from API docs. - [`0b93ce6`](https://github.com/ultimatepp/ultimatepp/commit/0b93ce63f59ff8d0280fe15d09f2c2824ab978f3) Core: Socket/SocketWaitEvent API docs cosmetics. - [`868ca70`](https://github.com/ultimatepp/ultimatepp/commit/868ca707fafcee19fae558056812cd0e81a7f47a) Core: Socket cosmetics ### 📊 Changes **12 files changed** (+537 additions, -184 deletions) <details> <summary>View changed files</summary> ➕ `autotest/UnixSocket/UnixSocket.cpp` (+51 -0) ➕ `autotest/UnixSocket/UnixSocket.upp` (+9 -0) ➕ `reference/UnixSocketClient/UnixSocketClient.cpp` (+28 -0) ➕ `reference/UnixSocketClient/UnixSocketClient.upp` (+11 -0) ➕ `reference/UnixSocketServer/UnixSocketServer.cpp` (+33 -0) ➕ `reference/UnixSocketServer/UnixSocketServer.upp` (+11 -0) 📝 `uppsrc/Core/Core.h` (+1 -0) 📝 `uppsrc/Core/Inet.h` (+28 -13) 📝 `uppsrc/Core/SSL/InitExit.cpp` (+2 -2) 📝 `uppsrc/Core/Socket.cpp` (+205 -69) 📝 `uppsrc/Core/src.tpp/SocketWaitEvent_en-us.tpp` (+4 -4) 📝 `uppsrc/Core/src.tpp/Socket_en-us.tpp` (+154 -96) </details> ### 📄 Description # **UnixSocket (AF_UNIX) implementation** ## **Overview** This PR adds `UnixSocket` class for Unix domain socket (AF_UNIX) support, complementing existing `TcpSocket`. ## **Features** - Filesystem and abstract sockets (Linux) - Peer process identification via PID (Linux/macOS/FreeBSD) - Full TcpSocket I/O compatibility - Cross-platform POSIX support ## **Benefits** - Local IPC performance over TCP - Process authentication via peer PID - Clean API with full TcpSocket feature set - No breaking changes to existing code ## **Changes** ### **Modified Files** - `Core/Inet.h` - Added `friend class UnixSocket` to TcpSocket - `Core/Core.h` - Added header include line ### **New Files** - `Core/UnixSocket.h`- UnixSocket class declaration - `Core/UnixSocket.cpp` - Implementation ### **New Examples** - `reference/UnixSocketServer` - Demo server application (replicates SocketServer example) - `reference/UnixSocketClient` - Demo client application (replicates SocketClient example) ### **Unit tests** - `autotest/UnixSocket` - Tests server/client (local IPC) communication (connect, listen, accept) Please review. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
gitea-mirror 2026-05-05 03:45:29 -06:00
Sign in to join this conversation.
No labels
pull-request
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: github-starred/ultimatepp#313
No description provided.