Commit graph

7 commits

Author SHA1 Message Date
Yucong Sun
c914f03d66
Add local search and documentation guide for docs site (#1221)
* docs: add local full-text search and a contributor README

Add @easyops-cn/docusaurus-search-local to the Docusaurus site so the
docs get an offline search bar (index built at build time, no external
service). English and zh-CN pages are both indexed, and matched terms
are highlighted on the target page.

Add docs/README.md describing the Docusaurus setup, local dev/build
commands, search behavior, directory layout, and gotchas; exclude it
from the published site alongside CLAUDE.md. Point the root README's
docs/ entry at it.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE

* docs: remove dead framework leftovers, fix index generation, complete the nav

Delete the VitePress (.vitepress/) and Jekyll (_layouts/, css/) leftovers,
the one-shot migration scripts (fix_md_header.py, fix_seealso.py), and the
stale keywords.json snapshot; prune the matching .gitignore entries and
docusaurus exclude patterns.

Rewrite gen_index.py for Docusaurus: it emitted dead .html links and
legacy 'layout: doc' frontmatter, choked on non-markdown entries, and
dropped nested categories — regenerating an index would have broken it.
It now emits the extension-less links the site actually uses, links
nested category indexes (restoring apply/* on the zh-CN index), and
refuses to run on the docs root. Fix update_index.sh's copy-paste titles
(zh-CN efun/build were titled 'APPLY'), stop it clobbering the
hand-written lpc/index.md, and cover cli/. Regenerated indexes pick up
the missing driver/ffi-plan entry. add_missing_efuns.py now takes the
keywords.json path as an argument instead of requiring a stale copy.

Move CNAME and the Google site-verification file into static/ so they
actually reach the published build output.

Complete the sidebar: link the CLI category to cli/index and add the
missing portbind/symbol/generate_keywords pages, and expose the
previously orphaned stdlib section under Reference.

Promote onBrokenLinks to 'throw' now the build is warning-free, and drop
the empty Demo section from the landing page.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE

* docs: strip legacy 'layout: doc' frontmatter from all pages

Mechanical sweep removing the Jekyll-era 'layout: doc' line from every
doc page's frontmatter (Docusaurus ignores it), and the matching line
from the templates in docs/CLAUDE.md so new pages don't reintroduce it.
No content changes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TSzcESzU9947zkGzQ6SMmE

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-09 22:09:55 -04:00
gesslar
a63ebaecf8
Add TLS server socket support with certificate and key options (#1146)
* fix/issue-1072-server-tls

* adding test

* couple of shoring up

* Initialize socket options array to prevent reference count leaks

When a socket is created, the options array was not being explicitly
initialized, relying on zero-initialization from the struct constructor.
However, this could lead to issues when clearing the socket later.

This fix explicitly initializes all socket options to const0u when the
socket is created, ensuring proper initialization and cleanup of option
values, particularly for TLS cert/key strings which would otherwise leak
references.

Fixes the "Bad ref count for shared string" errors when using
socket_set_option() with TLS certificate and key options.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix TLS socket option string reference counting

The socket_set_option() function was using assign_svalue_no_free() to store
string options (cert/key/hostname), which incremented the ref count but left
the argument string on the stack unreferenced. This caused ref count leaks
when the socket was closed.

Changed to use make_shared_string() like the callback functions do, creating
a proper copy of the string with correct ref counting. The old value is freed
first, and then a new shared string is created and stored.

This fixes the "Bad ref count for shared string" errors in the TLS server
socket tests.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Use assign_svalue() instead of manual string handling for TLS options

The previous approach using make_shared_string() was incrementing the ref
count an extra time because the string was already a shared string from
the compile-time constant. This caused ref=3 instead of ref=2.

Changed to use assign_svalue() which properly manages ref counts: it frees
the old destination value and copies the source with correct ref counting.
When pop_3_elems() is called, the stack element is properly dereferenced.

This ensures balanced ref counting for TLS certificate and key options.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

* sockets: drop TLS option refs after use

* sockets: free ssl_ctx even when ssl missing

* sockets: clear blocked flag after TLS handshake

* sockets: fire write handler immediately after TLS handshake

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-12-04 12:33:51 -08:00
Yucong Sun
6d8698a09d setup vitepress 2023-12-02 20:00:33 -08:00
oiuv
77d1033add update docs & http.c 2020-11-17 19:46:52 -08:00
Yucong Sun
e50b80c6f7 Update socket_create doc with binary mode 2020-03-09 00:42:16 -07:00
Yucong Sun
5cc66380df
Fix document errors in process of converting to markdown (#477) 2019-10-19 01:03:49 -07:00
Yucong Sun
ca25f486fb Move to /docs folder 2018-12-30 17:03:14 -08:00
Renamed from doc/efun/sockets/socket_create.md (Browse further)