***************************************************************************************************
---------------------------------------------------------------------------------------------------
			APLIKACJA DO KOMUNIKACJI CLENT- SERVER - SERVER
---------------------------------------------------------------------------------------------------

Client - Server1 - Server2: 
- zastepuje APACHE
- client - modul do przesylania danych dla apliakcji cgi-bin na serwerze

Dzialanie:
Client--->Server1(apache [cgi-bin]) ---> Server2(ARCHI)
strumien odpowiedzi: Server2--->Server1---->Client

lub Client(aplikacja) ----> Server1(aplikacja nieokreslona) ---> Server2(ARCHI)
strumien zwrotny: Server2 ----> Server1 ----> Client

lub bezposrednio: Client(aplikacja) ----> Server2(ARCHI)
strumien odpowiedzi: Server2 ---> Client

---------------------------------------------------------------------------------------------------
				Podzial archiwow
---------------------------------------------------------------------------------------------------

Bloki obsugi archium poprzez SKZ sa niezalezne tzn. maja swoje systemy plikow i aplikacje
Uwaga. Nie beda uzytkowane aplikacje znajdujace w innych blokach

Blok obslugi ARCHI poprzez SKZ ma odrebny system plikow przypisany kazdemu ARCHI odrebnie
i znajduje sie w katalogach:
/home/ARCHI01/<dolaczny system plikow bloku ARCHI01
...
/home/ARCHI9999/<blok ostatniego ARCHI

kazde ARCHIxxxx jest wlaczne odrebnie poprzez system TRIGGER ON/OFF
Podzial nazw archiwow jest wyjasniony ponizej. 

katalogi:
/home/ARCHIxxxx/001A/ zawieraja dane stale ktore nie sa zmieniane przez klientow
			<wyjatkiem jest obsluga client-PIN (password)
/home/ARCHIxxxx/001B/ zawieraja katalogi i pliki zminiane w trakcie dzialania systemu
			archiwum

/home/ARCHIxxxx/002A
/home/ARCHIxxxx/002B - sa kopiami systemu plikow 

ARCHIxxxx moga byc montowane na osobnych dyskach oraz kopie /001A oraz /001B podobnie moga
byc umieszczone na odrebnych dyskach

na dysku systemowym LINUX musza byc zainstalowne uzytkownicy:
chn10  z katalogiem /home/chn10/ dla obslugi komunikacji SKZ - STEROWNIK
chn11 z katalogiem /home/chn11/ dla obslugi komumnikacji client_zewnetrzny-SKZ

Uwaga. Dostep porpzez APACHE (html) zostal ograniczony do zadan testowych i ilustracyjnych
	oraz dotyczy tylko ARCHI01

---------------------------------------------------------------------------------------------------
					ARCHI-name 
---------------------------------------------------------------------------------------------------
(Uwaga na podzial przy 99)
ARCHI01 .. ARCHI99
ARCHI0100 ..ARCHI9999
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------





---------------------------------------------------------------------------------------------------
--------------------------------------- Channel 11 ------------------------------------------------
---------------------------------------------------------------------------------------------------

chn11 jest urzytkownikem systemu Linux w ktorym pracuje mserverA.
dostep do niego jest ponizej uprawnien ROOT i mozna zmieniac zakres
konfiguracji systemu ARCHI. Takie rozwiazanie pozwala na ograniczenia
praw dostpu do konfiguracji ARCHI innym uzytkownikom (admin zewnetrzny) bez prawa zmian w calym
systemie.  

Pliki i kaltalogi w katalu /home/chn11:
***************************
INPUT - do zapisu info przychodzacych dla admina
***************************
OUTPUT - do zapisu danych wysyalanych przez admina do klienta ARCHI
***************************
CONFIG
/home/chn11/CONFIG/ARCHI01.ex ... ARCHI9999
np. plik default dla ARCHI01.ex (plik jest sprawdzany przez executor.c)
znajduje sie w pliku CONFIG-default i nalezy skopiowac do katalogu /home/chn11/CONFIG

	#config. file for executor
