mirror of
				https://github.com/osmarks/ngircd.git
				synced 2025-10-31 22:13:00 +00:00 
			
		
		
		
	- neues Modul begonnen :-)
This commit is contained in:
		
							
								
								
									
										47
									
								
								src/ngircd/channel.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										47
									
								
								src/ngircd/channel.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,47 @@ | ||||
| /* | ||||
|  * ngIRCd -- The Next Generation IRC Daemon | ||||
|  * Copyright (c)2001 by Alexander Barton (alex@barton.de) | ||||
|  * | ||||
|  * Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen | ||||
|  * der GNU General Public License (GPL), wie von der Free Software Foundation | ||||
|  * herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 | ||||
|  * der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version. | ||||
|  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste | ||||
|  * der an comBase beteiligten Autoren finden Sie in der Datei AUTHORS. | ||||
|  * | ||||
|  * $Id: channel.c,v 1.1 2001/12/14 08:13:43 alex Exp $ | ||||
|  * | ||||
|  * channel.c: Management der Channels | ||||
|  * | ||||
|  * $Log: channel.c,v $ | ||||
|  * Revision 1.1  2001/12/14 08:13:43  alex | ||||
|  * - neues Modul begonnen :-) | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #include <portab.h> | ||||
| #include "global.h" | ||||
|  | ||||
| #include <imp.h> | ||||
| #include <assert.h> | ||||
|  | ||||
| #include <exp.h> | ||||
| #include "channel.h" | ||||
|  | ||||
|  | ||||
| LOCAL CHANNEL *My_Channels; | ||||
|  | ||||
|  | ||||
| GLOBAL VOID Channel_Init( VOID ) | ||||
| { | ||||
| 	My_Channels = NULL; | ||||
| } /* Channel_Init */ | ||||
|  | ||||
|  | ||||
| GLOBAL VOID Channel_Exit( VOID ) | ||||
| { | ||||
| } /* Channel_Exit */ | ||||
|  | ||||
|  | ||||
| /* -eof- */ | ||||
							
								
								
									
										43
									
								
								src/ngircd/channel.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/ngircd/channel.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| /* | ||||
|  * ngIRCd -- The Next Generation IRC Daemon | ||||
|  * Copyright (c)2001 by Alexander Barton (alex@barton.de) | ||||
|  * | ||||
|  * Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen | ||||
|  * der GNU General Public License (GPL), wie von der Free Software Foundation | ||||
|  * herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 | ||||
|  * der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version. | ||||
|  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste | ||||
|  * der an comBase beteiligten Autoren finden Sie in der Datei AUTHORS. | ||||
|  * | ||||
|  * $Id: channel.h,v 1.1 2001/12/14 08:13:43 alex Exp $ | ||||
|  * | ||||
|  * channel.h: Management der Channels (Header) | ||||
|  * | ||||
|  * $Log: channel.h,v $ | ||||
|  * Revision 1.1  2001/12/14 08:13:43  alex | ||||
|  * - neues Modul begonnen :-) | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef __channel_h__ | ||||
| #define __channel_h__ | ||||
|  | ||||
|  | ||||
| #define NAME_LEN 50			/* vgl. RFC 2812, 1.3 */ | ||||
|  | ||||
|  | ||||
| typedef struct _CHANNEL | ||||
| { | ||||
| 	CHAR name[NAME_LEN + 1];	/* Name */ | ||||
| } CHANNEL; | ||||
|  | ||||
|  | ||||
| GLOBAL VOID Channel_Init( VOID ); | ||||
| GLOBAL VOID Channel_Exit( VOID ); | ||||
|  | ||||
|  | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* -eof- */ | ||||
							
								
								
									
										99
									
								
								src/ngircd/client.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										99
									
								
								src/ngircd/client.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,99 @@ | ||||
