MCPcopy Index your code
hub / github.com/F-Stack/f-stack / main

Function main

example/main.c:124–222  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

122}
123
124int main(int argc, char * argv[])
125{
126 FILE *log_file;
127
128 ff_init(argc, argv);
129
130 /* Set APP's log file to instead F-Stack log file */
131 log_file = fopen("./helloworld.log", "a+");
132 if (log_file == NULL) {
133 ff_log(FF_LOG_ERR, FF_LOGTYPE_FSTACK_APP, "fopen log file failed, errno:%d, %s\n", errno, strerror(errno));
134 exit(1);
135 }
136
137 ff_log_reset_stream((void *)log_file);
138 /* Close F-Stack log file */
139 ff_log_close();
140
141 ff_log_set_global_level(FF_LOG_INFO);
142 ff_log_set_level(FF_LOGTYPE_FSTACK_APP, FF_LOG_INFO);
143
144 kq = ff_kqueue();
145 if (kq < 0) {
146 ff_log(FF_LOG_ERR, FF_LOGTYPE_FSTACK_APP, "ff_kqueue failed, errno:%d, %s\n", errno, strerror(errno));
147 exit(1);
148 }
149
150 sockfd = ff_socket(AF_INET, SOCK_STREAM, 0);
151 if (sockfd < 0) {
152 ff_log(FF_LOG_ERR, FF_LOGTYPE_FSTACK_APP, "ff_socket failed, sockfd:%d, errno:%d, %s\n", sockfd, errno, strerror(errno));
153 exit(1);
154 }
155
156 /* Set non blocking */
157 int on = 1;
158 ff_ioctl(sockfd, FIONBIO, &on);
159
160 struct sockaddr_in my_addr;
161 bzero(&my_addr, sizeof(my_addr));
162 my_addr.sin_family = AF_INET;
163 my_addr.sin_port = htons(80);
164 my_addr.sin_addr.s_addr = htonl(INADDR_ANY);
165
166 int ret = ff_bind(sockfd, (struct linux_sockaddr *)&my_addr, sizeof(my_addr));
167 if (ret < 0) {
168 ff_log(FF_LOG_ERR, FF_LOGTYPE_FSTACK_APP, "ff_bind failed, sockfd:%d, errno:%d, %s\n", sockfd, errno, strerror(errno));
169 exit(1);
170 }
171
172 ret = ff_listen(sockfd, MAX_EVENTS);
173 if (ret < 0) {
174 ff_log(FF_LOG_ERR, FF_LOGTYPE_FSTACK_APP, "ff_listen failed, sockfd:%d, errno:%d, %s\n", sockfd, errno, strerror(errno));
175 exit(1);
176 }
177
178 EV_SET(&kevSet, sockfd, EVFILT_READ, EV_ADD, 0, MAX_EVENTS, NULL);
179 /* Update kqueue */
180 ff_kevent(kq, &kevSet, 1, NULL, 0, NULL);
181

Callers

nothing calls this directly

Calls 14

ff_initFunction · 0.85
ff_logFunction · 0.85
ff_log_reset_streamFunction · 0.85
ff_log_closeFunction · 0.85
ff_log_set_global_levelFunction · 0.85
ff_log_set_levelFunction · 0.85
ff_kqueueFunction · 0.85
ff_ioctlFunction · 0.85
bzeroFunction · 0.85
ff_bindFunction · 0.85
ff_listenFunction · 0.85
ff_keventFunction · 0.85

Tested by

no test coverage detected