Commit Graph

5 Commits

Author SHA1 Message Date
Ariel Abreu
efee6f689e
Add license headers everywhere and fix small issues 2021-04-22 09:18:09 -04:00
Ariel Abreu
96434fd2f1
Implement bundles and property list parsing
As noted in `plist.m`, the XML parsing implemented here is NOT robust, but it's good enough for the vast majority of files.

This commit also adds many new String methods. It also fixes an issue where syslogd would get stuck trying to send a message to itself due to our logging.
2021-04-21 12:02:02 -04:00
Ariel Abreu
675120a197
Initial rewrite commit
This commit is the first in the rewrite of libxpc. It implements the basic API (that is, the XPC object system and the most basic objects and collections). It also adds some tests for the basic API.

The current test suite uses ctest as the testing framework, but for future tests (such as for connections), it may be necessary to find something a little more robust (or roll our own).

Future commits will implement the rewritten connection system based on top of libdispatch's private Mach API, which is made specifically for this purpose (it even has certain methods marked as `4libxpc`).
2021-03-27 15:14:08 -04:00
Ariel Abreu
b7cbe133c8
Implement os_system_version_get_current_version 2021-02-22 23:07:51 -05:00
Ariel Abreu
8596b6c39a
Restrucure project and rewrite serialization logic
This commit reorganizes the project to be a little more... organized ;)

It's a matter of preference, but I personally think separating sources and headers is more orderly. Various unnecessary sources that we inherited from NextBSD have also been removed.

We now use an exported symbols list to make our exported symbols match Apple's official libxpc (with the exception of those that we haven't stubbed/defined yet).

And finally, the {de,}serialization logic has been completely rewritten to match Apple's serialization format. The only possible issue there are doubles, which like the old code, we assume the double format is identical between the source machine and the receiving machine (which is probably a safe assumption, but should be avoided if possible).

Oh, and it also various little fixes, the most important of which is that creating a non-empty dictionary now works properly (we were previously doubling the entry count).
2021-01-07 00:19:52 -05:00