now using Makefile
This commit is contained in:
parent
9c6269218e
commit
cbedf6189a
6 changed files with 48 additions and 18 deletions
42
Makefile
Normal file
42
Makefile
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
# target name
|
||||||
|
TARGET = moxerver
|
||||||
|
|
||||||
|
# special include directiories
|
||||||
|
INCDIRS = -I.
|
||||||
|
# special library directories
|
||||||
|
LIBDIRS = -L
|
||||||
|
# used libraries
|
||||||
|
#LIBS = -lm
|
||||||
|
LIBS = -l
|
||||||
|
|
||||||
|
# compiler and flags
|
||||||
|
CC = gcc
|
||||||
|
CFLAGS = -Wall $(INCDIRS) $(LIBDIRS)
|
||||||
|
|
||||||
|
# objects are .o files created from all .c files in the directory (same name)
|
||||||
|
OBJECTS = $(patsubst %.c,%.o,$(wildcard *.c))
|
||||||
|
# headers are all .h files in the directory
|
||||||
|
HEADERS = $(wildcard *.h)
|
||||||
|
|
||||||
|
# all objects are built from their .c files and all headers in the directory
|
||||||
|
%.o: %.c $(HEADERS)
|
||||||
|
$(CC) $(CFLAGS) $(LIBS) -c $< -o $@
|
||||||
|
|
||||||
|
# target is built from all object files
|
||||||
|
$(TARGET): $(OBJECTS)
|
||||||
|
$(CC) $(CFLAGS) $(LIBS) $(OBJECTS) -o $@
|
||||||
|
|
||||||
|
|
||||||
|
# support for default, clean and all options
|
||||||
|
.PHONY: default all clean
|
||||||
|
|
||||||
|
# all calls all other options
|
||||||
|
all: default clean
|
||||||
|
|
||||||
|
# default builds target
|
||||||
|
default: $(TARGET)
|
||||||
|
|
||||||
|
# clean removec object files and target
|
||||||
|
clean:
|
||||||
|
-rm -f *.o
|
||||||
|
-rm -f $(TARGET)
|
||||||
12
build.sh
12
build.sh
|
|
@ -1,12 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
# Builds MoxaNix project
|
|
||||||
|
|
||||||
#TODO switch to Makefile :)
|
|
||||||
|
|
||||||
name="moxerver"
|
|
||||||
|
|
||||||
include_dir="."
|
|
||||||
src_list="$name.c server.c client.c tty.c telnet.c"
|
|
||||||
|
|
||||||
gcc $src_list -o $name -I $include_dir
|
|
||||||
2
client.c
2
client.c
|
|
@ -52,7 +52,7 @@ int client_write(struct client_t *client, char *databuf, int datalen) {
|
||||||
//TODO let's print received bytes during development phase...
|
//TODO let's print received bytes during development phase...
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
for(i = 0; i < len; i++) {
|
for(i = 0; i < datalen; i++) {
|
||||||
fprintf(stderr, "client %s -> %u '%c'\n",
|
fprintf(stderr, "client %s -> %u '%c'\n",
|
||||||
client->ip_string,
|
client->ip_string,
|
||||||
(unsigned char) databuf[i],
|
(unsigned char) databuf[i],
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,4 @@
|
||||||
#include "moxerver.h"
|
#include "moxerver.h"
|
||||||
#include <unistd.h> /* getopt() */
|
|
||||||
|
|
||||||
|
|
||||||
#define SERVER_WAIT_TIMEOUT 10 /* seconds for select() timeout in server loop */
|
#define SERVER_WAIT_TIMEOUT 10 /* seconds for select() timeout in server loop */
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
|
#include <unistd.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
|
||||||
8
server.c
8
server.c
|
|
@ -41,7 +41,7 @@ int server_setup(struct server_t *server, unsigned int port) {
|
||||||
|
|
||||||
/* check port assignment */
|
/* check port assignment */
|
||||||
namelen = sizeof(server->address);
|
namelen = sizeof(server->address);
|
||||||
if (getsockname(server->socket, (struct sockaddr *) &server->address, &namelen) == -1) {
|
if (getsockname(server->socket, (struct sockaddr *) &server->address, (socklen_t *) &namelen) == -1) {
|
||||||
fprintf(stderr, "[%s:%d] error %d: %s\n", __func__, __LINE__, errno, strerror(errno));
|
fprintf(stderr, "[%s:%d] error %d: %s\n", __func__, __LINE__, errno, strerror(errno));
|
||||||
return -errno;
|
return -errno;
|
||||||
}
|
}
|
||||||
|
|
@ -80,7 +80,7 @@ int server_accept(struct server_t *server, struct client_t *accepted_client) {
|
||||||
|
|
||||||
/* accept connection request */
|
/* accept connection request */
|
||||||
namelen = sizeof(accepted_client->address);
|
namelen = sizeof(accepted_client->address);
|
||||||
accepted_client->socket = accept(server->socket, (struct sockaddr *) &accepted_client->address, &namelen);
|
accepted_client->socket = accept(server->socket, (struct sockaddr *) &accepted_client->address, (socklen_t *) &namelen);
|
||||||
if (accepted_client->socket == -1) {
|
if (accepted_client->socket == -1) {
|
||||||
fprintf(stderr, "[%s:%d] error %d: %s\n", __func__, __LINE__, errno, strerror(errno));
|
fprintf(stderr, "[%s:%d] error %d: %s\n", __func__, __LINE__, errno, strerror(errno));
|
||||||
return -errno;
|
return -errno;
|
||||||
|
|
@ -106,13 +106,13 @@ int server_reject(struct server_t *server) {
|
||||||
|
|
||||||
/* accept connection request */
|
/* accept connection request */
|
||||||
namelen = sizeof(rclient.address);
|
namelen = sizeof(rclient.address);
|
||||||
rclient.socket = accept(server->socket, (struct sockaddr *) &rclient.address, &namelen);
|
rclient.socket = accept(server->socket, (struct sockaddr *) &rclient.address, (socklen_t *) &namelen);
|
||||||
/* send reject message */
|
/* send reject message */
|
||||||
sprintf(reject_msg, "[%s]: port %u is already being used\n", __func__, server->port);
|
sprintf(reject_msg, "[%s]: port %u is already being used\n", __func__, server->port);
|
||||||
send(rclient.socket, reject_msg, strlen(reject_msg), 0);
|
send(rclient.socket, reject_msg, strlen(reject_msg), 0);
|
||||||
/* close connection */
|
/* close connection */
|
||||||
close(rclient.socket);
|
close(rclient.socket);
|
||||||
|
|
||||||
fprintf(stderr, "[%s]: rejected new client request, there is alredy a client connected\n", __func__, server->port);
|
fprintf(stderr, "[%s]: rejected new client request, there is alredy a client connected\n", __func__);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue