ap_max_connections documented in network.erl, but the ESP32 driver reads max_connections

Open Beginner friendly
#2,420 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 3 days

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
76/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
c, erlang
Domain
embedded-iot

Research direction

Read libs/avm_network/src/network.erl alongside src/platforms/esp32/components/avm_builtins/network_driver.c, then check doc/src/network-programming-guide.md for the documented AP option. Align the declared key, driver handling, and guide; preserve the suggested deprecated alias if appropriate. Done when the declared option controls the ESP32 station limit and the guide matches.

Written by the indexing model from the issue text.

Description

network.erl declares the AP option as {ap_max_connections, non_neg_integer()} (ap_max_connections_config(), part of ap_config_property()), but the ESP32 driver (network_driver.c) only reads max_connections. The network programming guide also documents {max_connections, ...}.

If you pass the key the spec declares, {ap_max_connections, 1}, the driver silently ignores it and the AP accepts the default 4 stations. If you pass the key that works, {max_connections, 1}, Dialyzer flags it as not matching ap_config().

Seen on release-0.7 and main:

  • libs/avm_network/src/network.erl:171: -type ap_max_connections_config() :: {ap_max_connections, non_neg_integer()}.
  • src/platforms/esp32/components/avm_builtins/network_driver.c:89, :1116: max_connections_atom = "max_connections"
  • doc/src/network-programming-guide.md:361: {max_connections, non_neg_integer()}

Suggested fix: make the type and the driver agree. The ap_ prefix matches the other AP options (ap_channel, ap_ssid_hidden, ap_sta_connected…), so the driver could accept ap_max_connections, keep max_connections as a deprecated alias, and update the guide.

Dominant language
Erlang
Stars
2.3k
Forks
171
Avg merge
4d 11h
Merged PRs (30d)
20

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from atomvm/AtomVM

All issues in atomvm/AtomVM

Similar issues

More Embedded & IoT issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.