Claude e87fa490df Fix dangling pointer bug in URL storage
The previous implementation stored parsed_url which contained pointers
into the user's string literal that could be invalidated. This fix:

1. Allocates a copy of the URL string (url_buffer)
2. Parses the copy so all pointers reference owned memory
3. Removes redundant domain and path fields from HTTP_ClientConn
4. Updates save_cookies to use url.authority.host.text and url.path
5. Updates cleanup code to free url_buffer instead of domain.ptr

This ensures the URL and all its components remain valid for the
lifetime of the connection.
2025-11-23 21:26:59 +00:00
2025-11-21 21:10:54 +01:00
2025-11-21 12:53:03 +01:00
2025-11-21 12:53:03 +01:00

cHTTP

This is an HTTP library for C, featuring an HTTP(S) server, HTTP(S) client, and much more!

Contributing

Contributions are welcome! The following are some notes on how to work with the codebase. Don't worry if you get something wrong. I will remind you.

The source code in the src/ directory is intended to be be amalgamated into a single file before compilation. The amalgamation is not only intended as a distribution method, but also as easy-access documentation, and therefore need to be readable. For this reasons:

  1. You never need need to include other cHTTP source files
  2. All inclusions of third-party headers are to be placed inside src/includes.h
  3. All files must start with a single empty line, unless they start with an overview comment of the file, in which case they must have no empty lines at the beginning of the file.
  4. All files must end with a single empty line.
S
Description
Fully-featured HTTP(S) client and server in a single C file
Readme MIT
1.3 MiB
Languages
C 98.9%
Python 0.9%
Makefile 0.2%