POSA_LEAKSMS/firmware/common/net.h
유창욱 90f121e14c chore: import codebase with security hardening
SHT30 온습도 모니터링 시스템 전체 소스(서버 PHP, STM32 펌웨어, SQL, 테스트).
전체 코드리뷰에서 도출된 보안 하드닝 10건 반영:
- 요청 서명 HMAC-SHA256 전환(펌웨어 sig.c/서버 config.php/호스트 패리티 동시)
- 재전송 방어 + 기본 API_KEY fail-closed + 디바이스 문자열 정제(api/sensor_data.php)
- 오프라인 SMS 중복 발송 경합 제거(cron_heartbeat.php, 원자적 선점)
- CSV 수식 주입 방지(monthly_report.php), 감사로그 회전 락(retention_cleanup.php)
- 브루트포스 카운터 원자화(login.php), 예시 TOTP 비밀키 무효화, 마이그레이션 멱등화

_backup/(하드코딩 실 비밀값 포함)·config.local.php·런타임 상태는 .gitignore 제외.
2026-06-20 09:37:40 +09:00

27 lines
979 B
C

/* =============================================================================
* net.h - 이더넷/LwIP 네트워크 (RPi WiFi 대응 -> 유선 LAN8720 RMII)
*
* 구현(net.c + ethernetif.c): STM32 ETH MAC + LAN8720 PHY(RMII) + LwIP.
* DHCP 우선(APP_NET_USE_DHCP), 실패 시 static fallback(app_config.h).
* FreeRTOS 환경에서 LwIP tcpip 스레드를 사용한다.
* ===========================================================================*/
#ifndef NET_H
#define NET_H
#include <stdint.h>
typedef enum { NET_DOWN = 0, NET_UP = 1 } net_status_t;
/* LwIP + ETH + PHY 초기화 (부팅 시 1회). */
void net_init(void);
/* 링크 업 + IP 확보까지 대기. 0 성공, 음수 타임아웃. */
int net_wait_up(uint32_t timeout_ms);
/* 현재 네트워크 상태. */
net_status_t net_status(void);
/* 디버그용: 현재 IP 를 점-십진 문자열로 buf 에 기록(없으면 "0.0.0.0"). */
void net_ip_str(char *buf, uint32_t buflen);
#endif /* NET_H */