rfc3164.c
author viric@llimona
Thu, 06 Apr 2006 01:47:35 +0200
changeset 18 84fa30ea0b0d
parent 15 fea6e87812f0
child 22 52c1a4d0b565
permissions -rw-r--r--
Ara sí - versió 1
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;
15
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
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
		}
1
cd184f6ef0d8 The named pipe opening and reading works.
viric@llimona
parents: 0
diff changeset
    24
	}
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    25
	if(i == MESSAGE_LENGTH)
15
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
    26
		buffer[MESSAGE_LENGTH-1] = '\0';
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    27
	/* Debug */
15
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
    28
	/* fprintf(stderr,"M: %s\n", buffer); */
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
    29
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
    30
	snprintf(message, MESSAGE_LENGTH+1,"%s\n", buffer);
fea6e87812f0 Now everything works - the rfc3164 message parser must be improved.
viric@llimona
parents: 6
diff changeset
    31
	write(1, message, strlen(message));
6
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    32
bf2d10246ec1 Process message improved.
viric@mandarina
parents: 1
diff changeset
    33
	return i;
0
4a369e7c2ce8 Initial.
viric@llimona
parents:
diff changeset
    34
}