#--------------------------------------
#ARCHI01
#--------------------------------------
#usage: 
#switch off optios - uncheck '#' before 
#                    number of option
#
#swich on option - set '#' before
#		   number of option
<exluded>
#00 #test communication <default is off> 
01 #set/rm/status Priority 
02 #agr-add ALL clientID
03 #agrp-rm ALL clientID
04 #only for ARCHI admin
05 #agrp-sta ALL clientID
06 #check-key add/val/blk
07 #check-key-file add/rm/sta
08 #check-key-print 
09 #config-read (deadline READ)
#10 #help-archi (help)
#11 #passwdARCHI add/chg/adm
12 #softblock clientID
13 #unblock clientID 
14 #not used
15 #not used
16 #info-for-all
17 #message-send
18 #mesage-recv 
19 #not used
#20 #READ
#21 #WRITE


NOTE: dlugosc linii max 50 chars
operacje o numerach 00,10,11,20 i 21 zostaly udostepione przez admina (tzn. beda dostepne dla klienta)
Jesli beda dolaczone inne archiwa ARCHIxxxx np. ARCHI50 czy ARCHI2000 to
nalezy okreslic osobno jakie funckje beda udostpeniane klientom (analogicznie jak ARCHI01.ex)
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------



---------------------------------------------------------------------------------------------------
					Pliki i kompilacja
---------------------------------------------------------------------------------------------------
Sources:
client-archi.c - klient ARCHI (wysyla dane kompunikacyjne opisane ponizej). Dziala w witrynie dostep.
mserverA.c - server ARCHI (odbiera, przetwarza, odsyla odpowiedz). Dziala w SKZ.

//WAZNE. liczba funkcji jest 00..99 - tu nalezy dodawac funckje, udostpniane klientom
executor.c - plik interpetatora i wykonawcy zlecenia -tu nalezy dodawac funckje i parsery str.

execute/excA.c - wykonanie zadania przekazywanego przez executor w w trybie wielozadaniowym. 
szyfr/szyfrA.c - szyfrator, deszyfrator dla przekazywanych danych clientA-mserverA-clientA

pliki dodatkowe po kompilacji:
gcc -c szyfr/szyfrA.c ---> szyfrA.o
szyfr/szyfrA.h - header zawierajacy dostep do funkcji
		extern  int code_message(char*,char*);
		extern  void decode_message(char*,char*);

compile_client - skrypt kompilacji klienta: 
		echo "Kompilacja klienta"
		gcc client-archi.c szyfr/szyfrA.o -o clientA
		echo "END"


compile_serv - skrypt kompilacji servera:
		echo "kompilacja mserver-A"
		gcc mserver-A.c szyfr/szyfrA.o -o mserverA -lpthread
		ecjo "END"

install_server - skrypt instalacji sewera w chn11 (wymagane login jao ROOT):
		echo "Instalacja mserverA w chn11"
		cp /home/jpw/CSCA/mserverA /home/chn11/mserverA
		cp /home/jpw/CSCA/runserverA /home/chn11/runserverA
		echo "END"

runserverA - skrypt uruchamiania mserveraA w chn11 
		echo "RUN mserver in quiet mode"
		./mserverA & # >/dev/null &
		echo "END"

po install_serv w chn11 znajduja sie dwa pliki: mserverA(source:mserver-A.c), runserverA

nalezy przekowpiowac i ustawic z CONFIG-default do pliku /home/chn11/CONFIG/ARCHI01.ex (opis pliku 
konfiguracyjnego jest przedstawiony powyzej)

RUN servera (nalezy zalogowac sie jako ROOT):
m-srvdA start (startuje prace serwera w chn11)
m-srvdA stop (zatrzymuje prace serwera w chn11)
plik then mozna przekopiowac do katalogu /etc/init.d/
i dodac do listy serwisow chkconfig --add m-srvAd
i uruchomic podczas reboot systemu wraz zadowaniem systemu na mozionach 345 (inittable)
chkconfig --level 345 m-srvAd start 


Dane konfiguracyjne, ktore mozna zmieniac przed kompilacja:


	 	   ----------------- clientA.c -------------------
//default addresd IP servera i default port 
#define PORT_TCPIP 8800 		//definjujemy port TCP
//#define SERVER_ADDRESS "10.0.0.10"	 //definiujemy adres serwera (wycofane!)
                   ---------------- mserver-A.c ------------------
#define PORT_TCPIP 8800 //definjujemy port nasluchiwania
#define MAX_LENGTH_CLIENT_MESSAGE 2000 //max dl. message klienta
#define MAX_NR_THREADS 30 //maksymalna liczba jednoczesnych threads (liczba jednoczesnych klientow)



---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
	Postac danych w strumieniu przekazywanym przez klienta (serwera) do mserverA
