/*
 * Copyright (c) 2017 Intel Corporation
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <net/net_ip.h>

#define APP_NAP_TIME 3000

#define HTTP_POOL_BUF_CTR	4
#define HTTP_POOL_BUF_SIZE	1024
#define HTTP_STATUS_STR_SIZE	32

/* server port */
#define SERVER_PORT		80
/* rx tx timeout */
#define HTTP_NETWORK_TIMEOUT	300

#ifdef CONFIG_NET_APP_SETTINGS
#ifdef CONFIG_NET_IPV6
#define LOCAL_ADDR	CONFIG_NET_APP_MY_IPV6_ADDR
#define SERVER_ADDR	CONFIG_NET_APP_PEER_IPV6_ADDR
#else
#define LOCAL_ADDR	CONFIG_NET_APP_MY_IPV4_ADDR
#define SERVER_ADDR	CONFIG_NET_APP_PEER_IPV4_ADDR
#endif
#else
#ifdef CONFIG_NET_IPV6
#define LOCAL_ADDR	"2001:db8::1"
#define SERVER_ADDR	"2001:db8::2"
#else
#define LOCAL_ADDR	"192.168.1.101"
#define SERVER_ADDR	"192.168.1.10"
#endif
#endif /* CONFIG */

/* It seems enough to hold 'Content-Length' and its value */
#define CON_LEN_SIZE	48

/* Default HTTP Header Field values for HTTP Requests */
#define ACCEPT		"text/plain"
#define ACCEPT_ENC	"identity"
#define ACCEPT_LANG	"en-US"
#define CONNECTION	"Close"
#define USER_AGENT	"ZephyrHTTPClient/1.7"
#define HOST_NAME	SERVER_ADDR /* or example.com, www.example.com */

#define HEADER_FIELDS	"Accept: "ACCEPT"\r\n" \
			"Accept-Encoding: "ACCEPT_ENC"\r\n" \
			"Accept-Language: "ACCEPT_LANG"\r\n" \
			"User-Agent: "USER_AGENT"\r\n" \
			"Host: "HOST_NAME"\r\n" \
			"Connection: "CONNECTION"\r\n"

/* Parsing and token tracking becomes a bit complicated if the
 * RX buffer is fragmented. for example: an HTTP response with
 * header fields that lie in two fragments. So, here we have
 * two options:
 *
 * - Use the fragmented buffer, but increasing the fragment size
 * - Linearize the buffer, it works better but consumes more memory
 *
 * Comment the following define to test the first case, set the
 * CONFIG_NET_NBUF_DATA_SIZE variable to 384 or 512. See the
 * prj_frdm_k64f.conf file.
 */
#define LINEARIZE_BUFFER

#ifndef LINEARIZE_BUFFER
#if CONFIG_NET_NBUF_DATA_SIZE <= 256
#error set CONFIG_NET_NBUF_DATA_SIZE to 384 or 512
#endif
#endif