| /* | ||||
|  * ngIRCd -- The Next Generation IRC Daemon | ||||
|  * Copyright (c)2001 by Alexander Barton (alex@barton.de) | ||||
|  * | ||||
|  * Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen | ||||
|  * der GNU General Public License (GPL), wie von der Free Software Foundation | ||||
|  * herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 | ||||
|  * der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version. | ||||
|  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste | ||||
|  * der an comBase beteiligten Autoren finden Sie in der Datei AUTHORS. | ||||
|  * | ||||
|  * $Id: client.c,v 1.1 2001/12/14 08:13:43 alex Exp $ | ||||
|  * | ||||
|  * client.c: Management aller Clients | ||||
|  * | ||||
|  * Der Begriff "Client" ist in diesem Fall evtl. etwas verwirrend: Clients sind | ||||
|  * alle Verbindungen, die im gesamten(!) IRC-Netzwerk bekannt sind. Das sind IRC- | ||||
|  * Clients (User), andere Server und IRC-Services. | ||||
|  * Ueber welchen IRC-Server die Verbindung nun tatsaechlich in das Netzwerk her- | ||||
|  * gestellt wurde, muss der jeweiligen Struktur entnommen werden. Ist es dieser | ||||
|  * Server gewesen, so existiert eine entsprechende CONNECTION-Struktur. | ||||
|  * | ||||
|  * $Log: client.c,v $ | ||||
|  * Revision 1.1  2001/12/14 08:13:43  alex | ||||
|  * - neues Modul begonnen :-) | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #include <portab.h> | ||||
| #include "global.h" | ||||
|  | ||||
| #include <imp.h> | ||||
| #include <assert.h> | ||||
|  | ||||
| #include "channel.h" | ||||
| #include "conn.h" | ||||
| #include "log.h" | ||||
|  | ||||
| #include <exp.h> | ||||
| #include "client.h" | ||||
|  | ||||
|  | ||||
| LOCAL CLIENT *This_Server, *My_Clients; | ||||
|  | ||||
|  | ||||
| LOCAL CLIENT *New_Client_Struct( VOID ); | ||||
|  | ||||
|  | ||||
| GLOBAL VOID Client_Init( VOID ) | ||||
| { | ||||
| 	This_Server = New_Client_Struct( ); | ||||
| 	if( ! This_Server ) | ||||
| 	{ | ||||
| 		Log( LOG_EMERG, "Can't allocate client structure for server! Going down." ); | ||||
| 		exit( 1 ); | ||||
| 	} | ||||
|  | ||||
| 	/* Client-Struktur dieses Servers */ | ||||
| 	This_Server->next = NULL; | ||||
| 	This_Server->type = CLIENT_SERVER; | ||||
| 	This_Server->conn_id = NONE; | ||||
| 	This_Server->introducer = This_Server; | ||||
| 	strcpy( This_Server->nick, "ngircd" );	/* FIXME! */ | ||||
| 	 | ||||
| 	My_Clients = This_Server; | ||||
| } /* Client_Init */ | ||||
|  | ||||
|  | ||||
| GLOBAL VOID Client_Exit( VOID ) | ||||
| { | ||||
| } /* Client Exit */ | ||||
|  | ||||
|  | ||||
| LOCAL CLIENT *New_Client_Struct( VOID ) | ||||
| { | ||||
| 	CLIENT *c; | ||||
| 	INT i; | ||||
| 	 | ||||
| 	c = malloc( sizeof( CLIENT )); | ||||
| 	if( ! c ) | ||||
| 	{ | ||||
| 		Log( LOG_EMERG, "Can't allocate memory!" ); | ||||
| 		return NULL; | ||||
| 	} | ||||
|  | ||||
| 	c->next = NULL; | ||||
| 	c->type = CLIENT_UNKNOWN; | ||||
| 	c->conn_id = NONE; | ||||
| 	c->introducer = NULL; | ||||
| 	strcpy( c->nick, "" ); | ||||
| 	strcpy( c->pass, "" ); | ||||
| 	for( i = 0; i < MAX_CHANNELS; c->channels[i++] = NULL ); | ||||
| 	 | ||||
| 	return c; | ||||
| } /* New_Client */ | ||||
|  | ||||
|  | ||||
| /* -eof- */ | ||||
							
								
								
									
										64
									
								
								src/ngircd/client.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								src/ngircd/client.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,64 @@ | ||||