---------------------------------------------------------------------------------------------------
klient moze bzeposrednio laczyc sie z bezposrednio z aplikacji (stand alone)
lub poprzez client-server(APACHE)-mserverA

		-------------------------------------------
uzycie clientA:
		clientA "address_IP_serverA" "QUERY-string"

		--------------------------------------------


przed szyfrowaniem strumien danych ma postac:

		AR=xxxx&OP=xx&dane_przekazywane_przez_formularz

np: AR=0001&OP=03&<tutaj sa dodawane dane sterujace dla wywolanej operacji 

np.dla operacji READ dane_przekazywane_przez_formularz:
AR=0001&OP=20& oraz PA=123456&ID=1234567&YE=2014&MH=01&DY=30&NF20140328005WA=00
co daje strumien:
AR=0001&OP=20&PA=123456&ID=1234567&CH=12B456&DY=14&MH=09&YE=2014&NF=123456789012&WA=00

gdzie:

AR - nazwa ARCHI NUMBER dla triggera liczba archi w jednym klastrze 0001...9999
OP - rodzaj zadania (Kod Operacji): 

----------------------------- Kody operacji -------------------------------------------------------
	OP=00 wywolanie tej opcji zwraca: "test opcode in exec[0]"
	OP=01 adm-priority;	//przeznaczone tylko dla admina - prawo do zmowien PRIORITY
	OP=02 agrp-add;		//tylko dla admina dodawanie clientID do ALL.grp
	OP=03 agrp-rm;		//tylko dla admina rm clientID z ALL.grp
	OP=04 agrp-rst;		//nie bedzie dostepna zdalnie
	OP=05 agrp-sta;		//tylko admin status clientID w ALL.grp
	OP=06 check-key;	//tylko admin przydzial check-key dla plikow CONFIDENTIAL
	OP=07 check-key-file;	//tylko admin clientID do pobrania pliku CONFIDENTIAL
	OP=08 check-key-print;	//tylko admin txt file z info o check-key dla e-mail
	OP=09 config-read;	//tylko admin ustawianie zakresu daty dla zamowienia READ
	OP=10 help-archi;	//tylko admin help dla admina
	OP=11 passwdARCHI;	//wszyscy dodawnie clientID do ARCHI
	OP=12 softblock;	//tylko admin czasowe blokowanie dostepu clientID do ARCHI
	OP=13 unblock;		//tylko admin odblokowanie po softblock lub po '3 errors passwd'
	OP=14 
	OP=15 
	OP=16 info-for-ALL;	//wszyscy informacje aktulane dla wszystkich clientID
	OP=17 message-sent;	//clientID przesla short-info dla admina
	OP=18 message-recv;	//clientID odbiera odp. admina na short-info
	OP=19 
	OP=20 READ;		//zamowienie przekazania pliku z ARCHI -> BUFFER
	OP=21 WRITE;		//zamowienie przekazania pliku z BUFFER -> ARCHI
	OP=22 add-rem-grp;	// dodawanie i usuwanie friendID z grupy PRIVATE (nie dla ALL.grp)
	OP=23 STATUS R		//zwraca status realizacji zamowienia READ
	OP=24 STATUS W:		//info stanu realizacji zamowienia write
	OP=25 Decyzja W:	//ostateczne potwierdzenie operacji WRITE odsylanie AR=&OP=25&ID=&FN=
	OP=26 
	OP=27 
	OP=28 
	OP=29 
	OP=30 ... 49 (na razie not-used) przenaczone dla funkcji dostpnych dla uzytkownikow
	...
	OP=50 ... OP69 zarezerwowane dla robotow programowych
---------------------------------------------------------------------------------------------------	
akceptowane lancuchy danych na przykladzie ARCHI01:
(Uwaga. bardzo wazne czy sa to duze czy male litery)

 -------------Blokowanie/Odblokowanie opcji ------------
Jesli opcja ma byc dostepna to nalezy w pliku /home/chn11/CONFIG/ARCHIxxxx.ex
zaznaczyc dostepnosc przez wpisanie "#" przed nr opcji
jesli "#" zostanie usuniety to dostep do opcji bedzie zablokowany i pojawi sie
komunikat: "Access to [nr-opcji] is reserved for ARCHI admin"
przykladowe uzycie:
#00 - jest udsostpeniona dla uzytkownika
00 - bedzie niedostepna dla uzytkownika

----- Jesli opcja nie jest implementowana w obsludze ARCHI ----
jesli ponizsza opcja nie jest obslugiwana to pojawi sie napis odpowiedzi:
"unavailable the op-code in exec" 


