Compare commits

...

2 Commits

Author SHA1 Message Date
1456b60ad9 Added check for NULL message 2023-04-11 23:02:20 -05:00
6be0bd8ce2 Finished working on 'fetch_message_string' function 2023-04-11 23:01:59 -05:00
2 changed files with 26 additions and 2 deletions

6
main.c
View File

@@ -108,6 +108,12 @@ int main() {
}
char* message = fetch_message_string(data);
if (message == NULL) {
printf("Invalid message.\n");
return -10;
}
printf("Your message is: %s\n",message);
close(conn_sockets[i]);

View File

@@ -25,11 +25,18 @@ char* fetch_from_string(char* message, char* indicator) {
}
char* fetch_message_string(char* message) {
int num_of_terminators;
char* start = strstr(message,"START_OF_MESSAGE");
if (start == NULL) {
return NULL;
}
int start_index = start - message;
start_index += strlen("START_OF_MESSAGE");
while (*(message + start_index) == '\n' || *(message + start_index) == '\r') {
start_index++;
}
char* end = strstr(message,"END_OF_MESSAGE");
if (end == NULL) {
@@ -37,9 +44,20 @@ char* fetch_message_string(char* message) {
}
int end_index = end - message;
if (*(message+ end_index-2) = '\r') {
num_of_terminators = 2;
} else {
num_of_terminators = 1;
}
int message_length = end_index - start_index;
char* message_string = malloc(message_length + 1);
for (int i=0;i < message_length; i++) {
*(message_string + i) = *(message_
for (int i=0;i < message_length-num_of_terminators; i++) { /* The reason the upper-bound is message_length-1 is because the last
character is a new-line, which the user would not have typed. */
*(message_string + i) = *(message + start_index + i);
}
*(message_string + (message_length - num_of_terminators)) = '\0';
return message_string;
}