ascii-chat
Binary v0.15.83-53-gb711d8720
Library lib/v0.3.2-701-gb711d8720
Video chat in your terminal
Loading...
Searching...
No Matches
url.h
Go to the documentation of this file.
1#pragma once
2
48
49#include <stdint.h>
50#include <stdbool.h>
51#include "../asciichat_errno.h"
52
58asciichat_error_t hostname_to_ascii(const char *hostname, char *output, size_t capacity);
59
65typedef struct {
66 char *scheme;
67 char *userinfo;
68 char *host;
69 char *ipv6;
70 int port;
71 char *path;
73
98bool url_is_valid(const char *url);
99
142asciichat_error_t url_parse(const char *url, url_parts_t *parts_out);
143
162void url_parts_destroy(url_parts_t *parts);
163
184bool url_is_websocket_scheme(const char *scheme);
185
207bool url_is_websocket(const char *url);
208
227bool url_looks_like_websocket(const char *url);
228
249bool url_is_tcp_scheme(const char *scheme);
250
272bool url_is_tcp(const char *url);
273
292bool url_looks_like_tcp(const char *url);
293
296void url_redact_diagnostic(char *text, bool truncated);
297
Synchronized per-thread pending error stacks and value snapshots. SET_ERRNO pushes,...
asciichat_error_t
Error and exit codes - unified status values (0-255).
Definition error_codes.h:44
bool url_looks_like_tcp(const char *url)
Quick check if a string is a TCP URL.
Definition url.c:380
void url_parts_destroy(url_parts_t *parts)
Free parsed URL components.
Definition url.c:304
bool url_is_tcp_scheme(const char *scheme)
Check if URL scheme is TCP.
Definition url.c:355
bool url_is_valid(const char *url)
URL validation using shared parsing and ICU hostname checks.
Definition url.c:159
bool url_is_websocket_scheme(const char *scheme)
Check if URL scheme is WebSocket (ws or wss).
Definition url.c:320
bool url_is_websocket(const char *url)
Check if a URL string is a valid WebSocket URL.
Definition url.c:330
asciichat_error_t url_parse(const char *url, url_parts_t *parts_out)
Parse HTTP(S), WebSocket, and TCP URL into components.
Definition url.c:166
bool url_is_tcp(const char *url)
Check if a URL string is a valid TCP URL.
Definition url.c:365
bool url_looks_like_websocket(const char *url)
Quick check if a string is a WebSocket URL.
Definition url.c:345
void url_redact_diagnostic(char *text, bool truncated)
Definition url.c:31
asciichat_error_t hostname_to_ascii(const char *hostname, char *output, size_t capacity)
Definition url.c:103
Structure containing parsed URL components.
Definition url.h:65
char * userinfo
Optional userinfo (user:pass) - may be NULL (allocated if present).
Definition url.h:67
char * path
Extracted path, query, and fragment (allocated if present, may be NULL).
Definition url.h:71
char * ipv6
IPv6 address if host is bracketed IPv6 - may be NULL (allocated if present).
Definition url.h:69
char * scheme
Extracted scheme: "http" or "https" (allocated).
Definition url.h:66
char * host
Canonical ASCII hostname or IP address (allocated).
Definition url.h:68
int port
Extracted port number (0 if not specified).
Definition url.h:70