ascii-chat 0.11.33
Video chat in your terminal
Loading...
Searching...
No Matches
url.h
Go to the documentation of this file.
1#pragma once
2
49#include <stdint.h>
50#include <stdbool.h>
51#include "../asciichat_errno.h"
52
57typedef struct {
58 char *scheme;
59 char *userinfo;
60 char *host;
61 char *ipv6;
62 int port;
63 char *path;
65
90bool url_is_valid(const char *url);
91
134asciichat_error_t url_parse(const char *url, url_parts_t *parts_out);
135
154void url_parts_destroy(url_parts_t *parts);
155
176bool url_is_websocket_scheme(const char *scheme);
177
199bool url_is_websocket(const char *url);
200
219bool url_looks_like_websocket(const char *url);
220
241bool url_is_tcp_scheme(const char *scheme);
242
264bool url_is_tcp(const char *url);
265
284bool url_looks_like_tcp(const char *url);
285
asciichat_error_t
Error and exit codes - unified status values (0-255)
Definition error_codes.h:49
bool url_looks_like_tcp(const char *url)
Quick check if a string is a TCP URL.
Definition url.c:357
void url_parts_destroy(url_parts_t *parts)
Free parsed URL components.
Definition url.c:281
bool url_is_tcp_scheme(const char *scheme)
Check if URL scheme is TCP.
Definition url.c:332
bool url_is_valid(const char *url)
Fast URL validation using production-grade regex (HTTP/HTTPS/WebSocket/TCP)
Definition url.c:81
bool url_is_websocket_scheme(const char *scheme)
Check if URL scheme is WebSocket (ws or wss)
Definition url.c:297
bool url_is_websocket(const char *url)
Check if a URL string is a valid WebSocket URL.
Definition url.c:307
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:342
bool url_looks_like_websocket(const char *url)
Quick check if a string is a WebSocket URL.
Definition url.c:322
ClangTool/LibTooling compatibility shim for stdbool.h.
Structure containing parsed URL components.
Definition url.h:57
char * userinfo
Optional userinfo (user:pass) - may be NULL (allocated if present)
Definition url.h:59
char * path
Extracted path, query, and fragment (allocated if present, may be NULL)
Definition url.h:63
char * ipv6
IPv6 address if host is bracketed IPv6 - may be NULL (allocated if present)
Definition url.h:61
char * scheme
Extracted scheme: "http" or "https" (allocated)
Definition url.h:58
char * host
Extracted hostname or IP address (allocated)
Definition url.h:60
int port
Extracted port number (0 if not specified)
Definition url.h:62