----------------------- OPCJE -------------------------
w stringu uzyto ARCHI0001

OP=00	zwraca napis "test op-code in exec [0]"
	string: AR=0001&OP=00&

OP=01 	ustawianie flagi High-Priority
	adm-priority --add clientID 	//dodawanie flagi H-P dla clientID
	string: AR=0001&OP=01&ADD&1234567&  - gdzie 123456 jest clientID

	adm-priority --rem clientID //usuwanie flagi H-P dla clinetID
	string: AR=0001&OP=01&REM&1234567&
	
	adm-priority --sta clientID //sprawdzanie flagi H-P dla clientID
	string: AR=0001&OP=01&STA&1234567&
	

OP=02	agrp-add ALL clientID //dodawanie clientID do ALL.grp (dostep do wszystkich plikow PRIVATE)
	string: AR=0001&OP=02&ADD&1234567&

OP=03	agrp-rm ALL clientID  //usuwanie clientID z ALL.grp
	string: AR=0001&OP=03&REM&1234567&

OP=04	agrp-rst //nie bedzie dostpna zdalnie

OP=05	agrp-sta ALL clientID //sprawdzanie statusu clientID w grupie ALL.grp
	string: AR=0001&OP=05&STA&1234567&

OP=06	dodawanie/usuwanie/status check-key dla clientID oraz daty waznosci (min 1 dzien)
	check-key --add clientID data-deadline //format daty 20140531 -numerycznie yymmdd
	string: AR=0001&OP=06&ADD&1234567&20140531&
	
	check-key --val clientID //walidacja check-key zwraca ostatni wpis dla clientID
	string: AR=0001&OP=06&VAL&1234567&

	check-key --blk clientID //blokowanie prawa do CONFIDENTIA dla clientID
	string: AR=0001&OP=06&BLK&1234567&

OP=07	//jesli plik jest oznaczony CONFIDENTIAL 
	check-key-file --add filename clinetID //dodaje clientnID do pobrania pliku CONFIDENTIAL
	string: AR=0001&OP=07&OPER=ADD&ID=1234567&FN=123456789012&

	check-key-file --rem filename clientID //usuwa clientID z prawa do pliku CONFIDENTIAL
	string: AR=0001&OP=07&REM&123456789012&1234567&

	check-key-file --sta filename clientID //podaje status clientID dla pliku CONF. 
	string: AR=0001&OP=07&STA&123456789012&123456&

OP=08	//zapisuje check-key do pliku txt-> /home/ARCHI01/001B/ADMIN/CLIENTS/TMP/clientID.txt
	check-key-print clientID
	string: AR=0001&OP=08&1234567&

OP=09	//ustawia zakres terminu realizacji READ min 1 miesiac max. 12 miesiecy default=3 mies.
	config-read liczba_miesiecy
	string: AR=0001&OP=09&11&

OP=10 	help-archi
	string: AR=0001&OP=10&

OP=11	//dodawnie clientID, zmiana hasla dostepne dla klientow ARCHI i admina
	passwdARCHI --add			//dodawanie nowego clientID
	string: AR=0001&OP=11&ADD&
	
	passwdARCHI --chg clientID old_clientPIN/[lub adminPIN] //zmiana clinetPIN
	string: AR=0001&OP=11&CHG&1234567&123456&
	
	passwdARCHI --adm adminPIN 	//raczej nie bedzie dostepna zdalnie	
	string: AR=0001&OP=11&ADM&123456&

OP=12 	//softblock dziala tak samo jak przy blednym wpisie 3 krotnym clientPIN/adminPIN
	softblock clientID clientID //nalezy podac clientID 2 razy
	string: AR=0001&OP=12&1234567&1234567&
	
OP=13  //unblock usuwa softblock lub po 3-krotnym blednym wpisie clientPIN (passwd)
	unblock clinetID clientID 
	string: AR=0001&OP=13&1234567&1234567&

OP=14 //wolne

OP=15 //wolne

OP=16 //info-for-all // jeszcze nie ma implementacji

OP=17 //message-send //jeszcze nie ma implementacji

OP=18 //message-recev //jeszcze nie ma implementacji

OP=19 //wolne

