Skip to content

Commit

Permalink
Merge pull request #44 from joegasewicz/port-cli-option-#40
Browse files Browse the repository at this point in the history
Port cli option #40
joegasewicz authored Jun 19, 2024
2 parents ff5e4f8 + 51e31c5 commit 375ba74
Showing 5 changed files with 22 additions and 8 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -37,7 +37,7 @@ dequeue messages off the queue.

### CLI options
- --msg-size
- --port `TODO`
- --port

### Options
#### Provider Options:
2 changes: 2 additions & 0 deletions config.h
Original file line number Diff line number Diff line change
@@ -19,4 +19,6 @@

#define FMQ_ARRAY_LENGTH(arr) sizeof(arr) / sizeof(arr[0])

#define FMQ_TCP_PORT 8005

#endif //CONFIG_H
16 changes: 13 additions & 3 deletions main.c
Original file line number Diff line number Diff line change
@@ -25,15 +25,14 @@
#include <stdlib.h>
#include <stdint.h>
#include <string.h>

#include "config.h"
#include "tcp.h"
#include "queue.h"


int main(int argc, char *argv[])
{
int16_t msg_size = 1024;
int16_t port = FMQ_TCP_PORT;
for (int i = 0; i < argc; i++)
{
if (strcmp(argv[i], "--msg-size") == 0)
@@ -47,9 +46,20 @@ int main(int argc, char *argv[])
msg_size = atoi(msg_size_char);
FMQ_LOGGER("Set queue message size to %s\n", msg_size_char);
}
if (strcmp(argv[i], "--port") == 0)
{
if (argc < i+1)
{
printf("--port arg expects an integer value\n");
exit(EXIT_FAILURE);
}
char *port_char = argv[i+1];
port = atoi(port_char);
FMQ_LOGGER("Set TCP Server port to %s\n", port_char);
}
}
FMQ_Queue *queue = FMQ_Queue_new(msg_size);
FMQ_TCP *tcp = FMQ_TCP_new(queue);
FMQ_TCP *tcp = FMQ_TCP_new(queue, port);
const int err = tcp->start(tcp);
if (tcp != NULL)
{
7 changes: 4 additions & 3 deletions tcp.c
Original file line number Diff line number Diff line change
@@ -31,7 +31,7 @@
#include "tcp.h"
#include "queue.h"
#include "config.h"
#define PORT 8005


static int callback_consumer(const struct _u_request *request,
struct _u_response *response, void *queue)
@@ -82,7 +82,7 @@ static int start_server(FMQ_TCP *tcp)
{
struct _u_instance instance;

if (ulfius_init_instance(&instance, PORT, NULL, NULL) != U_OK)
if (ulfius_init_instance(&instance, tcp->port, NULL, NULL) != U_OK)
{
fprintf(stderr, "Error starting ulfius server\n");
exit(EXIT_FAILURE);
@@ -107,10 +107,11 @@ static int start_server(FMQ_TCP *tcp)
return 0;
}

FMQ_TCP *FMQ_TCP_new(FMQ_Queue *queue)
FMQ_TCP *FMQ_TCP_new(FMQ_Queue *queue, const int16_t port)
{
FMQ_TCP *tcp = (FMQ_TCP*)malloc(sizeof(FMQ_TCP));
tcp->queue = queue;
tcp->start = start_server;
tcp->port = port;
return tcp;
}
3 changes: 2 additions & 1 deletion tcp.h
Original file line number Diff line number Diff line change
@@ -31,8 +31,9 @@ struct FMQ_TCP
{
int (*start)(FMQ_TCP *tcp);
FMQ_Queue *queue;
int16_t port;
};

FMQ_TCP *FMQ_TCP_new(FMQ_Queue *queue);
FMQ_TCP *FMQ_TCP_new(FMQ_Queue *queue, const int16_t port);

#endif //TCP_H

0 comments on commit 375ba74

Please sign in to comment.