本文整理汇总了C++中os_strncpy函数的典型用法代码示例。如果您正苦于以下问题:C++ os_strncpy函数的具体用法?C++ os_strncpy怎么用?C++ os_strncpy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了os_strncpy函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: cgiWiFiConnect
// This cgi uses the routines above to connect to a specific access point with the
// given ESSID using the given password.
int ICACHE_FLASH_ATTR cgiWiFiConnect(HttpdConnData *connData) {
char essid[128];
char passwd[128];
if (connData->conn==NULL) return HTTPD_CGI_DONE;
int el = httpdFindArg(connData->getArgs, "essid", essid, sizeof(essid));
int pl = httpdFindArg(connData->getArgs, "passwd", passwd, sizeof(passwd));
if (el > 0 && pl >= 0) {
//Set to 0 if you want to disable the actual reconnecting bit
os_strncpy((char*)stconf.ssid, essid, 32);
os_strncpy((char*)stconf.password, passwd, 64);
DBG("Wifi try to connect to AP %s pw %s\n", essid, passwd);
//Schedule disconnect/connect
os_timer_disarm(&reassTimer);
os_timer_setfn(&reassTimer, reassTimerCb, NULL);
os_timer_arm(&reassTimer, 1000, 0); // 1 second for the response of this request to make it
jsonHeader(connData, 200);
} else {
jsonHeader(connData, 400);
httpdSend(connData, "Cannot parse ssid or password", -1);
}
return HTTPD_CGI_DONE;
}
开发者ID:seco,项目名称:esp-link,代码行数:28,代码来源:cgiwifi.c
示例2: otb_conf_store_sta_conf
uint8 ICACHE_FLASH_ATTR otb_conf_store_sta_conf(char *ssid, char *password, bool commit)
{
uint8 rc = OTB_CONF_RC_NOT_CHANGED;
otb_conf_struct *conf = &otb_conf_private;
bool update_rc;
DEBUG("CONF: otb_conf_store_sta_conf entry");
if (os_strncmp(conf->ssid, ssid, OTB_CONF_WIFI_SSID_MAX_LEN) ||
os_strncmp(conf->password, password, OTB_CONF_WIFI_PASSWORD_MAX_LEN))
{
INFO("CONF: New config: ssid, password");
rc = OTB_CONF_RC_CHANGED;
os_strncpy(conf->ssid, ssid, OTB_CONF_WIFI_SSID_MAX_LEN);
os_strncpy(conf->password, password, OTB_CONF_WIFI_PASSWORD_MAX_LEN);
if (commit)
{
INFO("CONF: Committing new config: ssid, password");
update_rc = otb_conf_update(conf);
if (!update_rc)
{
ERROR("CONF: Failed to update config");
rc = OTB_CONF_RC_ERROR;
}
}
}
DEBUG("CONF: otb_conf_store_sta_conf exit");
return rc;
}
开发者ID:piersfinlayson,项目名称:otb-iot,代码行数:31,代码来源:otb_conf.c
示例3: restoreFactorySettings
void restoreFactorySettings() {
wifi_station_disconnect();
wifi_set_opmode(0x3); //reset to STA+AP mode
struct softap_config apConfig;
wifi_softap_get_config(&apConfig);
os_strncpy((char*)apConfig.ssid, "smartswitch", 18);
apConfig.authmode = 0; //Disable security
wifi_softap_set_config(&apConfig);
struct station_config stconf;
os_strncpy((char*)stconf.ssid, "", 2);
os_strncpy((char*)stconf.password, "", 2);
wifi_station_set_config(&stconf);
OLED_CLS();
OLED_Print(2, 0, "RESET", 1);
os_printf("Reset completed. Restarting system...\n");
ioOutput(0, GPIO_OUTPUT1);
ioOutput(0, GPIO_OUTPUT2);
while (!GPIO_INPUT_GET(GPIO_BUTTON1)) { os_printf("."); };
while (!GPIO_INPUT_GET(GPIO_BUTTON2)) { os_printf("."); };
system_restart();
}
开发者ID:MbedTinkerer,项目名称:ESP8266-relay-board-firmware,代码行数:27,代码来源:io.c
示例4: cgiWiFiConnect
//This cgi uses the routines above to connect to a specific access point with the
//given ESSID using the given password.
int ICACHE_FLASH_ATTR cgiWiFiConnect(HttpdConnData *connData) {
char essid[128];
char passwd[128];
static ETSTimer reassTimer;
if (connData->conn==NULL) {
//Connection aborted. Clean up.
return HTTPD_CGI_DONE;
}
httpdFindArg(connData->postBuff, "essid", essid, sizeof(essid));
httpdFindArg(connData->postBuff, "passwd", passwd, sizeof(passwd));
os_strncpy((char*)stconf.ssid, essid, 32);
os_strncpy((char*)stconf.password, passwd, 64);
//Schedule disconnect/connect
os_timer_disarm(&reassTimer);
os_timer_setfn(&reassTimer, reassTimerCb, NULL);
#if 0
os_timer_arm(&reassTimer, 1000, 0);
httpdRedirect(connData, "connecting.html");
#else
httpdRedirect(connData, "/wifi");
#endif
return HTTPD_CGI_DONE;
}
开发者ID:Informatic,项目名称:esphttpd,代码行数:30,代码来源:cgiwifi.c
示例5: cgiWiFiConnect
//This cgi uses the routines above to connect to a specific access point with the
//given ESSID using the given password.
int ICACHE_FLASH_ATTR cgiWiFiConnect(HttpdConnData *connData) {
char essid[128];
char passwd[128];
static ETSTimer reassTimer;
if (connData->conn==NULL) {
//Connection aborted. Clean up.
return HTTPD_CGI_DONE;
}
httpdFindArg(connData->post->buff, "essid", essid, sizeof(essid));
httpdFindArg(connData->post->buff, "passwd", passwd, sizeof(passwd));
os_strncpy((char*)stconf.ssid, essid, 32);
os_strncpy((char*)stconf.password, passwd, 64);
os_printf("Try to connect to AP %s pw %s\n", essid, passwd);
//Schedule disconnect/connect
os_timer_disarm(&reassTimer);
os_timer_setfn(&reassTimer, reassTimerCb, NULL);
//Set to 0 if you want to disable the actual reconnecting bit
#ifdef DEMO_MODE
httpdRedirect(connData, "/wifi");
#else
os_timer_arm(&reassTimer, 500, 0);
httpdRedirect(connData, "connecting.html");
#endif
return HTTPD_CGI_DONE;
}
开发者ID:ESP32DE,项目名称:esp_enc28j60,代码行数:31,代码来源:cgiwifi.c
示例6: user_init
void user_init(void) {
char * ap = "SKUNKWILLEM";
char * pass = "00000000";
uart_init(BIT_RATE_115200, uart_receive, false);
system_set_os_print(1);
os_printf("\nUart init done... \n");
wifi_softap_get_config(&apconf);
memset(apconf.ssid, 0, 32);
memset(apconf.password, 0, 64);
os_strncpy((char*)apconf.ssid, ap, 32);
os_strncpy((char*)apconf.password, pass, 64);
apconf.authmode = AUTH_WPA_WPA2_PSK;
apconf.max_connection = 5;
apconf.ssid_hidden = 0;
wifi_softap_set_config(&apconf);
IP4_ADDR(&IpInfo.gw, 192, 168, 10, 1);
IP4_ADDR(&IpInfo.ip, 192, 168, 10, 1);
IP4_ADDR(&IpInfo.netmask, 255, 255, 255, 0);
wifi_softap_dhcps_stop();
dhcps_start(&IpInfo);
wifi_set_ip_info(0x01, &IpInfo);
os_timer_disarm(&waitTimer);
os_timer_setfn(&waitTimer, init_udp, NULL);
os_timer_arm(&waitTimer, 2000, 0);
}
开发者ID:houzhenggang,项目名称:esp8266-firmwares,代码行数:33,代码来源:user_main.c
示例7: wpa_driver_broadcom_init
static void * wpa_driver_broadcom_init(void *ctx, const char *ifname)
{
int s;
struct sockaddr_ll ll;
struct wpa_driver_broadcom_data *drv;
struct ifreq ifr;
/* open socket to kernel */
if ((s = socket(AF_INET, SOCK_DGRAM, 0)) < 0) {
perror("socket");
return NULL;
}
/* do it */
os_strncpy(ifr.ifr_name, ifname, IFNAMSIZ);
if (ioctl(s, SIOCGIFINDEX, &ifr) < 0) {
perror(ifr.ifr_name);
return NULL;
}
drv = os_zalloc(sizeof(*drv));
if (drv == NULL)
return NULL;
drv->ctx = ctx;
os_strncpy(drv->ifname, ifname, sizeof(drv->ifname));
drv->ioctl_sock = s;
s = socket(PF_PACKET, SOCK_RAW, ntohs(ETH_P_802_2));
if (s < 0) {
perror("socket(PF_PACKET, SOCK_RAW, ntohs(ETH_P_802_2))");
close(drv->ioctl_sock);
os_free(drv);
return NULL;
}
os_memset(&ll, 0, sizeof(ll));
ll.sll_family = AF_PACKET;
ll.sll_protocol = ntohs(ETH_P_802_2);
ll.sll_ifindex = ifr.ifr_ifindex;
ll.sll_hatype = 0;
ll.sll_pkttype = PACKET_HOST;
ll.sll_halen = 0;
if (bind(s, (struct sockaddr *) &ll, sizeof(ll)) < 0) {
perror("bind(netlink)");
close(s);
close(drv->ioctl_sock);
os_free(drv);
return NULL;
}
eloop_register_read_sock(s, wpa_driver_broadcom_event_receive, ctx,
NULL);
drv->event_sock = s;
return drv;
}
开发者ID:WiseMan787,项目名称:ralink_sdk,代码行数:57,代码来源:driver_broadcom.c
示例8: myPassFn
// Password authentication for admin interface
int myPassFn(HttpdConnData *connData, int no, char *user, int userLen, char *pass, int passLen)
{
if(no==0)
{
os_strncpy(user, configGet()->admin_user, userLen);
os_strncpy(pass, configGet()->admin_pass, passLen);
return 1;
}
return 0;
}
开发者ID:MalteP,项目名称:espweather,代码行数:11,代码来源:user_main.c
示例9: os_strncpy
IROM void Flash::get(char* value, int length, const char* key, const char* dflt) {
int idx=findKey(key);
uint16_t len=4;
if ( idx>=0 ) {
if ( !loadItem(idx+1,(uint8_t*)value,len) ) {
os_strncpy(value,dflt,length);
} else {
value[len]='\0';
}
}
else os_strncpy(value,dflt,length);
}
开发者ID:vortex314,项目名称:esp_cbor,代码行数:12,代码来源:Flash.cpp
示例10: otb_conf_update_loc
bool ICACHE_FLASH_ATTR otb_conf_update_loc(int loc, char *val)
{
int len;
bool rc = FALSE;
otb_conf_struct *conf;
DEBUG("CONF: otb_conf_update entry");
conf = &otb_conf_private;
OTB_ASSERT((loc >= 1) && (loc <= 3));
len = os_strlen(val);
if (len > (OTB_CONF_LOCATION_MAX_LEN))
{
otb_cmd_rsp_append("location string too long", val);
goto EXIT_LABEL;
}
switch (loc)
{
case 1:
os_strncpy(conf->loc.loc1, val, OTB_CONF_LOCATION_MAX_LEN);
break;
case 2:
os_strncpy(conf->loc.loc2, val, OTB_CONF_LOCATION_MAX_LEN);
break;
case 3:
os_strncpy(conf->loc.loc3, val, OTB_CONF_LOCATION_MAX_LEN);
break;
default:
OTB_ASSERT(FALSE);
goto EXIT_LABEL;
break;
}
rc = otb_conf_update(conf);
if (!rc)
{
ERROR("CONF: Failed to update config");
otb_cmd_rsp_append("internal error");
}
EXIT_LABEL:
DEBUG("CONF: otb_conf_update exit");
return rc;
}
开发者ID:piersfinlayson,项目名称:otb-iot,代码行数:52,代码来源:otb_conf.c
示例11: u_dataViewQosNew
/**************************************************************
* constructor/destructor
**************************************************************/
v_dataViewQos
u_dataViewQosNew(
v_dataViewQos tmpl)
{
v_dataViewQos q;
u_result result;
int len;
q = os_malloc(sizeof(C_STRUCT(v_dataViewQos)));
if (q != NULL) {
if (tmpl != NULL) {
/* Copy non-reference fields */
*q = *tmpl;
/* Copy reference fields */
if (tmpl->userKey.enable){
if (tmpl->userKey.expression != NULL) {
len = strlen(tmpl->userKey.expression);
q->userKey.expression = os_malloc(len+1);
os_strncpy(q->userKey.expression, tmpl->userKey.expression, len);
q->userKey.expression[len] = 0;
} else {
q->userKey.expression = NULL;
}
}
} else {
result = u_dataViewQosInit(q);
if (result != U_RESULT_OK) {
u_dataViewQosFree(q);
q = NULL;
}
}
}
return q;
}
开发者ID:S73417H,项目名称:opensplice,代码行数:38,代码来源:u_dataViewQos.c
示例12: broadcom_ioctl
static int broadcom_ioctl(struct wpa_driver_broadcom_data *drv, int cmd,
void *buf, int len)
{
struct ifreq ifr;
wl_ioctl_t ioc;
int ret = 0;
wpa_printf(MSG_MSGDUMP, "BROADCOM: wlioctl(%s,%d,len=%d,val=%p)",
drv->ifname, cmd, len, buf);
/* wpa_hexdump(MSG_MSGDUMP, "BROADCOM: wlioctl buf", buf, len); */
ioc.cmd = cmd;
ioc.buf = buf;
ioc.len = len;
os_strncpy(ifr.ifr_name, drv->ifname, IFNAMSIZ);
ifr.ifr_data = (caddr_t) &ioc;
if ((ret = ioctl(drv->ioctl_sock, SIOCDEVPRIVATE, &ifr)) < 0) {
if (cmd != WLC_GET_MAGIC)
perror(ifr.ifr_name);
wpa_printf(MSG_MSGDUMP, "BROADCOM: wlioctl cmd=%d res=%d",
cmd, ret);
}
return ret;
}
开发者ID:WiseMan787,项目名称:ralink_sdk,代码行数:25,代码来源:driver_broadcom.c
示例13: wpa_driver_nl80211_driver_cmd
int wpa_driver_nl80211_driver_cmd(void *priv, char *cmd, char *buf,
size_t buf_len )
{
struct i802_bss *bss = priv;
struct wpa_driver_nl80211_data *drv = bss->drv;
struct ifreq ifr;
android_wifi_priv_cmd priv_cmd;
int ret = 0;
if (os_strcasecmp(cmd, "STOP") == 0) {
linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 0);
wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STOPPED");
} else if (os_strcasecmp(cmd, "START") == 0) {
linux_set_iface_flags(drv->global->ioctl_sock, bss->ifname, 1);
wpa_msg(drv->ctx, MSG_INFO, WPA_EVENT_DRIVER_STATE "STARTED");
} else if (os_strcasecmp(cmd, "MACADDR") == 0) {
u8 macaddr[ETH_ALEN] = {};
ret = linux_get_ifhwaddr(drv->global->ioctl_sock, bss->ifname, macaddr);
if (!ret)
ret = os_snprintf(buf, buf_len,
"Macaddr = " MACSTR "\n", MAC2STR(macaddr));
} else { /* Use private command */
memset(&ifr, 0, sizeof(ifr));
memset(&priv_cmd, 0, sizeof(priv_cmd));
os_memcpy(buf, cmd, strlen(cmd) + 1);
os_strncpy(ifr.ifr_name, bss->ifname, IFNAMSIZ);
priv_cmd.buf = buf;
priv_cmd.used_len = buf_len;
priv_cmd.total_len = buf_len;
ifr.ifr_data = &priv_cmd;
if ((ret = ioctl(drv->global->ioctl_sock, SIOCDEVPRIVATE + 1, &ifr)) < 0) {
wpa_printf(MSG_ERROR, "%s: failed to issue private commands\n", __func__);
} else {
drv_errors = 0;
ret = 0;
if ((os_strcasecmp(cmd, "LINKSPEED") == 0) ||
(os_strcasecmp(cmd, "RSSI") == 0) ||
(os_strcasecmp(cmd, "GETBAND") == 0) )
ret = strlen(buf);
else if (os_strcasecmp(cmd, "COUNTRY") == 0)
wpa_supplicant_event(drv->ctx,
EVENT_CHANNEL_LIST_CHANGED, NULL);
else if (os_strncasecmp(cmd, "SETBAND", 7) == 0)
wpa_printf(MSG_DEBUG, "%s: %s ", __func__, cmd);
else if (os_strcasecmp(cmd, "P2P_DEV_ADDR") == 0)
wpa_printf(MSG_DEBUG, "%s: P2P: Device address ("MACSTR")",
__func__, MAC2STR(buf));
else if (os_strcasecmp(cmd, "P2P_SET_PS") == 0)
wpa_printf(MSG_DEBUG, "%s: P2P: %s ", __func__, buf);
else if (os_strcasecmp(cmd, "P2P_SET_NOA") == 0)
wpa_printf(MSG_DEBUG, "%s: P2P: %s ", __func__, buf);
else
wpa_printf(MSG_DEBUG, "%s %s len = %d, %d", __func__, buf, ret, strlen(buf));
}
}
return ret;
}
开发者ID:IllusionRom-deprecated,项目名称:android_platform_hardware_qcom_wlan,代码行数:60,代码来源:driver_cmd_nl80211.c
示例14: c_splitString
c_iter
c_splitString(
const c_char *str,
const c_char *delimiters)
{
const c_char *head, *tail;
c_char *nibble;
c_iter iter = NULL;
c_long length;
if (str == NULL) return NULL;
tail = str;
while (*tail != '\0') {
head = c_skipUntil(tail,delimiters);
length = abs((c_address)head - (c_address)tail);
if (length != 0) {
length++;
nibble = (c_string)os_malloc(length);
os_strncpy(nibble,tail,length);
nibble[length-1]=0;
iter = c_iterAppend(iter,nibble);
}
tail = head;
if (c_isOneOf(*tail,delimiters)) tail++;
}
return iter;
}
开发者ID:xrl,项目名称:opensplice,代码行数:28,代码来源:c_stringSupport.c
示例15: v_partitionPolicyRemove
v_partitionPolicyI
v_partitionPolicyRemove(
v_partitionPolicyI p,
const c_char *expr,
c_base base)
{
v_partitionPolicyI newPolicy;
c_char *str;
c_char *start; /* start of expr in p */
os_size_t len;
newPolicy.v = NULL;
if (p.v != NULL) {
if (strcmp(p.v, expr) != 0) {
len = strlen(p.v);
str = os_malloc(len + 1);
start = strstr(p.v, expr);
assert(start != NULL);
assert((c_address)start >= (c_address)p.v);
os_strncpy(str, p.v, (c_address)start - (c_address)p.v); /* includes ',' */
str[(c_address)start - (c_address)p.v] = 0; /* make '\0' terminated */
if (strcmp(start, expr) != 0) { /* not at the end */
os_strcat(str, (c_char *)((c_address)start + strlen(expr) + 1 /* , */));
}
newPolicy.v = c_stringNew(base, str);
os_free(str);
}
}
return newPolicy;
}
开发者ID:osrf,项目名称:opensplice,代码行数:31,代码来源:v_policy.c
示例16: l2_packet_init
struct l2_packet_data * l2_packet_init(
const char *ifname, const u8 *own_addr, unsigned short protocol,
void (*rx_callback)(void *ctx, const u8 *src_addr,
const u8 *buf, size_t len),
void *rx_callback_ctx, int l2_hdr)
{
struct l2_packet_data *l2;
l2 = os_zalloc(sizeof(struct l2_packet_data));
if (l2 == NULL)
return NULL;
os_strncpy(l2->ifname, ifname, sizeof(l2->ifname));
l2->rx_callback = rx_callback;
l2->rx_callback_ctx = rx_callback_ctx;
l2->l2_hdr = l2_hdr;
if (eth_get(l2->ifname, l2->own_addr) < 0) {
fprintf(stderr, "Failed to get link-level address for "
"interface '%s'.\n", l2->ifname);
os_free(l2);
return NULL;
}
if (l2_packet_init_libpcap(l2, protocol)) {
os_free(l2);
return NULL;
}
return l2;
}
开发者ID:flwh,项目名称:Alcatel_OT_985_kernel,代码行数:30,代码来源:l2_packet_freebsd.c
示例17: token_string
void token_string(char *into, char *json, jsmntok_t t) {
char tv[100];
os_strncpy(tv, json+t.start, t.end-t.start);
tv[t.end-t.start] = 0;
//print(tv);
strcpy(into, tv);
}
开发者ID:withmaia,项目名称:maia-attinytemp,代码行数:7,代码来源:user_main.c
示例18: wpa_driver_ipw_init
static void * wpa_driver_ipw_init(void *ctx, const char *ifname)
{
struct wpa_driver_ipw_data *drv;
int ver;
wpa_printf(MSG_DEBUG, "%s is called", __FUNCTION__);
drv = os_zalloc(sizeof(*drv));
if (drv == NULL)
return NULL;
drv->wext = wpa_driver_wext_init(ctx, ifname);
if (drv->wext == NULL) {
os_free(drv);
return NULL;
}
ver = wpa_driver_wext_get_version(drv->wext);
if (ver >= 18) {
wpa_printf(MSG_WARNING, "Linux wireless extensions version %d "
"detected.", ver);
wpa_printf(MSG_WARNING, "ipw2x00 driver uses driver_wext "
"(-Dwext) instead of driver_ipw.");
}
drv->ctx = ctx;
os_strncpy(drv->ifname, ifname, sizeof(drv->ifname));
drv->sock = socket(PF_INET, SOCK_DGRAM, 0);
if (drv->sock < 0) {
wpa_driver_wext_deinit(drv->wext);
os_free(drv);
return NULL;
}
return drv;
}
开发者ID:hynnet,项目名称:ralink_sdk,代码行数:34,代码来源:driver_ipw.c
示例19: syslog_setup
void ICACHE_FLASH_ATTR syslog_setup(
char *hostname, int port, const char *app_name, const char **procs, const SYSLOG_MSG *msgs)
{
char *buffer = NULL;
int ii;
sint16 rc;
syslog_ip_address = (char *)os_zalloc(SYSLOG_IP_LEN);
buffer = (char *)os_zalloc(SYSLOG_BUF_SIZE * SYSLOG_STACK_DEPTH);
for (ii = 0; ii < SYSLOG_STACK_DEPTH; ii++)
{
syslog_stack[ii] = buffer;
buffer += SYSLOG_BUF_SIZE;
}
syslog_conn = (struct espconn *)os_zalloc(sizeof(struct espconn));
syslog_udp = (esp_udp *)os_zalloc(sizeof(esp_udp));
syslog_hostname = (char *)os_zalloc(SYSLOG_MAX_HOSTNAME);
syslog_app_name = app_name;
syslog_procs = procs;
syslog_msgs = msgs;
os_strncpy(syslog_hostname, hostname, SYSLOG_MAX_HOSTNAME);
os_strcpy(syslog_ip_address, SYSLOG_DUMMY_IP);
syslog_conn->type = ESPCONN_UDP;
syslog_conn->proto.udp = syslog_udp;
syslog_conn->proto.udp->local_port = espconn_port();
syslog_conn->proto.udp->remote_port = port;
// // CONSOLE("SYSLOG - setup: %s:%d, rc: %d", hostname, port, rc);
}
开发者ID:papadeltasierra,项目名称:dma433,代码行数:30,代码来源:syslog.c
示例20: cgiMenu
int ICACHE_FLASH_ATTR cgiMenu(HttpdConnData *connData) {
if (connData->conn==NULL) return HTTPD_CGI_DONE; // Connection aborted. Clean up.
char buff[1024];
// don't use jsonHeader so the response does get cached
httpdStartResponse(connData, 200);
httpdHeader(connData, "Cache-Control", "max-age=3600, must-revalidate");
httpdHeader(connData, "Content-Type", "application/json");
httpdEndHeaders(connData);
// limit hostname to 12 chars
char name[13];
os_strncpy(name, flashConfig.hostname, 12);
name[12] = 0;
// construct json response
os_sprintf(buff,
"{ "
"\"menu\": [ "
"\"Overview\", \"/home.html\", "
"\"WiFi Console\", \"/console.html\", "
"\"WiFi\", \"/wifi/wifi.html\", "
#ifdef MQTT
"\"Connectivity\", \"/mqtt.html\", "
#endif
"\"Debug log\", \"/log.html\""
" ], "
"\"version\": \"%s\", "
"\"name\": \"%s\""
" }",
esp_link_version, name);
httpdSend(connData, buff, -1);
return HTTPD_CGI_DONE;
}
开发者ID:alfran,项目名称:Esp-Link,代码行数:32,代码来源:cgi.c
注:本文中的os_strncpy函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论