| /* | ||||
|  * ngIRCd -- The Next Generation IRC Daemon | ||||
|  * Copyright (c)2001 by Alexander Barton (alex@barton.de) | ||||
|  * | ||||
|  * Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen | ||||
|  * der GNU General Public License (GPL), wie von der Free Software Foundation | ||||
|  * herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 | ||||
|  * der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version. | ||||
|  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste | ||||
|  * der an comBase beteiligten Autoren finden Sie in der Datei AUTHORS. | ||||
|  * | ||||
|  * $Id: client.h,v 1.1 2001/12/14 08:13:43 alex Exp $ | ||||
|  * | ||||
|  * client.h: Konfiguration des ngircd (Header) | ||||
|  * | ||||
|  * $Log: client.h,v $ | ||||
|  * Revision 1.1  2001/12/14 08:13:43  alex | ||||
|  * - neues Modul begonnen :-) | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef __client_h__ | ||||
| #define __client_h__ | ||||
|  | ||||
| #include "conn.h" | ||||
|  | ||||
|  | ||||
| #define ID_LEN 63			/* max. ID-Laenge; vgl. RFC 2812, 1.1 und 1.2.1 */ | ||||
| #define NICK_LEN 9			/* max. Nick-Laenge; vgl. RFC 2812, 1.2.1 */ | ||||
| #define PASS_LEN 9			/* max. Laenge des Passwortes */ | ||||
|  | ||||
| #define MAX_CHANNELS 32			/* max. Anzahl Channels pro Nick */ | ||||
|  | ||||
|  | ||||
| typedef enum | ||||
| { | ||||
| 	CLIENT_UNKNOWN,			/* Verbindung mit (noch) unbekanntem Typ */ | ||||
| 	CLIENT_USER,			/* Client ist ein Benutzer */ | ||||
| 	CLIENT_SERVER,			/* Client ist ein Server */ | ||||
| 	CLIENT_SERVICE			/* Client ist ein Service */ | ||||
| } CLIENT_TYPE; | ||||
|  | ||||
|  | ||||
| typedef struct _CLIENT | ||||
| { | ||||
| 	POINTER *next;			/* Zeiger auf naechste Client-Struktur */ | ||||
| 	CLIENT_TYPE type;		/* Typ des Client, vgl. CLIENT_TYPE */ | ||||
| 	CONN_ID conn_id;		/* ID der Connection (wenn lokal) bzw. NONE (remote) */ | ||||
| 	POINTER *introducer;		/* ID des Servers, der die Verbindung hat */ | ||||
| 	CHAR nick[ID_LEN + 1];		/* Nick (bzw. Server-ID, daher auch IDLEN!) */ | ||||
| 	CHAR pass[PASS_LEN + 1];	/* Passwort, welches der Client angegeben hat */ | ||||
| 	CHANNEL *channels[MAX_CHANNELS];/* IDs der Channel, bzw. NULL */ | ||||
| } CLIENT; | ||||
|  | ||||
|  | ||||
| GLOBAL VOID Client_Init( VOID ); | ||||
| GLOBAL VOID Client_Exit( VOID ); | ||||
|  | ||||
|  | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* -eof- */ | ||||
							
								
								
									
										43
									
								
								src/ngircd/irc.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								src/ngircd/irc.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| /* | ||||
|  * ngIRCd -- The Next Generation IRC Daemon | ||||
|  * Copyright (c)2001 by Alexander Barton (alex@barton.de) | ||||
|  * | ||||
|  * Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen | ||||
|  * der GNU General Public License (GPL), wie von der Free Software Foundation | ||||
|  * herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 | ||||
|  * der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version. | ||||
|  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste | ||||
|  * der an comBase beteiligten Autoren finden Sie in der Datei AUTHORS. | ||||
|  * | ||||
|  * $Id: irc.c,v 1.1 2001/12/14 08:13:43 alex Exp $ | ||||
|  * | ||||
|  * irc.c: IRC-Befehle | ||||
|  * | ||||
|  * $Log: irc.c,v $ | ||||
|  * Revision 1.1  2001/12/14 08:13:43  alex | ||||
|  * - neues Modul begonnen :-) | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #include <portab.h> | ||||
| #include "global.h" | ||||
|  | ||||
| #include <imp.h> | ||||
| #include <assert.h> | ||||
|  | ||||
| #include <exp.h> | ||||
| #include "irc.h" | ||||
|  | ||||
|  | ||||
| GLOBAL VOID IRC_Init( VOID ) | ||||
| { | ||||
| } /* IRC_Init */ | ||||
|  | ||||
|  | ||||
| GLOBAL VOID IRC_Exit( VOID ) | ||||
| { | ||||
| } /* IRC_Exit */ | ||||
|  | ||||
|  | ||||
| /* -eof- */ | ||||
							
								
								
									
										34
									
								
								src/ngircd/irc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										34
									
								
								src/ngircd/irc.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,34 @@ | ||||
| /* | ||||
|  * ngIRCd -- The Next Generation IRC Daemon | ||||
|  * Copyright (c)2001 by Alexander Barton (alex@barton.de) | ||||
|  * | ||||
|  * Dieses Programm ist freie Software. Sie koennen es unter den Bedingungen | ||||
|  * der GNU General Public License (GPL), wie von der Free Software Foundation | ||||
|  * herausgegeben, weitergeben und/oder modifizieren, entweder unter Version 2 | ||||
|  * der Lizenz oder (wenn Sie es wuenschen) jeder spaeteren Version. | ||||
|  * Naehere Informationen entnehmen Sie bitter der Datei COPYING. Eine Liste | ||||
|  * der an comBase beteiligten Autoren finden Sie in der Datei AUTHORS. | ||||
|  * | ||||
|  * $Id: irc.h,v 1.1 2001/12/14 08:13:43 alex Exp $ | ||||
|  * | ||||
|  * irc.h: IRC-Befehle (Header) | ||||
|  * | ||||
|  * $Log: irc.h,v $ | ||||
|  * Revision 1.1  2001/12/14 08:13:43  alex | ||||
|  * - neues Modul begonnen :-) | ||||
|  * | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #ifndef __irc_h__ | ||||
| #define __irc_h__ | ||||
|  | ||||
|  | ||||
| GLOBAL VOID IRC_Init( VOID ); | ||||
| GLOBAL VOID IRC_Exit( VOID ); | ||||
|  | ||||
|  | ||||
| #endif | ||||
|  | ||||
|  | ||||
| /* -eof- */ | ||||
		Reference in New Issue
	
	Block a user
	 Alexander Barton
					Alexander Barton