OP=20 READ
	string: AR=0001&OP=20&PA=123456&ID=1234567&CH=12B456&DY=14&MH=09&YE=2014&NF=123456789012&WA=00
		uwaga na koncu nie ma '&' 
		PA - archiPIN (password)
		ID - clientID
		CH - check-key (must be valid)
		DY - day of request (w zakresie okreslonym od teraz do cconf-read OP=9)
		MH - month of request (uwaga j.w.)
		YE - year (uwaga j.w. /uwzglednia lata przestepne)
		NF - name of file (nazwa pliku do porbrania)
		WA - ustalanie PRIORITY (jesli dostepne) 
			WA=00 tryb zamowienia NORMAL
			WA=01 tryb High Priority (H-P) - wymusenie kolejki (tylko dla plikow <1GB)

OP=21 WRITE
	string: AR=0001&OP=21&PA=123456&ID=1234567&DY=12&MH=12&YE=1234&AT=PUB&ME=OF&CP=003
		uwaga na koncu nie ma '&'
		PA= <ACHI-PIN> 	6 chars [0..9,a..z,A..Z] - cyfry, litery male i duze
		ID= <clientID> 	7 chars [0..9] smane cyfry
		DY= <DAY> 	2 chars [0..9] np. 05,29 itd. numer dnia
		MH= <MONTH>  	2 chars [0..9] np. 08,12 itp. numer miesiaca
		YE= <YEAR>	4 chars [0..9] np 2014, 2015 rok
		AT=<flaga>	PUB,PRI,CON (PUBLIC, PRIVATE, CONFIDENTIAL)
		ME= <flaga>	ON lub OF co oznacza ON=METAON OF=METAOFF (w metryczkach MS/ML)
		CP=<liczba kopii> - ustala administrator
			Prawidlowe przyjecie zamowienia zwraca klientowi nastepujacy string:
			"seg_time:offset_time:request has been added"
			przy czym substring: "seg_time:offset:time" jest numerem zamowienia


