rfc3164.c
author viric@llimona
Tue, 30 May 2006 01:16:33 +0200
changeset 54 a456a2e5fca4
parent 53 667cd5966695
permissions -rw-r--r--
Updated TODO for the last release.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
4a369e7c2ce8 Initial.
viric@llimona
parents:
diff changeset
     1
#include "rfc3164.h"
15
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
     2
#include <stdio.h>  // snprintf
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
     3
#include <unistd.h> // write
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
     4
#include <string.h> // strlen
1
cd184f6ef0d8 The named pipe opening and reading works.
viric@llimona
parents: 0
diff changeset
     5
0
4a369e7c2ce8 Initial.
viric@llimona
parents:
diff changeset
     6
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
     7
int process_message(char * restrict buffer)
0
4a369e7c2ce8 Initial.
viric@llimona
parents:
diff changeset
     8
{
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
     9
	int i;
53
667cd5966695 Finer message processing - now only at file and screen output appear '\n'.
viric@llimona
parents: 22
diff changeset
    10
	/* char message[MESSAGE_LENGTH+1]; */
0
4a369e7c2ce8 Initial.
viric@llimona
parents:
diff changeset
    11
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    12
	for(i=0; i<MESSAGE_LENGTH; i++)
1
cd184f6ef0d8 The named pipe opening and reading works.
viric@llimona
parents: 0
diff changeset
    13
	{
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    14
		if (buffer[i] == '\n' || buffer[i] == '\0')
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    15
		{
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    16
			buffer[i] = '\0';
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    17
			break;
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    18
		}
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    19
		else if ((buffer[i] & 128) == 128 )
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    20
		{
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    21
			/* Convertim de 8bits a 7bits */
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    22
			buffer[i] = buffer[i] & ~128;
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    23
		}
22
52c1a4d0b565 Added >32 check for the characters to be always printable.
viric@mandarina
parents: 15
diff changeset
    24
52c1a4d0b565 Added >32 check for the characters to be always printable.
viric@mandarina
parents: 15
diff changeset
    25
		/* Han de ser caràcters imprimibles */
52c1a4d0b565 Added >32 check for the characters to be always printable.
viric@mandarina
parents: 15
diff changeset
    26
		if (buffer[i] < 32)
52c1a4d0b565 Added >32 check for the characters to be always printable.
viric@mandarina
parents: 15
diff changeset
    27
			buffer[i] = ' ';
1
cd184f6ef0d8 The named pipe opening and reading works.
viric@llimona
parents: 0
diff changeset
    28
	}
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    29
	if(i == MESSAGE_LENGTH)
15
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
    30
		buffer[MESSAGE_LENGTH-1] = '\0';
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    31
	/* Debug */
15
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
    32
	/* fprintf(stderr,"M: %s\n", buffer); */
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
    33
53
667cd5966695 Finer message processing - now only at file and screen output appear '\n'.
viric@llimona
parents: 22
diff changeset
    34
	/*snprintf(message, MESSAGE_LENGTH+1,"%s\n", buffer); */
667cd5966695 Finer message processing - now only at file and screen output appear '\n'.
viric@llimona
parents: 22
diff changeset
    35
	/* write(1, message, strlen(message)); */
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    36
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    37
	return i;
0
4a369e7c2ce8 Initial.
viric@llimona
parents:
diff changeset
    38
}