OP=22 	clientID moze usodtepnic plik innym kientom ARCHI (fiends) dizala podobnie jak
 	w przypadku OP=02, OP=03 oraz OP=05 z ta roznica, ze OP=22 jest przeznaczone dla
	dla klientow ARCHI, a nie dla admina (ROOT)
	agrp-client string
	string:
	AR=0001&OP=22&PA=123456&ID=1234567&FI=1234567&NF=123456789012&WA=00 (bez '&' na koncu)
		PA - archiPIN (passwd clientID), ID - clientID (ID clienta w ARCHI)
		FI - friend ID (ID przyjeciela, ktoremu clientID udostepnia plik)
		NF - name of file (nazwa zasobu w ARCHI),WA - kod operacji (working application):
 		WA=00 -staus (sprawdza status usodtepnienia w pliku [nazwa].grp
 		WA=01 - add friendID
 		WA=10 - remove friendID 	

OP=23	STATUS realizacjizamowienia READ. STATUS jest wazny tylko do 23:59 danego dnia. 
	klient przesyla string: AR=0001&OP=23&ID=2211194&FN=201501050003
	klient otrzymuje odpowiedz:
	AR=0001&OP=23ID=2211194&FN=201501050003&RDER=1415051665:556300286&IP=<stan_realizacji>
	stan_realizacji:
	NULL - nie ma takiego zlecenia na stosie
	STOS - przyjete i jest jeszcze na stosie
	TODO - weszlo do kolejki
	10.0.0.10  - (adres IP bufora) jesli plik zostal przeniesiony do BUFORA 
		     i mozna rzopoczac pobieranie pliku z BUFORA
	(nie zaleca sie testowanie BUFORA czy plik juz tam jest)
			

	

OP=24	STATUS realizacji zamowienia WRITE. STATUS jest wazny tylko do 23:59 danego dnia.
	klient wysyla string: AR=0001&OP=24&ID=2211194 
	klient odbiera string:
	AR=0001&OP=24&ID=2211194&ST=<stan_realizacji>
	stan realizacji:
	NULL - nie bylo rejestracji zamowienia i nie ma go na stosie 
	STOS - jeszcze zlecenie jest na stosie
	TODO - weszlo do koleji i jest przetwarzane	
	oraz
	jesli przetworzenie w kolejce zostalo zakonczone
	klient odbiera string, jesli zamowienie jest w kolejce do realizacji i SKZ
	oczekuje na potwierdzenie od klienta czy ma byc przeniesione do ARCHI. Po potwierdzeniu
	klient moze rozpoczac transfer danych do BUFORA 
	AR=0001&OP=25&ID=2211194&FN=201501050003&ORDER=1415051665:556300286&IP=10.0.0.101
	gdzie IP jest adresem BUFFERA.
	UWAGA. w powyzszym stringu jest OP=25, aby ulatwic klientowi odeslac decyzje 
	bez analizowania stringu na zazasie - odeslane-zdecydowane. 
	Aby plik mogl byc przeniesiony do BUFORA nalezy potwierdzic to opcja OP=25 
	
OP=25	POTWIERDZENIE WRITE klient odsyla potwierdzenie operacji zapisu, co jest rownoznaczne 
	z decyzja przeniesienia przeslanego do bufora pliku do NODE.
	Jesli decyzja nie zostanie potwierdzona to
	operacja WRITE nie bedzie realizowana tzn. klient zdecydowal o usunieciu zlecenia.
	postac stringu odpowiedzi np. AR=0001&OP=25&ID=2211190&FN=201505220005&ORDER=...
	Mozna tez jako odpowiedz odeslac caly string przesylany do klienta np.:
	AR=0001&OP=25&ID=2211194&FN=201501050003&ORDER=1415051665:556300286&IP=10.0.0.101
	UWAGA. 
	Mozna tez odeslac ORDER=1415051665:556300286, ale prosciej bedzie odeslac caly string bez
	dokonywania zmian
		
	

---------------------------------------------------------------------------------------------------
				Zwracane bledy mserverA
---------------------------------------------------------------------------------------------------
//nieskompletowane (jeszcze)
------------------------------------- cleintA -----------------------------------------------------
zwracane info bledow:
	"cannot connect to server" 
funkcja: int client_archi(char*server_address,int port, char*str_input, char*str_out)
---------------------------------------------------------------------------------------------------



--------------------------------- Funkcje mserver -------------------------------------------------
zwracane info bledow do klienta: 
	(rodzaj bledu zwracany jest poprzez char*data)
	"incorrect input data [1]" - jesli brak "AR="
	"incorrect input data [2]" -jesli brak jest "&OP="
	"missing [&] in input data" - jesli brak jest po kodzie operacji znaku "&"
	"incorrect ARCHI name in input data" - jesli AR=0000
funkcja: int parsing(char*data,char*archi_name, char*op_code)
	data - wprowadzane dane 
	archi_name zgodnie z ARCHI-name
	op_code - wyluskuje Kod Operacji (patrz wyzej)
Bledy:
	zwraca 1 jesli data przeslana przez klienta jest poprawna
	zwraca 0 jeli  data jest bledna
--------------------------------- w funkcji main --------------------------------------------------
zwracane bledy z printowane przez mserverA:
	"Could not create socket" - jesli dziala juz jakis serwer o tych samych parametrach
	"bind failed. Error" - socket jest zablokowany (j.w.)
	"could not create thread" - nie mozna pracowac w trybie wielowatkowym
funkcja main
zwracane info dzialania poprawnego:
	"Socket is created"
	"bind done"
	"Waiting for incoming connections..."
	"Connection accepted" - po przejeciu danych od klienta
	"Handler has been assigned" -komunikat po przeslaniu danych do oczekiwanie na nastpne
	"nr threads=xx" - liczba aktullanie uruchomonych watkow
------------------------------- w funkcji connection handler --------------------------------------
zwracane bledy:
	"recv filed"  jesli przejmowany string jest bledny
funckja: void *connection_handler(void *socket_desc)
zwracane info:
	"Client disconnect" - info zwracane po zakonczeniu sesji z clientA-mserverA	
---------------------------------------------------------------------------------------------------
---------------------------------------- excA.c ---------------------------------------------------
zwracane bledy:
	"internal problem with execute request" 
	problem jest ze pid zwracanym przez 
funkcje: waitpid(child_PID,&status,0)
	najbardziej prawdopodobna przyczyna bledu jest niprawidlowe wywolanie
	funkcji w katalogu /home/ARCHI01/001A/SYSTEM/.....<funcja/aplikacja>
	wowczas waitpit(...)<0. 
	zazwyczaj spowodowane jest to przez bledne podanie numeru ARCHI
	np. AR=0002 poeoduje, ze nie ma takiego ARCHI co prowduje ninjejszy komunikat
 inna przyczyna bledu moze byc trudnosc z fork() w funckji external_proces(...)
	nalezy sprawdzic czy ilosc przekazywanych parametrow i ich kolejnosc jest
	wlasciwa przed kompilacja mserv-A.c w module ----> executor.c




	
	
